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新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能は今後10年間で世界の成長を12%押し上げるだろう

[[206942]]国内外の権威ある20の機関のEconomic Information Daily...

東大大学の中国人博士が「心の理論」を使ってテキサスホールデムをプレイすることを GPT-4 に教えました。従来のアルゴリズムを上回り、人間の初心者を圧倒する

完全情報ゲームでは、すべてのプレイヤーがすべての情報要素を知っています。しかし、不完全情報ゲームは異...

機械学習アルゴリズムが NDA の法的分析テストで 20 人の弁護士に勝利

ロボット工学と人工知能の発展により、多くの仕事が機械に置き換えられるでしょう。機械は、一部のタスク、...

...

TPU v4 チップの計算能力が新たな高みに到達しました。 Googleが世界最大の機械学習センターを建設

最近、Google の I/O 開発者会議で、Google は魅力的な新しい携帯電話、AR グラス、...

エネルギー効率を向上させるために、脳は予測知覚能力を発達させた。

[[436377]]この記事はLeiphone.comから転載したものです。転載する場合は、Lei...

歩行者の軌道予測に効果的な方法と共通基本方法は何ですか?トップカンファレンスの論文を共有しましょう!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

まばたきが正常かどうか判断し、フェイク動画対策にも人工知能が活用されています!

AIが生成したPS動画は本物と見分けがつかないほどに進化している。昨年、ミシェル・オバマに似せるた...

今年上半期の世界的なベンチャーキャピタル投資はほぼ半減し、AIスタートアップには400億ドル以上が流入した。

調査会社ピッチブックが7月6日に発表したデータによると、世界のベンチャーキャピタルファンドは2023...

...

...

AIとロボットはどこで使われていますか?お伝えしたいユースケースはたくさんあります

人工知能とロボット工学はテクノロジー分野に大きな変化をもたらしています。 20年前に人々が夢見ていた...