YOLO源码详解(一)-训练

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

本系列作者:木凌
时间: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</
YOLO-Fastest V1-XL对训练数据集的要求与其他目标检测模型类似。以下是一些常见的要求: 1. 标注格式:训练数据集需要使用特定的标注格式,如Pascal VOC、COCO或YOLO格式。每个图像需要标注目标的类别和边界框信息。 2. 样本平衡:训练数据集应该包含各个类别的目标,并且应该保持类别之间的平衡。这样可以帮助模型学习到不同类别目标的特征和区分能力。 3. 多样性:训练数据集需要包含不同场景、角度、尺度和光照条件下的图像样本。这样可以提高模型的鲁棒性和泛化能力,使其能够在各种条件下准确检测目标。 4. 标注准确性:标注的边界框应该准确地框出目标的位置,不应该过于松散或者遮挡。精确的标注可以帮助模型学习到目标的准确位置和形状特征。 5. 数据增强:可以使用数据增强技术来增加数据集的多样性,如随机裁剪、缩放、旋转等操作。这样可以扩充训练数据集,提高模型的鲁棒性和泛化能力。 6. 数据质量:数据集应该经过仔细的质量控制,确保图像清晰、标注准确,并且排除不良样本。低质量的数据可能会对模型的训练效果产生负面影响。 综上所述,对于YOLO-Fastest V1-XL的训练数据集,要求包括合适的标注格式、样本平衡、多样性、准确的标注、数据增强和高质量的数据。这些要求有助于提高模型的性能和泛化能力。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值