AIアクセラレータを活用し、リアルタイムで物体検出を行うプログラムの解説を行います。Hailo-8Lは、組み込みAIデバイス向けの高性能な推論エンジンを提供し、このサンプルコードを通じてPythonでのAI推論パイプラインの構築方法を学ぶことができます。GStreamerを使用したビデオ処理や、HailoのAPIを利用した推論結果の取得など、エッジデバイスでのAI活用を実現するための実践的な例を紹介します。AIアクセラレータのハードウェアについては以下の記事で詳細を解説していますので、あわせてご覧ください。AIアクセラレータを組み合わせることで、組み込みAIシステムを手軽に構築できるようになりました。AIアクセラレータを活用するためのサンプルプロジェクトを提供しています。Compilerを使用したモデル展開手順が示されています。エンベデッドデバイスでのAI活用を支援するリソースです。AIアクセラレータを利用して、リアルタイムに物体検出を行うプログラムです。GStreamerを使用してビデオストリームを処理し、Hailoの推論エンジンを利用して検出結果を取得します。コードの構造は、ユーザー定義のコールバッククラスとコールバック関数、GStreamerパイプラインのセットアップで構成されます。最初に必要なモジュールやライブラリをインポートしています。GStreamerDetectionAppgiライブラリを使用してGStreamerをインポートし、バージョンを指定しています。GStreamerはマルチメディアフレームワークで、ビデオのストリーミング処理に利用されます。numpyとcv2(OpenCV)は画像処理のために使用します。AIアクセラレータのインターフェースを提供します。hailo_rpi_commonからは、キャプス(フォーマットやサイズ)の取得やバッファ処理を支援する関数をインポートしています。ユーザー定義のコールバッククラス次に、app_callback_classを継承してuser_app_callback_classを作成しています。"user_app_callback_classは、ユーザーがカスタマイズできるクラスで、追加の変数や関数を定義できます。new_variableという変数を追加して、初期値を42に設定しています。これは例示用の値ですが、必要に応じて他の目的に使うこともできます。new_functionというメソッドを定義し、簡単な文字列を返す関数の例を示しています。これも例示的なものであり、アプリケーションに応じて適宜変更可能です。コールバック関数コールバック関数app_callbackは、GStreamerパイプラインからデータが利用可能になったときに呼び出されます。この関数では、以下の処理を行います。height)GstBufferの取得:info.get_buffer()を使って、パイプラインから送られてきたメディアデータのバッファを取得します。バッファが無効(None)の場合は、そのまま処理を継続します。フレーム数のカウント:user_data.increment()でフレーム数をカウントし、現在のフレーム数を表示するための文字列を作成します。キャプスの取得:get_caps_from_pad関数を使って、パッドからフォーマット、幅、高さを取得します。これにより、ビデオデータの解像度や形式を把握できます。ビデオフレームの取得:user_data.use_frameがTrueの場合、バッファからビデオフレームを取得して、後の処理で使用します。次に、バッファから物体検出の結果を取得し、それを解析します。Interest)を取得し、get_objects_typedを使って物体検出結果をリスト形式で取得します。各検出結果について、ラベル、バウンディングボックス、信頼度を取得し、検出されたオブジェクトが「person」(人)の場合に、検出結果をコンソールに表示します。フレームに検出結果を表示フレームを取得している場合には、検出結果をフレームに描画します。更新したフレームを設定cv2.putTextを使用して、検出数やユーザー定義のテキストをフレームに描画します。最後にフレームをRGBからBGR形式に変換し、user_data.set_frameでフレームを更新します。最後に、メイン処理部分でGStreamerパイプラインをセットアップし、アプリケーションを実行します。アプリケーションを実行user_app_callback_classのインスタンスを作成し、GStreamerDetectionAppを初期化します。app.run()でGStreamerパイプラインを開始し、リアルタイムで推論処理を実行します。全体のソースコード全体のソースコードは以下の通りです。処理内容がわかりやすいよう、日本語でコメントを追加しています。AIアクセラレータを使用した物体検出プログラムの詳細を解説しました。このコードを通じて、リアルタイムのAI推論を組み込みデバイス上で実現する方法を理解できたでしょう。Hailo-8Lの強力な推論能力により、エッジデバイスでのAIアプリケーション開発が一層容易になり、今後のAIプロジェクトに役立つ実践的なスキルを身につけることができます。5用ケースPironman5もおすすめです。Amazon調べ)口コミを見るAmazon\楽天ポイント4倍セール!/楽天市場Yahooショッピングメルカリポチップ冷却効率も非常に高く、機械学習の推論処理など高負荷のアプリケーションの運用にも最適です。5用ケースPironman5が登場したのでレビューしていきたいと思...それでは、また次の記事でお会いしましょう。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ExampleMurasan(むらさん)制御系エンジニアです。Piなどのマイコンボードを使ってアプリケーションを開発しています。好きなガジェットについても紹介していきたいと思います。トップページの画像はStableDiffusionというAIによって生成されたイラストです。