シンプルでスマートなアプローチ: Python による顔認識

シンプルでスマートなアプローチ: Python による顔認識

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)から転載したものです。

この記事では、画像処理におけるいくつかの重要な概念を紹介します。各ステップを詳しく説明するだけでなく、Cv2 および DLib ライブラリを使用して Python で簡単に顔認識を実行するプロジェクトも提供します。

関心分野

顔分析のために画像を扱う際の最も重要な概念の 1 つは、関心領域 (ROI) を定義することです。画像内で、フィルタリングしたり、何らかの操作を実行したりする特定の部分を定義する必要があります。

たとえば、車のナンバープレートをフィルタリングする必要がある場合、関心領域はナンバープレートだけであり、道路、車体、および画像に表示されるその他のものはすべて補助的な部分になります。この例では、画像の分割をサポートし、関心領域を決定するのに役立つ OpenCV ライブラリを使用します。

ハール図書館

このプロジェクトでは、既製の分類器であるカスケード Haar 分類器を使用します。この特定の分類器は常にグレースケール画像で機能します。

アルゴリズムは、分析対象との類似性を識別するジオメトリを生成します。したがって、この場合は、目、鼻、口などの顔のパターンを見つけようとします。この分析方法の最大の問題は、錯覚を生み出すことです。

あなたが見ているのは人間の目ですか、それとも窓ですか? ギリシャ語の語源を持つパレイドリアは、人間の特徴です。私たちの脳は子供の頃から、画像内の物体や顔を認識するようにプログラムされています。私たち自身の脳は、以前に獲得した経験を利用して、「人間」として認識した特徴に基づいてパターンを検索し、そこに新しい人間の顔を追加します。

Haar顔特徴分類器の使用

次の画像を例に挙げます。

この写真の顔を認識するコードを見てみましょう。

  1. cv2をインポート
  2. グループの画像= cv2.imread ('images/image7.jpg')
  3. frontal_face_classifier = cv2.CascadeClassifier ('classifier/haarcascade_frontalface_default.xml')
  4. グレースケールの画像= cv2.cvtColor (人々のグループの画像、cv2.COLOR_BGR2GRAY)
  5. faces = frontal_face_classifier .detectMultiScale( image = image_in_gray_scale scaleFactor = 1.3 minNeighbors = 6 )
  6. 顔の(x_axis, y_axis, weight,height)の場合:
  7. cv2.rectangle(group_of_people_image、(x_axis、y_axis)、(x_axis + 体重、y_axis + 身長)、(255、0、0)、2)

アルゴリズムは画像をグレースケール画像に変換します。これは、前述のように、分類器の動作における基本的なステップです。次に、 dectedMultiScale 関数を使用して画像内の顔を検索し、四角形を描画して画像の位置を表示します。顔が見つかると、結果は次のようになります。

写り込んだ顔のうち 2 つを正確に分析することができました (顔を長方形で囲みます)。そのうち 2 つは顔が完全に正面から写っており、顔が完全に露出していたため、顔がはっきりと見えました。もう 1 つは顔の一部しか写っていなかったため、完全な顔であると確認できる正確な情報は得られませんでした。

顔の特徴検出

Dlib は、目、眉毛、鼻、人形の領域など、顔の特定の部分を検出するのに役立つ分類器を備えたライブラリです。次の図を例に挙げます。

次に、アルゴリズムを使用して画像内の顔のランドマークを識別します。

  1. cv2をインポート
  2. dlibをインポートする
  3. numpyをnpとしてインポートする
  4. 初期画像= cv2.imread ('images/image9.jpg')
  5. 初期画像 in rgb = cv2.cvtColor (初期画像、cv2.COLOR_BGR2RGB)
  6. 参照画像=初期画像 in rgb .copy()
  7. classifier_path = dlib.shape_predictor ('classifier/shape_predictor_68_face_landmarks.dat')
  8. frontal_face_detector = dlib.get_frontal_face_detector ()関数
  9. 長方形= frontal_face_detector (初期画像、1)
  10. k, d について、(長方形を)列挙します:
  11. cv2.rectangle(参照画像、(d.left(), d.top())、(d.right(), d.bottom())、(255, 255, 0)、2)
  12. ランドマーク= []
  13. 長方形の中の長方形の場合:
  14. ランドマーク.append(np.matrix([[px, py] p inclassifier_path(reference_image,rectangle).parts()]))
  15. ランドマーク内のランドマークの場合:
  16. インデックスの場合は、ポイントを列挙します(ランドマーク):
  17. ポイント中心= (ポイント[0, 0]、ポイント[0, 1])
  18. cv2.circle(参照画像、中心点、3、(255、255、0)、-1)
  19. cv2.putText(reference_image,str(index), point_center, cv2.FONT_HERSHEY_COMPLEX, 3, (255, 255, 255), 2)

私たちは、点と顔をより正確に理解しようとする顔 68 特徴分類器を使用しており、これにより結果を分析するためのオプションが増えます。欠点は、少し遅いことです。したがって、顔がどこにあるかを判断するために長方形を描く必要があります。特徴とは、顔、口、目、眉毛など、私たちが認識できる顔の特徴のことです。

顔を長方形で囲んだら、関数によって返された特徴を使用して、最終的に顔のポイントを含む画像を視覚化して生成できるようになります。消す:

これらのポイントは、顔の表情を認識するのに役立ちます。たとえば、男の子が目を開いて口を閉じていることを認識できます。これを感情の表れとして見ると、少年は不安を抱いていると言えます。人が笑うとき、その感情は幸福を表している可能性があると理解すると役立ちます。

上記の例は、Python が関心領域(この場合は顔認識)を識別できることを示しています。このプロジェクトは、機械学習を使用して、画像内の人物が幸せか、悲しいか、心配しているかを検出するように拡張することもできます。

すべてのコンテンツを含むプロジェクトは、https://github.com/LimaGuilherme/facial-recognize から入手できます。

<<:  新型コロナウイルスに対して、最高のAI定量モデルでさえあまり信頼できない

>>:  AI の将来とそれがビジネスに与える意味は何でしょうか?

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

メタバースの目!メタの機械式バイオニックアイの特許が明らかになり、バイオニック人体に搭載される予定

ロボットの皮膚、空気圧触覚手袋... Meta は将来のメタバースに、よりリアルな触覚インタラクショ...

...

人工知能では顔と性格の違いは分からない

中国の研究チームは、女性の外見だけに基づいてその性格特性を予測できる人工知能プログラムを立ち上げたと...

自動運転がどんどん近づき、高精度地図の実用化も加速

近年、自動運転技術の急速な発展とインテリジェントコネクテッドカーの導入が進む中、鍵となる高精度地図の...

モバイルデバイスでのリアルタイムディープラーニング

[[210219]] 2017 年には、モバイル アプリケーション向けのディープラーニングにおいて大...

ミツバチたちは、巣を監視し、餌を自動で分配できる多機能ロボットを搭載したこのスマートな巣箱に感銘を受けています。

ビッグデータダイジェスト制作著者: カレブスマート農場はますます私たちの身近なものになってきています...

Huawei が積極的に攻勢をかけており、Google もすぐ後に続いています。人工知能をめぐるこの戦いに勝つのは誰だと思いますか?

[[244829]]テクノロジー大手のHuaweiは最近かなり活発に活動している。 9月1日、ファ...

顔認識システムはすごいですね!チケット転売業者が体調を崩して入院、警戒を呼び起こす

最近、北京同仁病院の警報システムが作動し、職員は北京天壇病院で活動していたチケット転売業者が北京同仁...

予測:2022年のモノのインターネットの発展における3つの主要な技術トレンド

IoT がどのように発展していくかを予測することは困難ですが、一部の IoT テクノロジーは数年以内...

...

...

...

データの品質は機械学習を成功させる鍵です

翻訳者 | 張毅校正 | 梁哲、孫淑娟出典: frimufilms が作成したビジネス写真 - ww...

...