训练模型第一步--------使用LabelImg创建数据标签

时间:2024-11-21 07:45:17

装机环境:Win10+Python3.5

一、LabelImg是什么?

      LabelImg 是一个图形图像注释工具,采用 Python 编写而成,并使用 Qt 作为其图形界面

二、前提准备工作

      0.在这里,我默认你已经安装好了Python以及确保带有Pip(Python3.0以上一般都会自带)

      1.安装PyQt5.       

pip install PyQt5 

        这里还是多说一句吧,由于网络原因等等吧,上述命令不一定会执行成功。结局办法:手动下载whl文件。在执行上述脚本的之后,pip会根据你当前电脑环境版本自动寻找一个最适合你下载的库。比如:

       

         可以看到,我这里pip自动为我寻找的PyQt5的版本是PyQt5-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl。诸如此类问题吧,都可以这样手动解决,下面附上一个下载地址:

         /project/

        2.安装安装PyQt5-tools

pip install pyqt5-tools

         安装不了参考上面的解决办法

        3.安装lxml

pip install lxml

        4. 最重要的,LabelImg下载Dowmload

三、安装

      编译pyrcc编译源文件

      进入到labelImg的安装根目录,执行

  1. pyrcc5 -o
  2. python

      不出意外地话,会弹出一个窗口:

      

 

        贴一下Github上关于labelimg的安装说名:

        

        至此,安装工作完成。

四、实验

       数据集不大,模型没有意义。

1.数据标注流程:

       (1)打开labelImg之后,点击Open Dir选择要处理的图片所在的文件夹

        (2)点击Create RectBox创建标注区域,并命名

  

        (3)点击Save,NextImage。以此类推。

          在完成所有的数据样本的标注之后,我们可以得到下面成果,每一张图片后面都有一个与其名字相同的xml文件。

          !!!!!!!!图片先欠着。

转TXT

          YOLO需要的是TXT格式,所以我们需要转换~

打开一个XML文件先查看里面的格式和内容

  1. 解释几个重点节点:
  2. <width>:图片的宽度
  3. <height>:图片的高度
  4. <name>:图片的类别的名字
  5. <!--------------------------------------->
  6. <xmin>:标注框左上角的x坐标
  7. <ymin>:标注框左上角的y坐标
  8. <xmax>:标注框右上角的x坐标
  9. <ymax>:标注框右上角的y坐标

而TXT要求的格式:

  1. <object-class> <x_center> <y_center> <width> <height>
  2. <!--------------------------------------------------->
  3. <object-class>该图片所拥有的类别,在车牌检测中就是车牌代表
  4. 的数字,因为只有检测车牌即只有1类,因此是0
  5. <!--------------------------------------------------->
  6. <x_center> 中心点横坐标:这里的坐标并不是绝对坐标(真实坐标),
  7. 而是相对于图片宽度的相对坐标,转换公式为:
  8. <x_center> = <absolute_x> / <image_width>,这里的absolute_x是指标注框中心的横坐标,即(xmin+xmax)/2
  9. <!--------------------------------------------------->
  10. <y_center> 中心的纵坐标:这里的坐标并不是绝对坐标(真实坐标),
  11. 而是相对于图片高度的相对坐标,转换公式为:
  12. <y_center> = <absolute_y> / <image_height>,这里的absolute_y是指标注框中心的横坐标,即(ymin+ymax)/2
  13. <!--------------------------------------------------->
  14. <width> 标注框宽度:这里的宽度并不是绝对宽度(真实宽度),而是相对于图片宽度的相对宽度,转换公式为<width> = <absolute_width> / <image_width>,即(xmax-xmin) / <image_width>
  15. <height> 标注框宽度:这里的宽度并不是绝对宽度(真实宽度),而是相对于图片宽度的相对高度,转换公式为<height> = <absolute_height> / <image_height>,即(ymax-ymin) / <image_height>