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文件这里可以忽略):
打开labelImg后,点左边栏的Change Save Dir,选择VOC2007--Annotations,这里将会保存标记好的图片的xml文件;
JPEGImages用来放需要训练并且标记的图片
点左边栏的Open Dir,选的图片集合的文件夹,Open用来选择打开某一张图片;
还要提醒一下,图片的文件名千万不要重复,否则之前已经标注好的图片的标记信息会显示在后面同名的图片中,如果这时你没明白是怎么一回事,一看没标记过的图片出现了标记信息,就把出现的标记删了重新标记的话,之前那个图片的信息就没了,会被覆盖为后面标记的这个图片的信息。比如说我这里有n个大类,每个大类里有5个小类,每个小类有5张图片,图片名都是000_000开始,到004_004结束,如果你没有把它们提出来重新命名排序,等标记结束你会发现,只保存了最后一个大类的标记信息,前面的都被覆盖没了。