目标检测之检测优化

标签: 无 分类: 机器学习 创建时间:2024-09-30 09:45:51 更新时间:2024-10-31 11:33:29

1.前言

当我用 yolo v8 实现了环境搭建、数据标注,数据训练和目标检测之后,还有就是需要进行检测的优化,目前可以通过算法层面优化,但是对于应用来说,好像根本做不到,要是能改进算法了,这不就是一个新的算法了吗?

参考文章:
【1】.YOLOv8 原理和实现全解析
【2】.可以提高你的图像识别模型准确率的7个技巧 1.得到更多的数据。2.添加更多的层。3.更改图像大小。4.增加训练轮次。5.减少颜色通道。6.转移学习。7.超参数。

2.检测框合并

目标检测中的Region Proposal动辄上千,会形成大量有重合的检测框,需要使用某些算法对检测框去重。常用的两种算法是NMS和Soft-NMS。

  • NMS
    全称‘非极大值抑制(non maximum suppression)’.算法思想很简单,按照分类概率排序,概率最高的框作为候选框,其它所有与它的IOU高于一个阈值(这是人工指定的超参)的框其概率被置为0。然后在剩余的框里寻找概率第二大的框,其它所有与它的IOU高于一个阈值(这是人工指定的超参)的框其概率被置为0。依次类推。最终所有的框相互之间的IOU都是小于超参阈值的,或者概率被置为0了。剩下的所有概率非0的框就是最终的检测框。

缺点:(1)MS算法需要一个超参,超参这玩意是个玄学,大了不行,小了也不行,很难平衡。(2)NMS会将相邻的两个大概率目标框去掉一个,造成漏检

  • Soft-NMS
    soft-NMS吸取了NMS的教训,在算法执行过程中不是简单的对IoU大于阈值的检测框删除,而是降低得分。算法流程同NMS相同,但是对原置信度得分使用函数运算,目标是降低置信度得分

缺点:Soft-NMS的阈值仍然要手动指定,作者提到Soft-NMS对SSD、YOLO v2性能提升不明显。

  • Softter-NMS

  • IOU-Net

参考文章:
【1】.目标检测之后处理(检测框合并)–非极大值抑制 NMS最主要的问题有这么几个:1.稠密场景下漏检多。2.NMS的阈值也不太容易确定,设置过小会出现误删,设置过高又容易增大误检。3.存在一些,所有的bbox都预测不准。4.传统的NMS方法默认置信度分数较高的框,定位更精确,是基于分类分数的,只有最高分数的预测框能留下来,但是大多数情况下IoU和分类分数不是强相关,很多分类标签置信度高的框都位置都不是很准,置信度分数高的边界框并不总是比置信度低的框更可靠。5.Ground Truth(标注框)的标注可能并不可靠。6.NMS一般只能使用CPU计算,无法使用GPU计算。
【2】.目标检测中的检测框合并策略:NMS和Soft-NMS 目标检测中的Region Proposal动辄上千,会形成大量有重合的检测框,需要使用某些算法对检测框去重。常用的两种算法是NMS和Soft-NMS。
【3】.浅析YOLOv8超参数调节之NMS和IoU
【4】.yolov8多batch推理,nms后处理 这篇文章将一张图片划分成了四片,分别进行了检查,最后进行了合并,然后增加了nms代码,合并相邻的检测框。
【5】.目标检测算法中检测框合并策略技术综述 1.NMS介绍、NMS算法过程、优缺点分析;2.Soft-NMS、算法过程、代码实现,优缺点分析;3.Softer-NMS算法思想、网络结构与算法实现、代码分析、性能分析、优缺点分析;4.IoU-guided NMS算法思想、模型框架、IoU-guided NMS、PrRoI Pooling、bbox refinement、性能分析、优缺点分析;5.其它去重算法:Relation Network、ConvNMS、NMS Network、Yes-Net。

3.epoch

参考文章:
【1】.yolov8多少epoch合适

4.图片大小

图片的大小通常是 640x640 大小。

参考文章:
【1】.今天来聊一聊在检测算法中不同图像尺寸对网络会有影响吗 不同图像尺寸在目标检测算法中确实会对网络产生影响。较大的图像尺寸有助于提高检测性能,但同时也增加了计算负担和处理时间;而较小的图像尺寸可以提高算法的速度,但可能会影响检测的准确性。因此,在选择图像尺寸时,需要根据具体应用场景的要求综合考虑。1.性能变化;2.速度变化;3.使用场景的差异。
【2】.深度学习中输入图片的尺寸变大对小目标影响大还是大目标影响大 对于深度学习中的目标检测任务,输入图片的尺寸变大会对小目标的检测造成较大影响,而对大目标的检测影响相对较小。因此,在选择输入图片尺寸时,需要综合考虑目标的大小和数量,以及模型的复杂度和训练速度等因素,以获得最佳的检测效果。
【3】.网络输入分辨率是否越大越好 1.提升输入图像分辨率会提高小目标的尺寸,缓解了上述所说小目标检测的困难,有助于提高小目标的检测准确率。但是,这也会带来另一个问题,就是会让本来尺寸很大的前景物体变得更大,尺度问题会更突出,对于大目标的检测精度可能会降低。2.当输入图像分辨率增大到一定程度后,继续增大分辨率反而会降低检测准确率。3.输入图像分辨率、网络的宽度和深度是影响网络性能的关键,三个因素需要综合考虑。
【4】.高分辨大尺寸图像的目标检测切图处理 对于yolo等目标检测框架,输入的尺寸通常为640x640,这对于常规的图片尺寸和常规目标检测足够了。但是在诸如航拍图像等任务上,图像尺寸通常几千x几千甚至上万,目标也是非常小的,如果resize到640的尺寸,显然目标都已经丢失完了。实际上可以通过切图的方式进行推理,也就是将高分辨率的图切成640x640的图像块,每一个块再去做目标检测,最后再将图像块中目标的坐标转换为大尺寸图上即可。
【5】.目标检测中的图像输入尺寸是否固定的讨论 1.模型网络中含有全连接层的时候,输入尺寸只能固定大小,因为全连接网络的输入feature尺寸是固定的。一些模型网络就不一定需要尺寸固定,比如FCN网络中全是卷积网络而没有连接网络。2.实际大小图像为了能输入到模型运行要做什么改变,选择resize到固定尺寸,只选取中心区域然后crop。3.这些改变会影响模型精度吗?

4.精度优化

  • 数据增强
  • 特征增强
  • 修改锚框大小
  • 调整模型参数
  • 使用多尺度特征
参考文章:
【1】.超详解| Yolov8模型手把手调参 | 配置 | 模型训练 | 验证 | 推理
【2】.提高yolo检测精度的一些方法
【3】.通过提高目标分类和定位准确度改善目标检测性能的方法 目标检测的主要任务是对图像序列中的目标物体进行自动检测,包括判断类别和识别位置。当今流行的目标检测算法,首先在一张图片上生成1K-2K的候选框,然后对于每个候选框使用CNN卷积神经网络提取特征,其次将特征输入每一类的SVM分类器或Softmax分类器来判断目标是否属于该类,最后使用回归器修正候选框的位置实现目标的精准定位。传统的目标检测算法采用SIFT、HOG和LBP等特征,通过寻找图片中具有平移、仿设、旋转等变换情况下的不变特征点实现图像间的匹配,从而实现目标检测。然而提取特征的好坏直接影响到分类的准确性,由于目标的形态多样性,光照变化多样性,背景多样性等因素使得设计一个鲁棒的特征并不是那么容易,传统特征的适应能力并不强。而基于CNN卷积神经网络的特征提取具有很好的鲁棒性,卷积神经网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。
【4】.提升YOLOv5小目标检测精度的方法 1.数据增强,2.特征增强,3.修改锚框大小,4.调整模型参数,5.使用多尺度特征
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。