YOLO源码详解(一)-训练

本文作者木凌,2016年11月发布,详细讲解YOLO模型在darknet下的训练过程及源码解读。内容包括使用VOC2007数据集的训练步骤,数据转换,以及训练指令。此外,预告了YOLO的mxnet移植和模型压缩与加速等后续话题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本系列作者:木凌
时间:2016年11月。
文章连接:http://blog.youkuaiyun.com/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] - box[2]
    x = x*dw
    w = w*dw
    y = y*dh
    h = h*d
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值