AlibabaResearch / efficientteacher

A Supervised and Semi-Supervised Object Detection Library for YOLO Series
GNU General Public License v3.0
820 stars 147 forks source link

关于论文(v3)的一些不解 #84

Open ResonWang opened 1 year ago

ResonWang commented 1 year ago

非常感谢作者的贡献,还没有研究代码,先在看论文,遇到一些困惑,希望作者大佬能帮忙解答一下: (1)objectness score是啥呢?文中有强调“Specifically, Dense Detector obtains objectness score by calculating the Complete Intersection over Union(CIoU) [38] between the predicted and GT boxes.” 但对于伪标签来说,它们没有GT,要怎么计算该值?还是说objectness score是teacher model head中的object classification分支的预测值呢?该值是否就是文中的^obj? (2)^Yobj(h,w) 提到是来自PLA的,具体是怎么来的呢,主要是这个和 ^obj有啥区别? (3)文中重点讲了PLA中的loss计算,其具体是怎么根据伪标签分配正负样本的呢,即^Ycls, ^Yreg, ^Yobj具体咋分配得到的? (4)公式(7)是在特征图的每个位置上计算domain adaptation loss的,一张图上每个位置的gt都是一样的吗,就是D(1或者0)吗 (5)公式(9)(10)的左边和类别c有关系吗,因为右边应该是和类别相关的表达吧? 还请作者大佬解惑

Bobo-y commented 1 year ago

@ResonWang 我最近也在自己的项目里面复现这个,目前对我来说还没有正提升,我回答一点我的理解吧

  1. 伪标签的 objectness score,像yolov5 这种结构,它会输出obj, class 两个概率,在各个实现中obj 赋值可能不一样,有的是预测有没有物体,有就是1,无就是0,有的版本是预测IOU。对于伪标签来说,直接使用预测值
  2. 它就是网络的输出,作为软标签计算loss,
  3. 正负样本分配:a. 伪标签score(objectness * class )大于0.6 的计算分类、回归、obj 三个loss. b. 伪标签score 小于0.1 的当作负样本,计算 obj loss. c. 伪标签score位于二者之间的,如果 clas score >0.99, 使用teacher 输出的 obj 做软标签计算loss, 如果 obj score > 0.99, 计算回归损失。 或者最简单的两者之间的直接ignore

其实不用太关注论文,看代码就行,论文里面不少实现里都注释掉了

BowieHsu commented 1 year ago

@Bobo-y 您的回答是对的,您现在是在自己的数据集上试了没有效果吗

Bobo-y commented 1 year ago

@BowieHsu 我在自己的框架下训了,目前都是准确率微微下降。自动驾驶场景,带标数据百万量级的。也有可能我实现的问题