在做目标检测任务时,需要进行标注,选择了LabelImg作为标注工具,下面是安装及使用过程。
我们使用Anconda的虚拟环境进行安装,激活环境后,执行:
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
安装结束后,输入labelimg即可。
然后我们还需要设置一下点击View显示如下图,然后把如下的几个选项勾上:
Auto Save mode
:当你切换到下一张图片时,就会自动把上一张标注的图片标签自动保存下来,这样就不用每标注一样图片都按Ctrl+S保存一下了Display Labels
:标注好图片之后,会把框和标签都显示出来Advanced Mode
:这样标注的十字架就会一直悬浮在窗口,不用每次标完一个目标,再按一次W快捷键,调出标注的十字架。
然后我们就可以进行标注了,博主标注格式为VOC,首先需要创建好对应的文件。
- JPEGImage 目录:存储的图片
- Annotation 目录:用于存放标注图片的标签文件
- predefined_classes.txt 文件:定义自己要标注的所有类别
然后我们需要定义好自己想要标注的类别,博主初步定义如下:
bus person car sign light
其中sign包含路牌,交通标识等,light指的是信号灯。
我们先将数据集统一重命名
import os
# 图片存放的路径
path = r"E:/KITTI/jiamusi/VOC/JPEGImage/"
# 遍历更改文件名
num = 1
for file in os.listdir(path):
os.rename(os.path.join(path,file),os.path.join(path,str(num))+".jpg")
num = num + 1
完成后labelimg打开 Open Dir 进行标注,w 快捷键进行标注:
标注完成:
Ctrl+S保存生成的标注文件
<annotation>
<folder>JPEGImage</folder>
<filename>1.jpg</filename>
<path>E:\KITTI\jiamusi\VOC\JPEGImage\1.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>6960</width>
<height>4640</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>3106</xmin>
<ymin>2119</ymin>
<xmax>3364</xmax>
<ymax>2907</ymax>
</bndbox>
</object>
<object>
<name>person</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>3359</xmin>
<ymin>2225</ymin>
<xmax>3617</xmax>
<ymax>2878</ymax>
</bndbox>
</object>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>5894</xmin>
<ymin>2307</ymin>
<xmax>6960</xmax>
<ymax>3519</ymax>
</bndbox>
</object>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>6023</xmin>
<ymin>2155</ymin>
<xmax>6700</xmax>
<ymax>2513</ymax>
</bndbox>
</object>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>3641</xmin>
<ymin>2296</ymin>
<xmax>3829</xmax>
<ymax>2419</ymax>
</bndbox>
</object>
</annotation>
至此便标注完成了。