HOG+SVM训练时报错 OpenCV Error: Assertion failed

在HOG+SVM图片训练时,经常会看到一种报错信息:

OpenCV Error: Assertion failed (checkDetectorSize()) in cv::HOGDescriptor::setSVMDetector, file C:\builds\master_PackSlave-win64-vc12-shared\opencv\modules\objdetect\src\hog.cpp……

如:

其实这种错误是源自目标检测大小设置的不对,很多同学一开始训练HOG的时候没有注意HOG检测框是有大小设置的,这点和haar特征值训练不同。

如果大家去看下HOGDescriptor类在opencv中的源码,可以看出它是有默认值的,

默认构造函数的几个参数:

winSize : 窗口的大小

blockSize :块的大小

cellSize: 胞元的大小

nbins: 方向bin的个数

如果你训练时的目标大小是32x32的大小,而检测时变成了64x64或者干脆没有设置用默认的64x128,则会出现上述错误。只要在初始化HOGDescriptor的时候设置的没错问题就可解决,即将HOGDescriptor myHOG改为HOGDescriptor myHOG(Size(32, 32), Size(16, 16), Size(8, 8), Size(8, 8), 9)

顺便对于此处源码的解释贴两个还不错的博客:

https://blog.csdn.net/qq_26898461/article/details/46786285

https://www.cnblogs.com/lyx2018/p/7123794.html

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值