前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >YOLO系列网络训练数据准备工具—Yolo_mark

YOLO系列网络训练数据准备工具—Yolo_mark

作者头像
chaibubble
发布2019-05-26 20:01:07
1.9K0
发布2019-05-26 20:01:07
举报

项目介绍

Yolo_mark是一个检测任务数据集制作工具,制作完成后的数据格式不是VOC或者COCO的数据格式,从它的名字也可以看出,它是专门为了YOLO系列的网络训练准备数据的,YOLO这一点还是很任性的,它没有使用任何一个已有的深度学习框架来实现他的代码,而是自己写了一个纯C的轻量级框架—darknet,所以它的训练数据准备也不是按照标准开源数据集那样的格式。Yolo_mark就是专门为了准备YOLO准备训练数据的,这里是它的github地址。 该项目支持windows和linux两中系统,依赖Opencv库,2.X或者3.X都可以。如果是windows的话,需要VS2013或VS2015。


使用

下面介绍下windows下如何使用Yolo_mark: 项目中已经提供了.sln文件,使用VS2013或VS2015打开解决方案后,在x64和Release平台下编译这个工程,需要注意的是,我们需要先配置好OpenCV,这个过程就不详细说了。 编译成功后会在x64下的Release文件夹中生成.exe程序,然后通过yolo_mark.cmd的命令行文件运行这个生成的exe程序就好了。 效果就是这样,一个很简单的GUI界面:

这里写图片描述
这里写图片描述

Yolo_mark运行还是很好实现的,关键的问题是数据如何组织,因为这些数据要用到YOLO的网络训练中。


数据组织形式

项目中的data文件夹内存放需要标注的数据与标注后的结果: .data文件中定义了目标检测的类别数量,训练数据与测试数据的txt文件列表,各个类别的名字(它是从.names)文件中获取到的:

代码语言:javascript
复制
classes= 1
train  = data/train.txt
valid  = data/valid.txt
names = data/obj.names
backup = backup/

.names文件中定义了各个类别的名字,每个类别的名称都在单独的一行,行数与名称一一对应,比如做单类别行人检测时,.names文件中只有一行:

代码语言:javascript
复制
human

此时,human就是id 0。 train.txt文件为训练数据的列表,它由img文件夹内存放的数据自动获取:

代码语言:javascript
复制
data/img/0.jpg
data/img/1.jpg
data/img/2.jpg
data/img/3.jpg
data/img/4.jpg
data/img/5.jpg
data/img/6.jpg
data/img/7.jpg

最后就是img文件夹了,开始标注之前,img文件夹内只存放需要标注的图像数据(要求.jpg文件),一张图片标注完成之后,会给该图片生成一个名字相同的.txt文件,里面存放的就是bbox的信息:

这里写图片描述
这里写图片描述

.txt文件中,每一行都是一个目标的信息,这意味着有几行数据,图像中就标注了几个目标,它根据“id x y w h”的形式存放,其中“ x y w h”都是经过归一化之后的。比如0.txt文件中的结果:

代码语言:javascript
复制
0 0.341797 0.547917 0.049219 0.118056
0 0.731250 0.581944 0.050000 0.225000
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目介绍
  • 使用
  • 数据组织形式
相关产品与服务
图像识别
腾讯云图像识别基于深度学习等人工智能技术,提供车辆,物体及场景等检测和识别服务, 已上线产品子功能包含车辆识别,商品识别,宠物识别,文件封识别等,更多功能接口敬请期待。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档