精华内容
下载资源
问答
  • 目标检测】RCNN算法详解

    万次阅读 多人点赞 2016-04-05 23:10:36
    深度学习用于目标检测的RCNN算法

    Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.

    Region CNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖,如今供职于Facebook旗下的FAIR。
    这篇文章思路简洁,在DPM方法多年平台期后,效果提高显著。包括本文在内的一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码

    思想

    本文解决了目标检测中的两个关键问题。

    问题一:速度

    经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。

    问题二:训练集

    经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深度网络进行特征提取。可供使用的有两个数据库:
    一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。
    一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。
    本文使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。

    流程

    RCNN算法分为4个步骤

    • 一张图像生成1K~2K个候选区域
    • 对每个候选区域,使用深度网络提取特征
    • 特征送入每一类的SVM 分类器,判别是否属于该类
    • 使用回归器精细修正候选框位置
      这里写图片描述

    候选区域生成

    使用了Selective Search1方法从一张图像生成约2000-3000个候选区域。基本思路如下:

    • 使用一种过分割手段,将图像分割成小区域
    • 查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置
    • 输出所有曾经存在过的区域,所谓候选区域

    候选区域生成和后续步骤相对独立,实际可以使用任意算法进行。

    合并规则

    优先合并以下四种区域:

    • 颜色(颜色直方图)相近的
    • 纹理(梯度直方图)相近的
    • 合并后总面积小的
    • 合并后,总面积在其BBOX中所占比例大的

    第三条,保证合并操作的尺度较为均匀,避免一个大区域陆续“吃掉”其他小区域。

    例:设有区域a-b-c-d-e-f-g-h。较好的合并方式是:ab-cd-ef-gh -> abcd-efgh -> abcdefgh。
    不好的合并方法是:ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh。

    第四条,保证合并后形状规则。

    例:左图适于合并,右图不适于合并。
    这里写图片描述

    上述四条规则只涉及区域的颜色直方图、纹理直方图、面积和位置。合并后的区域特征可以直接由子区域特征计算而来,速度较快。

    多样化与后处理

    为尽可能不遗漏候选区域,上述操作在多个颜色空间中同时进行(RGB,HSV,Lab等)。在一个颜色空间中,使用上述四条规则的不同组合进行合并。所有颜色空间与所有规则的全部结果,在去除重复后,都作为候选区域输出。

    作者提供了Selective Search的源码,内含较多.p文件和.mex文件,难以细查具体实现。

    特征提取

    预处理

    使用深度网络提取特征之前,首先把候选区域归一化成同一尺寸227×227。
    此处有一些细节可做变化:外扩的尺寸大小,形变时是否保持原比例,对框外区域直接截取还是补灰。会轻微影响性能。

    预训练

    网络结构
    基本借鉴Hinton 2012年在Image Net上的分类网络2,略作简化3
    这里写图片描述
    此网络提取的特征为4096维,之后送入一个4096->1000的全连接(fc)层进行分类。
    学习率0.01。

    训练数据
    使用ILVCR 2012的全部数据进行训练,输入一张图片,输出1000维的类别标号。

    调优训练

    网络结构
    同样使用上述网络,最后一层换成4096->21的全连接网络。
    学习率0.001,每一个batch包含32个正样本(属于20类)和96个背景。

    训练数据
    使用PASCAL VOC 2007的训练集,输入一张图片,输出21维的类别标号,表示20类+背景。
    考察一个候选框和当前图像上所有标定框重叠面积最大的一个。如果重叠比例大于0.5,则认为此候选框为此标定的类别;否则认为此候选框为背景。

    类别判断

    分类器
    对每一类目标,使用一个线性SVM二类分类器进行判别。输入为深度网络输出的4096维特征,输出是否属于此类。
    由于负样本很多,使用hard negative mining方法。
    正样本
    本类的真值标定框。
    负样本
    考察每一个候选框,如果和本类所有标定框的重叠都小于0.3,认定其为负样本

    位置精修

    目标检测问题的衡量标准是重叠面积:许多看似准确的检测结果,往往因为候选框不够准确,重叠面积很小。故需要一个位置精修步骤。
    回归器
    对每一类目标,使用一个线性脊回归器进行精修。正则项 λ = 10000 \lambda=10000 λ=10000
    输入为深度网络pool5层的4096维特征,输出为xy方向的缩放和平移。
    训练样本
    判定为本类的候选框中,和真值重叠面积大于0.6的候选框。

    结果

    论文发表的2014年,DPM已经进入瓶颈期,即使使用复杂的特征和结构得到的提升也十分有限。本文将深度学习引入检测领域,一举将PASCAL VOC上的检测率从35.1%提升到53.7%
    本文的前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用。这两步在GPU上约需13秒。
    同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。这两步对于100K类别只需10秒。

    以本论文为基础,后续的fast RCNN4(参看这篇博客)和faster RCNN5(参看这篇博客)在速度上有突飞猛进的发展,基本解决了PASCAL VOC上的目标检测问题。


    1. J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013. ↩︎

    2. A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012 ↩︎

    3. 所有层都是串行的。relu层为in-place操作,偏左绘制。 ↩︎

    4. Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International Conference on Computer Vision. 2015. ↩︎

    5. Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” Advances in Neural Information Processing Systems. 2015. ↩︎

    展开全文
  • 目标检测识别算法研究

    千次阅读 2019-05-03 16:20:33
    一、目标检测识别 目标检测识别是很多计算机视觉任务的基础,通俗地讲,其目的是在目标场景中将目标用一个个框框出来,并且识别出这个框中的物体。即包括加测(where)和识别(what)两个过程。 1.技术难点 ...

     一、目标检测与识别
           目标检测与识别是很多计算机视觉任务的基础,通俗地讲,其目的是在目标场景中将目标用一个个框框出来,并且识别出这个框中的物体。即包括加测(where)和识别(what)两个过程。

     1.技术难点
            目标检测与识别任务对于人类来说,是一项非常简单的任务,但对于计算机却相当的困难,究其原因,是由很多不定因素所造成的,我将其总结为“八不定因素”,如下表:

    物体的尺寸不定物体的位置不定
    物体的姿态不定物体的数量不定
    物体的光照环境不定物体的遮盖程度不定
    物体的颜色不定物体的背景不定

    2.算法分类
            经过数十年的发展,在各国学者的共同努力下,目标检测与识别技术得到飞速发展,各类优秀算法不断涌现,算法性能不能提高,截止目前,主要有两大类:基于传统图像处理和机器学习算法的目标检测与识别算法和基于深度学习的目标检测与识别方法。
    ① 基于传统图像处理和机器学习算法的目标检测与识别算法
           流程:目标特征提取目标识别目标定位
           这里的特征都是人为设计的,例如SIFT(Scale Invariant Feature Transform 尺度不变特征变换算法),HOG(Histogram of Oriented Gradient 方向梯度直方图特征),SURF(Speeded Up Robust Features 加速稳健特征)等,通过这些特征对目标进行识别,然后结合相应的策略对目标进行定位。
    ② 基于深度学习的目标检测与识别算法
           目前,基于深度学习的目标检测和识别算法已经成为主流,大致流程为:图像的深度特征提取->基于神经网络的目标定位于识别,其中用到的深度神经网络模型是CNN,根据细节的不同可以再次细分,分类以及代表算法如下表:

    类别代表算法
    基于区域建议的目标检测与识别算法R-CNN/Fast-R-CNN/Faster-R-CNN
    基于回归的目标检测与识别算法YOLO/SSD
    基于搜索的目标检测与识别算法基于视觉注意的AttentionNet/基于强化学习的算法

    3.应用领域
           目标检测与识别作为计算机领域的基石,在生活中很多领域有着广泛的应用,也越来越受到重视,下图从应用领域、具体项目、代表公司三个方面进行了总结:

    应用领域具体项目代表公司
    安全领域指纹识别、人脸识别Face++、依图科技、深醒科技
    军事领域地形勘察、飞行物识别全悉科技
    交通领域车牌号识别、无人驾驶、交通标志识别纵目科技、图森科技、驭势科技
    医疗领域心电图、B超、健康管理、营养学智影医疗、图玛深维
    生活领域智能家居、购物、智能测肤Yi+、木薯科技、肌秘

    4.顶级期刊
           随着目标检测与识别技术的发展,越来越多的相关研究成果发表在各种顶级期刊或者会议上,这些期刊是我们学习资源的主要来源,可以让我们及时跟踪技术的发展:

    期刊全称URL
    ElsevierScienceDirect OnSite, SDOLhttp://www.sciencedirect.com/
    ICCVIEEE International Conference on Computer Visionhttp://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1000149
    CVPRIEEE Conference on Computer Vision and Pattern Recognitionhttp://ieeexplore.ieee.org/xpl/conhome.jsp?punumber=1001809
    PAMIIEEE Transactions on Pattern Analysis and Machine Intelligencehttp://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=34
    IJCVIJCVhttp://link.springer.com/journal/11263
    ECCVECCVhttp://link.springer.com/search?query=ECCV
    TIPTIPhttp://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=83
    CVPapersCVPapers http://www.cvpapers.com/index.html

    二、专栏内容
           接下来让我们将一起进入《目标检测与识别》专栏,这一专栏,主要介绍基于深度学习的目标检测和识别算法,一星期更新一篇,每一篇对应一个算法,从R-CNN到SSD,由易到难,不断推进,如果您也对此感兴趣,可以关注我们的公众号《知你驿站》,您的关注就是我们的动力,期待您的加入。
    三、参考文章
          HOU_JUN   | http://www.cnblogs.com/houjun/p/8424893.html
          笨拙的石头  | https://blog.csdn.net/qq_32241189/article/details/80573087
          yyhssg         | https://www.cnblogs.com/yhyue/p/9247962.html


                                                                                                                              迷茫不可怕,可怕的是迷茫之后还是迷茫 ---quinta

    展开全文
  • title : 目标检测②传统检测算法 目标检测实验报告 检测所用软硬件+云服务器: 硬件:macOS或者windows电脑 软件:pycharm+生成的测试集 云服务器:滴滴云(https://www.didiyun.com/activity.html)输入博主的大师...

    title : 目标检测②传统检测算法

    目标检测实验报告
    检测所用软硬件+云服务器:
    硬件:macOS或者windows电脑
    软件:pycharm+生成的测试集
    云服务器:滴滴云(https://www.didiyun.com/activity.html)输入博主的大师码:8996 ,可以和博主一样9折享受服务

    什么是传统目标检测?
    首先我们先来了解一下什么是目标检测?简单来说就是把存在的目标从图片中找到并识别出来。我们发现这对于我们人来说十分简单,但对于计算机而言,它是怎么做到的呢?
    传统目标检测方法分为三部分:区域选择 → 特征提取 → 分类器

    即首先在给定的图像上选择一些候选的区域,然后对这些区域提取特征,最后使用训练的分类器进行分类。下面我们对这三个阶段分别进行介绍

    2.2.1区域选取
    这一步是为了对目标的位置进行定位。由于目标可能出现在图像的任何位置,而且目标的大小、长宽比例也不确定,所以最初采用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的尺度,不同的长宽比。这种穷举的策略虽然包含了目标所有可能出现的位置,但是缺点也是显而易见的:时间复杂度太高,产生冗余窗口太多,这也严重影响后续特征提取和分类的速度和性能。(实际上由于受到时间复杂度的问题,滑动窗口的长宽比一般都是固定的设置几个,所以对于长宽比浮动较大的多类别目标检测,即便是滑动窗口遍历也不能得到很好的区域)

    2.2.2特征的设计
    传统检测方法的特征提取算法主要有两种:HOG特征和lbp算法
    HOG:方向梯度直方图(Histogram of Oriented Gradient, HOG)。使用梯度直方图来描述的形状特征。主要在行人检测方面。从名字可知,主要将图像中的pixel的方向变化作为特征。因为梯度变化主要是发生在物体边缘,这样就可以知道物体的大致形状。可以进行物体分类或者检测。经典的特征提取一般需要一些超参,比如窗口大小等。
    提取方法:讲一个image灰度化—>颜色空间的标准化—>计算图像每个像素的梯度 —>将图像划分成小cells—>统计每个cell的梯度直方图 —> 将每几个cell组成一个block—>将图像image内的所有block的HOG特征descriptor串联起来。 Lbp算法:LBP(Local Binary Pattern,局部二值模式),反映了局部的纹理特征,跟一个像素的邻域有关。对每个像素的邻域做减法,大于用1表示,否则用0表示则产生了一个二进制数来表示这个像素的局部纹理。这个邻域其实也相当于一个window,window的形状也是可以改变的。

    2.2.3分类器的设计
    一、利用AdaBoost算法进行训练
    并不是所有特征都是有用的,AdaBoost特征分类器具有特征选择的能力。
    AdaBoost 将一系列的弱分类器通过线性组合,构成一个强分类器,
    如下所示:

    在这里插入图片描述
    在这里插入图片描述
    是一个强分类器。

    在这里插入图片描述是一个弱分类器,其为一个简单的阈值函数
    在这里插入图片描述为阈值,
    在这里插入图片描述
    在这里插入图片描述为系数。

    二、训练弱分类器
    计算所有训练样本的特征值,并将其从小到大排序,随机选取一个特征值作为阈值,把所有元素分为两部分,小于阈值的一部分分类为人脸,大于阈值的一部分分类为非人脸。如下图所示,红色表示人脸,蓝色表示非人脸。

    假如有5个样本,前两个为人脸,后三个为非人脸,用11000表示。如果阈值在第一个之前,通过弱分类器判定为:00000,有两个误差,如果阈值在第一个和第二个之间,通过弱分类器判定为:10000,有1个误差,如果阈值在第二个和第三个之间,通过弱分类器判定为:11000,有0个误差,依次类推,这样共有6个误差,然后从中找到一个误差最小的当成阈值,这样就训练好了一个最优的弱分类器。

    在这里插入图片描述
    三、训练强分类器
    假设有N个训练样本

    在这里插入图片描述
    ,其中有M个正样本,L个负样本,如果在这里插入图片描述

    是人脸图像,则在这里插入图片描述

    , 否则在这里插入图片描述

    其步骤如下:在这里插入图片描述

    每一级分类器使用的训练集中的负样本,都是上一级被错分的,即false positive,误检率或假阳性。这使得下一级分类器更加关注那些更难的(容易被错分的)样本。

    2、2、4 总结:
    传统检测历史久远,然而一直以来存在着两个主要问题:
    1)基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余
    2)手工设计的特征对于多样性的变化没有很好的鲁棒性

    展开全文
  • 基于是否进行畸变校正预处理,将近年来LFOV域的目标检测识别算法分为基于畸变校正的目标检测识别算法和基于原始LFOV图像的目标检测识别算法两类,并针对这两类算法进行了全面梳理和总结,对当前LFOV域的目标检测...
  • 目标检测算法汇集介绍

    万次阅读 多人点赞 2018-09-15 19:15:33
    相比与图片分类,目标检测算法结果要求不仅识别出图片中的物理类别并且输出物体的位置参数。 物体的位置通过bounding box表示。bounding box指的是能够框出物体的矩形框在图片中的对应参数,如下图所示。 图中...

    目标检测算法

    目标检测概念

    目标检测这里阐述两个应用场景,1 为物体位置检测,2 为物体关键点检测。

    1 物体位置检测

    相比与图片分类,目标检测算法结果要求不仅识别出图片中的物理类别并且输出物体的位置参数。
    物体的位置通过bounding box表示。bounding box指的是能够框出物体的矩形框在图片中的对应参数,如下图所示。
    图中红色框,就称为一个bounding box,bounding box由个参数来描述 [ b x , b y , b h , b w ] [b_x, b_y, b_h, b_w] [bx,by,bh,bw], 其中( b x , b y b_x, b_y bx,by)对应矩形框的中心点坐标, b h b_h bh则对应矩形框的高度, b w b_w bw则对一个矩形框的宽度。如下图所示。

    从而 b x = 0.5 , b y = 0.7 , b h = 0.3 , b w = 0.4 b_x=0.5, b_y=0.7, b_h=0.3, b_w=0.4 bx=0.5,by=0.7,bh=0.3,bw=0.4
    将图片作为模型的输入, 输出为物体的类别和bounding box参数。如下图所示。
    这里写图片描述
    这里我们假设的是一个图片中指定为一个物体的类别及位置。
    吴恩达老师的课程中这样定义模型输出 y ^ = [ p c , b x , b y , b h , b w , c 1 , c 2 , c 3 ] T \hat{y}=[p_c, b_x, b_y, b_h, b_w, c_1, c_2, c_3]^T y^=[pc,bx,by,bh,bw,c1,c2,c3]T,(不知道如何把T改为正体,欢迎留言说明。)

    y ^ = [ p c , b x , b y , b h , b w , c 1 , c 2 , c 3 ] T \hat{y}=[p_c, b_x, b_y, b_h, b_w, c_1, c_2, c_3]^T y^=[pc,bx,by,bh,bw,c1,c2,c3]T
    其中,
    p c p_c pc为图中有物体的概率;
    [ b x , b y , b h , b w ] [b_x, b_y, b_h, b_w] [bx,by,bh,bw]则是对应物体的位置(bounding box)参数;
    c 1 , c 2 , c 3 c_1, c_2, c_3 c1,c2,c3则是对应哪个物体的class。少一个 c 4 c_4 c4是因为 c 1 , c 2 , c 3 c_1, c_2, c_3 c1,c2,c3均为0时,则 c 4 = 1 c_4=1 c4=1

    2 物体关键点检测(landmark detection)

    物体关键点检测的应用场景有,人脸关键点(眼睛、鼻子、嘴及脸的边缘点)的检测,人体姿态检测(头, 胳膊及腿的各个关键点的检测),还有比如天池的衣服关键点检测等都是属于这个范畴的应用场景。
    输入为图片,输出则是这一系列关键点的坐标位置 [ [ l 1 x , l 1 y ] , [ l 2 x , l 2 y ] , . . . , [ l n x , l n y ] ] [[l_{1x},l_{1y}], [l_{2x},l_{2y}], ... , [l_{nx},l_{ny}]] [[l1x,l1y],[l2x,l2y],...,[lnx,lny]],即landmark。
    人体关键点检测
    人脸关键点检测

    物体位置检测算法

    本文只是大致介绍位置检测的算法特点。
    其实RCNN, Fast-rcnn, SPP-net, Faster-rcnn都可以分为两个主要部分:1. region proposal 提取regions;而YOLO及SSD则通过分格及anchor的方法来代替大批量的regions,相比YOLO及SSD计算量小,从而快一些。
    接下来列出每个网络的主要特点。

    RCNN介绍

    相关概念介绍:
    regions就是从原图像上截取的有可能包含物体的图像区域集合。
    bounding box是指包含物体的矩形框。文中前面有介绍。
    IOU(Intersection over Union)用来衡量两个regions之间的重叠度。上图。

    矩形框A、B的一个重合度IOU计算公式为:
    IOU=(A∩B)/(A∪B)
    就是矩形框A、B的重叠面积占A、B并集的面积比例:
    IOU=SI/(SA+SB-SI)

    NMS(极大值抑制)是挑出不同类中的最大值,舍弃相近的但是不是极大的值。
    在目标识别中,用于最后的bounding box筛选。经过SVM判别的bounding boxes,包含了所有类别的bounding boxes,通过NMS实现,最后留下不同类的最优的bounding box。详细的实现原理参考博客

    RCNN结构主要步骤:

    • 图像对应的候选区域(1K~2K个)生成;
    • 候选区域的特征提取;
    • 特征分类(SVM);留下包含物体的regions,从而作为bounding boxes。
    • bounding box筛选,并修正。

    各环节使用技术:

    • 候选区域生成
      使用Selective Search生成图像的候选区域。
      大体原理:
      是一种图像分格的手段,通过合并相似颜色或文理且相邻的区域,实现图像分割,将最后的区域去重输出。Selective Search源码地址
    • 特征提取
      使用训练好的神经网络提取regions特征。
      RCNN训练特征主要经过2个阶段:
    1. Pre-train:
      使用ILVCR 2012数据集及简化版的Hinton 2012年在Image Net上的分类网络来进行预训练。(全连接层提取特征4096维,再使用全连接(4096->1000)实现1000类分类)。
    2. Fine-tune:
      替换Pre-train的最后输出层,换为(4096->21)21分类的输出层,使用数据集PASCAL VOC 2007来训练网络。此处训练的正负样本的标定:IOU>0.5则为正样本。
    • 特征分类
      使用一系列SVM来分类经过网络提取到的特征,SVM个数等于要标出的物种数。并且使用了hard negative mining。
      SVM训练时,正负样本标定:IOU>0.3则为正样本。
      在测试时,SVM输出为正的regions作为待筛选的bounding boxes。
    • bounding box筛选
      使用极大值抑制(NMS)。筛选得到每一类对应的最优的bounding box。
      最后通过bounding box回归精细优化bounding box。
      bounding box回归就是通过神经网络拟合平移和放缩两个函数,使用这两个函数使更加拟合真实的位置区域。loss就是原始box与目标box之间的距离。

    RCNN网络的缺点

    1. 训练需要几个阶段;
    2. SS得到的regions是不同尺寸的。不同尺寸的regions需要经过,裁剪及放缩到相同的尺寸,这样会使一些内容丢失。
    3. 每个region的都需要经过模型去提取,并存放至磁盘;

    SPP-net介绍

    SPP-net(Spatial Pyramid Pooling) 提出主要结构:

    1. 提出金字塔结构,使模型可以处理不同尺寸的输入。
    2. 使用regions到特征层之间的映射,从而实现只提取一次完成的图像,regions特征通过映射关系来获取。
      SPP-net的缺点:
    3. 金字塔结构虽然使得模型处理不同尺寸输入的问题,但同时使模型不同同时训练金字塔左侧的卷积层。至于原因,作者给出的原因是金字塔的pooling层对应的感受野太大。本人觉得感受野太大,会使梯度传递不稳定。
      详细结构不作介绍。
    4. 训练依旧需要几个阶段。依旧采用SVM实现分类。
      SPP-net中技术点讲解

    1. 金字塔讲解

    实际原理就是,对每通道的特征进行分块,分成16*16, 4*4, 1*1块,挑出每块的最大值,得到16*16, 4*4, 1*1特征,展开成16*16 + 4*4 + 1*1为向量,输给全连接层。
    2. regions到特征层之间是如何映射

    图中输入层蓝色加深部分对应每一层的区域,一个区域对应经过卷积/pooling后的对应区域尺寸计算方法,与原图特征经过卷积/pooling后的对应尺寸相同。注:仅仅是借用这个图表示一下regions输入与其他层之间的对应关系。该图是原意旨在说利用1x1卷积核实现全卷积。

    Fast-RCNN介绍:

    Fast-RCNN优化技术点

    1. 提出ROI pooling layer,采用单层金字塔结构,其实就是在特征层只使用一个金字塔max-pooling,进一步简化了regions对应特征层的映射关系。
    2. 提出梯度传递方法,实现整个网络网络结构的全部训练。
    3. 在两层全连接中加入SVD降维,加快训练速度。
    4. 输出使用两个softmax,一个用于class分类,一个用于bounding box回归。

    Fast-RCNN优化技术点讲解
    ROI pooling layer讲解:
    POI pooling layer 层是位于卷积后,全连接之前的layer。
    输入为卷积层输出(H*W*N)及R个ROI元组,R表示regions的个数。每个ROI是一个元组(n, r, c, h, w),n是特征映射的索引,n∈{0, … ,N-1},(r, c)是RoI左上角的坐标,(h, w)是高与宽。
    输出是max-pool过的特征映射,H’ x W’ x C的大小,H’≤H,W’≤W。金字塔的的切割参数:bin-size ~ h/H’ x w/W’,这样就有H’ x W’个,bin的大小是自适应的,取决于RoI的大小。

    Faster-RCNN介绍:

    Faster-RCNN优化技术点
    提出RPN(Region Proposal Networks)区域生成网络,使用神经网络生成regions,代替RCNN中的Selective Search方法。节省regions proposal的时间。基本实现end to end训练。

    RPN大致原理介绍:
    在最后的卷积层(即特征提取层)上使用滑动窗口来预测。使用3x3的卷积核对得到的256维的特征图进行滑动卷积,分两路分别使用利用1*1/卷积,最后一路输出所有anchors的目标和非目标(背景)的概率,另一路输出anchors box相关的四个参数,包括box的中心坐标x和y,box宽w和长h。每次滑动卷积,输出k个anchors的是否包含物体以及位置信息。因此最后的RPN的输出是一路为2k对应分类(是否包含物体),另一路为4k对应anchors的位置信息。

    作者采用四步训练法:
    1) 单独训练RPN网络,网络参数由预训练模型载入;
    2) 单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入。具体而言,RPN输出一个候选框,通过候选框截取原图像,并将截取后的图像通过几次conv-pool,然后再通过roi-pooling和fc再输出两条支路,一条是目标分类softmax,另一条是bbox回归。截止到现在,两个网络并没有共享参数,只是分开训练了;
    3) 再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;
    4) 那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。

    YOLO算法介绍

    YOLO技术大致原理
    将一幅图像分成SxS个网格(grid cell),如果某个object的中心 落在这个网格中,则这个网格就负责预测这个object。

    每个网格要预测落在该网格的物体类别及B个bounding box信息,每个bounding box预测信息包含自身位置信息(四个变量)和confidence值。
    confidence代表了所预测的box中含有object的置信度和这个box预测的有多准(与标注的ground region的IOU)两重信息。
    c o n f i d e n c e = P r ( o b j e c t ) ∗ I O U p r e d t r u t h confidence = P_r(object) * IOU_{pred}^{truth} confidence=Pr(object)IOUpredtruth
    其中如果有object落在一个grid cell里,第一项取1,否则取0。 第二项是预测的bounding box和实际的groundtruth之间的IOU值。

    每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。则SxS个网格,每个网格要预测B个bounding box还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。
    注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的。

    举例说明: 在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。
    在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score:
    c l a s s − s p e c i f i c c o n f i d e n c e s c o r e = P r ( c l a s s i ) ∗ c o n f i d e n c e class-specific confidence score = P_r(class_i) * confidence classspecificconfidencescore=Pr(classi)confidence
    以上YOLO部分参考

    展开全文
  • 目标检测算法对比

    万次阅读 2018-04-14 21:49:58
    R-CNN。 来自 ICCV 2015,可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,...包括本文在内的一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目...
  • 基于深度学习的目标检测识别算法

    千次阅读 2018-12-19 15:02:37
    目前可以将现有的基于深度学习的目标检测识别算法大致分为以下三大类: 基于区域建议的目标检测识别算法,如R-CNN, Fast-R-CNN, Faster-R-CNN; 基于回归的目标检测识别算法,如YOLO, SSD; 基于搜索的目标...
  • 传统目标检测算法只适应于有明显特征,背景简单的情形,而在实际应用中,背景复杂多变,而且待检测的目标复杂多变,很难通过一般的抽象特征完成对目标的检测,而深度学习可以提取同一目标丰富的特征,完成目标的检测...
  • 传统目标检测算法

    千次阅读 2019-12-22 17:20:42
    文章目录传统目标检测算法Viola-Jones方法(人脸识别)Haar特征抽取训练人脸识别分类器(adaboost分类器)滑动窗口HOG + SVM (行人检测、opencv实现)HOG特征优点HOG特征提取算法的主要流程DPM(物体检测)DPM特征...
  • Github目标检测算法大全(包含图): 刷榜排名记录: 目标检测综述论文: 文章学习可以参考博客 论文截图: Github目标检测算法大全(包含图): https://github.com/hoya012/deep_learning_object_detection ...
  • 3D点云目标检测算法汇总

    千次阅读 2020-02-15 21:23:45
    来源:汇总|3D点云目标检测算法 前言 前面总结了几种基于激光雷达点云数据的3D目标检测算法,还有一些算法不再单独列出,这里做个简单总结来分享下! 基于激光雷达点云的3D目标检测算法 1、End-to-End Multi-View ...
  • 常见传统目标检测算法

    万次阅读 多人点赞 2019-03-29 18:15:57
    3.2008年,rgb大神(记住这个人,后面的R-CNN系列检测算法也是出自他之手)研究出了著名的DPM算法,在深度学习方法成熟之前的很长一段时间里,就是这个算法一直在目标检测中发挥作用; 以上算法是属于传统目标检测的...
  • 近年来,随着深度学习对图像分类准确度的大幅度提高,基于深度学习的目标检测算法逐渐成为主流。梳理了目标 检测算法的发展与现状,并作出展望:总结了传统算法与引入深度学习的目标检测算法的发展、改进与不足,并...
  • 结合深度学习技术,提出了一种基于目标检测算法的农田病虫害识别方法,实现了农田病虫害的自动识别,提高了识别精度。 首先,建立有标签的农作物有害生物数据库; 然后使用Faster R-CNN算法,模型使用改进的...
  • 看了这篇文章后(链接),用这篇博文总结一下目前主流的目标检测算法的步骤。 目录传统的目标检测算法R-CNN(Region Proposal + CNN)Fast R-CNNFaster R-CNNSSDYolov3Yolov3与SSD的区别 传统的目标检测算法 卷积...
  • 目标检测算法分类

    千次阅读 2019-05-12 16:51:24
    两步走的目标检测:先进行区域推荐,而后进行目标分类 代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN 端到端的目标检测:采用一个网络一步到位 代表:YOLO、SSD 先来回归下分类的原理,这是一个常见的CNN...
  • YOLO目标检测算法

    千次阅读 2020-03-30 15:01:09
    本文主要介绍YOLO目标检测算法,包括YOLOv1、YOLOv2和YOLOv3。
  • 上一章我们了解到,物体识别检测算法是在传统CNN算法基础上加上目标区域建议策略和边框回归算法得到的。前辈们的工作主要体现在目标区域建议的改进策略上,从最开始的穷举建议框,到划分图像区域,再到从特征图上...
  • 目标检测算法优化技巧

    千次阅读 多人点赞 2019-02-28 08:52:07
    论文:Bag of Freebies for Training Object ...这篇论文介绍目标检测算法的一些优化技巧,目前已经在GluonCV中实现了,整体看下来和之前的那篇图像分类算法优化技巧的论文(Bag of Tricks for Image Classificat...
  • 目标检测算法种类及展望

    千次阅读 2017-06-28 10:02:29
    目标检测算法种类及展望
  • 目标检测算法:rcnn

    千次阅读 2018-10-24 23:38:16
    目标检测算法-rcnnRCNN(regions with CNN features)关于边框回归(bounding box)关于选择搜索(selective search)图像分割算法(Effective graph-based image segmentation)难负例挖掘(hard negative mining method)...
  • 目前所有的单目标检测算法如GOTURN,KCF,TLD等,都需要在初始化要跟踪目标的位置, 在此后的所有时刻中,只跟踪初始时刻选的的那个目标,不能更换目标。 假设视频中有多个行人,拿GOTURN来说,可不可以将previous ...
  • 一种用于目标检测的暴力方法,是从左到右、从上到下滑动窗口,利用分类识别目标。使用不同大小和宽高比的窗口。 选择性搜索 为了提升性能,尽量减少窗口数量,于是使用候选区域方法,创建目标检测的感兴趣区域(ROI...
  • 目标检测(7)—目标检测算法综述

    千次阅读 2019-04-08 19:37:32
    在前面几节中,我们已经介绍了什么是目标检测,以及如何...这里将会综述一下当前目标检测的研究成果,并对几个经典的目标检测算法进行概述,本文内容来自基于深度学习的目标检测,在后面几节里,会具体讲解每一种...
  • 使用matlab编写的运动目标跟踪算法,核心代码均自己手写,包括帧间差分法,ViBe算法和高斯混合建模法,并且使用了matlab GUI,可直接选择视频查看算法效果。
  • 计算机视觉目标检测算法综述

    万次阅读 2018-08-15 11:11:14
    传统目标检测三步走:区域选择、特征提取、...深度学习时代目标检测算法的发展: Two-Stage: R-CNN 论文地址:Rich feature hierarchies for accurate object detection and semantic segmentation 地位:是用...
  • 汇总|3D点云目标检测算法

    千次阅读 2020-02-15 21:26:19
    作者:Tom Hardy Date:2020-02-14 来源:汇总|3D点云目标检测算法
  • 目标检测算法之YOLO运行流程

    千次阅读 2019-08-06 09:32:58
    目标检测算法之YOLO 一、YOLO的概念 YOLO这个名字完整体现了算法的精髓:You Only Look Once 它与RCNN系列算法不同。RCNN系列算法(RCNN/Fast RCNN/Faster RCNN)是two-stage模式,即经过了两次检测,第一次是...
  • (自己写的,需要转载请联系作者,或者标明出处呀,欢迎加微信交流:wx604954) ...本文介绍了目前发展迅猛的深度学习方法在目标检测中的最新应用进展,然后介绍了基于深度学习的目标检测算法在医学图像领域的应...
  • 目标检测算法——SSD详解

    万次阅读 多人点赞 2019-02-28 15:20:07
    目录 一、 背景(基本介绍) 二、 网络结构 三、 具体过程 1. default box 匹配 2. 损失函数 ...SSD 算法的改进:DSSD 1. DSSD 网络结构 图19 VGG网络与ResNet网络的对比 2. 实现细节 3. 训练...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,389
精华内容 41,355
关键字:

包的识别目标检测算法