aihot  2017-04-28 07:05:29  OpenCV |   查看评论   

 交互系统的构建之(四)手掌与拳头检测加盟TLD


交互系统的构建

 

本文将完成:

       运行前加入手掌的检测,检测到手掌作为需要跟踪的目标(这样就不需要用鼠标框选目标box了)、运行时加入拳头的检测,检测到拳头,则表示用户单击。

 

        有关于本系统构建的文章结构都会由三个部分来组织,一是该功能模块的介绍和在Linux下简单应用的实现;二是将该功能模块整合到交互系统(先以TLD为地基)中去;三是分析目前存在的问题与未来的解决构思。

 

一、手掌和拳头的检测原理和

1.1、原理

       该部分使用到的手掌的检测是基于OpenCVHaar+AdaBoost,而拳头检测是基于OpenCVLBP+ AdaBoost

       目前整体交互系统的检测过程我修改如下:

       系统启动,语音会进行提示;然后先用拳头放进摄像头区域,然后张开手掌,系统就会检测到手掌,然后我提取检测到的手掌的一个方框,作为TLD需要跟踪的目标Bounding Box(不再需要鼠标去框选了),这样TLD就会跟踪这个手掌,用手掌去控制鼠标。然后再处理帧的过程中,会检测拳头,检测到拳头表示鼠标单击事件。但拳头检测并不是检测整张图像,为了提高检测速度,我这样处理:假设跟踪器跟踪到了手掌Box,那么这时候握拳的地方肯定在手掌box的附近,所以把这个手掌box稍微加大(为了稳定),把这个box框内的图像传给拳头检测器检测。

 

1.2、编程

       在现在的OpenCV版本中,使用级联分类器做人脸检测的时候,有两种选择:一是使用老版本的CvHaarClassifierCascade,一是使用新版本的CascadeClassifier类。老版本的分类器只支持类Haar特征,而新版本的分类器既可以使用Haar,也可以使用LBP特征。

       类CascadeClassifier中实际上封装了新旧两种分类器,对于老版本的xml模型文件,CascadeClassifier会用CvHaarClassifierCascade去解析,并用cvHaarDetectObjects去检测。而对于新版本的xml文件,CascadeClassifier会用自己的一套格式去解析。

使用起来很简单,只需要简单的几步:

//创建级联分类器对象

CascadeClassifier cascade;

 //加载级联分类器

cascade.load( “haarcascade_frontalface_alt.xml” );

 //转换成灰度图像

cvtColor( img, smallImg, CV_BGR2GRAY );

//可以先缩放灰度图像,再对图像进行直方图均衡

 1/7    1 2 3 4 5 6 下一页 尾页
 

除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自交互系统的构建之(四)手掌与拳头检测加盟TLD

留言与评论(共有 0 条评论)
   
验证码:
[lianlun]1[/lianlun]