目标检测之检测优化
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.使用多尺度特征