SimOTA的简单理解

SimOTA

simOTA的作用是为不同目标设定不同的正样本数量,例如蚂蚁和西瓜,传统的正样本分配方案常常为同一场景下的西瓜和蚂蚁分配同样的正样本数,那要么蚂蚁有很多低质量的正样本,要么西瓜仅仅只有一两个正样本。对于哪个分配方式都是不合适的。

SimOTA出现在yolox中,首先会计算一个cost代价矩阵,代表每个真实框和每个特征点之间的代价关系,Cost代价矩阵由三个部分组成:

(1)每个真实框和当前特征点预测框的重合程度;
(2)每个真实框和当前特征点预测框的种类预测准确度;
(3)每个真实框的中心是否落在了特征点的一定半径内。
解释一下为什么要由这三个部分组成?
(1)每个真实框和当前特征点预测框的重合程度越高,代表这个特征点已经尝试去拟合该真实框了,因此它的Cost代价就会越小。
(2)每个真实框和当前特征点预测框的种类预测准确度越高,也代表这个特征点已经尝试去拟合该真实框了,因此它的Cost代价就会越小。
(3)每个真实框的中心如果落在了特征点的一定半径内,代表这个特征点应该去拟合该真实框,因此它的Cost代价就会越小。
Cost代价矩阵的目的是自适应的找到当前特征点应该去拟合的真实框,重合度越高越需要拟合,分类越准越需要拟合,在一定半径内越需要拟合。
那如何动态的为不同目标设定不同的正样本数量(dynamic_k)呢?

SimOTA的具体做法

(1)计算每个目标cost最低的10个特征点
(2)把这10个特征点预测的预测框与真实框进行IOU操作,则会得到10个IOU的值
(3)将10个IOU的值进行sum操作后会得到一个值,此时的值为dynamic_k。

如有理解错误,希望大佬们可以指出来!

版权声明:本文为CSDN博主「liiiiiiiiiiiiike」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45074568/article/details/120371817

liiiiiiiiiiiiike

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Yolo-V5目标检测 项目实战

引言本文将一步一步的指导训练 Yolo-v5并进行推断来计算血细胞并定位它们。我曾试图用 Yolo v3-v4做一个目标检测模型,在显微镜下用血液涂抹的图像上计算红细胞、白细胞和血小板,但是我没有得到我想要的准确度&

cocoapi+coco20i

下载cocoapi git clone https://github.com/cocodataset/cocoapi.git 进入文件夹 cd cocoapi/PythonAPI 安装 python setup.py build_ext --i