CPUのみを使用して1000FPSで実行できます。これはオープンソースのC++クロスプラットフォーム顔検出プロジェクトです。

CPUのみを使用して1000FPSで実行できます。これはオープンソースのC++クロスプラットフォーム顔検出プロジェクトです。

さまざまな依存環境によって常に荒廃していますか?コンピューターと携帯電話の両方で実行できる、C++ で書かれたクロスプラットフォームの顔検出プロジェクトをご覧ください。

プロジェクトアドレス: https://github.com/ShiqiYu/libfacedetection

顔検出は、人間とコンピュータのインタラクション、セキュリティ監視、ソーシャルエンターテイメントなどの分野で広く使用されており、実用価値が高いため、幅広い注目と研究を集めています。多くの顔検出方法の中で、畳み込みニューラル ネットワークを使用して検出する方法は、最も人気のある方法の 1 つです。しかし、他の人のオープンソース プロジェクトを使用する場合、さまざまな依存環境をインストールする必要があることがよくあります。依存環境によって、ハードウェア プラットフォームやオペレーティング システムごとにサポート レベルが異なるため、プロジェクトのクロスプラットフォーム移行の難易度が高くなります。

この記事では、顔検出に畳み込みニューラル ネットワークを使用するオープン ソース プロジェクトを紹介します。最大の特徴は、C/C++ をサポートするすべてのプラットフォームでコンパイルして実行できることです。作者は、事前トレーニング済みの CNN モデルを静的変数に変換し、C ファイルに保存したため、プロジェクトには他の依存関係は必要ありません (もちろん OpenCV は必要です)。任意のプラットフォームや組み込みシステムでプロジェクトをコンパイルして実行するには、C++ コンパイラのみが必要です。

特に魅力的なのは、このプロジェクトが C++ で書かれており、AVX2 をサポートし、i7 CPU で驚異的な 1000 FPS で実行できることです。下の図は、プロジェクト作成者による検出効果の例です。

このプロジェクトは検出速度が非常に速いだけでなく、検出精度も優れていることがわかります。そこで、Synced もテストを開始しました。

プロジェクト測定

この顔検出プロジェクトの効果を Ubuntu 18.04 でテストしました。まず、比較的シンプルな集合写真をテストに使用します。合計 15 人で、解像度は 970 x 546 です。検出結果を下の図に示します。

写真に写っている人物をすべて正確に識別し、CPU でわずか 133 ミリ秒しかかからず、信頼度レベルは 99% であることがわかります。次の図は、境界ボックスを追加した後の検出効果を示しています。

今度は難易度を上げて、不正行為をしている国の写真を使って効果をテストしてみましょう。また、列車の前面に描かれた顔はほぼすべて認識されましたが、車体の肖像画は小さすぎたり密集しすぎたりしたためか認識できませんでした。

コンパイルプロセス

プロジェクトのコンパイルには OpenCV が必要です。OpenCV がない場合、cmake を使用して makefile を生成するときに次のエラーが報告されます。

まず、wget https://github.com/opencv/opencv/archive/3.4.0.tar.gz を使用して OpenCV 3.4.0 のソース コードをダウンロードし、次に OpenCV をコンパイルするために必要な関連する依存関係をインストールします。

  1. apt-get インストールビルド必須
  2. apt-get install cmake git libgtk2. 0 -dev pkg-config libavcodec-dev libavformat-dev libswscale-devadd-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"  
  3. apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394- 22 -dev

依存関係をインストールした後、OpenCV パッケージを現在のディレクトリに解凍します。

  1. tar xvzf 3.4.0.tar.gz

コンパイル中にソース コード ファイルが壊れるのを避けるために、linuxidcbuild という名前の新しいフォルダーを作成し、その中に OpenCV をコンパイルしてインストールします。

  1. mkdir linuxidcbuild
  2. cd linuxidcbuild/
  3. cmake ../opencv- 3.4 . 0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local

makefile を生成する過程で、次のような状況に陥る場合があります。

これは、ippicv のダウンロードの失敗が原因です。次のリンクから、システムに対応する ippicv バージョンを手動でダウンロードしてください。

参考:

次に、vim opencv-3.4.0/3rdparty/ippicv/ippicv.cmakeを使用してOpenCVコンパイル構成ファイルを修正し、次の内容を変更します。

「https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/」

ippicv を保存したディレクトリに変更します。 cmake ../opencv-3.4.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local を再度実行します。次の内容が表示されたら、makefile が正常に生成されたことを意味します。

次に、make を実行して OpenCV をコンパイルします。

ここでのコンパイル プロセスは比較的長く、約 20 分かかります。また、かかる時間はコンピューターの構成によって異なります。次の図が表示されたらコンパイルは完了です。

次にmake installを使用してインストールします。

インストールが成功すると、図に示すインターフェースが表示されます。

以上でOpenCVのインストールは完了です。インストールが完了したら、vim /etc/ld.so.conf.d/opencv.conf を使用して設定し、ファイルに /usr/local/lib を追加して保存し、終了します。

vim /etc/bash.bashrc を使用して環境変数を追加し、テキストの最後に export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig を追加し、source /etc/bash.bashrc を使用して新しい環境変数を有効にします。これにより OpenCV が設定され、次のコマンドを使用してプロジェクトがコンパイルされます。

  1. git clone https://github.com/ShiqiYu/libfacedetectioncd libfacedetectionmkdir build; cd build; cmake ..; make  

プロジェクトがコンパイルされると、対応する実行可能ファイルがビルド ディレクトリに生成され、次のコマンドを使用して実行できます。

  1. ./検出画像デモ ../images/test.png

操作は非常に複雑に見えますが、実際には OpenCV をコンパイルすることが主な内容です。他のモジュールはプロジェクト内で直接コンパイルできます。最後に、この非常に高速な顔検出モデルを安心して使用できます。

<<:  ハン・ソン、チュー・ジュンヤンらがGAN圧縮方式を提案:計算電力消費は1/9以下、オープンソース化

>>:  企業はデータセンターで人工知能を広く利用する準備ができているでしょうか?

ブログ    
ブログ    

推薦する

[Dry Goods] 機械学習を始めるには、まず10の古典的なアルゴリズムを理解するところから始めましょう

[[219151]]機械学習の分野では、「ただで得られるものはない」というのは不変の定理です。つまり...

...

人工知能は認知と表現のギャップを埋めている

人工知能により、認知能力は高いが表現能力が限られている人でも、自分の考えを表現したり、物語を創作した...

...

Nvidiaは写真編集ソフトウェアGANを

[[438694]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

HKU がオープンソースの推奨システムの新しいパラダイム RLMRec を公開!ユーザー/製品のテキストポートレートを正確に抽出するための大規模なモデルサポート

レコメンデーション システムは、ディープラーニングとグラフ ニューラル ネットワークの影響を受けて大...

ディープラーニングモデルの圧縮と加速モデル推論

導入機械学習モデルを本番環境にデプロイする場合、モデルのプロトタイプ作成フェーズでは考慮されていなか...

...

ビッグデータと人工知能がもたらす危機:テクノロジーの巨人は私たちの生活を台無しにしてしまうのか?

01 ハイテク時代の失業ゼロ半世紀以上前、有名な数学者ジョン・フォン・ノイマンは、機械を製造するコ...

AIは新たな科学革命を先導している

著者 | ブライアン・マクマホン、翻訳者 | bluemin、編集者 | 陳彩仙1950年代にDNA...

DeepMind: 畳み込みネットワークは ViT ほど優れていないと誰が言ったのですか?

ディープラーニングの初期の成功は、畳み込みニューラル ネットワーク (ConvNet) の開発による...

2018年に人工知能はどのように発展するでしょうか?専門家の意見

ブロックバスター社の映画には毎年人工知能が満載されており、昨年も例外ではありませんでした。 『ブレー...

GPT-4は私のガールフレンドのアレルゲンを発見しました

「インチキ医者」 GPT-4は再び患者の治療に呼ばれ、若い男のガールフレンドのアレルゲンを見つけるこ...