2010-11-26 51 views
12

我不確定這是否可以解決,但我仍然會問。如何檢查圖像是否包含臉部並且是合理可見

在我們公司,我們處理大規模的招生營,5到10人的小團隊去村裏招人。註冊包括輸入一些數據,捕獲指紋並使用網絡攝像頭拍攝最終用戶的照片。可以理解的是,我們已將外包活動的外部供應商完成了註冊。

由於記錄數量非常大,試圖手動驗證記錄正在使整個過程變得緩慢。因此,除了一件事情之外,我們儘可能地實現了自動化,即檢查使用網絡攝像頭拍攝的照片質量是否良好。

我知道,「好質量」是一個模糊的術語,不能轉化爲基於軟件的解決方案。然而,在試圖給自己定義好質量的同時,我發現這一點:http://en.wikipedia.org/wiki/Image_quality

現在,最後來到我的問題,這些圖像質量檢查的哪些部分可以自動執行。

注意:照片將打印在智能卡上,郵票大小。 300 DPI時,它們幾乎不會達到100x125像素。

乾杯, Raghu

+1

我知道一些新的相機具有「人臉識別功能」,所以顯然有人已經投入了時間。祝你好運! – 2010-11-26 15:33:15

回答

4

openCV庫有一些偉大的代碼檢測面孔。您可以使用openCV人臉檢測作爲圖像質量的閾值來安裝某些東西 - 如果它成功檢測到一張臉,它可能相當不錯? http://sourceforge.net/projects/opencvlibrary/

+1

其實我結束了使用這種技術。我使用了EmguCV,一個圍繞OpenCV庫的.NET包裝器,並使用了基於HaarCascade的人臉檢測。爲了消除誤報,我還嘗試尋找其他面部特徵,例如眼睛,鼻子和嘴巴。如果找到至少2個特徵,則我認爲該照片具有可接受的質量。該系統現在已經運行了幾個月,似乎工作正常,除了幾張昏暗的照片。 – Raghu 2011-10-23 11:15:40

6
+1

其實這並不算太壞的想法,大約在Kinnect發佈前6個月,我正在做「找到左手和右手並標記頭部」,並且從看起來我可以發誓的那一點來看,Kinnect是捕獲。我認爲MS使用它來改進它的面部和手部檢測算法。 – 2010-11-26 15:36:25

7

Viola-Jones算法是一個經典。 Here你可能會發現一篇關於它的實現的文章,但你會發現很多資源。

我喜愛的圖像:

alt text

Here你會發現對於.NET實現ALG的框架。 (它是免費的)

ps:請注意,一些外星生命形式可能會返回誤報。

+0

.NET實現的斷開鏈接恐怕 - 但[this](http://accord-framework.net/)可能在領域...`Accord.Vision.Detection.HaarObjectDetector`? – PeterX 2016-09-13 04:11:14

2

人臉檢測是一個非常活躍的研究課題和論文,並一直在諸如ECCV,ICCV等計算機視覺會議上發表。在這幾年中,ECCV2010甚至有一個workshop on face detection。所以,是的,它可以在合理的程度上解決。

如果我是你,我會創建一些非常簡單的東西,但這可以應付照明,膚色和框架變化的要點。如果你知道這些照片一般都是照片,你不需要像Viola-Jones那樣複雜的東西。你應該建立一個mugshot驗證系統(這個圖像看起來像是一張照片嗎?)而不是一個人臉檢測系統(這張圖片中的人臉是哪裏?)。

首先,檢查圖像中的基礎知識 - 例如使用強度直方圖確保照明良好(不太亮;太暗),圖像具有對比度(不同的陰影)等。

然後,你可以建立一個face/mugshot驗證系統 - 像傳統的'Eigenfaces for Recognition'文章那樣構建一個臉部空間,然後確定每個mugshot是否足夠像這個子空間中的一個面部照片。 (這是相當簡單的技術,網上有很多代碼可以用來做這件事)。