coco训练集darknet_在COCO数据集中制做Darknet的训练集

本篇博客主要以MS COCO做为数据集,制做出Darknet的训练集python

COCO数据集是一个CV数据库,里面包含了包括object detection, keypoints estimation, semantic segmentation,image caption等多个任务所须要的数据库

下载MS COCO 2017年版本的数据集, 一共25G左右的图片和1.5G左右的annotation文件,annotation文件的格式为json格式,存储了全部图片中的目标类别(总共80类),目标bounding box的精确坐标以及目标的分割轮廓信息等。git

能够到官方网站下载:http://cocodataset.org/ 可是连接彷佛不太管用github

给出迅雷下载地址:算法

图片(images):数据库

http://images.cocodataset.org/zips/train2017.zip

json

http://images.cocodataset.org/zips/test2017.zip

网络

http://images.cocodataset.org/zips/val2017.zip

app

注释(annotations):框架

http://images.cocodataset.org/annotations/stuff_annotations_trainval2017.zip

学习

http://images.cocodataset.org/annotations/image_info_test2017.zip

http://images.cocodataset.org/annotations/annotations_trainval2017.zip

下载完成,解压后截图以下:

Darknet是一个用C语言和CUDA编写的开源神经网络框架,目前基于darknet实现的目标检测算法yolov1, yolov2和yolov3在目标检测分类领域有必定的优点,主要在于yolo的网络是end-to-end的,实现简单,检测速度快。具体的算法论坛内有不少相关的说明,请自行查阅。

提取脚本已经上传到[email protected]:ChriswooTalent/COCO_forYOLO.git中

有4个python脚本:

batch_split_annotation_foryolo.py: 批处理解析coco注释文件,将总体的注释文件分离成每一个图像单个的注释文件;

split_annotation_foryolo.py:分离数据文件的执行部分,在batch_split_annotation_foryolo中会调用;

create_JEPG_dir.py:将全部训练图像,验证图像,测试图像拷贝到一个JPEGImages文件夹下,只用调用一次;

create_yolo_list.py:根据先前分离获得的注释文件,生成训练图像,验证图像,测试图像索引文件。

回归正题,Darknet对训练集有必定的要求,如今主要说明一下如何基于COCO数据集制做Darknet的训练集。

1. 首先从COCO数据集中的注释集中提取出yolo算法须要的图像中目标的bounding box信息;

安装python 2.7以及相关的依赖库,就能够运行

运行python batch_split_annotation_foryolo.py(注意修改程序中的绝对路径)

获得darknet训练所须要的label信息

2. 结合darknet源码,考虑到darknet读取图像和对应label的规则(也能够从新写代码,不执行这一步),须要将全部图像拷贝到一

个JPEG文件夹下,而后将步骤1生成的label文件夹移动到和JPEG统一级的目录下;

这个脚本只须要调用一次:

3. 获得训练图像集, 验证图像集以及测试图像集的路径索引集train.txt,val.txt,test.txt;

运行python create_yolo_list.py(注意修改程序中的绝对路径)

生成训练图像集,验证图像集以及测试图像集

4. 整合路径,使Darknet框架代码可以正常调用而且训练;

1.label文件夹和JPEGImages处于同一级文件夹下;

2.简历一个coco文件夹,文件夹下面放置train.txt,val.txt,test.txt;

3.建立coco.data文件,指定训练图像索引文件地址,建立coco.names文件,里面是COCO数据集的全部分类;

4.将coco文件夹,coco.data文件,coco.names文件一同拷贝到darknet代码训练脚本文件夹下,建立训练脚本,开始训练

能够看到训练开始正常进行,若是须要达到yolov3做者训练的水平,须要漫长的时间等待,上传一张使用做者coco数据集的训练的权重进行检测的结果图,yolov3对小目标的检测是有很大优点的:

小弟第一次原创,若是有写的很差的,不对的,但愿各路大牛指出来,感激涕零,刚入AI坑,对深度学习在图像这一块的应用有狂热的兴趣,但愿获得大牛指点。

你可能感兴趣的:(coco训练集darknet)