ubuntu18.04成功使用 rolabelimg

文章介绍了如何使用Yolov5进行旋转目标检测,并推荐了roLabelImg作为图形化标注工具。在安装roLabelImg时,由于需要PyQt4,而该库已停止更新,作者详细阐述了解决依赖问题的步骤,包括源码下载、编译和安装过程,特别提到了版本匹配的重要性。此外,还解决了遇到的Python版本错误和资源注册类型的错误,并提供了可能需要的额外插件安装建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前沿

最近对Yolov5 for Oriented Object Detection 旋转目标感兴趣https://github.com/hukaixuan19970627/yolov5_obb,想自己下来玩玩,如果需要对自己的数据进行标注,需要用到旋转目标的标注软件。roLabelImg是一个图形图像注释工具,可以标记旋转的矩形区域,它是从’labelImg’重写的。其对应的github地址之一如下:
https://github.com/cgvict/roLabelImg

成功版本

Python 3.9.12 4.19.12.tar.gz PyQt4_gpl_x11-4.12.3.tar.gz,其中~/anaconda3/bin/python 对应的是Python 3.9.12

步骤

1 clone源码

git clone https://github.com/cgvict/roLabelImg.git
cd roLabelImg-master

2 安装对应的工具箱

sudo apt-get install pyqt4-dev-tools 
sudo pip install lxml 

3 编译所有目标

make all

4 运行roLabelImg

./roLabelImg.py 

不报错就可以使用了。

遇到的问题 ,以及解决方法

1 ModuleNotFoundError: No module named ‘PyQt4’

这个问题是比较常见并且很重要的,由于roLabelImg是很早之前写的一个工具,是需要pyqt4的,但是pyqt4官方已经停止更新,所以无论conda 还是pip install都是会无法安装或者找不到源码包,这个时候需要进行源码编译。源码便于需要安装sip,这个工具还必须是版本4的。安装其他人的先例,先从一下两个地址进行源码的下载:
sip:https://www.riverbankcomputing.com/software/sip/download
pyqt4:https://riverbankcomputing.com/software/pyqt/download
在这里我最初下载的版本为:sip-4.19.25.tar.gz PyQt4_gpl_x11-4.12.3.tar.gz,但是在最后编译过程,报错连连,最后提示我当前使用的 PyQt4对应的sip应该是 sip-4.19.12,这个坑了我很久,在找遍了官网都找不到对应的版本后,最后在https://sourceforge.net/projects/pyqt/files/sip/ 找到了对应的版本源码。因此我就安装提示,使用了sip-4.19.12.tar.gz PyQt4_gpl_x11-4.12.3.tar.gz

(1)sip的编译安装

进到下载好上述源码的目录,进行解压

 tar zxvf sip-4.19.12.tar.gz
 cd sip-4.19.12
 sudo ~/anaconda3/bin/python configure.py
 sudo make
 sudo make install

这里需要注意的是由于自身环境装了多个python版本的原因,还是需要指定对应的版本进行configure为好,网络上其他人都是说使用 sudo python configure.py或者sudo python3 configure.py进行configure,那么恭喜你,这两个要么使用python3.6(ubuntu18.04默认)要么是python2.7。那么对应的 PyQt4也得使用相应的python版本进行configure。当然看似没什么问题,但是当你真正要启动rolabelimg,如果不是启动对应的python版本,就会报错ImportError: cannot import name 'QtCore' from 'PyQt4' (unknown location),这一类的错误都是因为没有使用相同版本的python。

(2)PyQt4的编译安装

进到下载好上述源码的目录,进行解压

 tar zxvf  PyQt4_gpl_x11-4.12.3.tar.gz
 cd PyQt4_gpl_x11-4.12.3
 sudo ~/anaconda3/bin/python configure-ng.py
 sudo make
 sudo make install

这里需要注意的是python版本也应该是使用与sip一样的版本,同时使用configure-ng.py进行configure。需要注意的是,在configure的过程如果是提示Error: Unable to create the C++ code.的错误,这就是提示sip的版本与PyQt4的版本不匹配,这个时候就需要根据PyQt4的版本去降低sip的版本了。

2 ModuleNotFoundError: No module named ‘PyQt5’

pip install PyQt5

3 运行 ./roLabelImg.py 报错

TypeError: qRegisterResourceData(int, bytes, bytes, bytes): argument 2 has unexpected type 'str'

这是在编译roLabelImg 的过程中,系统找到的pyqt4是 qt4py2,所以导致了使用pyrcc4 de -py2来进行make。粗暴的做法是,打开roLabelImg源码目录下的Makefile文件,将18行的命令进行更改:
原来的:pyrcc4 -py2 -o resources.py resources.qrc
更改后:pyrcc4 -py3 -o resources.py resources.qrc
重新make all
便可以正常使用了。

其他

结合其他人的编译过程,可能需要安装的插件如下(我也不知道哪个可以,就一并安装了):

sudo apt-get install -y qt4-qmake
sudo apt-get install python-qt4
sudo apt-get install pyqt4-dev-tools
sudo apt-get install qt4-desiginer

这几个插件,在编译PyQt4过程中可能需要,如果在编译PyQt4的过程中报错,可以先执行这几条命令后再重复进行PyQt4的编译安装的三个步骤。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值