Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

about some details #5

Closed
foralliance opened this issue Mar 11, 2019 · 2 comments
Closed

about some details #5

foralliance opened this issue Mar 11, 2019 · 2 comments

Comments

@foralliance
Copy link

看了code,有几个疑问:

  1. paper中的FEM模块(Fig3)和code实现(class FEM(nn.Module))时,貌似不一样.
    paper中,输入分3份,然后每份分别经过3个dilation conv层.而code中,貌似并不是这样的操作.

  2. multi_scale_test_pyramid算是对multi_scale_test一个补充吗??感觉就是单纯的用了更多的测试尺度.

  3. 多尺度测试时,为什么图片缩小时,要排除一些小结果(小于30的)??而图片放大时,要排除一些大结果(大于100的)??

  4. 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的问题:

  1. PyramidBox的Fig3可知:P0,P1,P2,P3,P4,P5生成face_anchors;P1,P2,P3,P4,P5生成head_anchors;P2,P3,P4,P5生成body_anchors.对应关系是:P0的face对应P1的head对应P2的body,而且尺度应该是加倍的,如:face20对应head40对应body80.但是从code来看,并没有体现出加倍

麻烦了!!

@lijiannuist
Copy link
Contributor

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三行代码有体现。

@foralliance
Copy link
Author

foralliance commented Mar 19, 2019

@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:])

不知道自己的理解对不?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants