目标检测(上)

一、目标检测概述

  • 什么是目标检测?
     目标检测不仅要在图像中找出目标物体,还要标记出其具体位置。

    目标检测.png

  • 目标检测的难点?

目标检测的难点.png
  • 常见的问题:
     定位不准确
     识别的类别错位
     把背景误认为是目标
     检测的目标物错位
常见的问题.png

二、传统目标检测

 传统的目标检测一般分为三个阶段:首先在给定的图像上选择一些候选的区域,然后对这些区域提取特征,最后使用训练的分类器进行分类

  • 区域选择
    采用穷举法滑动窗口,选择出目标可能存在的窗口。
  • 特征提取
    手动特征提取,常用的特征提取法有SIFT和HOG等。
  • 分类器
    主要有SVM,Adaboost等

\color{green}{综上所述},传统目标检测存在两个主要问题:1.基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;2.是手工设计的特征对于多样性没有很好的鲁棒性。

1.基于HOG的目标检测

1)图像预处理(统一亮度、色彩强度)
2)计算图像中每一个像素点的梯度大小和方向
3)将图像分为8*8像素的模块,使用HOG计算次模块的向量表达(向量长度为9)
4)与4个相邻的区域做四次Normalization,将四次的Normalization的结果连接为一个长度为36的向量,并且将其正则化成为单位向量
5)将图像向量作为分类器的输入,训练图像并分类。

基于HOG的目标检测.png

三、RCNN家族系列

 针对传统目标检测中存在的两个问题:穷举法滑动窗口冗余手动特征提取效果不好,RCNN系列采取了相应的解决措施。

RCNN

  • 针对滑动窗口
    RNN采用了\color{green}{selective search算法},对图像进行region proposal(候选区域)的选取。这可以保证在选取较少窗的情况保持较高的召回率,并且获取的候选窗口要比滑动窗口的质量更高。

  • 针对特征选取
    RNN采用\color{green}{卷积神经网络(CNN)}进行图像特征提取。

 使用Region proposal+CNN的RCNN框架,代替了使用的滑动窗口+手工设计特征的传统目标检测结构,使得目标检测取得了巨大突破。

1.1 RCNN检测的总体流程:

 1)用selective search算法选取候选框
 2)将候选区域resize成CNN输入的尺寸,进行特征提取
 3)使用SVM进行分类(为每个类都训练一个SVM分类器)

RCNN检测流程.png
1.2 RCNN训练阶段的流程:

1)预训练
 先在ImageNet上训练一个分类神经网络(CNN)

2)选取候选框
 用selective search算法选取候选框,并将候选框resize为同样大小

3)Fine-tuning
 在自己的训练数据集中微调预训练好的CNN:把ImageNet上预训练的网络从1000个输出,改为K+1个输出,作为一个识别K+1种类别的分类问题。(其中K为自己训练数据集中感兴趣的目标类别数,1为背景类:IOU<0.5的预选框)

4)提取特征向量
 将每一个候选区域输入到Fine-tune后的CNN中,去掉CNN的最后一个分类层,就得到了图像的特征向量(类似Image caption项目)

5)训练SVM分类器
 使用特征向量为每一个类别训练一个二元SVM分类器。(候选区域与真实区域的IOU值大于0.3的为正样本,其它为负样本)

6)预测目标位置
 为了减少Selective Search选取的候选区定位差误,使用regression模型预测新的定位(x, y, w, h)

1.3 RCNN预测阶段的流程:

 训练阶段,数据做了什么处理,测试阶段也要做同样的处理。在RCNN中,测试集数据也要先使用selective算法提取图像预选框,然后再进行模型预测。

1)选取预选框
 使用selective search选取测试图像的预选框,并resize为固定大小

2)提取图像特征向量
 将预选框输入到训练好的CNN中,进行图像特征提取

3)类别预测
 将特征向量输入到为该类别训练的SVM分类器进行类别预测

4)位置预测
 使用Bounding-box回归,预测目标最终的位置

1.4 RCNN架构
RCNN架构.png
1.5 RCNN缺点:
  • 预选框选取速度慢。
    对于每一张图,需要使用Selective Search算法选择2000个候选框,这个过程本身就比较慢。
  • 特征提取速度慢。
    每个预选框都要单独进入CNN中进行特征提取,存在大量重复计算
  • 四个分离的部分没有重用计算:
    Selective Search:选择候选区域
    CNN:提取图像特征
    SVM:目标类别识别
    Bounding-box回归:定位
Selective Search算法原理

1)使用图像分割算法创建候选区域
2)使用贪心算法合并候选区域(通过相邻区域的相似度)
3)重复迭代第二步,直到达到停止条件

Selective Search算法.png
Bounding-box回归

Bounding-box 回归是用来微调预选框的,使预测出来的目标定位更加准确。但并非所有的预选框都包含真实的目标,Bounding-box Regression只计算包含目标的预选框(IOU>0.6),其它预选框则抛弃。

 在Bounding-box Regression的训练过程中,P = \left ( P_{x} ,P_{y} ,P_{w} ,P_{h} \right )为预选框的位置,G = \left ( G_{x} ,G_{y} ,G_{w} ,G_{h} \right )为真实框的位置,Bounding-box Regression的目标就是学会一种映射将P转换为G。这种映射关系公式为:
\begin{align*}\label{2} & t_{x} = \left ( G_{x} - P_{x} \right )/P_{w}\\ & t_{y} = \left ( G_{y} - P_{y} \right )/P_{h}\\ & t_{w} = log\left (G_{w}/P_{w} \right )\\ & t_{h} = log\left (G_{h}/P_{h} \right ) \end{align*}

关于Bounding-box回归,\color{red}{我的理解是}
 训练时,其目标就是找到预选框和真实框之间的映射关系;
 测试时,采用这种'映射关系',对预测出的预选框进行微调,使得预选框定位更加准确。

2.Fast RCNN

 Fast-RCNN不再像RCNN一样,把每个候选框都单独通过CNN提取特征,而是将整个图像通过CNN一次性提取特征,大大减少了计算量,提高了目标检测的加速。

2.1 Fast RCNN工作流程:

1)将一整张图像直接输入到CNN网络中,一次性提取图像特征,得到CNN特征矩阵
2)仍然使用select search算法对图像提取预选框
3)将可能包含目标的预选框,在第一步提取的CNN特征图上,找到其对应的特征矩阵
4)通过ROI Pooling层,将预选框对应的特征矩阵,resize为同样大小
5)将预选框特征图输入到CNN网络中,进行目标检测(分类+回归)

Fast-RCNN架构图.png
2.2 Fast RCNN优缺点:

优点:

  • 使用ROI池化层将不同size的预选框特征图,映射为同一大小
  • 使用一个Softmax分类代替了多个SVM分类器
  • 使用多任务损失函数,同时进行分类和回归
  • 将RCNN中下面3个独立模块整合在一起:
    CNN:提取图像特征
    SVM:目标类别识别
    Bounding-box回归:定位

缺点:

  • 预选框的选取仍然是使用Selective Search算法,非常耗时
  • 并为实现真正意义上的“端到端”架构
2.3 Fast RCNN架构图:
Fast RCNN架构图.png

3.Faster RCNN

 Faster RCNN不再使用select search传统的算法提取预选框,而是采用Region Proposal Netword神经网络直接产生预选框。

 Faster RCNN将一直以来分离的region proposal和CNN分类融合到了一起,使用端到端的网络进行目标检测,在速度和精度上都得到了不错的提高,实现真正意义上的“端到端”架构。

Faster RCNN.png

四、RCNN家族系列总结

RCNN家族总结.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容