自己写的adaboost级联分类器训练失败

Amberrr_Li 2015-04-16 08:24:32
我写了一个adaboost级联分类器,级联部分参照论文Robust Real—time Face detection写的。也就是我训练的时候有training
set和validation set。training set有3000正样本,8717负样本;validation set有2000正样本,5000负样本。当训练完第一级,将training set的负样本置为空集,validation set的分错的负样本(false positive sample)作为training set的第二级的负样本。结果是我的false positive samples只有20个,导致第二级负样本太少,程序陷入死循环。怎么办啊?我设置的false positive rate是37.5%,但是实际上当检测率达到要求的时候,false positive rate早就达到要求了。大家帮我想想办法吧!谢谢各位了!
...全文
157 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amberrr_Li 2015-04-29
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
不明觉厉!
样本不够的问题现已解决。现在的问题是每一级选出来的特征,也就是弱分类器个数太少(10000个每一级才选出几十个)。而且,我用较少级数检测检测率还可以,当然误检率也比较大;用较大级数检测,检测率下降的很厉害,,误检率也降低了。
Amberrr_Li 2015-04-29
  • 打赏
  • 举报
回复
引用 2 楼 prfans1 的回复:
个人的一点看法: 负样本不够多造成下一级没有负样本了。 建议增加大量负样本,尤其是和识别场景相关的负样本。 另外,负样本没有了,证明训练已经可以结束了,看看是否是迭代次数太大了? 只要样本量很大,陷入死循环时直接出来即可,那时生成的参数文件即可使用。
你说的很对,我现在训练完一级专门用一个负样本集来扫描,找到那些分错的。但是,false positive rate在下一级刚开始实际上就很低了。按理说,因为选的都是之前分错的负样本,到下一级训练的时候应该fp比较高才对。这点一直很疑惑。而且,我有10000个特征,每一级竟然只有几十个特征被选出来。太奇怪了。。 另外,我用的是regionlet的方法,提取的是方向梯度直方图。
赵4老师 2015-04-16
  • 打赏
  • 举报
回复
不明觉厉!
prfans1 2015-04-16
  • 打赏
  • 举报
回复
个人的一点看法:
负样本不够多造成下一级没有负样本了。
建议增加大量负样本,尤其是和识别场景相关的负样本。
另外,负样本没有了,证明训练已经可以结束了,看看是否是迭代次数太大了?
只要样本量很大,陷入死循环时直接出来即可,那时生成的参数文件即可使用。

5,530

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧