• 回答数

    3

  • 浏览数

    209

心菲殿下
首页 > 学术论文 > 行人检测相关论文笔记

3个回答 默认排序
  • 默认排序
  • 按时间排序

无敌美苏苏

已采纳

对于目标检测方向并不是特别熟悉,本文记录一下RCNN, fast-RCNN, faster-RCNN, mask-RCNN这4篇有关目标检测的论文笔记和学习心得。

R-CNN的意思就是Region based,主要思路就是根据一张图像,提取多个region,再将每个Region输入CNN来进行特征的提取。因此RCNN就可以分为 Region proposals , Feature extraction 两个主要部分,提取的特征就可以输入任意一个分类器来进行分类。 模型的流程图如下:

在训练的时候,首先使用的是已经训练好的CNN网络作为特征提取器,但是由于预训练是在分类数据集上,因此在应用到检测之前要做finetune。也就是说,为了将用ImageNet数据集训练的网络应用到新的任务(检测),新的数据集(region)上,作者将原来的CNN最后的1000类的fc层,更改为了 层, 代表待检测的物体的类别数。然后,对于所有的region,如果它和ground truth的重叠率大于,就认为是正类。 对于分类器的训练,作者发现选择多大的IoU来区分正类和负类非常关键。并且,对于每一类,都会训练一个分类器。

框的回归非常重要,在对每一个region proposal使用分类器进行打分评价之后,作者使用一个回归器来预测一个新的框作为结果。这个回归器使用的特征是从CNN中提取的特征。回归器的训练中,输入是 region proposal 的 和ground truth的 ,目标是学习一种变换,使得region proposal通过该变换能够接近ground truth。同时,希望这种变换拥有尺度不变性,也就是说尺度变化的话,变换不会改变。 如下图所示,每一个regressor会学习一组参数,特征输入是pool 5的特征输出,拟合的目标是 。

Fast-RCNN 主要解决的问题是在RCNN中对于每一个region proposal都进行特征提取,会产生非常多的冗余计算,因此可以先对一张图像进行特征提取,再根据region proposal在相应的特征上进行划分得到对应region的特征(映射关系)。 这样便可以实现共享计算提高速度,但是与SPPnets不同,SPPnets在一副图像得到对应的特征后,从这张图像的特征上proposal对应的部分,采用空间金字塔池化,如下图:

RoI pooling的方法很简单,类似于空间金字塔pooling,它将proposal部分对应卷积层输出的特征(称之为RoI,因为用于做pooling的特征是 region of interest,也就是我们感兴趣的区域)划分成 块,然后对每一块求最大值,最终得到了一个 的特征图。可以看出,它只是空间金字塔pooling的一部分。 但是SPP-nets的空间金字塔也是可以求导的,那么它到底不好在哪里呢?因为当每一个RoI都可能来源于不同的图像的时候(R-CNN和SPPnets的训练策略是从一个batch的不同图像中,分别挑选一个proposal region),SPPNets的训练非常地低效,这种低效来源于在SPPnets的训练中,每个RoI的感受野都非常地大,很可能对应了原图的整个图像,因此,得到的特征也几乎对应了整张图像,所以输入的图像也就很大。 为了提高效率,Fast-RCNN首先选取 个图像,再从每个图像上选择 个RoI,这样的效率就比从每个图像提取一个RoI提高了 倍。

为了将分类和框回归结合起来,作者采用了多任务的loss,来进行联合的训练。具体来说就是将分类的loss和框回归的loss结合起来。网络的设计上非常直接,就是将RoI得到的特征接几个FC层后,分别接不同的输出层。对应于分类部分,特征会接一个softmax输出,用于分类,对于框回归部分,会接一个输出4维特征的输出层,然后分别计算loss,用于反向传播。loss的公式如下:

回归的target可以参考前面的R-CNN部分。

notes

为什么比fast还fast呢?主要原因是在这篇论文中提出了一个新的层:RPN(region proposal networks)用于替代之前的selective search。这个层还可以在GPU上运算来提高速度。 RPN的目的:

为了能够进行region proposal,作者使用了一个小的网络,在基础的卷积层输出的特征上进行滑动,这个网络输入大小为 ,输入后会映射(用 的卷积)为一个固定长度的特征向量,然后接两个并联的fc层(用 的卷积层代替),这两个fc层,一个为box-regressoin,一个为box-classification。如下图:

在每一个滑动窗口(可以参考 ),为了考虑到尽可能多的框的情况,作者设计了anchors来作为region proposal。anchors就是对于每一个滑动窗口的中心位置,在该位置对应的原图位置的基础上,按照不同的尺度,长宽比例框出 个不同的区域。然后根据这些anchors对应的原始图像位置以及区域,和ground truth,就可以给每一个滑动窗口的每一个anchor进行标记,也就是赋予label,满足一定条件标记为正类(比如和ground truth重叠大于一个值),一定条件为负类。对于正类,就可以根据ground truth和该anchor对应的原图的区域之间的变换关系(参考前面的R-CNN的框回归),得到回归器中的目标,用于训练。也就是论文中的loss function部分:

自然地,也就要求RPN的两个并联的FC层一个输出2k个值用于表示这k个anchor对应的区域的正类,负类的概率,另一个输出4k个值,用于表示框回归的变换的预测值。

对于整个网络的训练,作者采用了一种叫做 4-step Alternating Training 的方法。具体可以参考论文

与之前的检测任务稍有不同,mask r-cnn的任务是做instance segmentation。因此,它需要对每一个像素点进行分类。 与Faster R-CNN不同,Faster R-CNN对每一个候选框产生两个输出,一个是类别,一个是bounding box的offset。Mask R-CNN新增加了一个输出,作为物体的mask。这个mask类似于ps中的蒙版。

与Faster R-CNN类似的是,Mask R-CNN同样采用RPN来进行Region Proposal。但是在之后,对于每一个RoI,mask r-cnn还输出了一个二值化的mask。

不像类别,框回归,输出都可以是一个向量,mask必须保持一定的空间信息。因此,作者采用FCN来从每个RoI中预测一个 的mask。

由于属于像素级别的预测问题,就需要RoI能够在进行特征提取的时候保持住空间信息,至少在像素级别上能够对应起来。因此,传统的取最大值的方法就显得不合适。 RoI Pooling,经历了两个量化的过程: 第一个:从roi proposal到feature map的映射过程。 第二个:从feature map划分成7*7的bin,每个bin使用max pooling。

为此,作者使用了RoIAlign。如下图

为了避免上面提到的量化过程

可以参考

作者使用ResNet作为基础的特征提取的网络。 对于预测类别,回归框,mask的网络使用如下图结构:

整体看完这几篇大佬的论文,虽说没有弄清楚每一个实现细节,但是大体上了解了算法的思路。可以看出,出发点都源于深度神经网络在特征提取上的卓越能力,因此一众大神试图将这种能力应用在检测问题中。从R-CNN中简单地用于特征提取,到为了提高速度减少计算的Fast R-CNN,再到为了将region proposal集成进入整个模型中,并且利用GPU加速的RPN,也就是Faster R-CNN。再到为了应用于instance segmentation任务中,设计的RoIAlign和mask。包括bounding box regression,pooling层的设计,训练方法的选择,loss的设计等等细节,无一不体现了大师们的思考和创造力。 可能在我们这些“拿来”者的眼中,这些方法都显得“理所应当”和巧妙,好用,但是,它们背后隐藏的选择和这些选择的思考却更值得我们学习。 以及,对待每一个问题,如何设计出合理的解决方案,以及方案的效率,通用性,更是应该我们努力的方向。

194 评论

鸡汁小笼包包

行人重识别任务的目标是希望在多个不具有重叠区域的摄像场景中实现行人的检索。目前行人重识别根据采用的组件不同可以分为closed-world和open-world两种。closed-world场景相对而言目前研究较深入,其主要针对于不同的应用假设,在多个数据集上都取得较好的性能,比如Market1501,CUHK和DUKE等。 closed-world场景一般研究重点有三部分:深度特征表示学习、深度度量学习和rank优化。而open-world场景则相对更加复杂。本文总结了open-world场景中ReID的五个不同视角,提出了一种AGW基线方法,在多个ReID任务上都取得较好性能。另外,本文还提出了一种新的评估度量 mINP。最后探索了ReID目前亟待解决的一些方向。

基本定义: 非重叠的多个摄像场景中,特定行人的检索问题。具体而言,给定一个待检索的目标行人,ReID希望能够判断这个目标是否出现在不同时刻不同场景不同摄像头的场景中。 基本难点: 行人的视角、图像分辨率变化、光照变化、姿态变化、遮挡,不同模态等。 该综述的不同点:

根据上面五块内容,ReID任务分为closed-world和open-world两类,区别如下:

closed-world场景的一般前提:1)输入时裁剪后的行人图像块;2)有监督学习;3)检索目标一定存在gallery中。 closed-world场景模型一般包含3部分:特征抽取、度量学习和rank 优化。

如下图所示,一般包含四类:

知识点:

ReID的难点包括视角不同,遮挡等,行人区域可能不对齐,这时往往希望通过部件或者区域特征进行对齐。主流趋势是combine全局特征和部件特征。以PDC模型为代表的pose驱动方法,通过pose获得部件信息,然后利用部件的attention进行检索。PCB方式是利用图像均匀划分的典型。其将目标框水平分成6个条带,每个条带进行独立的分类任务学习,在推理阶段将六条条带的特征进行concat表征整体。另外还通过refined part pooling策略增强了部件内部的一致性,具体是计算每个部件与所有像素点的相似度进行重新划分,可以认为是一种non-local的attention。 行人parsing技术能够获得较好的语义部件,提供更对齐的部件特征,但需要额外的pose检测器且由于ReID数据集和Pose数据集的分布差异,易产生错误的pose。均匀划分的策略更灵活,但对严重遮挡和大的背景模糊无能为力。

辅助特征表示学习一般包括额外的标注数据,比如语义标注,和训练样本生成等。

该任务中,每个目标不再是图像区域,而是一段帧序列。

待续(ReID领域新接触,积累不够,综述文章读着好多理解不够深入,先去读具体方法了;( 后面积累了,再回来阅读这个吧。。。留坑)

将行人作为特定的行人检索问题,大多数方法都采用用于图像分类的网络结构作为backbone。其中一些方法通过修改backbone的结果以提取更好的ReID特征,比如对于ResNet50而言,一般将最后一个stage的stripe改为1以增大分辨率(参考文献PCB),或者最后一个pooling层采用自适应的平均池化(这里参考文献是PCB模型,池化时时不同的条带中进行gap),再或者在pooling层后添加具有bn的bottleneck 层(暂停,滚去阅读参考文献75, SVDNet了!(OK,已读完,见 ,和作者说的其实有出入,并不是加了bn,而是希望投影向量正交,从而获得的表观特征在每个维度上相互独立))。 其他的一些为ReID专门设计的网络结构有 FPNN(filter pairing neural network), 通过部件鉴别信息的挖掘同时处理不对齐和遮挡问题(暂停,去读参考文献34,DeepReID (已读, )),[141]提出一种提升邻域差异的层用于捕捉patch特征的差别,进而把这种差异送入后面的层中(感觉类似resnet的思想。(读完, 其实就是提出一种结合了self-attention的part-aware module方法search space中,使用NAS迭代的搜索方法寻找针对于数据集的最优结构,当然说是专门为reid设计的网络结构也没毛病。))

300 评论

MrcuriosityZ

姓名:王梦妮 学号:20021210873 学院:电子工程学院 【嵌牛导读】本文主要介绍了无人驾驶中所需的行人检测算法 【嵌牛鼻子】无人驾驶 环境感知 计算机视觉 SVM Adaboost算法 【嵌牛提问】无人驾驶中所用到的行人检测算法有哪些 【嵌牛正文】 在同样的交通路况下,无人车通过对自身运动状态及行驶环境信息进行分析,决策出最佳行驶策略和行驶方案代替驾驶员完成一系列驾驶行为,从而降低道路交通事故的发生率。而在无人驾驶中最为重要的技术便是环境感知,而在城市道路上有大量的行人出行,只有准确快速地检测出行人与对其进行跟踪,才能避免车撞人。 计算机视觉是研究赋予机器“人眼”功能的科学,通过多个传感器来获取一定范围内的色彩数据,用算法分析得到的数据从而理解周围环境,这个过程模拟了人眼以及大脑的处理过程,从而赋予机器视觉感知能力。现有的行人检测技术大多都是检测照片中的行人目标,这种照片的拍摄大多是拍摄的静止目标,图像的分辨率和像素点包含的语义信息都及其丰富,对应的算法在这样的图片上往往能取得理想的效果,但是用于无人车的“眼睛”,算法的鲁棒性就表现的非常差。这是因为在实际的道路环境中,摄像头需要搭载的车身上,在行进过程中跟随车以一定的速度移动,并且在实际道路中,行人目标往往是在运动的,由此提取出拍摄视频中的一帧就会出现背景虚化,造成像素点包含的语义信息大量减少,增加了行人检测的难度。 行人检测是计算机视觉领域的一个重要研究课题。在实际生活中,行人大多处于人口密集、背景复杂的城市环境中,并且行人的姿态各不相同,如何将行人从色彩丰富、形状相似的环境中快速准确地提取出来,是行人检测算法的难点。 行人检测算法分为两大类,一类是基于传统图像处理,另一类是基于深度学习的方法。近年来随着计算机计算速度的大幅提升,基于深度学习的方法有着越来越高的检测速度与检测精度,在行人检测领域应用越加广泛。 (一)基于传统图像处理的行人检测算法 使用传统的图像处理方法来做行人检测一般都是由两个步骤组成,第一就是需要手工设计一个合理的特征,第二就是需要设计一个合理的分类器。手工设计特征就是找到一种方法对图像内容进行数学描述,用于后续计算机能够区分该图像区域是什么物体,分类器即是通过提取的特征判断该图像区域属于行人目标还是属于背景。在传统的图像处理领域,手工特征有许多种,比如颜色特征、边缘特征(canny算子和sobel算子)以及基于特征点的描述子(方向梯度直方图)等。 学者们一致认为方向梯度直方图是最适合行人检测的人工特征,其主要原理是对图像的梯度方向直方图进行统计来表征图像。该特征是由Dalal于2005提出的,并与SVM分类器相结合,在行人检测领域取得了前所未有的成功。 传统的行人检测方法首先需要通过提取手工设计特征,再使用提取好的特征来训练分类器,得到一个鲁棒性良好的模型。在行人检测中应用最广泛的分类器就是SVM和Adaboost。SVM分类器就是要找到一个超平面用来分割正负样本,这个超平面的满足条件就是超平面两侧的样本到超平面的距离要最大,即最大化正负样本边界。下图即为线性SVM的示意图。Adaboost分类算法的主要原理不难理解,就是采用不同的方法训练得到一系列的弱分类器,通过级联所有的弱分类器来组成一个具有更高分类精度的强分类器,属于一种迭代算法。原理简单易于理解且有着良好的分类效果,唯一不足就是练多个弱分类器非常耗时。下图为面对一个二分类问题,Adaboost算法实现的细节。               (二)基于深度学习的行人检测算法     近年来,随着硬件计算能力的不断增强,基于卷积神经网络的深度学习飞速发展,在目标检测领域取得了更好的成绩。卷积神经网络不再需要去手动设计特征,只需要将图片输入进网络中,通过多个卷积层的卷积操作,提取出图像的深层语义特征。要想通过深度学习的方法得到一个性能良好的模型,需要大量的样本数据,如果样本过少,就很难学习到泛化能力好的特征,同时在训练时,由于涉及到大量的卷积操作,需要进行大量计算,要求硬件设备具有极高的算力,同时训练起来也很耗时。随着深度学习的飞速发展,越来越多基于深度学习的模型和方法不断被提出,深度学习在目标检测领域会有更加宽广的发展空间。 Ross Girshick团队提出了系列行人检测算法,其中Faster R—CNN 算法通过一个区域提议网络来生成行人候选框,在最后的特征图上滑动来确定候选框。Faster RCNN是首个实现端到端训练的网络,通过一个网络实现了特征提取、候选框生成、边界框回归和分类,这样的框架大大提高了整个网络的检测速度。 He Kaiming等人在2017年提出Mask R—CNN算法,该算法改进了Faster·R—CNN, 在原有的网络结构上增加了一个分支进行语义分割,并用ROI Align替代了ROI Pooling,取得了COCO数据集比赛的冠军。

165 评论

相关问答

  • 论文检测笔杆

    几秒钟就可以出报告,安全可靠,原文上传之后即被转换成加密指纹,不存在原文泄漏担忧,一般查重软件的数据库收录的都是知网公开的数据,不会留档的

    Tracy猪猪 5人参与回答 2023-12-10
  • 行人检测论文大全

    这个有专门的检测网站,WPS上应该就有专门检测的,你可以找一下试试看。

    新月之垣 4人参与回答 2023-12-08
  • 行人检测论文汇总

    要看你是哪个学校的 每个学校要求的相似率都是不同的 需要过检测找我 首先要把在准备工作当中搜集的资料整理出来,包括课题名称、课题内容、课题的理论依据、参加人员、

    许多多000 5人参与回答 2023-12-06
  • 人脸关键点检测论文阅读笔记

    最近一直了解人脸检测的算法,所以也尝试学多人脸检测框架。所以这里将拿出来和大家分享一下 Retinaface 与普通的目标检测算法类似,在图片上预先设定好一

    英子888888 2人参与回答 2023-12-08
  • 行人检测毕业论文

    这个有专门的检测网站,WPS上应该就有专门检测的,你可以找一下试试看。

    有毒的少女 6人参与回答 2023-12-10