OpenCV 随机森林(Random Forest)手势识别应用---样本选择问题

如图,这是打电话手势。在进行背景处理、二值化、统一尺寸后,提取ROI的轮廓得到的20*20图片。


现在要将手势提取出来,用的是基于OpenCV的随机森林(Random Forest)API。

手势识别,本质上就是,将一个模板与另外所有的模板区分开。用过OpenCV的人脸识别训练特征函数HAAR的同学就知道,训练的时候有正模板(Positive samples)和负模板(Negtive samples)。正模板就是要识别的对象,负模板就是除了识别对象意外的图片。


本文的主旨就在于,在进行随机森林的训练时,究竟怎样选择样本?除了正、负样本个数,还有就是负样本的复杂程度。负样本的复杂程度直接决定了负样本的信息量丰富程度



现在我将1000张”剪刀手“作为负样本、1000张”打电话来训练。训练后的model文件包含了随机数个数,如果打开model文件会发现,随机数个数只有几个。

随机数个数少意味着什么?

如果把model文件比作机器学习过后,有对象检测能力的机器。那么这个机器判断对象的依据很少。这个机器可以将以上两种手势分开来,从而将“打电话”手势拿到。

但是如果Input的图像复杂一点,实验证明,机器经常负样本误认为“打电话”手势

因为随机森林就像一个裁判员的集合,过少的裁判员产生的结果不具有代表性。


实验证明,负样本包含的对象复杂一点、多样一点,而且包含纯黑背景图片,训练出来的随机树个数有指数级增长。随机森林predict出来的结果鲁棒性更好。

在实际应用中,就能够将“打电话”手势从其它对象中区分开来。




  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值