顔画像のデータベースで特定の顔を検出する


110

私は、Twitterユーザーのプロフィール写真を使用した小さなプロジェクトに取り組んでいます。

私が遭遇した問題は、鮮明なポートレート写真である画像を除くすべてを除外した後、Twitterユーザーのごく少数のかなりの割合がジャスティンビーバーの写真をプロフィール画像として使用することです。

それらを除外するために、写真がジャスティンビーバーのものかどうかをプログラムでどのように判断できますか?


17
開発プラットフォームは何ですか?これは、他のすべてのプログラミング環境よりも優れているため、.NETで簡単に実行できます。Page.EradicateBieber()関数を呼び出すだけです。Microsoftはこの必要性を予見し、.NET 4.5ですぐに使用できるように提供してくれました。(古いバージョンを使用している人は待たなければなりません。)(もちろん、すべての

32
SOには[justin-bieber]タグは必要ないと断言できると思います。
スカッフマン

2
私は、人々がコメントとこの質問に近いオプション(投票に値するもの)よりも多くの賛成票を費やすと断言できます。

20
ジャスティンビーバーオーディオフィルターも良いでしょう

回答:


49

より良いアイデアは、複数のユーザーのフィードに表示されるすべての画像を破棄することです。認識は不要です。


2
ええ、写真を拒否する前に、おそらく2〜4回の重複のしきい値を設定します(新しい赤ちゃんのケースを処理するため)。写真をどうするかによりますね。
マーク・ベッシー

3
シンプルでエレガントなソリューション。+1。
ロバートハーヴェイ

13
人々は同じ人物の異なる写真を使用できます。
レベッカチャーノフ

(+1)レベッカおよび(-1)@ PPPPPP:これは単に問題を変えます。
ステフェン

4
それらは可能ですが、ほとんどの場合、比較的小さな画像プールから選択するので、おそらくまだ機能します。とにかく、私の写真は私の叔父のものです。
naught101

16

ここでは、http://www.tineye.com/commercial_apiが解決策であると感じています。Twitterのプロフィール画像をTineyeに投げるだけで、* *の小さな袋に関連している(または)として明確に識別できる(または単純な単語カウントロジックを使用して自動的に採点できる)画像(および関連するURL)を返すかどうかを確認します。

シンプル!


1
Googleは最近、画像検索を発表しました:youtube.com/watch ? v=t99BfDnBZcI APIがまだあるかどうかはわかりませんが、それは代替手段かもしれません。
ペトリチャー

11

鮮明なポートレート写真のみをフィルタリングできるため、生の画像を機械学習に役立つ機能に変換する機能生成の方法があると想定しています。それが本当なら、アルゴリズムに既知のビーバーの写真の束と既知の非ビーバーの束を与えることで、分類アルゴリズムのトレーニングを試みることができます(ニューラルネットワークなど)。モデルをトレーニングすると、新しい画像がビーバーかどうかを予測するために使用できます。

この種の教師あり学習テクニックでは、正しい答え(ビーバーかどうか)を知っているデータが必要ですが、それらはおそらくGoogle画像検索で見つけることができます。また、適切な種類の機能を備えている必要があり、画像処理やアルゴリズムについては、それが大きな欠点かどうかを知るのに十分な知識がありません。


2
残念ながら、機能生成のステップは最も困難で最も重要なものです:(
。– steffen

@steffen OPが面をいじっているという示唆があるので、記述子ジェネレーターがあります。

@mpq:ただし、OPがピクセルごとに1つの特徴を持たない場合、意味のある集約レベルを見つける必要があることは疑いませんでした。私はダウン票を投じませんでしたが、この答えの背後にある複雑さを指摘したかっただけです(もちろん正しいです)。
ステフェン

1
そうです、機能の生成手順は難しい部分です。彼は既に画像を処理するためのメカニズムを持っているので、OPがこれを行うことができると思っていました。Bieber / not Bieberの代わりに、顔を検出するのに便利な機能にすぎないかもしれませんが、機能に依存します。
マイケルマッゴーワン

7

eigenfaces、http://en.wikipedia.org/wiki/Eigenfaceなどのメソッドを使用できます。以下は、さまざまな実装へのリンクだけでなく、手順を順を追って説明しています。

http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm

ここから、これを分類アプローチで使用し、モデルをトレーニングしてからケースを予測するのが一般的です。これを行うには、既知の有名人を対象にトレーニングを行い、Twitterの顔をトレーニング済みの有名人のモデルの1つと予測する場合は削除します。これと同様http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/

これには絶え間ない修正が必要です。すぐに、トレーニングされたモデルには含まれない新しいジャスティンビーバーが登場するため、予測できません。ホイットニーヒューストンのようなケースもあります。彼女を前に追加することを考えたことはないかもしれませんが、彼女は数週間尊敬と賞賛から一般的なイメージかもしれません。ただし、上記のような赤ちゃんの写真の欠点はありません。これらの問題を克服するには、より多くの階層的クラスタリング手法を使用できます。特定のサポートレベルに達した場合に非常に近い最初の数セットのクラスターを削除すると、最初のクラスターには2番目のクラスターが構築される前に15個のアイテムがあります。これで、トレーニングモデルのだれについて心配する必要はありませんが、赤ちゃんの写真の問題に陥ります。




3

その画像が参照している人物を検出するアルゴリズムを適用する必要があります。有名な人格のさまざまな肖像写真に基づいてモデルを構築し、分類器を使用して、この写真がデータベース画像の1つを参照していることを確認できます。モデルの精度を上げるには、目の距離や他のパラメーターなど、顔に好まれるさまざまなパラメーターに基づいて特定の分類器を使用する必要があります。肌の分析もあります。最も重要なのは、適切な分類子を作成することです。この方法は脆弱な場合があります。

しかし、顔認識に取り組んでいる非常に良いプロジェクトもありますhttp://opencv-code.com/Opencv_Face_Detection


1
私の知る限りOpenCVのリンクされたサイトのみ顔実装検出を顔に向けた最初のステップである(?ピクチャ内ehereが人間の顔である)の認識(顔それは?)
f3lix

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.