Opencv 的强大程度超乎我们的预料。
Opencv 机器学习官方文档给出的算法涵盖了 Statistical Models、Normal Bayes Classifier、K-Nearest Neighbors、Support Vector Machines、Random Trees等算法。
OpenCV安装文件夹(\opencv\sources\samples\cpp)中,可以找到“letter_recog.cpp”文件,即字母检测程序。
程序涵盖了以上几种算法对字母进行检测,默认是用Random Trees的方法进行检测,还与字母“T”进行了相似度匹配。
本文的程序gesture_randomTree基于点击打开链接提供的程序进行修改,能都对5种手势图像(每类10种,共50张图)进行Learning,然后用学习的结果对这50张图进行检测,结果是100%正确。
那么我将一张不属于学习范围的手势(即不属于这5种手势)的图放进去检测,结果如何呢?
结果是程序将它识别成第4种手势。这是目前的问题所在,即需要根据匹配的相似度排除那些非手势图片。
接下来的工作,就是解析每次识别的probability,即与现有sample的相似程度,当低于特定阈值的时候,将图片排除在现有手势之外。