50

关于调用OPENCV库 编写HOG与SVM程序 不同样本训练结果问题

本人前一段时间写了一个车辆检测的程序方法HOG与SVM,利用opencv做的
一开始样本是128x96的 大概5000多正样本 7000多负样本
最近 我从新剪裁了一批新的样本 主要是车的车脸部分,然后今天从新训练发现了一些问题。
图片说明
如图 当车行驶到变大的时候我的程序 才会识别到,这次新的样本用的128x128的 比之前的要大,训练时候参数如下,我不太清楚窗口大小是不是一定要和样本大小一样?
HOGDescriptor * hog = new HOGDescriptor(cvSize(128, 128), cvSize(16, 16), cvSize(8, 8), cvSize(8, 8), 9);
检测视频的时候,参数如下
myHOG.detectMultiScale(frame, found, 0, Size(8, 8), Size(0, 0), 1.15, 5);
以前,样本不标准,正样本里面含有很多背景部分,但是用以前样本生成的SVM检测是参数为myHOG.detectMultiScale(frame, found, 0.5, Size(16, 16), Size(0, 0), 1.15, 5);利用0.5的阈值也就是到超平面距离去掉了很多误报,而且块大小还要大一些就是粗糙一些,检测时候后面的车也会检测到,没有像现在这样离很近才能检测到,而且现在左右两侧有很多车都漏检。
所以想请问一下为什么?
我有几种想法
1.样本128x128过大,以前是128x96所以离得远的目标也能检测到,参数里面的Size(0,0)图像扩充大小我不是很理解?另外1.15是缩放比例,我不知道是图像扩大吗?如果是扩大,调大了应该会有作用,但是经过测试作用不大。
2.是不是参数理解有问题,请会的大神帮我说一下各个参数的设置
3.会不会是样本问题,负样本7000过少,不相干性太大(因为都是随便找的负样本)
正样本 从车身换到车脸我觉得问题不大。
请各位帮我分析一下,咱们共同进步!!!

查看全部
weixin_37611994
weixin_37611994
2017/05/10 12:17
  • hog
  • 机器学习
  • 计算机视觉
  • svm
  • opencv
  • 点赞
  • 收藏
  • 回答
    私信

1个回复