目标检测算法基础介绍---(2)传统目标检测(笔记)

传统目标检测算法基本流程
在这里插入图片描述
候选框的提取通常采用滑动窗口的方法。

滑动窗口方法:首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。

特征提取:
底层特征:颜色、纹理…
中层次特征:基于低层特征进行机器学习挖掘后的那些特征。
高层次特征:将低层次特征或者中层次特征进一步挖掘和表示后的特征,如:人是否戴帽子戴眼镜什么的。

(1) Viola-Jones(人脸检测)

  • Harr特征提取
  • 训练人脸分类器(Adaboost算法等)
  • 滑动窗口 (问题:互动窗口的步长好大小)

Haar特征
主要是差分。
四种基本特征:
目标检测算法基础介绍---(2)传统目标检测(笔记)_第1张图片
value=白 - 黑
第一种表示相邻像两个素点,4个方向进行差值,0度,180度,45度,135度,
第二种线性特征,宽的区域表示两个像素点。
第三种中心特征,相邻区域同中心点进行差分。像LDP特征。
第四种多个像素点彼此的关系。
最终选取所抽取的直方图,差分运算本身就是在梯度求解。因此Haar特征属于文理特征。

Adaboost算法
属于集成学习方法。

  • 初始化样本权重w,样本权重之和为1
  • 训练弱分类器
  • 更新样本权重(分类错误的样本加大权重)
  • 循环第二步
  • 结合各个分类器结果,进行投票

(2)HOG + SVM (行人检测、opencv实现)

  • 提取HOG特征
  • 训练SVM分类器
  • 利用滑动窗口提取目标区域,进行分类判断
  • NMS
  • 输出检测结果

HOG特征
也属于纹理特征的一种。

  • 灰度化 + Gamma 变换 (对值进行根号求解)
  • 计算梯度map (计算每一个点在x、y方向的梯度值,利用梯度值到梯度夹角,即得到tan = x/y,求方向角)
  • 图像划分成小的cell,统计每个cell梯度直方图
  • 多个cell组成一个block,特征归一化 (拼接)
  • 多个block串联,并归一化
    与量化角度和cell大小有关系(cell越小,梯度维度越大),通常维度会很大。

SVM
与Adaboost不同,但都能完成分类,都属于分类器。
它是通过寻找两种样本在样本空间内的最大分类间隔面来进行建模,分类间隔面如下:
目标检测算法基础介绍---(2)传统目标检测(笔记)_第2张图片
保证两条虚线能将两类分开,害的保证两条虚线的间隔最大。最终找的分类间隔面就是中间的实线。二维就是一条直线,多维的就是一个超平面。
松弛变量就是分类器能接受多大的误差。

(3)DPM(物体检测)

DPM特征提取

  • 有符号梯度
  • 无符号梯度
    目标检测算法基础介绍---(2)传统目标检测(笔记)_第3张图片
    有符号:整个角度空间表示为18维向量,0 ~ 360度
    无符号:0 ~ 180度,每个cell得到27维直方图
    HOG中多维情况是采用PCA对HOG进行降维。
    DPM是采用一种逼近PCA的方法进行近似处理,就是对每一个cell所提取的27维直方图进行求和表示,水平方式累加求和4个值,垂直求和27个值,在进行拼接得到最终31维的特征向量。累加方式速度有所提升。

DPM(物体检测)

  • 计算DPM特征图
  • 计算相应图(roof filter和part filter) (就是当前区域可能为目标区域的一个值,理解为能量分布)
  • Latent SVM分类器训练
  • 检测识别

NMS(非极大值抑制算法)

  • 目标:为了消除多余的框,找到最佳的物体检测位置
  • 思想:选取那些邻域里分数最高的窗口,同时抑制那些分数低的窗口。
  • Soft-NMS(改进算法)

Soft-NMS

  • 相邻区域内的检测框的分数进行调整而非彻底抑制,从而提高了高检索率情况下的准确率。
  • 在低检索率时仍能对物体检验性能有明显提高
    在这里插入图片描述
    左边是NMS,右边Soft-NMS

来自慕课笔记。

你可能感兴趣的:(目标检测算法基础介绍---(2)传统目标检测(笔记))