本系列作者:木凌
时间:2016年11月。
文章连接:http://blog.csdn.net/u014540717
QQ交流群:554590241
本系列文章会持续更新,主要会分以下几个部分:
1、darknet下的yolo源代码解读
2、将yolo移植到mxnet下
3、模型压缩与加速
白天需要工作,只有晚上时间写,所以可能更新速度有点慢,还有就是该系列博文不一定会严格按照以上三点的顺序来写,也可能移植到caffe下,在caffe下进行压缩和加速。
一、训练
我用的是VOC2007的数据集,下载指令如下:
$curl -O http://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
$curl -O http://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
$tar xf VOCtrainval_06-Nov-2007.tar
$tar xf VOCtest_06-Nov-2007.tar
运行以下代码,将.xml
文件转换成.txt
文件,以备YOLO训练时数据解析:
import xml.etree.ElementTree as ET
import pickle
import os
from os import listdir, getcwd
from os.path import join
sets=[('2007', 'train'), ('2007', 'val')]
classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
def convert(size, box):
dw = 1./size[0]
dh = 1./size[1]
x = (box[0] + box[1])/2.0
y = (box[2] + box[3])/2.0
w = box[1] - box[0]
h = box[3</