YOLO: Real-Time Object Detection:https://pjreddie.com/darknet/yolo/

YOLO模型训练可视化训练过程中的中间参数:http://blog.csdn.net/yudiemiaomiao/article/details/72469135

——————————————————————

一.制作数据集

1.数据集准备
(1)将数据集VOCdevkit2007拷贝到darknet\scripts下 (2)VOCdevkit2007修改名称为VOCdevkit2.修改darknet\scripts\voc_label.py
sets=[('2007', 'train'), ('2007', 'val'), ('2007', 'test')]
classes = ["comp"] #os.system("cat 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt > train.txt")
#os.system("cat 2007_train.txt 2007_val.txt 2007_test.txt 2012_train.txt 2012_val.txt > train.all.txt")3.终端进入darknet\scripts,执行:python voc_label.py
此后可以看到:
VOCdevkit\VOC2007里多了一个labels文件夹(如下)
darknet\scripts下多了2007_train.txt、2007_val.txt和2007_test.txt三个文件

二.修改配置文件

(1)修改data/voc.names文件:comp(2)修改cfg/voc.data文件。
classes= 1 //类别数
train  = /home/gjw/darknet/scripts/train.txt  //训练集
valid  = /home/gjw/darknet/scripts/2007_test.txt  //测试集
names = data/voc.names
backup = backup  //在darknet新建一个backup目录,存储.weight(3) 修改×××.cfg(以yolo-voc.cfg为例),修改2个参数(filters,class),见下:
① 【region】层中 classes 改成1。
② 【region】层上方第一个【convolution】层,其中的filters值要进行
修改,改成(classes+ coords+ 1)* (NUM) ,我的情况中:(1+4+1)* 5=30
③ learning_rate:学习率
④ max_batches:最大迭代次数

三.下载预训练模型

    下载好的预训练模型保存在/darknet/目录下PS:经过以上的修改,记得重新make一下darknet

四.训练

在darknet/目录下新建backup目录用于存放训练生成的模型
官网上下载预训练的模型,训练命令:./darknet detector train cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23./darknet detector train cfg/voc.data cfg/yolo-voc.cfg  yolo-voc.weights【结果】训练完毕就可以生成weights文件
Saving weights to backup/yolo-voc.backup
Saving weights to backup/yolo-voc_100.weights
Saving weights to backup/yolo-voc_final.weights

五.评估性能http://blog.csdn.net/hysteric314/article/details/54093734

    经过漫长的训练过程,model终于训练好了,为了评估性能,可以使用以下指令
./darknet detector recall cfg/voc.data cfg/yolo_voc.cfg backup/yolo_voc_final.weights需要注意的是,在使用这个指令之前,我先修改一下src/detector.c 这一函数
(1)位置第375行改成:list *plist = get_paths(“/home/yolo_v2_tinydarknet/darknet/infrared/infrared_val.txt”);//改成infrared_val.txt的完整路径
(2)运行上面的指令会调用validate_detector_recall函数,
这个函数中有个参数thresh(阈值),默认的值是.001,这个默认
值设的很小,会让系统识别出更多的框来,导致proposals值激增,
还会让recall值变高,达到98.5%。最终我改成了 .25。
(3)上面的函数只会显示出recall值,没有precision值,precision的
值计算方法是:识别为正确的个数/画了多少个框,所以我修改了代码。
我把第447行显示结果的代码修改为 :
fprintf(stderr, "ID:%5d Correct:%5d Total:%5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\t", i, correct, total, (float)proposals/(i+1), avg_iou*100/total, 100.*correct/total);
fprintf(stderr, "proposals:%5d\tPrecision:%.2f%%\n",proposals,100.*correct/(float)proposals); 运行后显示的结果是:
Correct :可以理解为正确地画了多少个框,遍历每张图片的Ground Truth,网络会预测出很多的框,对每一Groud Truth框与所有预测出的框计算IoU,在所有IoU中找一个最大值,如果最大值超过一个预设的阈值,则correct加一。Total:一共有多少个Groud Truth框。Rps/img:p 代表proposals, r 代表region。 意思就是平均下来每个图片会有预测出多少个框。预测框的决定条件是,预测某一类的概率大于阈值。在validation_yolo_recall函数中,默认的这一个阈值是0.001,这一阈值设置的比较低,这就会导致会预测出很多个框,但是这样做是可以提升recall的值,一般yolo用于画框的默认值是.25,使用这个阈值会让画出来的框比较准确。而validation_yolo_recall使用的阈值改成。25的时候,Rps/img 值会降低,recall的值会降低,所以validation_yolo_recall默认使用一个较低的阈值,有可能作者的目的就是为了提高recall值,想在某种程度上体现网络的识别精度比较高。IoU、Recall、Precision:解释起来比较麻烦,请看博客有详细说明:
http://blog.csdn.net/hysteric314/article/details/54093734

六.测试单张图像

    ./darknet detector test cfg/voc.data cfg/yolo-voc.cfg backup/yolo-voc_final.weights data/000020.jpg[扩展]可以通过-thresh 0设置所有检测的阈值为0,同理,也可以通
过设置不同的阈值进行检测。./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

七.测试摄像头/视频

./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

http://blog.csdn.net/burning_keyboard/article/details/71056164

http://blog.csdn.net/xjz18298268521/article/details/61922405

http://blog.csdn.net/sinat_30071459/article/details/53100791

http://blog.csdn.net/sinat_30071459/article/details/53161113

3—YOLO:训练自己的数据相关推荐

  1. [2G显卡]使用darknet/YOLO训练自己的数据

    本文主要针对用显存较小的电脑上训练自己的YOLO数据,在clone了最新的darknet后结果只能跑得动yolov2,使用的是yolo.cfg与yolo.weights做的初始测试.随后修改配置文件, ...

  2. yolo训练自己的数据所用到的标记图片的工具

    1.https://github.com/tzutalin/labelImg 上图 通过此工具可以生成XML文件

  3. ubuntu18.04下用yolo训练自己的数据集

    ubuntu18.04下用yolo训练自己的数据集并进行检测 收集数据集并标注 数据集的量对于检测的准确度有很高的影响,所以应该尽可能的获取较多的数据集.这里,我从百度图片上获得了92张夏洛特中的动漫 ...

  4. Yolo v5 训练自己的数据从训练到调参实战详解

    主要分3章,第一章先跑通模型代码,熟悉yolo v5的输入和输出:第二章训练自己的数据:第三章讲解模型参数部分 文章目录 一.跑通模型 1.代码下载 2.环境配置 3.参数路径调整 3.运行detec ...

  5. YOLO-v5训练自己的数据+TensorRT推理部署(2)

    YOLO-v5训练自己的数据+TensorRT推理部署(2) 代码下载地址:下载地址 YOLO v5转TensorRT模型并调用 0.pt模型转wts模型 python3 gen_wts.py # 注 ...

  6. YOLO-v5训练自己的数据+TensorRT推理部署(1)

    YOLO-v5训练自己的数据+TensorRT推理部署(1) 代码下载地址:下载地址 YOLO v5在医疗领域中消化内镜目标检测的应用 YOLO v5训练自己数据集详细教程

  7. YOLOv3: 训练自己的数据(绝对经典版本1)

    为什么80%的码农都做不了架构师?>>>    windows版本:请参考:https://github.com/AlexeyAB/darknet linux       版本:请参 ...

  8. yolov3训练自己的数据_YOLOv4 训练自己的数据集

    1.克隆仓库下来. git clone https://github.com/AlexeyAB/darknet 2.对darknet文件夹下的Makefile进行修改.(主要是增加自己nvcc的路径, ...

  9. Yolov3:win10下训练自己的数据(GPU版)(详细步骤)

    前言       最近在做用yolov3进行目标识别,关于前期已经成功检测成功了,大家有兴趣的可以看我之前写的一篇博客:VS2015+opencv3.4.2+yolov3成功检测,这篇博客主要介绍如何 ...

  10. yolov3系列(二)-keras-yolo3训练自己的数据

    训练自己的数据进行目标检测 0.建立相关的目录 在项目根目录下新建VOCdevkit\VOC2007\Annotations.VOCdevkit\VOC2007\ImageSets\Main.VOCd ...

最新文章

  1. ios 沙盒 plist 数据的读取和存储
  2. Python基础知识(第四天)
  3. python中的装饰器和抽象类
  4. Linux ct获取本机ip,linux ip命令
  5. 小程序中上传图片并进行压缩(二)
  6. GeoDa 空间自相关操作步骤
  7. iNavFlight之MSP DJI协议分析
  8. 使用Directshow + LAVFilter做一个万能格式的多媒体播放器
  9. 安大计算机学院ACM,全员考研上岸、ACM大赛获奖,乘风破浪的学霸寝室!
  10. 【转】Maximal Information Coefficient (MIC)最大互信息系数详解与实现
  11. 漫画版的你,离线版AnimeGANv2初体验
  12. loading的使用
  13. 工具软件价值分化,Adobe、万兴科技、猎豹移动们为何不同命?
  14. 超好用的java反编译工具(Java Decompiler)
  15. 为什么我要用GoEasy替代WebSocket
  16. 陶瓷电路板与常规PCB板的区别
  17. css用flex实现字体垂直居中对齐
  18. 江西财经职业学院计算机应用技术代号,江西财经职业学院计算机协会第三届PPT创意大赛...
  19. 如何拷贝VCD里面加密隐藏的文件
  20. 《演说之禅——职场必知的幻灯片秘技》

热门文章

  1. 【开发工具】SCALA
  2. 你知道你的模型可以为公司赚多少钱吗
  3. 元宇宙企业大比拼:云宇宙数据中台:iwemeta.com
  4. 直击CVPR2017:商汤科技打造技术盛宴23篇论文刮起中国风 By 机器之心2017年7月25日 10:14 近日,CVPR2017 在夏威夷如火如荼地进行,作为全球计算机视觉顶级会议,CVPR
  5. GMIS 2017 Martin Müller演讲:深度学习时代的启发式搜索
  6. iis 7 php_Windows server 2008 下基于IIS7配置php7.2运行环境
  7. Redis-08Redis数据结构--基数HyperLogLog
  8. Oracle优化09-绑定变量
  9. 导出matlab程序,Matlab数据导入导出
  10. java接口示例_【基础篇】java-接口及其示例