Ubuntu 16.04系统配置labelImg进行图片标注

最近做毕设需要在Android平台上通过摄像头动态识别交通路牌,神经网络选择了MobileNet-SSD,所以需要制作voc数据集,标记图片内目标用到了labelImg;

在安装前提醒一下,labelImg尽量安装在你要训练神经网络的机器上,这样可以节省你一些不必要浪费的时间,因为标记后产生的xml文件里会写如对应图片的路径,如果labelImg标记和训练不在一个机器上的话,后续还需要更改xml文件内的图片路径,几千几万个文件,即使用脚本改不还是要花时间的吗?所以干脆放在一起算了;

我选择的是pyqt5,相较于上一个版本pyqt4可以支持更多的图片编码形式;

这里我们假定python环境已经配置完毕,我的pythonshell版本是2.7.15,由于用了anaconda,则使用conda安装

用命令检查一下是否安装好lxml:

conda list

如果在结果中发现lxml则不用安装,若没有则执行代码:

conda install lxml

需要安装pyqt5:

conda install pyqt=5

若安装上述步骤成功后,

执行clone命令下载labImg:

git clone https://github.com/tzutalin/labelImg.git

切换到labelImg文件中执行:

cd labelImg/
pyrcc4 -o resources.py resources.qrc

注意:pyrcc后面的数字是4,如果不是,执行时虽然不会报错,但是后面运行程序时会无法运行;

上述步骤没有问题之后执行:

sudo python labelImg.py

运行labelImg ,在执行这行代码时尽量用sudo,我一开始没用sudo时出现了一些报错:

ImportError:No module named PyQt4.QtCore

开启权限后正常运行。

在标记前还要建一个名为VOC2007的文件夹,并在这个文件夹内建五个子文件夹,如图(图内txt文件这里可以忽略):

Ubuntu 16.04系统配置labelImg进行图片标注

打开labelImg后,点左边栏的Change Save Dir,选择VOC2007--Annotations,这里将会保存标记好的图片的xml文件;

JPEGImages用来放需要训练并且标记的图片

点左边栏的Open Dir,选的图片集合的文件夹,Open用来选择打开某一张图片;

Ubuntu 16.04系统配置labelImg进行图片标注

还要提醒一下,图片的文件名千万不要重复,否则之前已经标注好的图片的标记信息会显示在后面同名的图片中,如果这时你没明白是怎么一回事,一看没标记过的图片出现了标记信息,就把出现的标记删了重新标记的话,之前那个图片的信息就没了,会被覆盖为后面标记的这个图片的信息。比如说我这里有n个大类,每个大类里有5个小类,每个小类有5张图片,图片名都是000_000开始,到004_004结束,如果你没有把它们提出来重新命名排序,等标记结束你会发现,只保存了最后一个大类的标记信息,前面的都被覆盖没了。