单发多框检测(SSD) 讨论区


#21

请教一下,在特征图上的每一个pixel,经过卷积之后得到了num_anchors x (num_class+1)个对应的像素,其中每num_class+1个像素对应着特征图中一个像素,也就是一个anchor,这里不同的anchor scale是如何作用在卷积上使得前num_class+1个通道与后num_class+1个通道不同的?不知道有没人理解我的问题,求解答


#22

感谢回答
虽然是图像缩小的,假设缩小了16倍,则3X3的感受野就是48x48。 我和你的疑问是一样的,3X3是可以覆盖48x48,但是不同尺度和不同比例的anchor的怎么覆盖,3x3假设可以对应ratio是1:1,size是48x48,那其他的ratio和其他的size 怎么办,只通过一个3x3的卷积如何实现?如果是全连接层倒是可以理解,毕竟覆盖了图像整个大小,或者使用不同大小的卷积核

另外这里有个问题,针对不同大小的feature map,采用的是相同的anchor (因为每个anchor的长宽都是当前feature map的固定比例),所以即使是在后面的层,图像变小了,相应的anchor也还是等比例变小,虽然后面的层学到的特征和前面浅层不同,但是anchor大小应该改变才对。去原始的SSD paper看了,每个不同大小的feature map采用的anchor是不同的。浅层的box比较小也很少,深层的box比较多,有更多不同大小的box(还原到原始图像大小来看的话),相当于浅层很难检测大目标。


#23

对于你的第二个问题,教程里是考虑了的,请看这两个点:


Toy_SSD里面的sizes和ratios就是作用在不同的feature_map上的。


#24

多谢多谢~~


#25

请问,我按照教程的代码运行到训练的时候报语法错误:
https://screenshots.firefox.com/ZM0J6CEFSYeDwlLi/localhost
请问是什么原因呢?
打印了一下cls_metric.get()和box_metric.get()的结果:
https://screenshots.firefox.com/Wy7HbtM74GqH0t6w/localhost
后面的值为什么是nan呢?


#26

python版本?更新了mxnet吗?


#27

MultiBoxPrior用法这块不是很清楚
将ratios改为[0.5]
image
生成的框不应该都是长方形的吗
为什么结果还是方的


#28

更新了mxnet也不行,python版本是:Python 2.7.13 :: Continuum Analytics, Inc.


#29

想请问一下如果某个锚框只包含了部分目标,比如半个皮卡丘,或者包含了多个目标,这样的话,这个锚框的标注类别应该是什么呢?


#30

这个就可以归为最后的正负样本的构造(困难样本的挖掘),可以参看论文中的细节


#31

真难理解啊 代码也够麻烦的 得多看看了


#32

SSD的教程中有个地方用到了如下语句:train_data.reshape(label_shape=(3, 5))
注释为:# the CUDA implementation requres each image has at least 3 lables.

那么假如一个数据集的label数量差别较大,既有只有1个label的数据,也有多于3个label的数据,那么强制性的使用data.reshape(label_shape=(3, 5))是否会导致多标签的那部分数据丢失掉一些label呢?

另外想问一个问题,就是ImageDetIter是不是可以从lst文件读取数据集,而不需要制作rec文件呢?
按照API里面的说明自己做了个lst,但是一直会报错,不知道哪里出了问题。
@szha


#33

记得SSD作者jiuwei用caffe写的时候在第一次生成box_preds和class_preds时要做一次channel之间的normalization,但是mxnet实现的里面是没有的,这是为什么呢?


#34

是这样,需要把3变大点。

应该是可以不用rec,虽然这样会慢点。你贴下你代码?

这是个论文里trick的地方,raitos第一个默认是1


#35

如何通过 tools/im2rec.py 生成物体检测的数据集啊?


#36

我也觉着是这样。


#37

https://discuss.gluon.ai/t/topic/3018/5


#38


预测类别函数的说明中,对于第a个锚框,既然通道 a*(num_class+1) 是其只包含背景的分数,那之后的num_class个通道应该是分别预测类别的分数,为何图片中第2行预测第b个物体要加1?


#39

有谁能解释下,nd.mean()里面参数exclude的含义,文档实在看不明白,自己做了几个实验也没有找出规律,请大神指教啊。

exclude (boolean, optional, default=0) – Whether to perform reduction on axis that are NOT in axis instead.


#40

请问MultiBoxPrior的锚框长宽比例具体是怎么计算的?