DocF / multispectral-object-detection

Multispectral Object Detection with Yolov5 and Transformer
GNU Affero General Public License v3.0
315 stars 60 forks source link

The performance is different after replacing the RGB and ir stream #15

Open lrxjason opened 2 years ago

lrxjason commented 2 years ago

After replacing the input source path, the performance has a big difference in the training part. But, it should be the same. Because the RGB and IR backbone is the same. Do you know why that happened?

DocF commented 2 years ago

Sorry, I don't understand the meaning of replacing the input source path, whether it is exchanging the input of RGB and IR images? If yes, there is indeed a huge drop in the network performance. Although the structures of RGB and IR backbones are the same, the parameters are different after training.

lrxjason commented 2 years ago

谢谢你的回复。 我是在训练的时候把data里的path换位置。效果就是在论文里面上面分支是RGB,下面是IR。我如果反过来,上面是IR,下面是RGB,训练结果应该是一样的。但是,实际情况是IR在上面比RGB在上面结果好。 我分析原因是你用的上面分支的label作为最后的label,IR的视野相对大一些,所以换过来效果会好。不知道理解的对不对。 直接用训练好的换过来肯定不行呀。。。

DocF commented 2 years ago

我分析原因是你用的上面分支的label作为最后的label,IR的视野相对大一些,所以换过来效果会好。不知道理解的对不对。

我觉有可能是这个原因,但确定则还需要进一步测试。 感谢你提的建议。

Hiram1026 commented 2 years ago

谢谢你的回复。 我是在训练的时候把data里的path换位置。效果就是在论文里面上面分支是RGB,下面是IR。我如果反过来,上面是IR,下面是RGB,训练结果应该是一样的。但是,实际情况是IR在上面比RGB在上面结果好。 我分析原因是你用的上面分支的label作为最后的label,IR的视野相对大一些,所以换过来效果会好。不知道理解的对不对。 直接用训练好的换过来肯定不行呀。。。

请问下你说的这个IR视野要大一些是什么意思?

我阅读了作者的代码,我觉得造成这个原因可能是因为加载coco预训练参数的原因。因为实际上应该只加载了model中0-4层的权重(因为模型从第5层加入融合模块导致结构开始改变了,weights中的k,v对不上了不能加载),也就是只有网络的上半分支的第一个融合点前使用了预训练参数。所以你将红外放到上面去后,红外这个强模态用了这个预训练参数,比RGB用效果提高了(说明COCO的这个预训练参数很好用)。 如果上下分支融合前的模块,也就是RGB和红外都能用上这个预训练的权重,指标应该还有提升。