Haar 特征描述符#

Haar 特征是简单的数字图像特征,在实时人脸检测器中首次引入 [1]。这些特征可以使用积分图像在任何尺度上以恒定时间有效地计算 [1]。之后,从这个庞大的潜在特征集中选择少量关键特征(例如,使用 [1] 中的 AdaBoost 学习算法)。以下示例将展示构建此描述符家族的机制。

参考文献#

import numpy as np
import matplotlib.pyplot as plt

from skimage.feature import haar_like_feature_coord
from skimage.feature import draw_haar_like_feature

不同类型的 Haar 特征描述符#

Haar 特征描述符有 5 种不同的类型,如下图所示。描述符的值等于绿色区域和红色区域的强度值之和的差值。

images = [
    np.zeros((2, 2)),
    np.zeros((2, 2)),
    np.zeros((3, 3)),
    np.zeros((3, 3)),
    np.zeros((2, 2)),
]

feature_types = ['type-2-x', 'type-2-y', 'type-3-x', 'type-3-y', 'type-4']

fig, axs = plt.subplots(3, 2)
for ax, img, feat_t in zip(np.ravel(axs), images, feature_types):
    coord, _ = haar_like_feature_coord(img.shape[0], img.shape[1], feat_t)
    haar_feature = draw_haar_like_feature(
        img, 0, 0, img.shape[0], img.shape[1], coord, max_n_features=1, rng=0
    )
    ax.imshow(haar_feature)
    ax.set_title(feat_t)
    ax.set_xticks([])
    ax.set_yticks([])

fig.suptitle('The different Haar-like feature descriptors')
plt.axis('off')
plt.show()
The different Haar-like feature descriptors, type-2-x, type-2-y, type-3-x, type-3-y, type-4

描述符的值等于绿色矩形和红色矩形的强度值之和的差值。红色区域从绿色区域的像素强度之和中减去。在实践中,Haar 特征将被放置在图像的所有可能位置,并且将为每个位置计算特征值。

脚本的总运行时间: (0 分钟 0.108 秒)

由 Sphinx-Gallery 生成的画廊