备注
单击 here 下载完整的示例代码或通过活页夹在浏览器中运行此示例
类Haar特征描述符¶
类Haar特征是在实时人脸检测器中引入的简单数字图像特征 1. 使用积分图像,可以在固定时间内以任意比例高效地计算这些特征 1. 之后,从该大量潜在特征中选择少量关键特征(例如,使用如中的AdaBoost学习算法 1) 。下面的例子将展示构建这一系列描述符的机制。
参考文献¶
- 1(1,2,3)
维奥拉、保罗和迈克尔·J·琼斯。“强大的实时人脸检测功能。”《国际计算机视觉杂志》57.2(2004):137-154。Https://www.merl.com/publications/docs/TR2004-043.pdf DOI:10.1109/CVPR.2001.990517
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,
random_state=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()

描述符的值等于绿色矩形和红色矩形中的强度值之和。在实践中,将红色区域减去绿色的像素强度之和,类Haar特征将被放置在图像的所有可能位置,并将计算每个位置的特征值。
脚本的总运行时间: (0分0.100秒)