1. 程式人生 > >對人臉檢測中誤檢漏檢的一些理解~

對人臉檢測中誤檢漏檢的一些理解~

人臉檢測是二分類問題,誤檢指的是非人臉被認為是人臉,漏檢指的是人臉被認為是非人臉,誤檢和漏檢的理論解釋有一些,本文嘗試從下面這個角度與童鞋們探討一下誤檢漏檢的原因。

如果訓練樣本比較少(小樣本問題),會造成人臉檢測的誤檢還是漏檢?

答案應該是漏檢,請看下面這個圖,假設特徵在二維空間中進行表徵(w1,w2),黑色圓圈代表正樣本(人臉),黑色叉叉代表負樣本(非人臉)。紅色圓圈和綠色圓圈代表不同訓練樣本集合學習到的分類器。這裡我們進一步假設紅色圓圈是最優分類器,綠色圓圈是當前訓練樣本集合學習到的分類器。


紅色圓圈代表樣本多樣性最好的正樣本集合學習到的分類器,這個集合訓練出來的分類器的效能是最好的,然而,由於訓練樣本個數較少,雖然沒有負樣本,但多樣性不足,只能形成綠色圓圈代表的分類器,從圖上看,這種訓練樣本集學習出來的分類器勢必會造成一些正樣本被錯分為負樣本,卻不會令負樣本被分為正樣本,因為小樣本得到的分類器始終是正確的,只是效能不足而已,在圖上就表現為,綠色圓圈始終會在紅色圓圈之內。所以,小樣本問題會造成漏檢,而不是誤檢。


然而,為什麼在做人臉檢測的時候,樣本不夠多,發現誤檢漏檢都很多?什麼情況下會造成人臉檢測的誤檢?

如果正樣本訓練集合中,存在著負樣本(這點非常常見,需要花費較多的人力進行篩選),那麼訓練出來的分類器,無論如何都會導致一定程度的誤檢,即便是小樣本問題,如果此時訓練樣本中存在著負樣本,那麼同樣也會導致誤檢,如下圖所示。


所以,在做人臉檢測的時候,如果發現結果不是很理想,如果是漏檢較多,那就應該儘可能增加人臉樣本,如果是誤檢較多,那麼就要檢查一下正樣本(人臉)訓練集合中,是否有一些干擾樣本混在其中。同時,也要觀察負樣本集合,確保其中不要含有任何人臉樣本。

再說說另外一種情況,由於人臉存在著姿態,光照等各種複雜因素。導致正樣本集合中人臉分佈較為鬆散,這個時候,有必要進一步把人臉進行細分,分開訓練。比如說,側臉的分為一類,正臉的分為一類,低頭的分為一類。然後各自訓練,得到多個人臉檢測器。那麼,此時如果類別之間有所交叉,會不會造成漏檢或者誤檢呢?


我認為不會,因為就算是正樣本集合之間存在交叉,對於單個正樣本集合來說,不論其餘樣本是否均為負樣本,它能夠保證的只是判斷自己能力範圍內的正樣本,判斷不來的,完全可以由其他正樣本子類確定。如上圖所示,三個正樣本子類存在交叉,只要其合集學習到的分類器在紅色圈圈內,變和混合單類沒有什麼區別。

以上分析,均出於個人理解。有錯誤,請指正,謝謝!