1

皆さん、髪や周囲の環境から顔を分離する必要がある Android アプリケーションを作成しています。私はいくつかの研究をしました。円形トリミングを使用しても、詳細が失われるため、画像から効率的に顔を合わせることができないため、それほど効率的ではありません。Androidでこれを達成できればいいのにと思いますか? この目的のためにすでに作成されたソースコードはありますか? またはこの機能を提供するオープンソースライブラリはありますか? 正確に行う必要がある場合は、画像のセグメンテーションを通じて行う必要があるのではないかと考えていました?? それでも、アンドロイドが画像のセグメンテーションをどのように扱うかはわかりません。それは非常に計算集約的ではないでしょうか?? 可能性とトレードオフについて議論していただければ幸いです。私がやりたいのは、写真から顔を抽出して、それで遊ぶことができるようにすることだけです!

4

1 に答える 1

0

この種のことを処理する既存のライブラリ、つまりopenCVがあります(参考文献を参照してください)。

要するに、顔検出を行うにはいくつかの異なる方法があります。それは本当にあなたが達成しようとしていることに依存します。過去に主成分分析 (固有ベクトル分解) を使用して、顔の中心とその位置合わせ (つまり、カメラに向かって左または右に傾いている人) を見つけて、顔を抽出することができました。 xy平面に沿って正規化します。この方法は比較的効率的であると考えられておりO(n^2)、計算に時間がかかるため (nは画像内のピクセル数)、これらの方法が CPU で簡単に処理されるとは思わないでください。

目の位置を判断したり、人が笑っているかどうかを判断したりする場合は、他のより複雑な方法を使用できます。

以下は、 で使用するかなり一般的な画像処理ライブラリを使用して、あなたが要求したものとまったく同じ完全に機能する例ですC。幸運を!


編集: javaCV を使用した Java の例については、リファレンス [2] を参照してください。

参考文献:


  1. http://opencv.willowgarage.com/wiki/FaceDetection
  2. http://tkgospodinov.com/computer-vision-face-detection-in-java-with-opencv-using-javacv/
于 2013-08-12T16:35:39.350 に答える