在训练之前该做些什么

  • 设置.cfg文件中:random=1,通过对Yolo进行不同分辨率的训练,将提高精度。
  • 增加.cfg文件中的网络分辨率(height=608, width=608或32的倍数),这将提高精度。
  • 检查您要检测的每个对象是否在数据集中被强制标记,数据集中的任何对象都不应没有标签。大部分的训练问题都是因为数据集中的错误标签(通过使用一些转换脚本或第三方工具来获取标签)。通过Yolo_mark来检查你的数据集。
  • 我的Loss非常高,而mAP却很低,是训练出错了吗?在训练命令末尾使用-show_imgs标志运行训练,你是否看到正确的有界对象框?如果没有,那么是你的训练数据出错了。
  • 对于要检测的每个对象,训练数据集中必须至少有一个相似的对象,并且它们具有大致相同的形状:对象的形状,侧面,相对大小,旋转角度,倾斜度和照明度。理想情况下,你的训练数据集应包含不同的图像:比例,旋转,亮度,不同侧面,不同背景的图像。你最好为每个类提供2000张或更多不同的图像,并且你应该训练 2000*classes 或更多的iter。
  • 你的训练数据集要包括带有不想检测的为标记对象的图像-无边框的负样本(空的txt文件),使用与带标记图像一样多的负样本。
  • 标记对象的最佳方法是:仅标记对象的可见部分,或标记对象的可见和重叠部分,或标记比整个对象多一点(间隔)。根据你希望如何检测它来作标记。
  • 为了对每个图像的大量对象进行训练,需要在cfg文件的最后一个[yolo]层或[region]层中添加参数 max=200 或更高的值(YoloV3可以检测到的对象的全局最大数量为0.0615234375*(width*height),其中width和height是cfg文件中[net]部分的参数)。
  • 对于小型和大型物体都要训练,使用修改后的模型:
    Full-model: 5 yolo layers: https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov3_5l.cfg
    可下载通过:https://download.csdn.net/download/Json111/12561626
    Tiny-model: 3 yolo layers: https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov3-tiny_3l.cfg
    可下载通过:https://download.csdn.net/download/Json111/12561628
    YOLOV4: 3 yolo layers: https://raw.githubusercontent.com/AlexeyAB/darknet/master/cfg/yolov4-custom.cfg
    可下载通过:https://download.csdn.net/download/Json111/12561631
  • 如果你训练的模型将左右区分为单独的类(左右手,左右转道路标志等),则禁止用翻转数据增强,在[net]中添加 flip=0 来禁用翻转数据增强。
  • 通用规则:训练集应包括一组要检测的尺寸相当的目标:
train_network_width * train_obj_width / train_image_width ~= detection_network_width * detection_obj_width / detection_image_width
train_network_height * train_obj_height / train_image_height ~= detection_network_height * detection_obj_height / detection_image_height

即对于test数据集中的每个对象,train数据集中必须至少有一个对象具有相同的classid和相同的相对大小:

object width in percent from Training dataset ~= object width in percent from Test dataset

也就是说,如果训练集中仅存在占图像80-90%的对象,则受训练的网络将无法检测到占图像1-10%的对象。

  • 加快训练速度(会降低检测精度)可以在cfg文件136行的参数设置为 stopbackward=1
  • 每个对象模型,侧面,照明度,比例,转弯和倾斜的每个30度,从神经网络的内部角度来看,这些都是不同的对象。所以,要检测的对象越多,应该使用越复杂的网络模型。
  • 为了使检测到的边界框更准确,可以向每个[yolo]层添加3个参数:ignore_thresh=.9, iou_normalizer=0.5, iou_loss=giou 并训练,它将增加mAP@0.9,但减小mAP@0.5。

训练之后检测要做写什么

通过在cfg文件中设置( height=608width=608 ) 或 ( height=832width=832 ) 或 (任何32的倍数) 来提高网络分辨率,这可以提高精度并可以检测到小物件:

  • 不需要再次训练网络,只需要使用已经针对416*416分辨率进行训练的weight文件。
  • 但是要获得更高的精度,应该使用更高分辨率的608608或832832进行训练,注意:如果发生 Out of memory 的错误,则在cfg文件中,应该增加 subdivisions=16, 32或64。

提高yolov4目标检测的技巧相关推荐

  1. 基于Darknet的YOLOv4目标检测

    目录 一.Windows环境下的YOLOv4目标检测 1.环境配置 2.克隆或下载YOLOv4 3.Visual Studio2019配置YOLOv4项目 4.Visual Studio2019编译Y ...

  2. 睿智的目标检测30——Pytorch搭建YoloV4目标检测平台

    睿智的目标检测30--Pytorch搭建YoloV4目标检测平台 学习前言 什么是YOLOV4 代码下载 YOLOV4改进的部分(不完全) YOLOV4结构解析 1.主干特征提取网络Backbone ...

  3. 睿智的目标检测32——TF2搭建YoloV4目标检测平台(tensorflow2)

    睿智的目标检测32--TF2搭建YoloV4目标检测平台(tensorflow2) 学习前言 什么是YOLOV4 代码下载 YOLOV4改进的部分(不完全) YOLOV4结构解析 1.主干特征提取网络 ...

  4. 视频教程-Windows版YOLOv4目标检测实战:训练自己的数据集-计算机视觉

    Windows版YOLOv4目标检测实战:训练自己的数据集 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多 ...

  5. YOLO-v4目标检测实时手机端实现

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 计算机视觉研究院 由美国东北大学王言治教授研究团队与美国 ...

  6. yolov4Linux,基于Darknet的YOLOv4目标检测

    目录 一.Windows环境下的YOLOv4目标检测 1.环境配置 环境准备:Win10.CUDA10.1.cuDNN7.65.Visual Studio 2019.OpenCV 3.4 (1)Vis ...

  7. YOLO-v4目标检测、换脸、视频上色全部实时手机端实现,美国东北大学等提出全自动实时移动端AI框架...

    机器之心发布 作者:马晓龙 转载自公众号:机器之心 如何助力深度神经网络在移动端「看得」更清,「跑得」更快?来自美国东北大学等机构的研究者提出一种新型全自动模式化稀疏度感知训练框架. 基于模式化稀疏度 ...

  8. 论文翻译YOLOv4: Optimal Speed and Accuracy of Object Detection YOLOv4:目标检测的最佳速度和精度 论文中文翻译

    摘要 有大量的特征被认为可以提高卷积神经网络(CNN)的精度.需要在大型数据集上对这些特性的组合进行实际测试,并对结果进行理论验证.某些特性在特定的建模中起决定性作用,而在特定的强制确定问题中起决定性 ...

  9. 视频教程-YOLOv4目标检测实战:人脸口罩佩戴检测-计算机视觉

    YOLOv4目标检测实战:人脸口罩佩戴检测 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥88 ...

最新文章

  1. Python笔记总结week3
  2. 操作dict时避免出现KeyError的几种方法
  3. 坐在宝座上圣洁羔羊 男声N重唱
  4. 拼多多和国美合作,这可不仅仅是可转债的问题
  5. ITK:矢量图像上的邻域迭代器
  6. 更改应用程序图标_基于安卓11的ColorOS 11的主要功能和更改日志
  7. 20个安全可靠的免费数据源,各领域数据任你挑
  8. 跨域失败 过滤器_Spring Boot 跨域过滤器(过滤器跨域问题)
  9. 使用Anaconda3安装pytorch、paddle环境并在pycharm里面进行环境测试
  10. 2021中国餐饮营销力白皮书
  11. python 爬取教务处通知
  12. ImportError: cannot import name '_ellipsoid'
  13. HTML5第一弹:彩虹爆炸图
  14. 一起谈.NET技术,WPF的消息机制(一)- 让应用程序动起来
  15. js 时间任意格式化 ,又来造轮子了
  16. DIV+CSS定义及优势
  17. HashTable、ConcurrentHashMap、TreeMap、HashMap关于键值的区别
  18. 使用Rufus制作系统启动盘
  19. 鼠标滑过图片文字遮罩效果
  20. 计算机四级-数据库工程师(数据库原理部分)

热门文章

  1. web应用程序、web网站 区别
  2. Python那些功能哟
  3. 渡一教育公开课web前端开发JavaScript精英课学习笔记(三十一)JavaScript消灭小星星游戏
  4. 【英语词组】恋恋不忘Day 2-3
  5. Java数组中涉及常见算法
  6. 输出英文字母,字符串中所有英文字符
  7. hci css是什么,什么是SCI、EI、SSCI、CSSI……
  8. linux下.run文件的安装与卸载
  9. 杭电oj2037c语言,杭电oj 2037 今年暑假不AC
  10. 深圳市友昊天创2022年度新方案