Pythonとdlibを使用した顔検出

Pythonとdlibを使用した顔検出

「Dlib は、高度なソフトウェアを作成するための機械学習アルゴリズムとツールの最新の C++ ツールキットです」。これにより、顔検出など、多くのタスクを Python で直接実行できるようになります。

dlib のインストールは、「pip install dlib」を実行するだけでは簡単ではありません。dlib を適切に構成してコンパイルするには、まず他のシステム依存関係をインストールする必要があるためです。ここで説明する手順に従えば、dlib を簡単に起動して実行できるはずです。 (この記事では、Mac に dlib をインストールする方法について説明しますが、Ubuntu を使用している場合は、関連リソース セクションのリンクを必ず確認してください。)

最初に確認する必要があるのは、Hombrew がインストールされ、更新されていることです。インストールする必要がある場合は、これをターミナルに貼り付けます:

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

あるいは、Hombrew を更新する必要がある場合は、次のように入力します。

  1. $ 醸造アップデート 

これで、Homebrew を使用して、CMake、Boost.Python、およびシステムで dlib を適切に構成およびコンパイルするために必要な 2 つの依存関係をインストールできるようになりました。

  1. $ brew をインストール cmake  
  2. $ brew boost-pythonをインストール

***、XQuartz を手動でダウンロードしてインストールする必要があります。

これで dlib をインストールする準備が整いました。まず、このプロジェクト用の分離された仮想環境を作成することでこれを実行します。ここでは virtualenv を使用しますが、Python の venv モジュールなど、使い慣れた仮想環境ツールであればどれでも使用できます。 scikit-image ライブラリは、後で dlib に渡す画像ファイルを読み取るために必要なので、pip でインストールする必要もあります。

  1. $ 仮想環境 venv_dlib  
  2. $ ソース venv_dlib/bin/activate  
  3. $ pip scikit-image をインストールします 
  4. $ pip dlibをインストール

それでおしまい。これにより、dlib が利用可能になるはずです。

ドリブ

Dlib はさまざまな顔検出アルゴリズムを提供します。ここで使用するのは、CNN ベースの顔検出器です。事前トレーニング済みのモデルをダウンロードできます: https://github.com/davisking/dlib-models。このモデルの使用は計算コストが高いため、次のコードは GPU 上で実行されます。 CPU を使用することもできますが、速度は遅くなります。

以下の gist の顔検出コードを実行するには、まず仮想環境にさらに 2 つのライブラリをインストールすることをお勧めします。これらのライブラリを使用すると、コードを操作して結果を視覚化することが容易になります。

  1. $ pip matplotlibをインストール 
  2. $ pip jupyterlabをインストールします

ライブラリをインストールしたら、次の点を確認する必要があります。

  • 事前トレーニング済みモデル(http://dlib.net/files/mmod_human_face_detector.dat.bz2)をダウンロードし、プロジェクトのルートディレクトリに保存します。
  • 「faces」という新しいディレクトリを作成し、検出したい顔の .jpg ファイルをこのディレクトリに保存します。

これで、画像内の顔の検出を開始する準備が整いました。 Jupyter Notebookで次のコードを実行することでこれを実行できます。

  1. dlibをインポートする 
  2. matplotlib.patches をパッチとしてインポートする 
  3. matplotlib.pyplot をpltとしてインポートします。  
  4. pathlibからPathをインポート 
  5. skimageからio をインポート 
  6. %matplotlib インライン 
  7. #トレーニング済みモデルをロードする 
  8. cnn_face_detector = dlib.cnn_face_detection_model_v1(  
  9. 'mmod_human_face_detector.dat' )  
  10. 関数 画像内の検出表示する 
  11. defdetect_face_dlib(img_path, ax):  
  12. #画像を読み取りアルゴリズムを実行する 
  13. img = io.imread(img_path)  
  14. dets = cnn_face_detector(画像、1)  
  15. # 顔が検出された場合はそれを表示する 
  16. len(dets) > 0の場合:  
  17. detsd場合:  
  18. rect = パッチ.Rectangle(  
  19. ( d.rect.left (), d.rect.top ()),  
  20. d.rect.width(),  
  21. d.rect.height(),  
  22. 塗りつぶし= False  
  23. 色 = 'b'  
  24. lw = '2' )  
  25. ax.add_patch(矩形)  
  26. ax.imshow(画像)  
  27. ax.set_title(str(img_path).split( '/' )[-1])  
  28. #画像へのパス 
  29. 画像 = list(Path( 'faces' ).glob( '*.jpg' ))  
  30. # 結果を表示 
  31. 図 = plt.figure(図サイズ=(15, 5))  
  32. i 、img をenumerate(images)指定します:  
  33. ax = fig.add_subplot(1, len(画像), i+1)  
  34. 顔検出ライブラリ(画像、ax)

結果

コードを実行すると、画像内の顔の周りに青い四角形が表示されます。数行のコードを書いただけなのに、これはかなりすごいことだと思います。

<<:  デジタル外交はAI外交へと進化している。どのような課題に直面するのだろうか?

>>:  人工知能はどれくらい普及しているのでしょうか?国内初となる人工知能講座が小中学校で実施されました!

ブログ    

推薦する

AI を活用することで、銀行は年間 1 兆ドルの追加収益を得ることができる | マッキンゼーの最新調査レポート

AI を活用して財務管理や投資を行いたいと考えていますか? [[351941]]好むと好まざるとにか...

CoCoPIE 主任科学者との対話: AI は審判になれるが、ショーを乗っ取ることはできない | T Frontline

「サッカーのフィールドで最もタブーなことは、誰もが明らかなファウルに気づいているのに審判が見て見ぬ...

あなたは統計学者になれますか?トランスフォーマーの強力な学習メカニズム「自動アルゴリズム選択」

ChatGPT などの大規模な Transformer ベースの言語モデルには、非常に強力なコンテ...

ランウェイの最強のライバルが登場、ワンクリックでショートビデオを生成、期間限定で無料

近年、AI による絵画のレベルは飛躍的に向上しています。 Midjourney と Adob​​e ...

米政府、AIの競争力と倫理について助言する委員会を設立

[[422878]]海外メディアCNETによると、米商務省は水曜日、人工知能の研究開発についてジョー...

企業に利益をもたらす 5 つの AI トレンド

[[358096]]市場の状況がますます複雑化する今日の不安定なビジネス環境では、組織が分析に基づく...

[文字列処理アルゴリズム] 最長共通部分文字列を取得するためのアルゴリズム設計とCコード実装

1. 要件の説明2 つの文字列を入力し、2 つの文字列の最長共通部分文字列を取得するプログラムを作成...

人工知能と機械学習は、組織がデジタルシステムを運用する上でますます重要になる

[[280794]]いくつかの困難や障害にもかかわらず、多くの企業がデジタル変革プロジェクトで大きな...

自動運転の国家基準が導入される。2021年はレベル3自動運転車元年となるか?

自動運転は間違いなく自動車の究極の開発トレンドとなるため、多くのメーカーが現在、自動運転車の開発に多...

...

清華大学、DeepMindなどは、既存の小サンプル学習法は安定的かつ効果的ではないと指摘し、評価フレームワークを提案した。

評価基準の違いにより、統一基準に基づく既存の小規模学習法の公平な比較が大きく妨げられており、この分野...

508件のAI防疫事例のデータ分析:各地域でのAI防疫パフォーマンス

新型コロナウイルス肺炎の流行が始まって以来、人工知能技術は、流行の監視と分析、人員と物資の管理、医療...

自動化によって、採用担当者が大規模な適格な人材を特定する方法

AI ベースの自動化ツールは、候補者データを収集して処理し、候補者の調達、スクリーニング、多様性、そ...

...

推奨システムの結果の品質を評価する方法

推奨システムは、インターネットの発展において最も一般的かつ重要な技術の 1 つです。今日では、あらゆ...