OpenCV學習筆記(三十三)——用haar特徵訓練本身的分類器(再作手勢檢測)

以前介紹過一篇利用級聯分類器對目標進行檢測的文章http://blog.csdn.net/yang_xian521/article/details/6973667,用的就是haar特徵。發現OpenCV自帶的庫裏的haar特徵只有人臉、人臉的器官和人的身體,最近又想玩一我的手的檢測,以前用顏色特徵作的,感受很不靠譜,此次用haar特徵再試一次。這就須要用haartraining這個工具訓練本身的手。先介紹一些預備知識,推薦個網址http://www.opencv.org.cn/index.php/%E7%89%B9%E5%BE%81%E6%A3%80%E6%B5%8B%E4%B8%93%E9%A2%98,讀完相信對haar特徵前因後果有個認識了,具體怎麼使用,推薦看看這個http://note.sonots.com/SciSoftware/haartraining/document.html,再推薦這個網址http://note.sonots.com/SciSoftware/haartraining.html,都是英文哦,我就是按照這個英文介紹的教程訓練本身的手分類器的。後來發現有人已經作了這個教程的翻譯http://blog.csdn.net/onlyyouandme/article/details/4722160http://blog.csdn.net/onlyyouandme/article/details/4722202(仍是看英文原文比較詳細),我也參考了這個http://hi.baidu.com/andyzcj/blog/item/3b9575fc63c3201f09244d9a.html,都貼上來以備之後再訓練時學習須要。訓練過程至關痛苦漫長,累死我心愛的PC了。因爲訓練數據不是個人我的財富,因此不便上傳,這裏把我download的一個老外訓練的拳頭的手勢分類器(拳頭在英文手語裏表示字母A)做爲實驗來源。php

資料仍是得看啊,又讀了經典文獻《Robust Real-Time Face Detection》,不肯意讀原文的朋友能夠看看http://blog.csdn.net/hqw7286/article/details/5556767,做者把文中的要點基本也都總結出來了。OpenCV的實現過程也是在這篇文章的基礎上,後來又不斷完善的。html

本身跟蹤了一下代碼,發現OpenCV的級聯分類器的分爲老版本和新版本,全部的haar級聯分類器都是老版本的,只有一個lbp分類器是新版本的,而老版本的級聯分類器的訓練檢測仍是用老版本的數據結構來寫的(讓我很不爽,真想變得強大起來,用新數據結構寫一下),爲了這個新版本的級聯分類器,多添加了大量的代碼,但是用haartraining訓練出來的分類器也是老版本的,該如何添加新版本的級聯分類器啊,期待下一版本的OpenCV可以用新版本的haar級聯分類器替代老版本。從這段代碼中,我也深深體會到版本兼容的辛酸了。再這裏也默默祝OpenCV愈來愈好,更規整,更強大。數據結構

最後上傳一下效果圖,再上傳一段錄製的視頻(上鏡了,很挫)http://v.youku.com/v_show/id_XMzI4NTQ1OTQ4.html和代碼下載地址http://download.csdn.net/detail/yang_xian521/3873942工具