Closed foralliance closed 5 years ago
Hi @foralliance (1) code,paper中都是分了三个分支,通过堆叠层数和dilation的设置,不同的分支其实会有不同的dilation系数。 (2) 是的,一阶段模型中,多尺度测试融合能极大的提升性能,multi_scale_test_pyramid比multi_scale_test测试尺度多,结果好。 (3)可以可视化一下看看结果。其原因是:图片缩小目的是为了检测大目标,因而不需要关心小于30的物体,那些小于30的那些目标就交由放大测试操作进行检测。否则会引入误检。 (4)这个在测试脚本里面应该有体现,write_to_txt函数里面。 (5)在350,351,352三行代码有体现。
@lijiannuist 谢谢您的回复.
对于第5点: 根据350,351,352三行代码的设置, self.face_priors生层6组anchors,对应尺度[16, 32, 64, 128, 256, 512],对应6个分支p0-p5. self.head_priors生层5组anchors,对应尺度[16, 32, 64, 128, 256],对应5个分支p1-p5. self.body_priors生层4组anchors,对应尺度[16, 32, 64, 128],对应4个分支p2-p5.
根据PyramidBoxFig4的描述:p0上16的face,对应p1上32的head,对应p2上64body.所以,自认为,self.head_priors对应的尺度应该是[32, 64, 128, 256, 512],self.body_priorss对应的尺度应该是[64, 128,256, 512]. 所以说应改为:
self.face_priors = self.init_priors(self.cfg) self.head_priors = self.init_priors(self.cfg , min_size=cfg['min_sizes'][1:], max_size=cfg['max_sizes'][1:]) self.body_priors = self.init_priors(self.cfg , min_size=cfg['min_sizes'][2:], max_size=cfg['max_sizes'][2:])
不知道自己的理解对不?
看了code,有几个疑问:
paper中的FEM模块(Fig3)和code实现(class FEM(nn.Module))时,貌似不一样. paper中,输入分3份,然后每份分别经过3个dilation conv层.而code中,貌似并不是这样的操作.
multi_scale_test_pyramid算是对multi_scale_test一个补充吗??感觉就是单纯的用了更多的测试尺度.
多尺度测试时,为什么图片缩小时,要排除一些小结果(小于30的)??而图片放大时,要排除一些大结果(大于100的)??
paper中提到的:For 4 bounding box coordinates, we round down top left coordinates and round up width and height to expand the detection bounding box.这个在貌似在code中未体现?
还有一个关于PyramidBox的问题:
麻烦了!!