
数据集介绍
训练数据来自INRIA Person Dataset,其中正样本为64*128的人体图像,负样本为64*128的非人体图像,如下图所示。
HOG特征
HOG特征详细介绍:HOG论文笔记提取HOG特征的方法使用了skimage库中的hog函数。
1 |
|
训练SVM
因为每张图片提取出来的HOG特征有6480维,所以我们使用线性SVM就足够可分。
1 | def train_svm(): |
进行人体检测
因为对进行人体检测的输入图片大小是未知的,所以需要对图片进行尺度缩放,使用的方法如下所示:
1 | from skimage.transform import pyramid_gaussian |
在缩放的尺度上对图片进行滑动窗口检测,可能会在不同尺度上都检测到了目标,这样会造成标记的混乱,可以使用非极大值抑制的方法对重复标记的的目标经行剔除。可以从imutils包中导入非极大值抑制函数。
imutils包安装
1 | sudo pip install imutils |
使用非极大值抑制函数:
1 | from imutils.object_detection import non_max_suppression |
完整检测代码:
1 | def sliding_window(image, window_size, step_size): |
效果演示
非极大值抑制处理前:


非极大值抑制处理后:


github地址:object-detector