以下article,會給你一個引擎蓋下的事情的概述,我強烈建議閱讀文章。
做更高級相機的決議對Haar-Cascades更好嗎?
不是必需的,cascade.detectMultiScale
有PARAMS調整各種輸入寬度,高度情景,像minSize
和maxSize
,這些都是可選PARAMS不過,但是你可以調整這些獲得強大的預測,如果你有控制輸入圖片大小。如果您將minSize
設置爲較小的值並忽略maxSize
,那麼它對較小和高分辨率的圖像也適用,但性能會受到影響。此外,如果現在想象一下,如何在高分辨率和低分辨率圖像之間沒有差異,那麼您應該考慮內部縮放圖像以降低分辨率以提高性能,這就是爲什麼定義maxSize
和minSize
對於避免任何不必要的迭代。
我是否必須以一定的比例捕捉視頻幀?例如 (100像素X100px)
這主要取決於你傳遞給cascade.detectMultiScale
的PARAMS。我個人認爲100 x 100
對於較小的人臉檢測來說太小了,因爲在將框架調整到較小的尺寸時某些功能會完全丟失,並且cascade.detectMultiScale
高度依賴於輸入圖像中的漸變或特徵。
但是,如果輸入框架只有臉部作爲主要部分,並且沒有其他較小的面部懸在後面,那麼您可以使用100 X 100
。我已經測試了一些尺寸爲100 x 100
的樣本面,效果很好。如果情況並非如此,那麼300 - 400
像素寬度應該很好。但是,您需要調整參數才能達到準確性。
Do Haar-Cascades在灰度圖像中的工作更好嗎?
它們只能在灰度圖像中工作。
在article如果你讀了第一部分,你會發現它的面部檢測包括檢測圖像中的許多二進制模式,這基本上來自ViolaJones,這是該算法的基本原理。
不同的照明條件有什麼不同?
可能在某些情況下,主要是哈爾特徵是光照不變的。
如果你正在考慮不同照明條件爲採取下綠光或紅光的圖像,那麼其可能不會影響檢測,哈爾-特徵(因爲依賴於灰度)是獨立於輸入的RGB顏色的圖片。檢測主要取決於輸入圖像中的梯度/特徵。因此,只要輸入圖像中存在足夠的梯度差異,例如眼眉的強度低於前額等,它就可以正常工作。
但是,考慮輸入圖像具有背光或環境光很弱的情況,在這種情況下,可能會發現某些突出的特徵未找到,這可能導致未檢測到面部。
detectMultiScale(params)方法的確切做法是什麼?
我想,如果您已閱讀article
,那麼您現在一定知道這一點。
如果我想去的眨眼進一步分析,眼睛閉合 時間,嘴打哈欠,點頭和頭部方向來檢測 疲勞(嗜睡)通過使用支持向量機,有何意見?
不,我不會建議你用SVM執行這些類型的手勢檢測的,因爲這將是運行10個不同的級聯結束當前的面部狀態非常慢,但是我會建議你使用一些面部Landmark Detection Framework,例如Dlib,您也可以搜索其他一些框架,因爲dlib的模型大小將近100MB,如果您想將它移植到移動設備上,它可能不適合您的需要。所以關鍵是**面部標記檢測**,一旦你得到全臉標記,你可以得出結論,如口如果打開或眼睛閃爍,並且它在實時工作,所以你的視頻處理贏得'受到很大的影響。