2010-11-26 1 views
12

これは解決できるかどうかわかりませんが、とにかく私は尋ねます。画像に顔が含まれていて、合理的に見えるかどうかを確認する方法

私の会社では、5〜10人の小規模なチームが村に行き、人々を登録する大規模な登録キャンプを扱います。登録には、いくつかのデータを入力し、指紋をキャプチャし、ウェブカメラを使用してエンドユーザの顔を撮影します。当然のことながら、私たちが活動を外部委託している外部ベンダーによって登録が行われます。

レコードの数が圧倒的に多いため、レコードを手動で検証しようとするとプロセス全体が遅くなります。そのため、できる限り多くのことを自動化しました.1つのことは、ウェブカメラで撮影した写真の品質が良いかどうかを確認することです。

「良い品質」は、ソフトウェアベースのソリューションには変換できない曖昧な用語です。しかし、自分自身に良い品質を定義しようとしているうちに、私はこれを発見しました:http://en.wikipedia.org/wiki/Image_quality

最後に、これらの画質チェックのどの部分を自動化することができますか。

注:写真は、スタンプサイズのスマートカードに印刷されます。 300 DPIで100x125ピクセルになることはほとんどありません。

乾杯、 ラグー

+1

新しいカメラの中には「顔認識機能」があることがわかっているので、明らかに誰かがこれに時間を入れています。がんばろう! –

答えて

4

openCVライブラリには、顔を検出するための素晴らしいコードがいくつかあります。 openCVの顔検出を画質のしきい値として使用して何かを試してみることができます。顔が正常に検出されれば、おそらくかなり良いでしょうか? http://sourceforge.net/projects/opencvlibrary/

+1

実際に私はこのテクニックを使用して終了しました。 OpenCVライブラリの.NETラッパーであるEmguCVを使用し、HaarCascadeベースの顔検出を使用しました。偽陽性を排除するために、私はまた、目、鼻&口のような他の顔の特徴を探すことを試みる。少なくとも2つの特徴が見つかった場合、私は写真が許容できる品質であると結論づけます。システムは数ヶ月間生きていますが、薄暗い写真を除いてはうまくいきます。 – Raghu

6
+1

実際には、これはあまりにも悪いことではありません.Kinnectの打ち上げの約6ヶ月前に、「左右の手を見つけて頭をマーク」していました。キャプチャ。私は、MSが顔と手の検出アルゴリズムを改善するためにそれを使用していたと思います。 –

7

Viola-Jonesアルゴリズムはクラシックです。 Hereその実装についての論文がありますが、多くのリソースがあります。

マイ好適写真:

alt text

Hereあなたは.NETがALGを実装するためのフレームワークを見つけることができます。 (無料です)

Ps:地球外生命体の中には、偽陽性を返すものがあることに注意してください。

+0

.NET実装のための壊れたリンク私は恐れていますが、[This](http://accord-framework.net/)は領域にあるかもしれません... 'Accord.Vision.Detection.HaarObjectDetector'? – PeterX

2

顔検出は、ECCV、ICCVなどのコンピュータビジョン会議で常に活発に研究されている論文であり、出版されています。この年にECCV2010にはさらにworkshop on face detectionがありました。だから、それは合理的な程度に解決可能です。

私があなただったら私はかなりシンプルなものを作っていましたが、それは照明、肌の色、フレーミングのばらつきの基本に対処できます。写真が一般的にマグショットになることを知っているなら、Viola-Jonesのような洗練されたものは必要ありません。顔検出システム(この画像の顔はどこですか?)ではなく、顔画像確認システム(この画像は顔写真のように見えますか?)を構築する必要があります。

最初に、輝度ヒストグラムを使用して照明がうまく(明るすぎず、暗すぎず)、画像がコントラスト(色合いが異なる)などを確認するなど、画像の基本を確認するだけです。

次に、顔/マッグショット検証システムを構築することができます。古典的な 'Eigenfaces for Recognition'のような顔空間を作成し、各マゴショットがこの部分空間のマッグショットに十分似ているかどうかを判断します。 (これはかなり簡単なテクニックであり、多くのコードがWeb上で利用可能です)。

関連する問題