win10+yolo配置,训练自己的数据集

本文详细介绍如何使用YOLO进行目标检测模型的训练,包括环境搭建、数据集准备、配置文件修改等关键步骤。

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

Github链接:https://github.com/AlexeyAB/darknet#how-to-compile-on-windows

推荐博客:http://blog.youkuaiyun.com/qq_14845119/article/details/53589282

 

 

Yolo的配置很简单,下载opencv3.2并安装,下载vs2015并安装,打开darknet-master/build/darknet/darknet.sln,修改为releasedebug X64,并配置opencv3.2头文件、库文件、链接库,编译直接成功。

 

下面讲下如何训练自己的数据集:

1、下载目录文件yolo-data.ratr并解压缩到在darknet-master/build/darkent/x64/下,将yolo-data重名为自己数据集的名字,如mydata

链接: https://pan.baidu.com/s/1o7Q4Iz4 密码: xb5a

2、将图片文件拷贝到JPEGImages目录下;

3、新建voc.names文件(具体名字根据自己需要修改),文件内容为所有类别名,每个类别对应一行,默认情况如图所示:


4、新建voc.data文件(具体名字根据自己需要修改),文件内容为类别数classes(特别注意,yolofaster-rcnn不同,不需要算上背景,实际多少类就是多少类,不需要加1)、训练集路径train、测试集路径valid(非必需,没有则在前面加#注释掉)、类别名文件路径names(第三步中voc.names文件的路径)、训练模型caffemodel文件的保存路径backup,默认情况如图所示:

 

5、修改网络配置文件*.cfg,选择自己的网络模型,修改[region]部分classes为自己数据的类别数,以及最后一个[convolutional]filters后面的值,因为每个预测框需要预测出xywh、存在目标的概率、对应每种类别的概率,总共4+1+classes个值,而每个预测点默认5个框,总共5*5+classes),所以要将filters修改为5*(5+classes),默认20类,5*25=125

至此,数据文件目录创建完成,如图所示:

 

6、生成训练数据。修改voc_label.py文件,并运行,修改内容如下:

 

注意:此处的voc_label.py是经修改后的文件,上面的下载链接中会有。

程序会根据trainval.txt文件在Annotations文件夹下生成xml文件,在labels下生成txt文件。Trainval.txt内数据格式为:

 

分别为:图片名、类名、矩形坐标。

******.txt内数据格式是经归一化的数据:

 

第一个数为类别id,后面四个数为对应矩形坐标归一化后的值。

7、开始训练,可选择从头开始训练或是fine tuning。下载文件http://pjreddie.com/media/files/darknet19_448.conv.23 

并放到mydata目录下。

运行cmdcddarknet-master/build/darkent/x64/下,输入命令行:

darknet.exe detector train mydata/voc.data mydata/tiny-yolo.cfg  mydata/darknet19_448.conv.23

最后一个参数根据之前训练的模型自行修改,通常为backup目录下生成的caffemodel文件。

8、测试

darknet.exe detect mydata/tiny-yolo.cfg  mydata/backup/*.caffemodel  mydata/*.jpg

 

### YOLOv8在Windows 11上的自定义数据集训练指南 #### 环境配置 为了确保YOLOv8能够在Windows 11环境中顺利运行,推荐使用Anaconda来管理依赖项创建隔离的工作环境。具体操作如下: 安装Python版本3.10的Conda虚拟环境[^3]: ```bash conda create -n yolov8 python=3.10 ``` 激活该环境并安装必要的库: ```bash conda activate yolov8 pip install ultralytics ``` 这一步骤能够有效避免不同项目之间的包冲突问题。 #### 数据准备 对于数据集而言,其结构应当遵循特定的标准以便于被YOLO算法识别。通常情况下,需要完成以下几个方面的工作: - **收集图像**:获取足够的样本用于训练、验证以及测试。 - **标注对象**:利用工具(如LabelImg)标记每张图中的目标位置及其类别标签。 - **划分集合**:合理分配这些已处理过的素材到train、val两个子集中去;如果有条件的话还可以额外设立test部分用来评估最终成果的质量。 编写`Helmet.yaml`这样的配置文件以指明各类别的名称列表及对应的数据路径[^2]: ```yaml # datasets/Helmet.yaml example path: ./datasets/helmet/ train: images/train val: images/val nc: 2 names: ['with_helmet', 'without_helmet'] ``` 上述代码片段展示了如何设置一个简单的头盔佩戴状态检测任务所需的信息。 #### 模型训练 当一切准备工作完成后就可以着手启动实际的学习流程了。这里提供了三种不同的方法来进行模型定制化调整: ##### 方法一:基于官方提供的预训练权重微调现有架构 这种方式最为简便快捷,只需指定好相应的参数即可开始执行优化过程[^1]: ```python from ultralytics import YOLO model = YOLO('yolov8s.pt') results = model.train(data='datasets/Helmet.yaml', epochs=10, imgsz=640) ``` 此段脚本会加载小型版YOLOv8(`yolov8s`)的基础框架,并通过传入具体的选项控制整个学习周期内的行为表现形式——比如迭代次数设为10次循环,输入尺寸定格成分辨率为640×640像素的照片等。 ##### 方法二:完全新建网络结构再加以初始化赋值 如果想要探索更多可能性,则可以从零搭建一套独一无二的设计方案出来。此时就要借助`.yaml`描述文档来详尽说明每一层组件的具体属性特征: ```bash yolo task=detect mode=train model=yolov8s.yaml epochs=10 batch=1 data=datasets/Helmet.yaml ``` 这条命令告诉程序按照给定模板建立起新的计算逻辑链条,同时也要注意提供恰当规模的小批量样本来加速收敛速度而不至于过拟合严重。 ##### 方法三:迁移学习策略下的混合模式 最后一种情形介乎两者之间,即保留原有体系的核心组成部分不变的前提下引入外部资源作为补充材料共同参与进来一起塑造更强大的能力边界: ```bash yolo task=detect mode=train model=yolov8s.yaml pretrained=yolov8s.pt epochs=10 batch=1 data=datasets/Helmet.yaml ``` 这种做法既继承了之前积累下来的知识财富又不失灵活性与创新精神,往往能在较短时间内取得不错的效果提升幅度。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值