1. 在无畏契约内进行截图采样
我们首先需要得到用于yolo训练的样本,这些样本可以自己在游戏中进行截图,全部另存在一个文件夹内即可。以下是注意事项:
- 关于截图工具: 大部分截图工具(e.g., QQ, 微信和Snipaste等)都可以,截图后记得保存起来
- 关于截图内容: 所截图片需要有你需要检测的目标(e.g., 敌人和友军),图片的格式建议为JPG
- 关于截图大小: 所截图片的大小不需要太在意,图片内存在目标即可
以下是我所截图片的一些示例(敌人和友军):
2. 利用LabelImg对图片样本进行标记
2.1 LabelImg的介绍
labelImg是一个可视化的图像标定工具。Faster R-CNN,YOLO,SSD等目标检测网络所需要的数据集,均需要借此工具标定图像中的目标。可以标注两种格式:VOC标签格式(.xml)和YOLO标签格式(.txt)。图片标定工具有很多,只要最终能生成你所需的标注格式都行,LabelImg使用相对简单且入门。
2.2 LabelImg的下载
LabelImg有两种下载方式:
- 通过github链接下载LabelImg的exe文件.
- 通过命令行安装LabelImg:
pip install labelimg
两种下载方式后续的使用都差不多,我个人偏好直接下载exe文件。
2.3 利用LabelImg进行图片标注
我文件的目录如下:
|----test
| |----pic #存放着你所有的截图的文件夹
| |----classes.txt # 存放你要标注的所有类别名
| |----annotations # 存在图片标注后的标注文件夹
|----labelImg.exe
classes.txt文件存放标注类别,每个类别占一行(我分为了四个类),如下:
在cmd命令行界面cd到labelImg.exe所在文件夹后,输入命令:labelImg.exe 图片相对地址 classes相对地址
。以我上面的文件目录为例就是 labelImg.exe test/pic test/classes.txt
. 这里需要注意,直接打开labelImg.exe文件也是可以的,但是不会出现所要标注的类别,利用命令行会方便很多。打开labelImg后,首先点击change save Dir(第一个红框) 选择annotations作为保存标注文件的文件夹,并点击第二个红框将标注格式转为yolo形式(txt文件)。
接下来就是对图片进行标注,W 为标注框,A和D分别为上一张和下一张图,标注完后按control+s保存即可,如下为标注示例。
2.4 标注文件的解释
下图为某张敌军图片的标注txt文件。每行代表一个检测目标,第一列表示目标的类别(0: enemy, 1: e_head, 2: teammate, 3: t_head), 第2和第3列表示标注框左上角的坐标(x,y)(图片的相对坐标),第4和5列表示相对于左上角坐标的宽和高,即(w,h),我画了一个图进行形象化说明。 简单而言,标注文件就是指明标注框的类别以及标注框在图片内的相对位置。
建议将图片和标注分别存在文件夹images和labels中(注意图片和标注的名称要一一对应),如下是我的文件目录,以方便后续进行yolo训练。若需要已经标注好的图片和标注文档可评论或私信我,后续会继续介绍如何在YOLO中使用自己制作的数据集并进行训练和推理。
|----valorant
| |----images
| | |----1.jpg
| | |----2.jpg
| | |---- …
| | |----n.jpg
| |----labels
| | |----1.txt
| | |----2.txt
| | |---- …
| | |----n.txt
!!!特别说明: 本文的编写纯粹出于对YOLO目标检测技术的学习兴趣。由于在选择检测目标时缺乏具体方向,我决定将我喜欢的游戏作为一个有趣的学习案例。我想强调的是,这一切都是出于教育和研究目的,我没有也不会将这些技术应用于任何实际游戏中进行不公平的行为!