ホームページ  >  記事  >  バックエンド開発  >  AI における Python の顔認識

AI における Python の顔認識

伊谢尔伦
伊谢尔伦オリジナル
2017-04-29 09:41:212409ブラウズ

昨年のalphagoの衝撃的なパフォーマンスにより、AIは再びテクノロジー企業の最愛の人になりました。 AI にはさまざまな分野が含まれますが、画像認識における顔認識は興味深い分野の 1 つです。 Baidu の BFR、Face++ のオープン プラットフォーム、Hanwang、iFlytek などはすべて、経験豊富なプログラマー向けに、小さなコードを作成して、写真に何人の人が写っているかを確認できます。 、ただの楽しみであり、必要なコードは 7 行だけです。

 import cv2
  face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
  sample_image = cv2.imread('/Users/abel/201612.jpg')
  faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))
  for (x, y, w, h) in faces:
  cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
  cv2.imwrite('/Users/abel/201612_detected.png', sample_image);

1行目 OpenCVの紹介

オープンソースは素晴らしいもので、視野を広げることができ、車輪の再発明をする必要がありません。 PIL を使用して特定のアルゴリズムと組み合わせる代わりに、OpenCV (http://opencv.org) が直接使用されます。 OpenCV は、BSD ライセンスに基づいてリリースされたクロスプラットフォームのコンピューター ビジョン ライブラリであり、Linux、Windows、および Mac OS オペレーティング システムで実行でき、C/C++ で書かれています。画像処理およびコンピュータ ビジョンにおける多くの一般的なアルゴリズムを実装するための MATLAB およびその他のインターフェイス。

2行目は分類器cv2.CascadeClassifierを読み込みます

CascadeClassifierはOpencvでの顔検出に使用されるカスケード分類器で、このクラスはターゲット検出機構、つまりスライディングウィンドウ機構+カスケード分類器をカプセル化しています。データ構造には、Data と FeatureEvaluator という 2 つの主要な部分が含まれています。 Data はトレーニングから取得した XML ファイルからロードされた分類子データを保存します。一方、FeatureEvaluator は特徴のロード、保存、計算に関係します。ここで使用するトレーニングファイルは、OpenCVにデフォルトで提供されているhaarcascadefrontalfacedefault.xmlです。 HaarやLBPの具体的な原理についてはopencvの関連ドキュメントを参照していただければと思います。簡単に言うと顔の特徴データとして理解できます。

3行目で対象画像imreadを読み込みます

顔認識システムは一般に、顔画像の収集、顔画像の前処理、顔画像の特徴抽出、照合と認識に分けられます。 簡単にするために、画像が読み込まれます。

4 行目 マルチスケール検出 detectMultiScale

マルチスケール検出を実行するには、CascadeClassifier の detectMultiScale 関数を呼び出します。 マルチスケール検出では、単一スケール メソッド detectSingleScale が呼び出されます。 。 パラメーターの説明:

scaleFactor は画像のスケーリング係数です

minNeighbors は各カスケード四角形で保持する必要がある近傍の数であり、人の周りに顔がいくつあるかとして理解できます

minSize は画像のサイズです検出ウィンドウ

これらのパラメータは画像に合わせて調整でき、処理結果は顔の長方形のオブジェクトリストを返します。

5行目と6行目は顔ごとに枠を描画します

ループして顔の長方形オブジェクトリストを読み込み、顔の長方形の座標、幅、高さを取得し、元の画像に長方形の枠を描画します。 OpenCV の四角形メソッドで、四角形の枠の色を調整できます。

7 行目 テスト結果を保存します

謎はこれら 7 行のコードではなく、OpenCV の関連する実装です。OpenCV の中国語 Web サイトも学習と体験に適しています。

したがって、7 行のコードは単なるギミックであり、本当のコアは OpenCV です。次に、OpenCV 環境をインストールするときにいくつかの落とし穴があるので、特に記録します。

MacベースのOpenCV環境

Brewを使ってインストールすることを推奨します brewがインストールされていない場合は、まず次のコマンドを実行します:

 $/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

次に、ターゲットウェアハウスを指定します $brew Tap homebrew/science

インストールします。 OpenCV3 $brew install opencv3

インストール速度はネットワークに依存します。インストール後、Python 開発環境をバインドする必要があります: 1) 環境変数を追加し、opencv のサイトパッケージを PYTHONPATH に追加します

2)。 ) cv2 への ln ソフト接続を使用します .so は Python 環境の site-packages にリンクされています

3) cv2.so を Python 環境の site-packages ディレクトリに直接 cp します

以下のコマンドを実行すると簡単です。

りー

以上がAI における Python の顔認識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。