目标检测是什么

object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。

然而,这个问题可不是那么容易解决的,1、物体可以出现在图片的任何地方,并且其尺寸变化范围很大。2、摆放物体的角度,姿态不定。3、物体还可以是多个类别。

目前学术和工业界出现的目标检测算法分成3类:
1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化;

2. 候选区域/框 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如:
R-CNN(Selective Search + CNN + SVM)
SPP-net(ROI Pooling)
Fast R-CNN(Selective Search + CNN + ROI)
Faster R-CNN(RPN + CNN + ROI)
R-FCN
等系列方法;

3. 基于深度学习的回归方法:YOLO/SSD/DenseBox 等方法;以及最近出现的结合RNN算法的RRC detection;结合DPM的Deformable CNN等


传统目标检测算法总结

前面几篇文章对传统的目标检测算法都做了介绍。

传统目标检测的组合算法:

Haar特征+Adaboost+Cascade

Cascade级联思想可以快速抛弃没有目标的平滑窗(sliding window),因而大大提高了检测效率。但它有一个很大的缺点,它仅仅使用了很弱的特征,用它做分类的检测器也是弱分类器,仅仅比随机猜的要好一些,它的精度靠的是多个弱分类器来实行一票否决式推举(就是大家都检测是对的)来提高命中率,确定分类器的个数也是经验问题。

很弱的特征就是like-haar特征。

这边指的弱分类器是adaboost,因为adaboost每一步迭代只用了180000(24*24的图像)个特征中的一个特征,导致adaboost实际上也算不得是真正意义上的强分类器。

HOG特征+SVM对比HOG特征+Cascade

HOG的优点: 
- 核心思想是所检测的局部物体外形能够被梯度或边缘方向的分布所描述,HOG能较好地捕捉局部形状信息,对几何和光学变化都有很好的不变性; 
- HOG是在密集采样的图像块中求取的,在计算得到的HOG特征向量中隐含了该块与检测窗口之间的空间位置关系。

矩形HOG和SIFT有些相似的地方,关于SIFT具体看这篇博文SIFT特征提取分析

HOG的缺陷: 
- 很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测(这个问题后来在DPM中采用可变形部件模型的方法得到了改善); 
- 跟SIFT相比,HOG没有选取主方向,也没有旋转梯度方向直方图,因而本身不具有旋转不变性(较大的方向变化),其旋转不变性是通过采用不同旋转方向的训练样本来实现的; 
- 跟SIFT相比,HOG本身不具有尺度不变性,其尺度不变性是通过缩放检测窗口图像的大小来实现的; 
- 此外,由于梯度的性质,HOG对噪点相当敏感,在实际应用中,在Block和Cell划分之后,对于得到各个像区域中,有时候还会做一次高斯平滑去除噪点。

DPM特征+Latent SVM

DPM算法优点:

1、方法直观简单;

2、运算速度块;

2、适应动物变形;

DPM算法缺点:

1、性能一般

2、激励特征人为设计,工作量大;

这种方法不具有普适性,因为用来检测人的激励模板不能拿去检测小猫或者小狗,所以在每做一种物件的探测的时候,都需要人工来设计激励模板,为了获得比较好的探测效果,需要花大量时间去做一些设计,工作量很大。

3、无法适应大幅度的旋转,稳定性很差;


传统目标检测算法的缺点

上面对比的是传统目标检测算法中各自的优缺点,接下来要讲讲传统目标检测算法的通病。

1)基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余
2)手工设计的特征对于多样性的变化没有很好的鲁棒性

主线:区域选择->特征提取->分类器

1、区域选取 
采用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的尺度,不同的长宽比。这种穷举的策略虽然包含了目标所有可能出现的位置,但是缺点也是显而易见的:时间复杂度太高,产生冗余窗口太多,这也严重影响后续特征提取和分类的速度和性能。补充一下, DPM论文是直接对整张图进行操作了,但实际上也是对图进行了遍历,root filter和part filter也是遍历了整张图缩放了不同的尺寸进行特征提取。但也可以理解为DPM的输入本就只是一个窗口的大小detect window。

2、特征提取 
由于目标的形态多样性,光照变化多样性,背景多样性等因素使得设计一个鲁棒的特征并不是那么容易。然而提取特征的好坏直接影响到分类的准确性。(这个阶段常用的特征有Haar、SIFT、HOG等)

3、分类器 
主要有SVM, Adaboost等。

【机器学习】传统目标检测算法总结相关推荐

  1. 2D: 传统目标检测算法综述

    一. 目标检测的发展历程 1. 2001年,V-J检测器诞生,主要用于人脸的检测: 2. 2006年,HOG + SVM的方法出现,主要用于行人的检测: 3. 2008年,rgb大神(记住这个人,后面 ...

  2. 【机器学习】传统目标检测算法之DPM

    前面介绍了一下HOG,HOG有一个缺点:很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测. 继2005年HOG提出之后,DPM模型在借鉴了HOG之后也被提了出来同时还取得了不错的成绩. ...

  3. 【机器学习】传统目标检测算法之HOG

    转载+理解:hog:https://www.cnblogs.com/wyuzl/p/6792216.html hog:https://blog.csdn.net/masibuaa/article/de ...

  4. 【机器学习】传统目标检测算法之Haar分类器

    引言 Haar分类器又称Viola-Jones识别器,是Viola和Jones分别在2001年的<Rapid Object Detection using a Boosted Cascade o ...

  5. 【机器学习】传统目标检测算法之级联分类器Cascade

    先附上参考文章吧. 文章其实是"P. Viola, M. Jones. Rapid Object Detection using a Boosted Cascade of Simple Fe ...

  6. 学习笔记之——基于深度学习的目标检测算法

    国庆假期闲来无事~又正好打算入门基于深度学习的视觉检测领域,就利用这个时间来写一份学习的博文~本博文主要是本人的学习笔记与调研报告(不涉及商业用途),博文的部分来自我团队的几位成员的调研报告(由于隐私 ...

  7. 计算机视觉目标检测算法总结1——简介

    目标检测是在图片中对可变数量的目标进行查找和分类 目标种类和数量问题 目标尺度问题 外在环境干扰问题 目标检测方法(深度学习) 基于一体化卷积网络的检测:Overfeat->YOLO->S ...

  8. 笔记《基于无人驾驶方程式赛车的传感器融合目标检测算法研究及实现》

    论文结构 关键字:无人驾驶方程式赛车,相机,激光雷达,目标检测,传感器融合 一.绪论 1. 感知技术研究现状 1.1.1 基于相机的目标检测技术研究现状 1.1.2 基于激光雷达的目标检测技术研究现状 ...

  9. 深度学习之目标检测(一)—— 目标检测算法介绍

    目标检测问题 目标检测是在图片中对可变数量的目标进行查找和分类 查找就是定位到它在图片中的位置,通常表示为一个矩形框 对于这样的问题,主要存在三个主要难点 ①目标种类与数量问题 ②目标尺度问题 ③外在 ...

最新文章

  1. 解决Android Studio中DDMS缺少File Explore视窗的方法
  2. 自动驾驶寒冬与否,关键看“芯”
  3. 晶振噪声及杂散_如何判断是否需要使用分立式晶振和振荡器呢?
  4. 剥开比原看代码17:比原是如何显示交易的详细信息的?
  5. DFS产生的ID=13562事件
  6. Design Pattern - Chain of Responsibility(C#)
  7. [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)
  8. PHP中的include、include_once、require、require_once
  9. mybatis-plus 使用乐观锁修改
  10. 《剑指Offer》 跳台阶
  11. activemq linux教程,Linux及Windows下ActiveMQ下载与安装教程
  12. java sha1工具类_SHA1算法工具类
  13. 微信开发,自定义菜单不生效怎么办?重新关注也无效
  14. 学习逆向知识之用于游戏外挂的实现.第二讲,快速寻找植物大战僵尸阳光基址.以及动态基址跟静态基址的区别...
  15. 国内优秀论坛之大汇集
  16. beeline常用命令
  17. 实操:基于LNMP搭建zabbix监控
  18. android 版本更新原理,蒲公英 - 文档中心 - SDK 自动更新机制
  19. metashape(photosan)集群设置
  20. Unity之JSON(数据存储)

热门文章

  1. SPUtility.ParseDate使用问题
  2. Kali获取不到IP解决方案
  3. mysql默认数据库有什么用_MySQL安装后默认自带数据库的作用
  4. 为什么多对多关系需要建立中间表_中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?...
  5. 单片机中断机制对日常生活的启示_单片机原理部分课后习题解
  6. Some Essential JavaScript Questions And Answers(1)
  7. java实现WGS84转其他地图坐标
  8. idea启动前端vue项目(各种坑)
  9. SVM: 支持向量机中的,那个C
  10. SpringCloud SpringBoot 推荐