Deep Neural Networks for Object Detection Thinking

Deep Neural Networks for Object Detection Thinking

这篇文章纯粹是以自己观点来看这篇论文,局限于自己的知识水平和能力,肯定有多多少少的错误。Note会单独写一篇文章,一篇Note,一篇thinking

问题的提出:

​ 不仅仅分类,而且要精确的定位

论文的目的:

​ 通过DNN的回归解决object detection问题。通过一个公式,用 bb mask目标的回归问题来解决对象检测。而且还提出了多尺度 inference过程,能将低成本,将低分辨率转为高分辨率的对象检测。

论文提出的挑战:

论文的亮点:

deep regression 实现localization问题

解决多目标检测的鲁棒性问题

对于DNN定位器的multi-scale Refinement

论文的方法:

​ 整体思路:通过DNN网络从窗口中生成一些mask,然后对这些mask进行合并,生成高质量的mask,然后利用简单bounding box 从mask从提取检测

1、DNN网络生成object mask。什么是 mask?

​ mask是对象边界框的 binary mask,和图像一样的大小,检测到对象的位置则表示1,否则0。mask可能从一部分的对象框中得到的,这是后面提出的精确定位方法所导致的,将BB分为full, left。。。。等等,然后分别形成对应的mask。

2、DNN网络的输出是mask,输出的大小与输入的大小差距很大,如何转化称为输入图像大小的mask形态

3、如何从mask提取检测,这个过程是如何的?最终得到什么?

扫描二维码关注公众号,回复: 12102327 查看本文章

论文detail

1、通过DNN作为检测

​ 对alex的分类网络进行修改,来实现定位。改变就是将最后一层的softmax改为regression层。这一层就能生成对象二进制的mask。因为mask是由网络生成的,而网络的输出size是固定的,故得到预测mask固定大小为 d*d=N,N是像素的总数量,再对mask大小进行调整成图像的大小,最终生成的mask可以表示多个对象。在这个mask中,1代表存在于给定类的BB中,否则为0

损失函数:
m i n Θ ∑ ( x , m ) ∈ D ∣ ∣ ( D i a g ( m ) + λ I ) 1 / 2 ( D N N ( x ; Θ ) − m ) ∣ ∣ 2 2 min_{Θ}\sum_{(x,m)∈D}{||(Diag(m) + λI)^{1/2}(DN N(x; Θ) − m)||_2^2} minΘ(x,m)D(Diag(m)+λI)1/2(DNN(x;Θ)m)22
m是truth mask,D是包含二进制mask表达的BB对象的训练图像集合。

2、通过mask的精确目标检测

2.1提出三个要解决问题:

  • 单个对象掩码可能不足以消除相邻对象的歧义
  • 由于输出大小的限制,我们生成的mask比原始图像的大小小得多。
  • 由于我们使用完整的图像作为输入,小物体将影响很少的输入神经元,因此很难识别。

2.2 对于鲁棒性定位的多个mask

​ 之前对一个bb对象,得到一个mask,现在用网络,对一个bb对象得到多个mask,一般是portion :top,bottom等。
m h ( i , j ; b b ) = a r e a ( b b ( h ) ∩ T ( i , j ) ) / a r e a ( T ( i , j ) ) ( 1 ) m^h(i, j;bb) =area(bb(h) ∩ T(i, j)) / area(T(i, j)) (1) mh(i,j;bb)=area(bb(h)T(i,j))/area(T(i,j))(1)
T(i,j)表示网络预测的矩形框,bb则是真实的矩形框

2.3从DNN输出的目标定位

​ 对每个图像的bb集合进行评估,通过引入Score公式来对BB进行评分。一个对整个m,一个是对应部分的m。

​ 通过这种方式,计算预测bb集合,然后再根据两个过滤方法来删减,1、设置score阈值来进行过滤 2、通过应用兴趣类所训练的分类器并且保留正向分类到当前检测器的类别来进一步过滤(就是看bb内对象是不是兴趣类来进行删减),再应用NMS

3 对于DNN分类器的多尺度精炼

​ 论文讲述两种方法解决网络输出的分辨率问题。1、在多个尺度和几个大子窗口中使用DNN localizer 2、在顶部推导bb中使用DNN localizer。流程如算法1所示。

这里要对流程提出几个问题:

3.1、文中反复提及的多个scale是指window还是图像?分别是什么?

​ 算法中,可以看到,无论是图像还是窗口都采用了多个scale。但是不同的是,图像的scale是计算得来的,而窗口则是生成的,这里就有疑问,窗口是如何生成的?,mask是DNN网络生成的,但是窗口是如何来的呢?我提出推测,窗口应该是标签给出的BB或者是预测后的BB。由此可以看出,scale是指不同图像,窗口是固定了的。

3.2、对算法1流程通俗理解?

​ 首先计算几个合适的图像尺度,然后对每个不同图像尺度进行处理,生成窗口(这个有疑惑,没讲如何生成)我认为窗口应该是本来就存在的,要莫是标签,要莫是预测后的窗口,然后对窗口进行部分选择,分别放入网络中训练得到mask,再将这些mask合并。对选择框进行score计算,过滤后放入检测集合中

3.3、对算法2流程的理解?

​ 这个流程是refinement,遍历有算法1得到的检测框集合,放大BB然后得到修改后的图像,对处理后图像进行DNN处理,对计算得到最高score的BB放入refined检测框中

猜你喜欢

转载自blog.csdn.net/qq_40940540/article/details/109623803