Yolov3模型没有框的解决方案之——提高训练模型的置信度

2023-05-16

在这里插入图片描述

前言

在之前的文章中我说过,如果你的Yolov3模型没有锚框出现,最直接的解决发方案是降低阈值(产生框的门槛),但是这个方法治标不治本。(Yolov3训练模型没有框(理论上一定有用的解决方案))

今天,我带大家来看一看,我们应该如何根治这个问题——提高模型的置信度。当我们训练模型训练精度大幅提升,执行度明显提高时,即使设置的阈值很高,也一定可以生成锚框。

在这里插入图片描述

样本容量

说到提高训练的准确率,很多人的第一反应就是增加样本的数量。但是今天我想告诉大家的是,这其实是大家的一个误区,模型对事物的检测能力和准确性在一定程度上,其实是两个概念。

我们给计算机提供大量数据的时候,目的是让计算机见识到更多的情况,就像是大家读书的时候在刷题,你要题海战术,这样才能见到更多的题型,以后考试的时候见到各种各样的题型就不慌了,你知道该怎么去应付这种场景。

但是,大量地刷题只能表示你见过这种题型,这并不代表你对这种题型已经完全掌握了。现在我们遇到的就是这种情况,计算机做过这个题型,但是它并没有掌握,所以在考试的时候,它给出的答案得分非常低,以至于低于你给定的显示标准,所以锚框不会显示。

在这样的情况下,你喂给它再多的数据,锚框都不会出现的。

在这里插入图片描述

给定恰当的数据

你假如考试的时候想得高分,那么你在平时刷题的时候就要选择恰当的题目进行练习。

我举个例子,假如你今天想要做人车识别,你就要先假设好场景,你究竟是要做城市里面密密麻麻的人车,还是车展上目标很明显的人车。

都市人车:

在这里插入图片描述

车展人车:

在这里插入图片描述
从图像中,大家应该可以非常明显地感受到,虽然都是人和车,但是这两种情景下人车的外在特征区别是很大的,你在给样本的时候,如果把这两种混在一起交给计算机训练,不是说不可以,但确实是给计算机的学习带来了很大的麻烦。特别是在你的样本容量比较小的情况下,识别的效果肯定不会好。

再比方说,你给的汽车的样式中,是完整的汽车和半个汽车,这对于人来说,人知道这都叫汽车,但计算机眼中,半个车和一个车长得区别很大哎。

比如大家对比一下上一张图和下一张图片:

在这里插入图片描述

调节 Batch_size

如果你给的样本是ok的,但是训练结果的置信度还是很低,那么你需要去调整的就是batch_size的大小。

大家要明白batch_size到底的是干什么的,这个很重要!

我知道在很多人眼中,batch_size就是一次性取多少张图片,但是你这样的理解方式实在是太入门级别了。

我们调整参数,设置合适的训练集的目的是为了让梯度朝着更加合理的方向下降,这才是根本!

在这里插入图片描述
假如我们今天把batch_size调得很大,好处是,计算机可以一口气了解这一组图片的特征,朝着一个大的方向进行梯度下降,这种做法可以使得迭代每一个世代的时间简短,且loss值不容易被困在局部最小值出不来。

但是缺点也很明显,第一是你的显存够不够大,第二是由于太注重整体效果,对每一张图片的训练不够仔细。这就像是你用很短的时间,一口气做了很多张卷子,你心里很清楚大概题型是怎么样的,但是你对于每一种题型的处理并没有很好的理解。

在这样的情况下,就很容易出现模型给出的置信度很低,以至于出不了锚框的现象。

在这样的情况下,你应该减小batch_size的值,目的是每次训练少一点的图片,但是每一张图片要训练得更加仔细一些,这样训练出来的模型效果会有非常明显地提升。但是缺点是训练时间会比大batch_size明显长很多。

在这里插入图片描述

总结

1、请先检查一下你给出的样本是否合适;

2、关注你生成锚框的阈值;

3、调节适当的Batch_size;

不同的电脑,不同的GPU,不同版本的CUDA、学习框架对Batch_size的适应程度是不一样的,也许在别人的电脑上,这些参数的效果很好,而在你的电脑上就一塌糊涂。这些参数要靠大家一点一点去尝试的。

祝大家学习愉快!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yolov3模型没有框的解决方案之——提高训练模型的置信度 的相关文章

  • 关于YOLOv3的一些细节

    原文链接 xff1a https www jianshu com p 86b8208f634f 本文是我对YOLO算法的细节理解总结 xff0c 本文的阅读前提是已读过YOLO相关论文 xff0c 文中不会谈及YOLO的发展过程 xff0c
  • Giou YOLOv3 | CVPR2019,通用,更优的检测框损失函数

    这篇论文提出的GIou损失函数 xff0c 是一种目标检测领域用于回归目标框损失函数 该Trick适用于任何目标检测算法 本文以YOLOv3为例进行阐述 论文 xff1a Generalized Intersection over Unio
  • 【Darknet-53】YOLOv3 backbone Darknet-53 详解

    文章目录 1 模型计算量与参数量2 Darknet 53网络3 感谢链接 1 模型计算量与参数量 模型计算量与参数量的计算方式主要有两种 xff0c 一种是使用thop库 xff0c 一种是使用torchsummaryX 使用pip ins
  • 【YOLOv3 decode】YOLOv3中解码理解decode_box

    文章目录 1 解码是什么意思2 代码解读3 生成网格中心 代码详解4 按照网格格式生成先验框的宽高 代码详解5 感谢链接 1 解码是什么意思 在利用YOLOv3网络结构提取到out0 out1 out2之后 xff0c 不同尺度下每个网格点
  • jetson nano 部署yoloV3,yoloV4,yoloV3-tiny,yoloV4-tiny

    转载自 xff1a jetson nano 部署yoloV3 yoloV4 yoloV3 tiny yoloV4 tiny dingding的专栏 CSDN博客 jetson nano 部署yoloV3 yoloV4 yoloV3 tiny
  • 【深度学习】Yolov3详解笔记及Pytorch代码

    Yolov3详解笔记及Pytorch代码 预测部分网络结构backbone xff1a Darknet 53output预测结果的解码 训练部分计算loss所需参数pred是什么target是什么loss的计算过程 预测部分 网络结构 DB
  • 基于Darknet和Darknet-ROS在Jetson Nano部署yolov3 tiny,进行口罩佩戴检测

    单独运行yolov3 tiy进行目标检测 下载Darknet源码并编译 https gitee com bingda robot darknet git 或者上传本地的darknet源码至Jetson Nano span class tok
  • 使用VSCode配置Anaconda(3.7)-python3.6(yolov3)环境

    最近因为毕设需要用到目标检测的功能 xff0c 所以在完全小白的前提下学习了下YOLOv3 xff08 Windows10 43 Keras 43 VSCode 43 Tensorflow xff09 xff0c 在使用VSCode时遇到了
  • YOLOv3

    YOLOv3 论文信息论文标题 xff1a 论文作者 xff1a 收录期刊 会议及年份 xff1a 论文学习YOLOv3 网络架构 xff1a YOLO 输出特征图解码 xff08 前向过程 xff09 xff1a 训练策略与损失函数 xf
  • yolov3 批量处理图片获得检测框坐标

    前言 yolov3实现检测 xff0c 需要所有检测框的坐标实现定位 在darknet master项目下实现检测框坐标的获取 前提 系统 xff1a Windows 语言 xff1a C 项目 xff1a darknet master 开
  • yolov3的训练(七)使用darknet_ros框架进行识别与模型导入

    同学们 xff0c 这个系列的文件不要直接就跟着我操作了 xff0c 因为这个是踩坑的记录 xff0c 不是教程 xff0c 我只是将整个流程记录下来 xff0c 让后面的同学操作的时候能够避开这些坑 xff0c 希望你能将整个系列的操作流
  • yolov3详解

    目录 1 anchor的计算机制 2 anchor对应机制 3 网络结构 4 训练过程 5 测试过程 1 anchor的计算机制 锚框anchor是真值框和预测框之间的桥梁 xff1a 预测框在锚框基础上 xff0c 预测出框的大小 xff
  • 自然场景OCR检测(YOLOv3+CRNN)

    自然场景OCR检测 YOLOv3 43 CRNN xff08 中文 43 英文模型 xff09 前言 最近对于自然场景下的OCR比较有兴趣 xff0c 所以总结了一些目前OCR现状 xff0c 并且找了一个自然场景OCR的项目练练手 本人新
  • jetson nano 部署yoloV3,yoloV4,yoloV3-tiny,yoloV4-tiny

    系统 ubuntu nbsp nbsp 自带cuda10 0 nbsp 1 下载与安装darknet git clone https github com AlexeyAB darknet cd darknet 2 以下步骤我都在直接进入c
  • c++ 调用yolov3-yolov4

    ifdef WIN32 define OPENCV define GPU endif include lt iostream gt include lt windows h gt include 34 yolo v2 class hpp 3
  • 【Darknet-53】YOLOv3 backbone Darknet-53 详解

    文章目录 1 模型计算量与参数量2 Darknet 53网络3 感谢链接 1 模型计算量与参数量 模型计算量与参数量的计算方式主要有两种 xff0c 一种是使用thop库 xff0c 一种是使用torchsummaryX 使用pip ins
  • 【视觉检测C++接口实现】vs2019使用动态链接库yolo_cpp_dll调用yolov3

    目录 0 前言 1 准备工作 1 1 yolo cpp dll dll和yolo cpp dll lib的获取 1 2 pthreadGC2 dll和pthreadVC2 dll的获取 1 3 yolo v2 class hpp的获取 1
  • 目标检测标签文件txt转成xml

    最近在用ppyolo训练好的模型对新采集的数据进行标记 再人工微调 减少从头打标签的时间 但是推理保存的结果都是txt格式的 想要在labelimg中可视化 那就需要将txt转换成xml 以下代码即可完成这一功能 coding UTF 8
  • 深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解

    因为工作原因 项目中经常遇到目标检测的任务 因此对目标检测算法会经常使用和关注 比如Yolov3 Yolov4算法 Yolov5算法 Yolox算法 当然 实际项目中很多的第一步 也都是先进行目标检测任务 比如人脸识别 多目标追踪 REID
  • Yolox_s可视化网络结构图

    Yolox共有七种网络结构 包含2种轻量级网络 和5种标准网络 轻量级网络 1 Yolox Nano可视化网络结构图 点击查看 2 Yolox Tiniy可视化网络结构图 点击查看 标准网络 1 Yolox s可视化网络结构图 点击查看 2

随机推荐