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外交へと進化している。どのような課題に直面するのだろうか?

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

ブログ    
ブログ    

推薦する

人工知能は匿名のチェスプレイヤーの身元を確認でき、プライバシーの脅威となる

人工知能技術はすでに音声や手書きを通じて個人の身元を確認することができます。現在、人工知能アルゴリズ...

Ma Yi、LeCun、Xie Saining がマルチモーダル LLM の重大な欠陥を明らかにしました。画期的な研究により視覚的理解が大幅に向上

サム・アルトマンは、将来の AI テクノロジーが人類に利益をもたらすためには、大規模言語モデルのマル...

著者の半数以上が中国人です! Google Researchの画像表現モデルALIGNがImageNetを支配

[[399343]]ニューラル ネットワークは実際には表現を学習しています。CV の分野では、優れ...

5G、人工知能、音声技術…2020年に注目すべき6つのテクノロジートレンド

あらゆるもののインターネット化への道のりにおいて、自動化、5G、人工知能、音声技術、ブロックチェーン...

テンセントクラウドが高性能アプリケーションサービスHAIを開始、すべての開発者が独自のAIアプリケーションを開発可能に

AIGC アプリケーション開発のハードルを下げることによってのみ、次の AIGC 驚異的アプリケーシ...

プロのアニメーターがGANを使って「怠け者」を助ければ、数週間かかる仕事を数分で終わらせられる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

推奨システムにおける自然言語処理 (NLP) の応用

[[195357]]パーソナライズされた推奨はビッグデータ時代に欠かせない技術であり、電子商取引、情...

Antの信用リスク管理の実践

1. 信用リスク管理業務の背景と事例まず、当社の事業シナリオについて簡単にご紹介させていただきます。...

マイクロソフトCEOナデラ氏:私は4つの大きな変革を経験してきたが、AIは5番目だ

マイクロソフトのサティア・ナデラCEOは10月23日、メディアのインタビューで、同社はこれまで4つの...

マルチモーダル生成AIの深掘り

マルチモーダル生成型人工知能 (GenAI) は、汎用人工知能の実現に向けた次の大きな進歩と言えます...

Apple の「マトリョーシカ」拡散モデルはトレーニング ステップ数を 70% 削減します。

Apple による最近の研究により、高解像度画像における拡散モデルのパフォーマンスが大幅に向上しま...

画像認識技術を実装し、多様な応用シナリオを探索

Alpha Goの勝利により、人工知能における「ディープラーニング」の概念が急速に普及し、画像認識の...

責任あるAIの構築

現在、AI によって完全に有効化されたプロセスを備えている企業はわずか 25% であり、これらの企業...

モバイルアプリの開発とビジネスにおける人工知能の役割は何ですか?

人工知能の誕生により、モバイル アプリケーションに大きな可能性をもたらすまったく新しい時代が到来しま...