LabelImg的安装
踩了无数的坑,结果发现解决办法那么简单
首先说一下环境:Ubuntu16.04+anaconda2+anaconda3
同时安装了Python2.7和Python3.5
但我使用的是Python2.7+pyqt4
安装步骤:
安装 SIP
https://riverbankcomputing.com/software/sip/download
下载 SIP 并解压 ;
$ sudo python configure.py
$ make
$ sudo make install
安装 依赖库
$ sudo apt-get install libxext6 libxext-dev libqt4-dev libqt4-gui libqt4-sql
$ sudo apt-get install qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig
安装 PyQt4
https://riverbankcomputing.com/software/pyqt/download
下载 PyQt4 并解压 ;
$ sudo python configure.py
$ sudo make
$ sudo make install
安装 labelImg
$ sudo apt-get install python-pip
$ sudo pip install lxml
下载 labelImg-master 并解压 https://github.com/tzutalin/labelImg
如果还是不行:conda install -c anaconda pyqt=4.11.4
因为我发现Anaconda2/lib/python2.7/site-packages中是PyQt5
补充:
安装之后如果有importerror,可以试一下:
sudo apt-get install python-qt4
voc2007数据集的格式
voc2007主要包括五个文件
- Annotations ——xml标注文件
- ImageSets——类别标签
- JPEGImage——jpg图像文件
- SegmentationClass
- SegmentationObjec
训练自己的数据时只需要修改Annotations、ImageSets、JPEGImages 三个文件夹。
Annotations
用于存放XML文件,这里我们用之前安装的Labelimg标注文件,直接打开你下载的labelimg文件夹,在/path/to/labelimg/data中有一个predefined_classes.txt修改为自己数据集的类别,然后运行
python labelimg.py
点击open Dir选择图片所在的文件夹,change save Dir选择xml要保存的文件夹。
ImageSets
生成ImageSets\Main文件夹下4个txt文件test.txt , train.txt , trainval.txt , val.txt。
这四个文件夹中存储的时上一步中xml文件的文件名。trainval和 test内容相加为所有xml文件,train和val内容相加为trainval。
python代码:
import os
import random
trainval_percent = 0.7
train_percent = 0.6
xmlfilepath = '/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/Annotations'
txtsavepath = '/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/ImageSets/Main'
total_xml = os.listdir(xmlfilepath)
num=len(total_xml)
list=range(num)
tv=int(num*trainval_percent)
tr=int(tv*train_percent)
trainval= random.sample(list,tv)
train=random.sample(trainval,tr)
ftrainval = open('/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/ImageSets/Main/trainval.txt', 'w')
ftest = open('/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/ImageSets/Main/test.txt', 'w')
ftrain = open('/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/ImageSets/Main/train.txt', 'w')
fval = open('/home/ubuntu/tf-faster-rcnn-master/data/VOCdevkit2007/VOC2007/ImageSets/Main/val.txt', 'w')
for i in list:
name=total_xml[i][:-4]+'\n'
if i in trainval:
ftrainval.write(name)
if i in train:
ftrain.write(name)
else:
fval.write(name)
else:
ftest.write(name)
ftrainval.close()
ftrain.close()
fval.close()
ftest .close()
JPEGImage
将自己的图片放进该文件夹。