python目标检测入门基础知识_图像处理之目标检测的入门总结

1 背景介绍

目标检测,object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。

6b635c8daa44b5791f7c188d576d7b66.png

目标检测要解决的问题有两个:物体在哪里,物体是什么的整个流程问题。

目标检测问题的难点:物体的尺寸变化范围很大;摆放物体的角度,姿态不定;而且可以出现在图片的任何地方;物体还可以是多个类别。

66abb4d6df85168242b45bba1651530b.png

目前主要算法分两类:1) 候选区域/框 + 深度学习分类;2) 基于深度学习的回归方法

目标检测中有很大一部分工作是做图像分类。对于图像分类,不得不提的是2012年ImageNet大规模视觉识别挑战赛(ILSVRC)上,机器学习泰斗 Geoffrey Hinton 教授带领学生Krizhevsky使用卷积神经网络将ILSVRC分类任务的Top-5 error降低到了15.3%,而使用传统方法的第二名 top-5 error高达 26.2%。

此后,卷积神经网络CNN占据了图像分类任务的绝对统治地位。

2 候选区域+深度学习

通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:

2.1 R-CNN(Selective Search + CNN + SVM)

先找出图中目标可能出现的位置,即候选区域(Region Proposal)。

利用图像中的纹理、边缘、颜色等信息,可以保证在选取较少窗口(几千甚至几百)的情况下保持较高的召回率(Recall)。

有了候选区域,剩下的工作实际就是对候选区域进行图像分类的工作(特征提取+分类)。

2014年,RBG(Ross B. Girshick)使用 Region Proposal + CNN代替传统目标检测使用的滑动窗口+手工设计特征,设计R-CNN框架,使得目标检测取得巨大突破,并开启了基于深度学习目标检测的热潮。

95120ee05da99c03a2b6030562687243.png

R-CNN的简要步骤如下

输入测试图像

利用选择性搜索Selective Search算法在图像中从下到上提取2000个左右的可能包含物体的候选区域Region Proposal

因为取出的区域大小各自不同,所以需要将每个Region Proposal缩放(warp)成统一的227x227的大小并输入到CNN,将CNN的fc7层的输出作为特征

将每个Region Proposal提取到的CNN特征输入到SVM进行分类

R-CNN 存在一个较大的问题:R-CNN虽然不再像传统方法那样穷举,但R-CNN流程的第一步中对原始图片通过Selective Search提取的候选框region proposal多达2000个左右,而这2000个候选框每个框都需要进行CNN提特征+SVM分类,计算量很大,导致R-CNN检测速度很慢,一张图都需要47s。

2.2 SPP-net(ROI Pooling)

25ac572c6d260ea47ed4ddc1a060c779.png

SPP:Spatial Pyramid Pooling(空间金字塔池化)

SPP-Net是出自2015年发表在IEEE上的论文-《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》

2.3 Fast R-CNN(Selective Search + CNN + ROI)

bedd25769331bd8fc007c04d26ec65a1.png

Fast R-CNN 就是在R-CNN的基础上采纳了SPP Net方法,对R-CNN作了改进,使得性能进一步提高。

与R-CNN框架图对比,可以发现主要有两处不同:一是最后一个卷积层后加了一个ROI pooling layer,二是损失函数使用了多任务损失函数(multi-task loss),将边框回归 Bounding Box Regression 直接加入到CNN网络中训练。

Fast-RCNN 很重要的一个贡献是成功的让人们看到了 Region Proposal + CNN 这一框架实时检测的希望,原来多类检测真的可以在保证准确率的同时提升处理速度,也为后来的 Faster R-CNN 做下了铺垫。

2.4 Faster R-CNN(RPN + CNN + ROI)https://arxiv.org/pdf/1506.01497.pdf

867537cc574b6a12c9f7406c2d8b8d5c.png

Fast R-CNN存在性能瓶颈:选择性搜索,找出所有的候选框,也非常耗时。能不能找出一个更加高效的方法来求出这些候选框呢?

解决方法:加入一个提取边缘的神经网络,也就说找到候选框的工作也交给神经网络来做。

以上四种算法都基于region proposal 的R-CNN系列,是目标检测技术领域主要的一个分支。

3 基于深度学习的回归方法

3.1 YOLO1

YOLO,全称:You Only Look Once

3b5d53ca9e402f3842990e95a1abe4af.png

以上介绍的 R-CNN 系列很难满足实时性的要求。YOLO 一类的方法慢慢显现出其重要性,这类方法使用回归的思想,利用整张图作为网络的输入,直接在图像的多个位置上回归出这个位置的目标边框,以及目标所属的类别。

YOLO将目标检测任务转换成一个回归问题,大大加快了检测的速度,使得 YOLO 可以每秒处理45 张图像。而且由于每个网络预测目标窗口时使用的是全图信息,使得false positive比例大幅降低(充分的上下文信息)。

7b0e1ab52885b130d3685573bc6ba266.png

c00e30f110a719d1c0c75ca2ea2d02e0.png

但是YOLO也存在问题:没有了Region Proposal机制,只使用7*7的网格回归会使得目标不能非常精准的定位,这也导致了YOLO的检测精度并不是很高。

3.2 YOLO2https://arxiv.org/pdf/1612.08242.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值