美文网首页
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