基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

向AI转型的程序员都关注了这个号????????????

机器学习AI算法工程  公众号: datayx

 loveai.tech

AI图谱,一个全新的IT技术分享社区

原创作者在AI图谱平台上每成功发布一篇文章,通过审核后可奖励人民币30-50元不等,欢迎参与!


一、研究意义

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        对于一张图片,R-CNN基于selective search方法大约生成2000个候选区域,然后每个候选区域被resize成固定大小(227×227)并送入一个CNN模型中,使用AlexNet来提取图像特征,最后得到一个4096维的特征向量。然后这个特征向量被送入一个多类别SVM分类器中,预测出候选区域中所含物体的属于每个类的概率值。每个类别训练一个SVM分类器,从特征向量中推断其属于该类别的概率大小。为了提升定位准确性,R-CNN最后又训练了一个边界框回归模型。训练样本为(P,G),其中P=(Px,Py,Pw,Ph)为候选区域,而G=(Gx,Gy,Gw,Gh)为真实框的位置和大小。G的选择是与P的IoU最大的真实框,回归器的目标值定义为:

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        在做预测时,利用上述公式可以反求出预测框的修正位置。R-CNN对每个类别都训练了单独的回归器,采用最小均方差损失函数进行训练。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        首先介绍Fast-RCNN核心算法模块,即RoI Pooling。基于图像分类任务的卷积神经网络首先将图片重新缩放并才裁剪到固定大小,如AlexNet和ResNet将图片缩放到256尺度并裁剪至224×224大小,然后将裁剪后的图像输入至网络训练。但对于检测任务,图像大小对检测性能有重要的影响。假设输入224×224大小的图像,则很有可能目标对象会因为分辨率过低而无法检测。Fast-RCNN的图像输入并不对图像大小限制,而实现这一点的关键所在,就是RoI Pooling网络层。RoIPooling层在任意尺度的卷及网络特征层,针对每一个候选框在特征层的映射区域提取固定尺度的特征,通过设置不同尺度的RoI Pooling可以提取多尺度特征。RoIPooling实现原理简单而言就是通过设定固定尺度计算出每一次采样的网格大小,然后最大值采样即可。RoI Pooling使用最大池化将任何有效的感兴趣区域内的特征转换为具有H×W(例如,7×7)的固定空间范围的小特征图,其中H和W是RoI Pooling层超参数,独立于任何特定的ROI。Fast-RCNN定义RoI是一个矩形窗口。每个ROI由定义其左上角(r,c)及其高度和宽度

(h,w)的四元组(r,c,h,w)定义。RoI Max Pooling通过将h×w的ROI窗口转换成大小为h/H×w/W的子窗口的HxW网格,然后将每个子窗口中的值最大存储到相应的输出网格单元中。RoI Pooling是SPP-Net中使用的空间金字塔层的特殊情况,其中只有一个金字塔层。然后RoI pooling层得到的特征图送入几个全连接层中,并产生新的特征向量,这些特征向量分别用于一个softmax分类器(预测类别)和一个线性回归器上(用于调整边界框位置)来进行检测。在实现上是使用两个不同的全连接层,第一个全连接层有N+1个输出(N是类别总数,1是背景),表示各个类别的概率值;第二个全连接层有4N个输出,表示坐标回归值(tx,ty,tw,th),这个与R-CNN是一样的,每个类别都预测4个位置坐标值。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        Fast R-CNN与R-CNN的另外的一个主要区别点是采用了softmax分类器而不是SVM分类器,而且训练过程是单管道的,因为Fast R-CNN将分类误差和定位误差合并在一起训练,定位误差采用smooth L1 而不是R-CNN中的L2。因此,整个网络可以端到端的训练。

1.3 Faster-RCNN

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        RPN采用的是二分类,仅区分背景与物体,但是不预测物体的类别,即class-agnostic。由于要同时预测坐标值,在训练时,要先将先验框与ground-truth box进行匹配,原则为:(1)与某个ground-truth box的IoU最高的先验框;(2)与某个ground-truth box的IoU值大于0.7的先验框,只要满足一个,先验框就可以匹配一个ground-truth,这样该先验框就是正样本(属于物体),并以这个ground-truth为回归目标。对于那些与任何一个ground-truth box的IoU值都低于0.3的先验框,其认为是负样本。RPN网络是可以单独训练的,并且单独训练出来的RPN模型给出很多region proposals。由于先验框数量庞大,RPN预测的候选区域很多是重叠的,要先进行NMS(non-maximum suppression,IoU阈值设为0.7)操作来减少候选区域的数量,然后按照置信度降序排列,选择top-N个region proposals来用于训练Fast R-CNN模型。RPN的作用就是代替了Selective search的作用,但是速度更快,因此Faster R-CNN无论是训练还是预测都可以加速。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

1.4 Mask RCNN

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        Faster R-CNN:包含两个部分,提出RPN区域,找到目标框,对ROI进行分类。核心思想就是把图片区域内容送给深度网络,然后提取出深度网络某层的特征,并用这个特征来判断是什么物体,把背景也当成一种类别,故如果是判断是不是20个物体时,实际上在实现是判断21个类。最后再对是物体的区域进行微微调整。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        我们实际要使用的是二维差值来估计f(x,y),我们首先x轴上差值得到f(x,y)和f(x,y+1),然后根据这两个值来差值得到f(x,y)。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

2.1 YOLO算法

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

(x,y,w,h),其中(x,y)是边界框的中心坐标,而w和h是边界框的宽与高。中心坐标的预测值(x,y)是相对于每个单元格左上角坐标点的偏移值,并且单位是相对于单元格大小的。而边界框的w和h预测值是相对于整个图片的宽与高的比例,这样理论上4个元素的大小应该在[0,1]范围。这样,每个边界框的预测值实际上包含5个元素:(x,y,w,h,c),其中前4个表征边界框的大小与位置,而最后一个值是置信度。

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

2.2 SSD算法

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        (2)采用卷积进行检测

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

        (4)预测物体类别

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

三、存在的问题


阅读过本文的人还看了以下:

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测

长按图片,识别二维码,点关注

基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测