美文网首页
Yolov3:训练自己的模型 Part1:准备数据集

Yolov3:训练自己的模型 Part1:准备数据集

作者: Melesmay | 来源:发表于2020-06-06 23:32 被阅读0次

关于yolov3在ubuntu18下的配置,我的上一篇文章有介绍,本篇文章介绍如何构建用于yolov3训练的数据集。

数据集获取

数据集的获取可以依靠下载公开数据集或标注自己的数据集。一般来说,公开数据集很难满足我们实际的生产需求,因此大多数情况下需要我们自己标注数据集。一般使用labelImg用于目标检测的标注,标注完成后会生成与所标注图片同名的xml文件。

labelImg在win上的配置

1、下载源码https://github.com/tzutalin/labelImg

2、安装python3.5(据说用py3.6会报错,经测试在py3.7下可成功配置)

3、安装PyQt5:

pip install PyQt5

(如果下载很慢可以换pip源)

4、安装PyQt5_tools:

pip install pyqt5-tools

5、安装lxml:

pip install lxml

6、进入labelImg解压后的文件,执行命令

pyrcc5 -o resources.py resources.qrc

(用于将Qt文件格式转换为python格式)

7、运行labelImg.py

如果出现 No module named ‘libs.resources’ 的报错

No module named ‘libs.resources’ 

将resources.py拖进libs文件夹即可

labelImg的使用

1、打开需要标注的图片所在目录

2、data文件夹下的predefined_classes.txt文件存储了标签,将这个文件内的标签修改为自己需要的。例如:

3、根据需要更改或不更改标注文件的存储位置

4、需要注意的是,尽管用于yolo训练的标注文件最终需要的是txt格式,但在制作数据集阶段我们仍需制作成VOC格式(标注文件为xml文件),因此在标注前需检查保存的格式是否为VOC格式。

5、按快捷键w对图片进行标注,选择标签,所有目标标注完成后保存,即可得到对应的xml文件。

6、xml文件的示例如下图

xml文件示例

<annotation>

    <folder></folder>        //文件夹                           

<filename></filename>  //文件名 

<path></path>          //文件路径

    <source>                //图像来源(不重要) 

        <database>Unknown </database> 

    </source> 

    <size>                    //图像尺寸(长宽、通道数)                       

        <width>1920</width> 

        <height>810</height> 

        <depth>3</depth> 

    </size> 

    <segmented>0</segmented>            //是否用于分割(在目标识别中01无所谓) 

    <object>                              //检测到的物体 

        <name>car</name>                      //物体类别 

        <pose>Unspecified</pose>                //拍摄角度 

        <truncated>0</truncated>                  //是否被截断(0表示完整) 

        <difficult>0</difficult>                      //目标是否难以识别(0表示容易识别) 

        <bndbox>                                //bounding-box(包含左下角和右上角xy坐标) 

            <xmin>465</xmin> 

            <ymin>410</ymin> 

            <xmax>784</xmax> 

            <ymax>651</ymax> 

        </bndbox> 

    </object> 

    <object>              //包含多个目标 

        ⋯⋯

    </object> 

</annotation>

可能会用到的快捷键

Ctrl+u 加载目录中所有图像

Ctrl+s 保存

Ctrl+r 更改标注文件保存地址

Ctrl+d 复制当前标签和矩形框

space 将当前图片标记为已验证

w 创建一个矩形框

d 下一张图片

a 上一张图片

del 删除选定的矩形框

数据准备

需要将我们在上一步中准备的数据集整理成VOC格式,也就是将图片全部存放在JPEGImages下,将标注文件全部存放在Annotations下,ImageSets/Main文件夹先空着。

VOC格式

--VOCdevkit

  --VOC2007  #2007可以为任意年份(也可以没有,事实上文件夹也可以不叫这些名字)

    --Annotations  #存储xml文件

    --ImageSets  

      --Main     #存储训练集/验证集/测试集的txt

    --JPEGImages #存储图片

VOC格式数据集文件夹结构

至此就完成了数据集的准备,part2会介绍训练的流程、参数设置等。

相关文章

网友评论

      本文标题:Yolov3:训练自己的模型 Part1:准备数据集

      本文链接:https://www.haomeiwen.com/subject/ieqqtktx.html