目标检测之项目总结
1.前言
经过多篇文章的梳理,基本上对一个目标检测的项目有了基本的了解,从数据收集、数据处理、数据标注、模型训练、模型预测都基本上有一个思路了,最后一步其实应该是模型应用,这部分我还是有些云里雾里的,就是如何把训练好的模型,应用在系统中。因为大部分的项目可能都是用 java 编写的,如何在已有项目中进行集成,又是一个问题,是使用 api 接口的形式,还是使用其他的项目形式,这个还真是一个点。
2.Java集成
【1】.Anan/yolo-onnx-java
【2】.关于Java通过socket调用python图像识别算法使用总结 由于java无法直接调用python编写的接口,因此可以通过socket实现java客户端与python服务端间的通信
【3】.SpringBoot实现图片识别文字的四种方式
【4】.Java程序员学深度学习 DJL上手2 Springboot集成
3.切片推理
有些大图片,可以采用切片推理的方式,将大图片改成一个个小的图片,然后进行预测后,再重新合并,这就有点类似于对遥感影像进行推理的方案了。
【1】.Ultralytics 文档:使用YOLO11 和 SAHI 进行切片推理 这是官方提供的说明。
4.结果分析
交并比(IoU)
IoU 是一种量化预测边界框与地面实况边界框之间重叠程度的指标。它在评估物体定位的准确性方面发挥着重要作用。平均精度 (AP)
AP 计算精度-召回曲线下的面积,提供一个包含模型精度和召回性能的单一值。平均精度(mAP)
mAP 通过计算多个对象类别的平均精度值,扩展了 AP 的概念。这在多类物体检测场景中非常有用,可以全面评估模型的性能。
(1)mAP@0.5
即将IoU设为0.5时,计算每一类的所有图片的AP,然后所有类别求平均,即mAP。
(2)mAP@.5:.95
表示在不同IoU阈值(从0.5到0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。
精确度和召回率
精度量化了所有阳性预测中的真阳性比例,评估模型避免假阳性的能力。另一方面,召回率计算的是真阳性预测在所有实际阳性预测中所占的比例,衡量的是模型检测出某类所有实例的能力。F1 分数
F1 分数是精确度和召回率的调和平均值,在考虑假阳性和假阴性的同时对模型的性能进行均衡评估。F1 分数曲线 (F1_curve.png)
该曲线表示 F1 分数 在不同的阈值之间。通过解读这条曲线,可以深入了解模型在不同阈值下假阳性和假阴性之间的平衡。精度-召回曲线 (PR_curve.png)
对于任何分类问题来说,这条曲线都是不可或缺的可视化图表,它展示了精确度与分类问题之间的权衡。 召回 在不同的阈值下。在处理不平衡类时,这一点变得尤为重要。精度曲线 (P_curve.png)
不同阈值下精度值的图形表示。该曲线有助于了解精度如何随着阈值的变化而变化。召回曲线 (R_curve.png)
相应地,该图说明了召回值在不同阈值下的变化情况。混淆矩阵 (confusion_matrix.png)
混淆矩阵提供了结果的详细视图,展示了每个类别的真阳性、真阴性、假阳性和假阴性的计数。归一化混淆矩阵 (confusion_matrix_normalized.png)
这种可视化是混淆矩阵的规范化版本。它以比例而非原始计数来表示数据。这种格式更便于比较不同类别的性能。验证批次标签 (val_batchX_labels.jpg)
这些图像描述了验证数据集中不同批次的基本真实标签。根据数据集,这些图像可以清楚地显示对象及其各自的位置。验证批预测 (val_batchX_pred.jpg)
与标签图像对比,这些视觉效果显示了YOLO11 模型对相应批次的预测结果。通过将这些图像与标签图像进行对比,您可以轻松评估模型对物体的检测和分类效果。
【1】.性能指标深度挖掘 这是官方的翻译,但是也还是可以的,有说明,有建议。
【2】.YOLO 模型的评估指标——IOU、Precision、Recall、F1-score、mAP IOU(交并比)、混淆矩阵、Precision(精度)、Recall(召回率)、P-R曲线、F1-score、AP、mAP、mAP@0.5(一般来说,mAP@0.5即为评价YOLO模型的指标之一)、mAP@[0.5:0.95]
【3】.yolo系列目标检测模型训练结果分析 这里有术语表格对应,1.confusion_matrix_normalized.png和confusion_matrix.png;2.F1_curve.png;3.P_curve.png(单一类准确率);4.R_curve.png(单一类召回率);5.PR_curve.png(精确率和召回率的关系图);6.results.png;7.train_batchx;8.val_batch0_labels 和 val_batch0_pred;9.labels.jpg(标签);10.labels_correlogram.jpg(体现中心点横纵坐标以及框的高宽间的关系)
【4】.YOLO 详解:从 v1 到 v11 这里介绍了 Yolo 第一个版本到第11个版本的各个改进点。
【5】.mAP@0.5与mAP@0.5:0.95的含义,YOLO 如图所示,AP50,AP60,AP70……等等指的是取detector的IoU阈值大于0.5,大于0.6,大于0.7……等等。数值越高,即阈值越大,精度越低。
【6】.目标检测01:常用评价指标(AP、AP50、AP@50:5:95、mAP)