本文將介紹圖像處理中的一些重要概念,除了具體解釋每個步驟之外,還將提供一個在Python中使用Cv2和DLib庫輕松進行人臉識別的項目。
感興趣區域
在使用圖像進行面部分析時,最重要的概念之一是定義感興趣區域(ROI),我們必須在圖像中定義一個特定的部分,在那里篩選或執行一些操作。
例如,如果我們需要篩選汽車的車牌,我們的感興趣領域只停留在車牌上,那么街道、車身和圖片中出現的任何東西都只是輔助部分。在本例中,我們將使用opencv庫,該庫支持對圖像進行分區并幫助我們確定感興趣領域。
Haar庫
本項目中將使用現成的分類器:級聯的Haar分類器,這種特定的分類器將始終適用于灰度圖像。
該算法生成了一個幾何圖形,該幾何圖形將識別與我們所分析的相似點。因此在本例中,它將嘗試尋找人臉圖案,即眼睛、鼻子和嘴巴。這種分析方法最大的問題是產生幻想性視錯覺。
你看到的是人眼還是幾扇窗戶?在希臘詞源學中,幻想性視錯覺是一種人類的特征。從童年起,我們的大腦就被編程來識別物體、圖像中的人臉。利用我們先前獲得的經驗,我們自己的大腦會根據我們所認識到的“人類”特征來尋找一種模式,增加新的人臉面孔。
使用Haar人臉特征分類器
用以下圖像為例:
來看看識別這張圖片中的人臉代碼:
該算法將圖像轉換為灰度圖像,如前所述,這是分類器操作的一個基本步驟,然后我們使用dectedMultiScale函數搜索圖像中的人臉,并通過繪制矩形來顯示圖像的位置,當定位人臉時結果如下:
我們能夠準確地分析兩張出現的臉(采用矩形的方式將人臉框起來),有兩個人完全正面地露出他們的臉,人臉完全顯現,所以我們可以清楚地看到他的臉;另一個人只露出了面部的一部分,所以我們沒有得到準確的信息來確認這是一張完整的人臉。
面部特征檢測
Dlib是一個擁有一些分類器的庫,可以幫助我們檢測人臉的某些部分,例如:眼睛、眉毛、鼻子和洋娃娃的區域。以下圖為例:
現在,使用算法來識別圖像中的面部特征點:
我們使用的是人臉68個特征分類器,它試圖更精確地理解點面,這給了我們更多的選擇去分析結果,其缺點是速度有點慢。所以必須劃定一個矩形來確定我們的臉可能在哪里,特征是我們可以識別的人臉特征,包括臉、嘴、眼睛、眉毛。
一旦用矩形的方式框出了臉,就可以使用功能部件將這些特征返回,最后將得到一些可視化的東西去生成一個帶有面部點的圖像。結果是:
這些點對于幫助識別表情很重要,例如我們可以識別出這個男孩睜著眼睛,閉著嘴巴。把這看作是一種情緒的表現,可以說這個男孩很焦慮。當一個人微笑時,它可以幫助理解這種情緒可能表達的是幸福。
上述例子向我們展示了,Python可以識別出我們感興趣的區域,在本文中就是人臉識別。這個項目還可以擴展到使用機器學習來檢測,探究圖像中的人是否感到快樂、悲傷或者憂慮。
包含所有內容的項目可從以下網址獲得:https://github.com/LimaGuilherme/facial-recognize
責編AJX
-
函數
+關注
關注
3文章
4327瀏覽量
62573 -
人臉識別
+關注
關注
76文章
4011瀏覽量
81860 -
python
+關注
關注
56文章
4792瀏覽量
84628
發布評論請先 登錄
相關推薦
評論