继续创造,加速生长!这是我参加「日新方案 6 月更文应战」的第24天,点击查看活动概况
前言
咱们知道,方针检测 (object detection
) 的输出是方针的鸿沟框,其间鸿沟框用于定位图画中的方针方针。要构建算法检测图画中方针周围的鸿沟框,就必须首要创立输入-输出
映射,其间输入是图画,而输出是给定图画中方针周围的鸿沟框。
当咱们检测到鸿沟框时,咱们需求检测图画周围鸿沟框左上角的像素位置,以及鸿沟框的相应宽度和高度。要练习能够输出鸿沟框的模型,咱们需求练习集图画以及练习数据集图画中一切方针的相应鸿沟框坐标和类别标签。
创立自定义方针检测数据集
在本节中,咱们将介绍如何创立练习数据集的办法,其间将图画作为输入,并将相应的鸿沟框存储在XML文件中。咱们将学习运用labelImg包来标示鸿沟框和相应方针方针的类。在不同操作系统中有不同的方式运用 labelimg
包标示图画中方针的鸿沟框,不同操作系统的装置教程能够参考官方网页。最为通用的办法是运用 pip
进行装置,与其它第三方库装置办法相同:
$ pip3 install labelImg
windows
经过官方链接下载 labelImg
的可履行文件,解压后翻开 labelImg.exe
程序,其界面如下图所示:
在 data
文件夹的 predefined_classes.txt
文件包含了图画中一切可能的标签,咱们需求确保每个类别都占有独自一行,如下所示:
单击 “Open
” 翻开图画,然后单击 “Create RectBox
” 为图画绘制鸿沟框。绘制鸿沟框完结后,将弹出为方针方针挑选的类别窗口,为符号的方针挑选所属类别,如下所示:
单击 Ok
完结此方针的标示,标示图中一切方针后,单击 Save
并保存 XML
文件:
保存完结后,能够查看 XML
文件。绘制矩形鸿沟框后,XML
文件的内容如下所示:
在上图中,能够看到,bndbox
包含图画中方针相对应的 x
和 y
坐标的最小值和最大值的坐标,即鸿沟框左上角和右下角坐标。此外,咱们能够经过 name
提取到鸿沟框中方针相对应的类别标签。
Ubuntu
在 Ubuntu
中,能够经过运行以下指令来运用 labelimg
包:
$ sudo apt-get install pyqt5-dev-tools
$ sudo pip3 install -r requirements/requirements-linux-python3.txt
$ make qt5py3
$ python3 labelImg.py
能够在 GitHub 链接中找到脚本labelImg.py。履行上述指令后,接下来运用 labelimg
包标示方针方针鸿沟框和类别的用法与 Windows
中相同。
MacOS
在 macOS
中,能够经过履行以下指令来运用 labelimg
包:
$ brew install qt
$ brew install libxml2
$ make qt5py3
$ python3 labelImg.py
能够在 GitHub 链接中找到脚本 labelImg.py
。履行了以上指令之后,接下来运用 labelimg
包标示方针方针鸿沟框和类别的用法与 Windows
中相同。