AI推論エンジンは、エッジでの人気が高まりつつあります。趣味や商業空間の組み込みシステムに、機械学習アルゴリズムや大規模言語モデルが移植されているのを見ることができます。このプロジェクトでは、Rockchip 3588プロセッサを搭載したOrange Pi 5を使用して、リアルタイムの顔検出器を構築します。つまり、ウェブカメラのビデオストリームからリアルタイムで人間の顔を検出します。
始めるために、Orange Pi 5、USBウェブカメラ、そして私の公開リポジトリのコードを使用します。Orange Pi 5とRockchip RK3588プロセッサのセットアップ方法については、Orange Pi 5とRockchip RK3588プロセッサの使い始めを参照してください。この例の素晴らしい点は、PCやLinuxを実行している他の高性能組み込みデバイス(例えば、Raspberry Pi 5)でも実行できることです。Orange Pi 5(または他のデバイス)のセットアップと実行が完了したら、いくつかのライブラリをインストールする必要があります。この例はLinux(具体的にはUbuntuを実行)を前提として設計されているので、Debianパッケージマネージャーにアクセスできることを前提とします。ターミナルから、次のコマンドを実行してください:
sudo apt update -y && sudo apt install -y python3 python3-pip libopencv-dev python3-opencv v4l-utils
これにより、デモを実行するために必要なすべてのパッケージがインストールされます。pipを使用してOpenCV Pythonパッケージもインストールしてください:
pip3 install opencv-python
セットアップを検証するためのさらなる手順については、READMEを参照してください。
Kria KV260 Vision AIスターターキットでのAIビジョンでは、FPGAを使用して顔検出AI推論エンジンを構築する方法を示しましたが、その複雑さは非常に高かったです。この例では、同じことをはるかに簡単な方法で探求しようとしています。これは、複雑さをCPUまたはGPUにオフロードするため、簡単です。これらのどちらもこの記事で探究します。OpenCVが私たちのコンピューターに対してどれほどよく最適化されているか、その真の美しさです。このライブラリを使用すると、FPGA上で自分たちのニューラルネットワークを構築しようとした際に経験したすべての機械学習の複雑さが完全に抽象化されます。
コードはかなりシンプルです。いくつかのステップに分けることができます:
Access critical supply chain intelligence as you design.
ここでの本当の魔法は、OpenCVで活用している「カスケード分類器」にあります。これは、一連の徐々に複雑な段階を通じて動作する、物体検出のための機械学習ベースのツールです(ニューラルネットワークの概念に似ています)。それは、各段階が一つの仕事を持つ、細かく調整された組み立てラインのようなものと考えてください:特定の特徴、例えばエッジ、角、または形状を検出すること。画像の領域がこれらの検査チェックポイントすべてを通過した場合、それは検出されたオブジェクトとしてフラグが立てられます。そうでなければ、時間と処理能力を節約するために早期に破棄されます。
カスケード分類器は、速度と効率についてです。事前定義された特徴(つまり、エッジやコントラストのようなパターン)を使用し、段階的に処理することで、処理能力が限られたデバイス上でのリアルタイムタスクに最適です。一方、ニューラルネットワークは異なるリーグでプレイします。データから直接特徴を自動的に学習するため、より複雑で多様なシナリオを扱うことができます。しかし、その力は代償を伴います:ニューラルネットワークははるかに多くの計算リソースと時間を要求します。カスケード分類器は高速で軽量ですが柔軟性に欠け、ニューラルネットワークは堅牢ですがリソースを多く消費します。問題は、適切なツールを選ぶことです。
私たちの場合、顔を正確に何を探し、何をフィルタリングするかを正確に知っている事前訓練済みモデル、Haar Frontal Face Detector(XMLファイルの形式)を使用します。実際には、これは私たちが探求してきた単純な例として十分です。上述のように、それほど正確ではありませんが、ほとんどの単純な顔検出例には十分です。
コードを実行するには、次のことだけを行う必要があります:
python3 face_detection.py --use-gpu
または、デバイスにGPUがない場合(つまり、Orange Pi 5を使用していない場合)は、--use-gpuフラグを省略してください。この時点で、小さなボックスが表示され、顔の上に青いボックスが表示されるはずです。私の場合、すぐに表示されました:
Store your libraries and design data in one secure, accessible, and version-controlled space.
このプロジェクトは、OpenCVやOrange Pi 5のようなデバイスを使用することで、リアルタイム顔認識がどれほどアクセスしやすくなったかを示しています。事前にトレーニングされたXMLファイルを読み込むことで、軽量で効率的なカスケード分類器を活用し、ニューラルネットワークやFPGAプログラミングの複雑さなしに機能的な例を構築しました。このアプローチには、異なる照明や角度の処理などの制限がありますが、エッジAIを実験するための完璧な入門点です。
わずかなライブラリと最小限のセットアップで、このプロジェクトを組み込みデバイスや標準的なPCで再現することができます。AI推論エンジンが改善し続けるにつれて、リソース制約のあるデバイス上でより洗練されたモデルが実行されるようになり、高度なAIがより多くの人々にとってアクセスしやすくなることが期待されます。始めるために必要なすべてのコードを含むリポジトリを見るには、https://gitlab.com/ai-examples/orange-pi-face-detectionを訪問してください。
Ariは、設計、デバイスパッケージ、テスト、および電気、機械、およびソフトウェアシステムの統合において幅広い経験を持つエンジニアです。彼は、設計/デザイン、検証、テストのエンジニアをまとめて団結したグループとして機能させることに情熱を注いでいます。
一つのインターフェース。一つのデータモデル。無限の可能性。
機械設計者との効率的な共同作業。
世界で最も信頼されているPCB設計プラットフォーム。
業界最高クラスのインタラクティブルーティング。
ライセンスオプションを見る
Meet demands of a globalized market that requires unique versions of your PCBs.
The world’s most trusted PCB design system.
Send your product to manufacturing in a click without any email threads or confusion.
Create and update documentation as you design.