昨年の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 サイトの他の関連記事を参照してください。