2013-12-10 36 views
0

我的根本問題是我有一個iOS(iPhone)應用程序,它使用前置攝像頭(480x640)並需要檢測臉部活躍度。需要幫助改善眼睛對檢測

我目前正在嘗試使用眨眼檢測來完成此操作。我不想依賴iOS CIDetector功能。所以我決定研究這種方法: http://www.technolabsz.com/2013/05/eye-blink-detection-using-opencv-in.html

這種方法依賴於使用哈爾分類器(mcs_eyepair_big或mcs_eyepair_small)的眼睛對檢測。我遇到的第一個挑戰是眼睛對檢測是不可靠的。儘管frontalface_alt工作得很好,但它並不一致。我已經嘗試了遠離和靠近相機的良好照明,並且即使靠近相機也無法獲得一致的檢測結果。戴眼鏡並不適用於PERIOD。

這是我的檢測代碼:

small_eye_pair_cascade.detectMultiScale(mat, objects, 1.1, 0, 
    CV_HAAR_FIND_BIGGEST_OBJECT | CV_HAAR_DO_ROUGH_SEARCH | CV_HAAR_SCALE_IMAGE | CV_HAAR_DO_CANNY_PRUNING, 
    cv::Size(15, 75)); 

如果沒有檢測到使用小eyepair,然後我回落到大eyepair具有相同detectMultiScale參數作爲小eyepair。我正在檢測整個相機圖像。

有沒有人有改善成功的建議?示例問題: 1)我應該使用不同的detectMultiScale參數嗎? 2)將圖像裁剪到人臉上半部分會提高檢測效果,還是僅僅提高性能? 3)我應該選擇一種完全不同的方法而不使用eyepair分類器嗎?

回答

1

您可以檢測使用面部地標檢測器,如flandmark探測器眼睛周圍的區域: http://cmp.felk.cvut.cz/~uricamic/flandmark/

或STASM: http://www.milbo.users.sonic.net/stasm/

他們比哈爾級聯更可靠。

+0

謝謝。你會如何建議應用這兩個實現來檢測活躍性? – jacob

+0

我剛剛發現這個其他職位,你作出回答我的問題: http://stackoverflow.com/questions/20386285/blink-detection-with-asm-co-ordinates – jacob

+0

謝謝。 STASM工作得很好。我編譯的是作爲iOS的靜態庫。 – jacob