web-dev-qa-db-ja.com

MySQLおよびPHPを使用した顔認識(OpenCV)

まず、私はこの問題をstackoverflowで質問し、サイトに属していない質問に投票しました。私は今自分の運seを試しています(seに適していると思います)。ここからも投票しないように願っています。

データベースから画像を検索する顔認識アプリを開発したい。 opencvを少し見ました。本当に気に入って使用したいのですが、サーバーバックエンドにPHPを使用する予定で、OpenCVがC++であることが問題です。私のアプリはPHPとC++の間の多くの通信を必要とし、データベースに接続してそれらから画像を取得する必要があります。基本的に私がやろうとしているのは:

  • PHPは、目的の画像ファイルを含むリクエストを取得します
  • PHPはこのイメージをC++コードに渡します
  • C++はデータベースを検索して人を見つけます
  • C++は結果をPHPに渡します
  • PHPは結果をクライアントに返します

しかし、この方法は、私にとってそれを行う方法に多くの灰色の領域があるので、私は本当に怖いです。ソケットを使用して通信またはIPC(可能な場合はPOSIXメッセージなど)を使用するか、プロジェクトに完全にC++を使用するか(C++サーバーは非常に難しい場合があります)、またはPHPを使用する必要があります_拡張機能(私はそれについてほとんど何も知りません)。データベースでOpenCVを使用する方法と高速検索を実行する方法(グレースケールのトリミングされた画像のハッシュ値など)また、ユーザーのためにいくつかの画像をトレーニングするために顔を検出する必要がありますが、これも上記の手順が必要です。あなたができる提案は何ですか?このアプリケーションを実装するのに最も簡単な方法はどれですか。言語とまとまりのない構造の質問で失礼しますが、プロジェクトのほとんどすべてについて本当に心配しているので、本当にやりたいと思っています。どんなガイダンスもありがたいです

3
mayy00

PHP OpenCVのラッパー OpenCV For PHP

さて、認識の部分については、最善の方法は Artificial Neural Networks 。 ANNは、画像内の人々をidentifyするようにトレーニングでき、比較的一貫性のない入力を処理して比較的安定した結果を生成できるため、より適しています。 FANN のようなPHPのANN実装があるようです。 ANNの実装も非常に高速である必要があり(トレーニングが完了すると)、データベースを他の目的で使用したり、ニューラルネットワーク自体を永続化したりしない限り、データベースは不要になります。

これは、ソリューションを完全にPHPで作成できることを意味します。

とは言っても、ラッパーに関する私の経験では、元のライブラリによって提供されるすべての機能が常に得られるとは限らないため、PHPフロントエンドを処理することもできます。次に、C++をバックエンドとして使用します。これにより、OpenCVのすべての機能を活用できるようになります(将来のアドオンに役立つ可能性があります)。

2つのレイヤー間の通信については、標準のSOAP Webサービス通信( [〜#〜] php [〜#〜] および C/C++ )は、堅牢なソリューションを提供します。

4
npinti