沈阳开发网站公司,企业网站优化公司哪家好,上海做网站吧,网页设计作业10个页面论文来源
ICCV2017arXiv reportgithub代码(caffe-matlab)
本文的主要问题是行人检测。作者探讨了如何将语义分割应用在行人检测上#xff0c;提高检测率#xff0c;同时也不损坏检测效率。作者提出了一种语义融合网络#xff08;segmentation infusion networks#xff0…论文来源
ICCV2017arXiv reportgithub代码(caffe-matlab)
本文的主要问题是行人检测。作者探讨了如何将语义分割应用在行人检测上提高检测率同时也不损坏检测效率。作者提出了一种语义融合网络segmentation infusion networks去促进在语义分割与行人检测上的联合监督。其中行人检测为主要任务语义分割主要起到了矫正指导共享层的特征生成。作者在题目中提到了照亮行人。其实主要指的是通过语义分割的监督可以使得生成的feature更聚焦在行人上从而便于下游的行人检测。
另外本文比较好的贡献在于对网络的设置很合适也就是说语义分割层的设置恰到好处。因此就算使用弱标注的语义信息也足以提升性能。
背景介绍
行人检测试计算机视觉中的核心问题主要方法有两种目标检测与语义分割。这两种方法高度关联但有各自的优缺点。比如目标检测可以定位不同的物体但是很少能给出物体的边界。而语义分割虽然能逐像素地定位物体的边界但是很难区别同类。
自然我们希望来自一个任务的知识能使得另一任务变得容易些。这在一研究的目标检测中已经得到了实现。那么在行人检测中却研究地很少。部分原因是在传统的行人数据集中缺乏逐像素的标注。
例如我们来看传统的几个数据集.
Caltech KITTIKITTI数据集简介与使用 此数据集为摄像机视野内的运动物体提供一个3D边框标注使用激光雷达的坐标系。该数据集的标注一共分为8个类别’Car’, ’Van’, ’Truck’, ’Pedestrian’, ’Person (sit- ting)’, ’Cyclist’, ’Tram’ 和’Misc’ (e.g., Trailers, Segways)。
以上两个数据集仅仅提供了行人的bounding box没有提供语义信息。 COCO 本数据集是一般的目标检测数据集可以从图上看出它提供了丰富的标签既有位置信息也有语义信息。 Cityscapes
此数据集提供了详细的城市语义标注当然也包含了行人的语义标注。此数据集的主要意图就是促进语义分割在行人检测上的应用。这也是本文的core所在。
Simultaneous Detection Segmentation
有两种方式来研究同时的检测与分割。一种是同时促进两种任务。例如我们广知的Instance-aware segmentation . 其实上面的图d就是典型的这类任务它不同与以往的语义分割而是在语义分割的基础上还要求把同类的分开。其实就是分割检测。
第二种就是使用语义分割作为强线索明显地提高目标检测。其实很早我读过人脸加测与人脸特征点的一篇文章
《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
这篇文章就是以人脸特征点检测来促进人脸检测的。其实人识别人脸往往就是识别人的五官来进行人脸检测。那么在目标检测中语义信息往往提供了很强大的特征来促进检测并且可以抑制背景的干扰。但有些工作要求先有一个单独的分割网络才能进行检测。我们的框架克服了这个缺点可以将语义信息融合到shared feature maps,最后在准确性和性能上都有了提升。
方法解析
上面是整个网络结构,包含了两阶段。第一阶段使用rpn网络提出行人检测候选框与给出初步的分值。第二阶段进一步地挖掘了hard sample给出了对应的细化分数.由于rpn已经预测行人的位置足够准确了因此第二步只是单纯的分类没有bounding box的回归。而且两个网络的预测分数进行了叠加作为最后的分类分数。
下面我们仔细阐述一下其中的道理。
RPN
RPN来源自Fatser rcnn用来propose a set of bounding with associated confidence scores around pedestrains. rpn网络在某个feature map的每一点处分别枚举出一定比例与尺度的anchor box相当于在一个池化的图像空间的一个滑动窗口。每一个proposal box i都对应一个anchor指scale与aspect ratio与图像空间的一个位置。
如图rpn采用VGG-16的conv1-5作为backbone提特征,然后接了两个分层一个层叫segementation infusion layer另一个就是传统的proposal layer,带有两个输出层分别用于分类与bounding box回归。
从网络结构上看到上面的segmentation infusion layer的ground truth 是两个白色小方块做成的mask其实就是标注的行人检测的bouding box的内部。然后经过两个分层的联合训练最终CONV1-5输出的feature map明显凸显了行人,即照亮了行人。
此rpn的目标函数如下 LcL_cLc代表分类的损失采用softmax logistic loss over two classes。(行人vs 背景)。此处将一个box识别为行人的法则是IoU0.5.
Lr是回归损失。使用Lr(ti,ti^)R(ti−ti^)L_r(t_i,\hat{t_i})R(t_i-\hat{t_i})Lr(ti,ti^)R(ti−ti^),R代表鲁棒的L1损失。其中bounding box的偏移信息被定义成在x,y与在w,h上的偏移量,即t[tx,ty,tw,th]t[t_x,t_y,t_w,t_h]t[tx,ty,tw,th].
Ls是语义分割的损失。后面阐述。
实验中,λcλs1,λr5\lambda_c\lambda_s1,\lambda_r5λcλs1,λr5显然这里突出了回归的重要性因为回归只有一次而分类与语义分割就显得没那么重要。
BCN(Binary Classfication Network)
BCN主要完成在RPN提出的proposal的行人识别。作为一般的目标检测一般采用faster rcnn后端的识别部分即可。但是根据《Is faster rcnn doing well for pedestrian detection?》faster rcnn的后端反而会degrade pedestrian detection accuracy。因此这里选择使用VGG-16构建一个单独的识别网络。
这个网络主要在于识别RPN遗忘的hard example。提高那些遮挡、变形等行人的分数从而可以将其检测出来。 当然了此部分仍然增加了语义信息提高识别率。
此部分的目标函数如下 其中主要特点如下
LcL_cLc指的是分类损失其中这里cic_ici是第i个proposal的类别标签而ci^\hat{c_i}ci^则融合了来自RPN与BCN的分数。
具体说来对于第i个Proposal给定RPN的预测两类分数为{c^i0r,c^i1r}\left \{ \hat{c}_{i0}^r, \hat{c}_{i1}^r \right \}{c^i0r,c^i1r}BCN的分数为{c^i0b,c^i1b}\left \{ \hat{c}_{i0}^b, \hat{c}_{i1}^b \right \}{c^i0b,c^i1b},则融合后的分数为
这里重点说一下他这里给出的融合分数到底有何技巧正如下面一章【问题1】提出的这里为什么要这样取分数而且这里的分类损失又是什么呢
我们先来看看一般如RPN中的分类损失怎么计算实际上是使用softmax-logistic loss,也就是先计算softmax得分再求label对应的logistic似然损失最后令其最小化。
那么我们这里呢肯定也是使用似然损失那么如何计算label对应的分数呢是不是也是使用softmax呢
我们观测这里给出的c^i\hat{c}_ic^i ,其实就是softmax的形式。而这里原始的分数就是RPNBCN之和。
而且这里省略了一个分数即预测其为背景的分数即1−c^i1-\hat{c}_i1−c^i。 2. 设置了cost-sensitive的权重wiw_iwi用来优先检测大的行人。其中wi1hihw_i1\frac{h_i}{h}wi1hhi其中hih_ihi为第i个proposal 的高h为预计算的平均高。 3. 采取了更加严格的labeling policy要求 a proposal to have IoU 0.7 with a ground truth pedestrian box to be considered pedestrian (ci 1), and otherwise background (ci 0).
Simultaneous Detection Segmentation
无论在RPN还是在BCN都集合了融合layer.The segmentation infusion layer旨在输出两个mask揭示行人与背景分割的可能性 .这里选择使用仅仅一个layer和一个1x1的核以至于尽可能高地施加影响到共享的层,从而驱使网络去直接融合语义特征到shared feature map。
Ls是一个在两类行人vs 背景的softmax logistic loss应用于每一个位置i同时也引入了cost-sensitive weight 即wiw_iwi. 这里SiS_iSi可以取所有行人的bounding box内的所有区域标注为1其他区域为0. 也就是weak segmentation ground truth masks。这就是很大的优势不再需要严格的标注信息。
这样做是可行的因为我们将会融合层放在了conv5后面此时图像已经经过了多层降采样。也就是基于box的标注与基于pixel的标注已经基本相同了。
那么具体怎么计算LsL_sLs呢文中提到使用softmax logistic loss。那么这里的i应该指的bounding box的序号。因为有一个权重wiw_iwi的存在我猜测。
则Ls(Si,S^i)L_s(S_i,\hat{S}_i)Ls(Si,S^i)应该针对每一个bounding box内的像素计算。使用infusion layer获取每一个像素的预测值行人VS背景那么我们就可以计算每一个像素点的二分类分数对于bounding box内的像素点取行人的预测分数进而计算似然损失并将其加起来作为最后的LsL_sLs。而对于bounding box以外的区域则取背景的预测分数进而计算似然损失。也加起来作为一个LsL_sLs。
留下一个疑问对于非盒子区域的S如何计算权重呢或者是不是不再需要权重了
实验设计
实验设计其实就是两方面一方面与baseline进行比较一方面解释上述网络设计的可行性也就是ablation study.
如下图作者进行了 weak segmentation supervision,proposal padding, cost-sensitive weighting, and stricter supervision以及stage-wise fusion的研究。 对于weak segmentation supervision,proposal padding, cost-sensitive weighting, and stricter supervision作者分别切除了每一部分分别计算RPNBCN以及Fusion的miss rate.
这里RPN很明白可以直接输入图片禁掉了 weak segmentation supervision,进而检测行人计算miss rate。BCN呢输入是什么在原文中BCN直接输入的是proposal裁剪测图像。这里应该还是如此只不过禁掉了 weak segmentation supervisio,但是RPN中正常不要禁掉weak segmentation supervision。Fusion则全部禁掉weak segmentation supervision.
对于最后一行的SDS-RCNNBCN则还是需要以RPN为输入只不过分数不再融合直接计算其分类得分从而检测行人。而Fusion则融合RPN与BCN的分数。
问题
BCN(Binary Classfication Network)的分数融合机制是否是最优的文中提到 也即是说两个网络进行了互补机制一句话概括就是好上加好优中选优。 具体说来当RPN网络预测某个proposal为行人的分数很高而BCN网络也如此则显然最后预测行人的分数会很高。相反对于一些hard example可能RPN预测地很低而BCN预测地很高则最终的结果如何呢这实际上取决于二者分数的综合效果其实就是两者的和如果行人分数的和大于背景分数的和则最终预测行人的分数就很高。反之则可能还是背景。这也说明只有BCN预测hard example的能力足够强才能形成互补机制。对于一些模棱两可的example即使BCN预测其为行人的分数较高但如果不是足够高则最终也不能将其判为行人这实际上就减轻了false positive的压力。softmax logistic loss??
参考 softmax logistic loss详解