计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

物体检测

总览

给定图像或者视频序列,定位感兴趣的对象的所有实例。该问题对应于确定包围对象 (enclose the objects) 的图像或视频序列中的区域,通常是最小的矩形边界框 (smallest rectangular bounding boxes)。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
要求对于 视点,比例,明度,遮挡和姿势 (viewpoint, scale, illumiation, occlusion, pose) 都具有不变性。

流程

  1. 生成和选择区域 (图像块 patches)
  2. 在一定规模上进行对象识别 (object recognition)
  3. 合并多个重叠的正区域(overlapped positive regions)。

有两个策略:
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

生成区域 (Generation of Regions)

滑动窗口算法

在图像上滑动框或者窗口 (box or window) 已选择图像块 (patch)。这是对整个图像和不同比例的对象 (different scales) 的详尽搜索 (exhaustive search)。这可能会导致成千上万的图像补丁 (image patches)。
这种方法适用于固定宽高比 (aspect ratio) 的对象,比如人脸或者行人。
当我们搜索多个宽高比时,这个方法在计算上非常昂贵。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

区域提案 (Region Proposal)

输出与图像中最有可能是对象的所有 图像块 相对应的边界框 (output bounding boxes)。
这些区域提案可能会带有噪声,重叠 (overlapping) 且可能无法完美地包含对象,但我们期望会有一个非常接近图像中的实际对象的提案。
区域提案算法 (Region Proposal Algorithms) 使用 分割 (Segmentation) 来识别图像中的预期对象 (prospective objects)。

选择性搜索是通用算法之一。

选择性搜索 (Selective Search)

该方法根据颜色,纹理,大小和形状兼容性(color, texture, size and shape)计算相似区域的层次分组 (hierarchical grouping)。建立在过度分割(oversegments)之上。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
从 过度分割 开始,反复执行以下操作:

  • 将 分割片段(segmented part) 相对应的所有边界框 (bounding box) 添加到 区域提案 中。
  • 根据相似度将相邻的片段(adjacent segments)分组。
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
相似度 (similarity)
  • 颜色相似度 (color similarity): 有一个每个通道带有25个bin的颜色直方图,每个区域 25 x 3 = 75-D 颜色描述符(color descriptor)。
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

  • 纹理相似度 (texture similarity): 每个通道在8个方向 (8 orientation) 上的高斯导数 (Gaussian derivatives)。每个方向和每个颜色通道的 10 bin 直方图,每个区域 10 x 8 x 3 = 240-D 特征描述符 (feature descriptor)。
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

  • 尺寸相似度 (size similarities): 鼓励更小的区域更早进行合并。
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
    其中 size(im) 是 图中像素的多少。

  • 形状兼容性 (shape compatibility):
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
    其中 size(BBij) 是 覆盖两个区域的边界框的大小。

  • 最终相似度 (Final similarity): ???????? ∈ [0,1.0]
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
    结果:
    计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

面部检测 (Face Detection)

基于皮肤的面部检测 (Skin-based face detection)

肤色 (skin tone) 可以通过两种方式用于面部检测:

  • 分割 (segmentation): 为了减少搜索空间,加快检测速度,但与实际的面部检测器 (face detector) 无关 (更常用)。
  • 检测 (Detection): 作为直接用于检测的特征。

皮肤可能性 (Skin Likelihood)

皮肤颜色的统计值:
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
YCbCr的皮肤可能图:
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

步骤

  1. 根据颜色检测皮肤区域
  2. 删除小区域 (形态学开操作 Morphological opening)
  3. 查找所有区域的长宽比 (连接组件分析和标记 connected component labelling),并仅保留特定的比例,其他的去除。
  4. 剩余的区域 (Remaining regions) 便被分类为人脸。

结果:
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

优点

  1. 高效且容易实现。
  2. 不需要或仅需要一点点训练。
  3. 能够在低分辨率或者模糊图像上工作。(不需要面部细节)
  4. 反转不变性 (rotation-invariant)。

缺点

  1. 对明度 (illumination) 和颜色平衡 (color balance) 敏感。
  2. 低准确率 - 会匹配到身体其他部位或者其他肉色的物体。
  3. 需要有颜色的图片。

Viola & Jones面部识别

该方法使用模式分类(pattern classification approach)
特征:矩形的 “Haar-like” 特征。
分类器:多个"弱"分类器 (weak classifier) 的组合。

Harr-like 特征

Haar-like特征编码强度差异(intensity differences)。特征值是白色和黑色区域之间的像素差之和。缩放到不同大小并在子窗口中的所有可能位置进行测试。
为全局照度不变 (global illumination invariance) 而标准化的子窗口 (sub-windows)。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)
下图应用了所有四个 Haar-like 特征,所有位置和大小。
其产生了大量特征值,24 x 24 的大小有 180000个值。
这些被输入到分类器(而不是原始像素点)。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

简单特征分类器

简单的"stump"分类器使用单个特征并对其设置阈值。
计算机视觉理论笔记 (13) - 物体检测 (Object Detection)

这样的分类器可能有很多 (每个特征值一个,即 2x108),需要一种方法来选择最佳分类器。
于是这就引出了AdaBoost。