知识点
对于HOG特征,我们可以通过预先训练的特征数据,进行多尺度的对象检测,OpenCV中基于HOG的行人检测是一个典型案例,同时我们还可以实现自定义对象的检测,这种自定义对象检测,可以分为两个部分,第一部分:通过提取样本的HOG描述子,生成样本的特征数据,第二部分通过SVM进行分类学习与训练,保存为模型。这样我们以后就可以通过模型来实现自定义对象检测啦。今天我们分享第二部分,使用HOG描述子特征数据生成数据集,进行SVM分类训练,实现对象分类识别。
这里我已一个很常见的应用,电表检测为例,这类问题早期主要通过特征匹配实现,但是这个方法比较容易受到各种因素干扰,不是很好,通过提取HOG特征、进行SVM特征分类、然后开窗检测,是一个很好的解决方法。
在OpenCV中训练SVM模型,其数据格式常见的是“行模式”就是一行(多列向量)是一个样本,对应一个整数标签(label)。这里采用默认的窗口大小为64x128 提取HOG特征向量,得到的每个样本的向量数目等于7x15x36=3780,有多少个样本就有多少行, 对于的标签是每一行对应自己的标签,有多少个训练样本,标签就有多少行!
代码(c++,python)
1 |
|
1 | """ |