yolo-v3 github: https://github.com/pjreddie/darknet
参考博客: YOLOv3 ubuntu 配置及训练自己的VOC格式数据集


  1. 下载源码,编译。
  2. 运行demo:
    a ./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
    b ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights
    c ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights my.mp4
    咋看参数给的很奇怪,仔细研究,example/darknet.c 中的mian函数就了然了。
int main(int argc, char **argv)
{if(argc < 2){fprintf(stderr, "usage: %s <function>\n", argv[0]);return 0;}gpu_index = find_int_arg(argc, argv, "-i", 0);if(find_arg(argc, argv, "-nogpu")) {gpu_index = -1;}#ifndef GPUgpu_index = -1;
#elseif(gpu_index >= 0){cuda_set_device(gpu_index);}
#endifif (0 == strcmp(argv[1], "average")){average(argc, argv);} else if (0 == strcmp(argv[1], "yolo")){run_yolo(argc, argv);} else if (0 == strcmp(argv[1], "super")){run_super(argc, argv);} else if (0 == strcmp(argv[1], "lsd")){run_lsd(argc, argv);} else if (0 == strcmp(argv[1], "detector")){run_detector(argc, argv);} else if (0 == strcmp(argv[1], "detect")){float thresh = find_float_arg(argc, argv, "-thresh", .5);char *filename = (argc > 4) ? argv[4]: 0;char *outfile = find_char_arg(argc, argv, "-out", 0);int fullscreen = find_arg(argc, argv, "-fullscreen");test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh, .5, outfile, fullscreen);} else if (0 == strcmp(argv[1], "cifar")){run_cifar(argc, argv);...return 0;
}

给不同的参数,对应跳转到不同的函数执行。
3. 用作者训练好的通用目标模型检测效果图:
a. 略
b. 略
可以看到,在简单场景下,通用检测检测效果还行,但是复杂场景正对特定目标,会有一些问题(比如误检、小目标无法检测等)
4. 训练自己的数据集,以头肩为例,训练自己的数据集。
a. 首先,利用voc_label.py将voc格式的数据转换为训练所需要的数据格式。
b. 训练
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74
训练出现问题:

Region 82 Avg IOU: 0.259673, Class: 0.593880, Obj: 0.831784, No Obj: 0.515905, .5R: 0.000000, .75R: 0.000000,  count: 1
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.494105, .5R: -nan, .75R: -nan,  count: 0
Region 106 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.412357, .5R: -nan, .75R: -nan,  count: 0
1: 579.859924, 579.859924 avg, 0.000000 rate, 0.039695 seconds, 1 images
Loaded: 0.008419 seconds
Region 82 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.515768, .5R: -nan, .75R: -nan,  count: 0
Region 94 Avg IOU: -nan, Class: -nan, Obj: -nan, No Obj: 0.494756, .5R: -nan, .75R: -nan,  count: 0
Region 106 Avg IOU: 0.224065, Class: 0.304794, Obj: 0.247472, No Obj: 0.415191, .5R: 0.000000, .75R: 0.000000,  count: 4
2: 594.244812, 581.298401 avg, 0.000000 rate, 0.092844 seconds, 2 images
Loaded: 0.000024 seconds

输入416,anchor聚类:
(29,31),(7,9),(18,30),(44,82),(119,212),(72,110),(28,56),(47,45),(14,17)
于是anchor = 7,9, 14,17, 18,30, 29,31, 28,56, 47,45, 44,82, 72,110, 119,212

时隔很久。。又开始训练yolo的代码。yolov2训练成功了,可是yolov3怎么也不成功。。

[net]
# Testing
# batch=1 #注释
# subdivisions=1 #注释
# Training
batch=8
# subdivisions=16
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

结果把#Testing 后面的batch以及subdivisions注释就成功了…
没注释之前,按照batch=1在计算,注释之后,按照batch=8在计算。因为我的训练样本中有很多小目标,所以batch太小是有问题的。唉。。

yolo-v3代码学习相关推荐

  1. YOLO v3代码学习

    本人使用的版本是https://github.com/AlexeyAB/darknet 源码在darknet-master\src目录下 还记得我们用YOLO v3训练自己的数据集的过程,控制台下使用 ...

  2. 目标检测Tensorflow:Yolo v3代码详解 (2)

    目标检测Tensorflow:Yolo v3代码详解 (2) 三.解析Dataset()数据预处理部分 四. 模型训练 yolo_train.py 五. 模型冻结 model_freeze.py 六. ...

  3. Yolo v3的学习

    目录 一.Backbone:Darknet53 二.Neck:FPN 三.Prediction:Yolo head 四.训练策略 4.1.正负样本与忽略样本 4.2.正样本匹配 4.2.1.IOU匹配 ...

  4. yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的

    版权申明:转载和引用图片,都必须经过书面同意.获得留言同意即可 本文使用图片多为本人所画,需要高清图片可以留言联系我,先点赞后取图 这篇博文比较推荐的yolo v3代码是qwe的keras版本,复现比 ...

  5. 口罩、安全帽识别比赛踩坑记(二) 比赛流程及 SSD / YOLO V3 两版本实现

    本篇文章主要对比赛流程中的各个环节进行展开说明,并对笔者践行过的代码及更改的地方进行记录.如哪里有侵权请联系笔者进行删除.另外在这里对比赛举办方表示感谢 ~ ~ 其中开源代码会在整理后放在github ...

  6. YOLO系列代码解读(图像检测)

    1.YOLO v1 yolo v1源码解析 - 筱 - CSDN博客  https://blog.csdn.net/baidu_27643275/article/details/82794559 [D ...

  7. .pth转.weights/openCV-python + YOLO v3实现目标检测

    文章目录 前言 一.基于Pytorch框架的YOLO v3 二.openCV-python 三..pth转.weights 四 模型部署 总结 前言   毕设做的是水面目标的目标检测,因为要用Tkin ...

  8. 从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附代码)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.跟踪基础知识简介 首先要说明一点,现在多目标跟踪算法的效果,与 ...

  9. 【项目实践】从零开始学习Deep SORT+YOLO V3进行多目标跟踪(附注释项目代码)...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|集智书童 1.跟踪基础知识简介 首先要说明一点,现在多目标 ...

  10. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

最新文章

  1. Linux下运行纯dos软件,在linux下运行dos软件(转)
  2. arcgis的python接口_arcgis-Python的ArcGIS API-Esri Screenshots
  3. mysql数据库语句分类_细数MySQL中SQL语句的分类
  4. 3D建模行业内幕及“钱”景
  5. Java 程序员必备的一些流程图
  6. POI2006 ZAB-Frogs
  7. 从0到1带你手撸一个请求重试组件,不信你学不会!
  8. 调用cryptography密码学API接口计算SHA256/SHA1哈希摘要
  9. 【CAS】CAS原理
  10. UE5实现HTC Vive VR功能
  11. 清理谷歌浏览器注册表_win10注册表chrome残留无法删除如何解决
  12. 风口之下,隐形正畸还能走多远?
  13. “单词不用背,看完自然会”,4天背过2万单词,原来学英语真的有捷径!
  14. APIO2014 连珠线
  15. 小程序服务器图片的使用
  16. 联想台式机重装系统方法总结
  17. C#模拟银行转账系统
  18. java压缩zip格式文件下载
  19. 剑侠情缘服务器显示维护,剑侠情缘网络版_剑网_游戏官方网站_金山逍遥网
  20. STM32CubeMX-配置SPI驱动MAX31865读取铂电阻温度

热门文章

  1. 从感知机到Transformer,一文概述深度学习简史
  2. 电脑桌面上的控制面板和计算机怎么没有了,控制面板在哪?没有控制面板怎么办...
  3. 如何在高压系统中实现电源和信号线的电气隔离
  4. 澳洲移民 技术移民_满足COVID-19期间移民对语言访问的需求
  5. IDEA取消重复代码提示功能
  6. violate在c语言中的作用,Violate的应用和作用
  7. 如何在sql语句里添加注释
  8. 微信小程tree组件,无限递归
  9. 要闻君说:必应(Bing)搜索引擎已在国内被屏蔽;Verizon媒体业务宣布裁员7%;小米率先发布折叠屏手机...
  10. Nacos百度网盘下载