利用YOLOv2训练数据

win10系统pp-yolov2实操训练自己的数据集 win10系统pp-yolov2实操 因为之前一直是用pytorch框架,所以这次从paddle环境搭建,到用pp-yolov2训练自己的数据集记录下全过程。我的电脑是win10 64位系统 一、paddle环境搭建 我用了anaconda. 1.创建名为paddle的虚拟环境 conda create -n paddle python=3.8 2.激活虚拟环境 activate paddle 3.安装paddlepaddle库 conda install paddlepaddle-gpu==2.0.2 c 阅读详情

在实习期间,需要利用YOLOv2训练自己的一批数据,在网上找了各种博客,其中的方法总是有一些问题。

用了很久的时间来解决这些问题,并将解决问题的方法记录下来,希望对大家有所帮助。


1.下载YOLO

yolo的官网:https://pjreddie.com/darknet/yolo/

大概是这样的画风:


按照步骤下载并进行图片验证即可。


2.数据预处理(该处理方法与参考博客中的方法相同)

该阶段建立的文件夹的名称最好与该文档中的相同,否则需要改动图片处理等python脚本中的文件名。

a.建立文件夹"Image",并在其下存放所有图片样本(jpg、png均可)
b.利用labelImg工具进行标注
c.与Image文件件同级建立"xml"文件夹,存放利用labelImg标注后得到的所有图片的xml文件
d.下载脚本,放在Image、xml文件夹的同级

脚本下载地址:http://pan.baidu.com/s/1hs22I7U

密码:wdv0

(该下载地址在参考博客中有提供,十分感谢原作者的帮助)


在运行脚本之前,先做几处改动:
a.

将traindata.py中大概在65行和71行的:

shutil.copy(xmlolddir, newdir1);
shutil.copy(xmlolddir, newdir2);

两句删掉(或前面加‘#’)

否则在训练过程中报类似这样的error:
“Cannot load image "/home/ts/tensorflow/objectRecognition/Augmentation/KNIFE/Getdata/trainImage/000018.png"
STB Reason: unknown image type”

b.

若之前建立文件夹时文件夹名称并非Image和xml,那么在traindata.py中的对应文件夹名称处将其改为自己的文件夹名称


改动之后,运行脚本
运行traindata.py:生成trainImage文件夹,存放训练图片;生成trainImageXML文件夹,存放训练图片xml标签;生成validateImage文件夹,存放验证集图片;生成validateImageXML文件夹,存放验证集图片的xml标签;生成trainImageId.txt、validateImageId.txt,存放训练、验证集图片索引(一般为文件名)。

运行trans.py,生成trainImageLabelTxt文件夹,存放训练图片通过xml标签转化得到的txt文件(若在训练过程提示txt文件找不到,则把此文件夹下的txt文件夹移动到trainImage文件夹);生成validateImageLabelTxt文件夹,道理一样。
另外,得到的trainImagePath.txt和validateImagePath.txt存放着训练图片和验证图片的路径。

此后,将生成的validateImageLabelTxt文件夹中的所有txt文件复制到validateImage文件夹中;同理,将trainImageLabelTxt文件夹中的所有txt文件复制到trainImage文件夹中。

否则会在训练过程中报类似这样的error:
“cannot open file xxxxxx.txt”

3.修改配置文件
a.
cfg/voc.data文件中:
classes= 3
train  = /home/ts/tensorflow/objectRecognition/YOLOv2/YOLOtraining/trainImagePath.txt
valid  = /home/ts/tensorflow/objectRecognition/YOLOv2/YOLOtraining/validateImagePath.txt
names = data/knifes.names
backup = backup
classes存放类别总数(这里有knife、swissknife、jackknife三种,根据使用者不同的需要进行改动),train 和valid 中存的是训练图片集和验证图片集的路径;
在data文件夹中新建文件knifes.names,存放的是方框注释,本例中有三行(根据使用者不同的需要进行改动):
knife
swissknife
jackknife

b.
yolo-voc.cfg文件中:
将[region]中的classes改为3(这里有knife、swissknife、jackknife三类,根据使用者不同的需要进行改动);
将最后一个[convolutional](紧挨着[region]的前一个)中的filter改为40(filter的公式filters=(classes+coords+1)*(NUM),这里是(3+4+1)*5=30,根据使用者不同的需要进行改动)。

c.
knifes.names:
具体见a

4.下载预训练文件cfg/darknet19_448.conv.23

以在其他数据集上pretrain的模型做为初值。

下载地址:http://pan.baidu.com/s/1dFgUk4x

密码:ynhg

(该下载地址为参考博客原文作者提供,再次感谢原作者的帮助)

下载之后将其放在darknet文件夹下。

在训练之前,要先在darknet文件夹下新建backup文件夹,在backup文件夹中新建一个以yolo-voc.backup为文件名的文件,以保存训练参数。

否则将在训练过程中报类似这样的error:
“cannot open backup/yolo-voc.backup”

5.训练
在darknet文件夹路径下运行命令:
./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23
系统默认会迭代45000次batch,如果需要修改训练次数,进入cfg/yolo_voc.cfg修改max_batches的值。

6.测试
训练完成后,模型成功保存,输入命令测试模型:
./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_final.weights testpicture/001.jpg

在该步骤中,将最后一个参数 testpicture/001.jpg 改为自己想要测试的图片路径;

若提前终止训练,则将倒数第二个参数 backup/yolo-voc_final.weights 改为backup文件夹下的最新权重备份文件名称,例如:

我提前终止后,最新权重备份文件为 backup/yolo-voc_900.weights。

否则将提示error:

“Couldn't open file: backup/yolo-voc_final.weights”


参考原文中训练类别为1,本文中的训练类别为3,相互比较之下可以知道所有类别的情况下配置文件应该如何改动。

另外,本文可能无法将配置、训练过程中的所有问题囊括进来,如有大神发现本文解决问题的方法有失妥当或发现配置、训练过程中其他类型的问题,欢迎交流,感激不尽。


参考:YOLO训练自己的数据集

利用yolov2 tiny和voc数据集训练权重 本人计算机萌新,最近在自己摸索训练darknet detector的方法。网上的教程有很多,但是我每个步骤按照教程做了之后,用生成的weights文件和用于训练的yolov2-tiny.cfg文件识别的时候,一点东西都识别不出来,把threshhold跳到0.008之后满屏幕都是框框。从训练日志里可以看出,loss一直保持在几百,低的时候两三百,高的时候五六百。recall也接近零,最高不超过0.... 阅读详情

相关推荐

使用visDrone数据集训练yolov5检测器

yolov5目标检测具备一定的小目标检测能力,但由于参与训练的coco数据集缺少小目标素材,故检测小目标有局限。本文利用无人机采集的小目标数据集,对yolov5权重文件进行再训练,提高小目标检测能力。本文仅记录跑通训练的过程,得到一些启示,没有尝试训练整个数据集。 使用visDrone无人机小目标数据集训练yolov5检测器比较 上图用未训练的yolov5s.pt,下图用经过训练的best.pt权重。 可以看出两种检测的区别,其中visDrone训练图片用了其中69张,epoch=100,简单训练已初见

白起 1万+

【YOLO学习】使用YOLO v2训练自己的数据

这篇文章是训练YOLO v2过程中的经验总结,我使用YOLO v2训练一组自己的数据,训练后的model,在阈值为.25的情况下,Recall值是95.54%,Precision 是97.27%。 需要注意的是,这一训练过程可能只对我自己的训练集有效,因为我是根据我这一训练集的特征来对YOLO代码进行修改,可能对你的数据集并不适用,所以仅供参考。

Joe_quan的博客 5万+

使用Darknet训练您自己的数据集(YOLOV 3)

使用Darknet训练您自己的数据集(YOLOV 3) 分享使用Darknet训练自己数据集的经验。并出色完成了POC的任务 aotflow-http://www.aotflow.com 你们可以按照下面的步骤来制作你们的AI识别模型。 环境: 系统:Ubunut 18 & CUDA 10.2 硬件: Intel(R)core(TM)i5-3570 CPU@3.40GHz N...

victorysheng的专栏 626

目标检测实战:PP-YOLOv2训练自己的数据集

记录使用PP-YOLOv2训练自己的数据集的过程。详细安装文档可参考官方文档。官方文档写的十分详细,包括数据准备、环境搭建、训练过程等,这里笔者根据个人操作进行总结。以上就是笔者要讲的内容,本文介绍了如何部署PaddleDetection,使用PPYOLOV2训练自己的数据集。PaddleDetection包含了不止一种目标检测的算法,里面也包括ppyoloe等其他yolo系列,训练配置、流程相差不大。

爱唱歌的卡卡西的博客 5206

一[3.2]、ubuntu18.04环境 利用 yolov8 训练开源列车数据集,并实现列车轨道检测【全网最详细】

YOLOv8训练自己的数据集(超详细)-优快云博客

努力努力努力 351

基于Matlab YOLOv2的车辆检测与识别

具体来说,YOLOv2算法中将输入图片进行SxS的划分,每个小块称为cell,每个cell会负责检测一定数量的物体,每个物体由5个参数表示:中心点坐标(x,y)、物体宽度w、物体高度h以及该物体的置信度。Matlab作为一个强大的数值计算软件,也提供了YOLOv2算法的接口,使得使用者可以方便地实现物体检测和识别。为了进行车辆检测,我们需要将数据集中的车辆类别提取出来,并转换为YOLOv2所需的格式。它是一种one-stage目标检测算法,即只需要一次前向传播,就能够同时完成物体检测和识别的任务。

uote_e的博客 576

YOLOv2 目标检测 用自己的数据训练

目录 0.下载编译YOLOv2 1.按照Pascal VOC的格式准备自己的数据 Generate Labels for VOC 2.训练准备 2.1.修改cfg/yolov2.cfg 配置文件 2.2 修改cfg/voc.data文件 2.3修改data/voc.names 文件 2.3训练模型 3.训练参数解读 4.发布模型   0.下载编译YOLOv2 YOLOv2...

m0_37357063的博客 955

汇川PLC和PLC之间ModebusTCP通讯

然后在全局变量中创建相应的变量关联IW和QW的寄存器创建全部变量//AM402作为主站——读H3U(D12-D21)//AM402作为主站——写给H3U(D200-D209)或者使用数组的方式。

panjinliang066333的博客 3万+

YOLO 2训练自己的数据记录

本教程以YOLO_v2为例,检测三种不同的剪刀。 系统:Ubuntu16.04, 基于 Darknet。 安装Darknet darknet官网都有很详细的步骤darknet 在终端输入: git clone https://github.com/pjreddie/darknet cd darknet make 数据集的准备 图片和标签 (1) 采用jpg格式的图像,在名字上最好像使用voc一样...

weixin_41054702的博客 729

不只是抓取:用五指灵巧手(ROH-A001/RH56)玩转ROS2下的力控与混合控制

本文深入探讨了在ROS2环境下使用五指灵巧手(ROH-A001/RH56)实现力控与混合控制的实战技巧。从硬件通信协议解析到ROS2节点开发,详细介绍了力感知架构、实时数据处理和混合控制策略,帮助开发者在Ubuntu系统中高效实现精密操作。通过鸡蛋抓取等实例,展示了力控技术在机器人灵巧操作中的关键作用。

weixin_28221501的博客 285

深入SVT SPI VIP配置:如何灵活控制CS间隔、数据帧大小与时钟频率(含代码片段)

本文深入探讨了SVT SPI VIP的高级配置技巧,包括精确控制CS信号间隔、突破数据帧大小限制以及动态时钟频率切换。通过实战代码片段和详细配置步骤,帮助验证工程师灵活应对复杂SPI协议验证场景,提升验证效率和覆盖率。特别适合需要处理非标准SPI时序和特殊数据帧的芯片验证项目。

weixin_27014595的博客 280

yolov5搭建环境_YOLOv5从入门到部署之:训练私有数据并修改模型

1 环境部署YOLOv5是基于pytorch实现的, 需要的运行环境已经在requirements.txt文件里面列出。# base ---------------------------------------- Cython matplotlib>=3.2.2 numpy>=1.18.5 opencv-python>=4.1.2 pillow PyYAML>=5.3 s...

weixin_39772388的博客 2486

C#调用Bartender打印标签,除了打印还能一键导出图片和PDF(附完整代码)

本文详细介绍了如何使用C#集成Bartender实现标签的多格式输出,包括打印、图片和PDF导出。通过完整的代码示例和实战技巧,帮助开发者解决分辨率适配、纸张尺寸控制等核心问题,提升工业自动化和物流管理中的标签处理效率。

weixin_31236101的博客 369

使用tiny-yolov2训练自己的图片数据

本文参考https://blog.youkuaiyun.com/Kuo_Jun_Lin/article/details/80428653的方法,通过手机拍摄建立了300张的图片数据库,通过tiny-yolo2训练后,能够准确识别门牌号,效果如下。 数据收集 一,首先需要收集足够数量的图片数据,一般有三种方法: 1,直接在网下下载数据集 2,通过爬虫转件爬取大量图片 在此提供一个爬虫代码 # 一个用来调用网...

weixin_44210881的博客 2696

IEEE论文投稿必看:PDF eXpress报错font not embedded的3种修复方法(附Adobe Acrobat DC操作截图)

本文针对IEEE论文投稿时PDF eXpress系统常见的“font not embedded”报错,提供了三种核心修复方案。首先,详细解析了使用Adobe Acrobat DC进行专业修复的完整操作流程与关键技巧。其次,介绍了无需付费软件的开源与免费工具链(如Ghostscript)解决方案。最后,从源头出发,指导LaTeX和Microsoft Word用户在生成PDF时正确设置以确保字体自动嵌入,帮助研究者彻底解决格式问题,确保投稿顺利。

ujm56789012的博客 516

NPP/VIIRS夜间灯光数据:从下载到应用的完整指南

本文提供了NPP/VIIRS夜间灯光数据从下载、处理到应用的完整实战指南。详细介绍了如何从官方源获取数据、解读文件结构、进行坐标校正与数据清洗,并深入探讨了其在城市扩张监测、社会经济指标估算、重大事件影响评估等领域的核心应用。文章旨在帮助研究者与从业者快速掌握这一强大的空间数据,将其转化为研究中的实用工具。

gpu4optimizer的博客 856

经典卷积模型回顾28—利用YOLOv2实现垃圾检测(matlab)

其中,'sgdm'表示使用随机梯度下降法,'MiniBatchSize'表示批量大小,'InitialLearnRate'是学习率,'MaxEpochs'是训练轮数,'Shuffle'表示每轮训练前是否随机打乱数据,'Verbose'表示是否输出训练进度信息,'Plots'表示是否在训练过程中绘制训练进度图。其中,'imdsTrain'是我们从数据集中分割出的训练集,'net'是我们加载的YOLOv2模型,'options'是我们设置的训练选项。其中,'imdsTest'是我们从数据集中分割出的测试集。

爱分享数据的一个人的博客 993

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1276

YOLOv5训练自己的数据集

1.找到代码: YOLO5的代码可以在GitHub上找到,最好是用最新的代码。 YOLO5https://github.com/ultralytics/yolov5可以选择在网站上面下载代码,或者用命令克隆代码也行; git clone https://github.com/ultralytics/yolov5 代码克隆好以后会放在当前克隆命令文件夹的yolov5文件里。 2.配置环境: YOLO5要求python大于等于3.7.0,pytorch大于等于1.7版本。可以根据自己的硬件设.

qq_51570094的博客 1079

25、格式化字符串攻击全解析

本文深入解析了格式化字符串攻击的原理与利用方式,涵盖缓冲区溢出与格式化字符串漏洞的区别,详细介绍了printf函数的工作机制、常见格式化说明符及其安全隐患。文章分析了三类典型编程错误导致的漏洞,并展示了如何通过恶意格式化字符串实现拒绝服务、内存读取和写入攻击。同时,提供了有效的防御措施,包括输入验证、使用安全函数、避免直接使用用户输入作为格式化字符串以及启用编译器安全选项,帮助开发者防范此类高危漏洞。

beer8的博客 83

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

YOLOV7训练自己的数据集

yolov7训练自己的数据集

ml1211449109的博客 3352

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

camvid数据集使用方法_使用YOLOv4训练DeepFashion2数据集

1 DeepFashion2数据集介绍​ 该数据集包含19W+训练样本和3W+测试样本,样本中包含各类服装的买家秀和卖家秀图像。并且,数据集包含style,bounding-box,dense landmarks和masks多种标签,可以用于训练服装检测、实例分割、关键点检测等多种任务的模型。数据集中的服装包括模特或买家穿在身上的服装以及未穿着的服装。针对DeepFashion数据集存...

weixin_39992957的博客 385

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

TX2训练yolov4 自己的训练集

做到一半,发现darknet/cfg下没有yolov4-tiny.cfg文件,于是先把原有的darknet文件剪切出来,并做好备份,想起以前下载了TX2跑yolov4的模型下载了darknet,于是再去下载一遍。下载darknet成功,发现与原来的darknet不一样,不管了,先复制进去,然后再改Makefile文件 ,编译之后成功,但是很多warning.回到TX2上,发现/train/darknet/cfg上也有一个配置文件,这个文件对于darknet的,就是训练开始的框架。

sqm472527736的博客 1028

yoloV2训练

yolov2:https://pjreddie.com/darknet/yolov2 下载darknet git clone https://github.com/pjreddie/darknet cd darknet make 下载yolov2的参数文件.weights wget https://pjreddie.com/media/files/yolov2.weights 测试对应的模型文...

nimo_cap的博客 580

YOLOv5训练自己的数据集及用训练模型进行测试

1.训练自己的数据: 使用labelimg标注软件对数据集进行标注,标注完成后,每张图像会生成对应的xml标注文件。我们将图像和数据统一放置到源码目录的VOCData文件夹下。其中,jpg文件放置在VOCData/images下,xml放置在VOCData/Annotations下: 2.运行 split.py 文件,运行结束后,可以看到VOCData/labels下生成了几个txt文件 3.然后运行 txt2yolo_label.py 文件用于将数据集转换到yolo数据集格式,转换后可...

lc_MVP的博客 3398

YOLOv4配置与训练

yolov4训练

boyhoodme的博客 622
上一篇: python中的常见编译问题
下一篇: 机器学习中的一些基本概念
echoKangYL
博客等级 码龄9年 432粉丝 27原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值