目标检测是计算机视觉中的重要任务之一。本系列博客将总结目标检测的各类算法,包括传统方法、基于CNN的算法(One stage、Two stage)。本文主要对传统方法进行概述,大部分思想源自网上的博客和论文。

个人观点,广义的目标检测不仅包括物体检测(Object Detection),还包括边缘检测(Border Detection)及关键点检测(Landmark Detection)等。因此本文将涵盖边缘检测及关键点检测的内容。

边缘检测

边缘检测,在很多场景下可以看作是图像分割(Segmentation)任务(图像分割的边界往往就是物体的边缘)。而图像分割也包括传统算法和深度学习语义分割;而目标检测类算法(如R-CNN)也经常延伸到语义分割。图像分割与目标检测有着千丝万缕的关系。本部分主要从图像分割的角度介绍边缘检测的方法。传统的图像分割主要包括:阈值分割、区域生长、分水岭算法、微分算子法、主动轮廓模型、小波变换等方法。这些传统图像分割方法是计算机视觉的基础知识,具体此处不赘述。其中微分算子法很有启发意义,采用算子(又称“核”、“过滤器”)检测特定模式,启发我们可以通过设计特定的卷积核来检测特定的刚性目标。

感兴趣点检测

此处将关键点(Landmark、Benchmark)、特征点都称为感兴趣点。主要方法包括:Harris角点检测法、SIFT特征点检测法、基于模型的ASM或AAM法、基于级联形状回归CPR,和基于深度学习的算法。其中,Harris角点检测法是设计角点检测算子,对图像每个像素都计算响应值,然后确定一个合适的阈值来检测角点。基于模型的ASM法,是先对标记点所在的物体形状进行配准对齐,然后通过构建的局部特征,进行局部搜索和匹配;AAM法则在ASM法的基础上加了纹理特征。

物体检测

物体检测大致流程

提取候选框:在输入图像中提取候选框,通常会采用滑动窗口来进行

提取特征:采用各种经典模式识别的图像特征表示的一些方法,如:基于颜色、纹理的方法等,包括低层次特征,中层次特征等。各种算法的差异也就在于此,当采用CNN进行特征提取时,就形成了R-CNN等一系列深度学习目标检测方法。

分类器分类:分类器是预先训练的,使用“等价于”候选框的图片提取的特征,在筛选特征后建立分类器;常使用SVM建模。将提取的特征输入到分类器后,即可判断当前候选框是某个物体的可能性大小。

Viola-Jones

主要是用于人脸检测。采用 Haar 特征抽取,一般技术框架为:Haar-like 特征提取 + Adaboost。

Haar-like特征类似于下图:

将白色和黑色的像素值分别求和后再作差,就是Haar-like特征。一幅图中这样的特征非常多,为了优化计算,可以引入积分图的概念,快速对区域像素值求和。

HOG

HOGHistogram of Oriented Gridients)主要用于灰度图。采用HOG特征提取,一般技术框架为:HOG+SVM。

HOG通过计算和统计图像局部区域的梯度方向直方图来构建特征。

基本观点:局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述,即使我们不知道对应的梯度和边缘的位置。(本质:梯度的统计信息,梯度主要存在于边缘的地方)

算法框架:首先将图像分成很多小的连通区域(块),我们把它叫做细胞单元,然后采集细胞单元中每个像素点的梯度和边缘方向,然后在每个细胞单元中累加出一个一维的梯度方向直方图。将直方图进行归一化等操作后,得到HOG描述子。将检测窗口中的所有块的HOG描述子组合起来就形成了最终的特征向量,然后使用SVM分类器进行检测。

计算细节——梯度计算:采用微分算子进行卷积运算,可以计算每个像素点的梯度(方向和大小)。

计算细节——生成直方图:将360度根据需要分割成若干个bin,例如:分割成12个bin,每个bin包含30度,整个直方图包含12维,即12个bin。然后根据每个像素点的梯度方向,将其幅值累加到直方图中。

      

DPM

DPMDeformable Parts Model)是基于HOG+SVM改进的方法,对目标的形变具有很强的鲁棒性。DPM的本质就是弹簧形变模型。

DPM不仅解决了尺度缩放问题,还通过建立多个模板解决旋转(视角)视角问题。

DPM是传统目标检测算法的巅峰之作,但其生不逢时,CNN的出现使得目标检测算法进入深度学习时代。

SIFT

SIFT算法比较复杂,笔者了解较少,感兴趣的可以参考这篇博客:SIFT算法详解

参考资料:

Histogram of Oriented Gridients(HOG) 方向梯度直方图

基于传统图像处理的目标检测与识别(HOG+SVM附代码)

DPM(Deformable Parts Model)--原理

DPM目标检测算法

SIFT算法详解

目标检测——传统算法相关推荐

  1. CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  2. 计算机视觉多目标检测整合算法

    计算机视觉多目标检测整合算法 输入输出接口 Input:image/video Output:(1)BandingBox左上右下的坐标位置 (2)Type类型:人,车,-,-(3) 执行度:是指判别目 ...

  3. 3d 自动生成物体_CVPR2020论文介绍: 3D 目标检测高效算法

    CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...

  4. Ai关于目标检测类算法比赛的经验总结

    内容来源于 宅码,作者Ai. 附一张作者签名--艾宏峰! 导读: 本文为作者自己参加的三个目标检测类算法比赛的经验总结,分为五个部分:数据研究和准备.参数调节.模型验证以及模型融合,作者还给出了一些关 ...

  5. 目标检测相关算法综述

    目标检测相关算法综述 1. R-CNN[1] 2. SPP-Net[2] 3.Fast Rcnn[3] 4.Faster Rcnn[4] 5.Cascade Rcnn[5] 6.FPN[6] 7.YO ...

  6. 目标检测 /yolo算法原理的详解

    前言 谈到计算机视觉时,我们都会联想到图像分类,图像分类是计算机视觉最基本的任务之一,在图像分类的基础上,我们还有更复杂的任务,比如目标检测,物体定位,图像分割等,本文主要讲目标检测,目标检测是分类与 ...

  7. CVPR 2020 | 中科院、商汤联合提出大规模多标签目标检测新算法

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:学术头条 AI博士笔记系列推荐 周志华<机器学习>手 ...

  8. 目标检测 | RCNN算法系列汇总+详解(包括Fast, Faster)

    一.RCNN 1. 介绍 2. 步骤流程 3. 部分详解 4. 缺点 二.Fast RCNN 1. 介绍: 2. 步骤流程 3. 部分详解 4. 比较 三.Faster RCNN 1. 介绍 2. 步 ...

  9. 目标检测跟踪算法--传统方法

    第一阶段 目标跟踪分为两个部分,一个是对指定目标寻找可以跟踪的特征,常用的有颜色,轮廓,特征点,轨迹等,另一个是对目标特征进行跟踪. 1.静态背景 1)背景差:对背景的光照变化.噪声干扰以及周期性运动 ...

最新文章

  1. python使用fpdf生成数据报告pdf文件
  2. 第十五届全国大学生智能汽车竞赛山东赛区国赛获奖队伍详细信息
  3. nor flash驱动编写步骤
  4. Qt Project Build error PRJ0019: 工具从Moc'ing xxx.h...
  5. Hibernate继承映射
  6. 项目管理应该注意问题
  7. Java--I/O输入输出流
  8. 整理99种好用的电脑软件
  9. 6个免费视频、音频素材网,视频剪辑必备
  10. 键盘拆开重新安装步骤_键盘拆卸后怎么安装?
  11. 将子网掩码取反_IP地址、子网掩码详解
  12. ue4生成粒子发射器
  13. 奇怪的小鸭子也增加了
  14. 飞腾2000/4C调试问题记录
  15. ElasticSearch (ES)
  16. Date.now()和new.Date().getTime()的区别
  17. K8s安全管理:认证、授权、准入控制
  18. 3D空间 圆柱体画线
  19. 城市间紧急救援(Dijkstra算法)
  20. 无线路由器WDS桥接设置指南

热门文章

  1. 亚马逊关键词首页排名技巧 让客户找到你
  2. 关闭迅雷自动拦截浏览器下载
  3. USB 概述及协议基础
  4. 谷粒学院之阿里云视频点播
  5. 查看无线网密码的命令
  6. 天池新人赛幸福感数据分析+预测
  7. layuiAdmin std v1.x 【iframe版】开发者文档
  8. 基于自适应遗传算法的异构多无人机协同任务分配
  9. 大学英语词汇解析 中国大学mooc 华中科技大学 测验题答案
  10. 并发编程——设计模式之单例模式