i.MXアプリケーション・プロセッサ用デモ・リポジトリ GoPointの紹介 (日本語ブログ)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MXアプリケーション・プロセッサ用デモ・リポジトリ GoPointの紹介 (日本語ブログ)

yutaka_ando
NXP Employee
NXP Employee
1 0 457

はじめに

 

i.MXアプリケーション・プロセッサ用のLinux BSPには、「GoPoint」と呼ばれるデモ・セットが含まれています。「GoPoint」には、物体/顔検出などのMachine Learning (ML)をはじめ、ビデオ再生カメラのISP調整3Dグラフィックス(OpenGL ES)などのマルチメディアのデモがあり、i.MXアプリケーション・プロセッサの各種機能を簡単に確認できます。

また、多くのデモはGitHubでソース・コードを公開していますので、実際のアプリケーションを開発する際の参考にすることもできます。

I.MXアプリケーション・プロセッサ用GoPoint | NXP Semiconductors

 

準備

 

このブログではLinux 6.12.3_1.0.0のデモ・イメージを使用しています。

i.MX 8M Plus EVK評価ボードにダウンロードしたLinux BSPのデモ・イメージを書き込みます。イメージの書き込み方法は「Linux BSPをビルドして生成したイメージをターゲットボードに書き込む方法 (日本語ブログ)」の4.1をご参照ください。


*Linux BSPのバージョンによって、GoPointに含まれるデモの内容が異なる可能性がありますので、ご注意ください。

i.MX 8M Plus EVK評価ボードにHDMIディスプレイ、USBマウスを接続します。必要に応じて、MIPIカメラを接続します。

8MP_EVK.jpg

i.MX 8M Plus EVK評価ボードの詳しい使い方については、i.MX 8M Plus EVK Quick Start Guideをご参照ください。

 

GoPointの起動

 

GUI(グラフィック・ユーザー・インタフェース)での起動

i.MX 8M Plus EVKの電源を投入し、Linuxカーネルが起動するとHDMIディスプレイに画面が表示されます。表示された画面の左上にあるNXPマークをクリックすると、GoPointが起動します。

Start_GoPoint.jpg

GoPoint_GUI_with_number.jpg

  1. リストにフィルターをかける場合は、左側の三本線ボタンをクリックし、フィルター・メニューを表示します。
  2. i.MX 8M Plus EVKで実行できるデモのリストです。1.のメニューでフィルターをかけることができます。デモをクリックすることで、デモの説明とランチャーが表示されます。
  3. 選択されたデモの説明です。
  4. [Launch Demo]ボタンをクリックすることで、選択したデモが起動されます。起動後は[Stop current demo]ボタンへ変化し、デモを停止することができます。

 

CUI(コマンド・ユーザー・インタフェース)での起動

Linuxカーネルが起動した状態で、コンソールのコマンド・ラインに以下のコマンドを入力することで、GoPointのテキスト・ユーザー・インタフェース(TUI)を起動することもできます。

# gopoint tui 

GoPoint_TUI.jpg

  • [↑]キーまたは[↓]キー: 左側のリストにあるデモを選択
  • [Enter]キー: 選択したデモを実行
  • [Q]キーまたは[Ctrl]+[c]キー: TUIの終了

 

各デモについて

各デモのタイトルにGitHubへのリンクを張っておきましたので、ご参照ください。
(一部のデモはリンクがありませんので、ご了承ください)

i.MX 8M Plus EVKのLinuxの/opt/gopoint-apps/scriptsに、各デモのスクリプトが配置されています。

root@imx8mpevk:/# ls /opt/gopoint-apps/scripts/
TSN audio multimedia run_tui.sh
__pycache__ machine_learning opengl utils.py

 

Machine Learning (ML)

モデルをダウンロードするため、初回起動時はインターネット接続が必要

NNStreamer

ImageClassification.jpg

Image Classification

画像に何が映っているかを分類

ObjectDetection.jpg

Object Detection

画像の中から特定のオブジェクトを見つけ、位置と種類を識別

PoseEstimation.jpg

Pose Estimation

人や物体の位置/向きを推定

MLGateway.jpg

ML Gateway

MLアクセラレータ・サーバーとして、NPUを持たないクライアントに接続し、ML推論を実行

SelfieSegmenter.jpg

Selfie Segmenter

背景の置き換えや修正ができるよう、人物の肖像を切り取る

SmartFitness.jpg

i.MX Smart Fitness

Pose EstimationとPose Classificationを組み合わせ、スクワットの回数を計測
OpenCV

FaceRecognition.jpg

Face Recognition

複数のプロファイルを保存し、各個人を保存された名前によって識別

DMS.jpg

DMS

NPUを使用した高精度/低レイテンシの運転手監視システム(Driver Monitor System)
TFLite

MLBenchmark.jpg

ML Benchmark

CPUとNPUによるTFLiteのモデルの性能を容易に比較

 

Multimedia

GStreamer

VideoTest.jpg

Video Test

カメラで撮影した映像またはテスト・ソースを再生
Camera using VPU 映像のエンコード/デコードにVPUを使用したカメラ・プレビュー
2Way Video Streaming ローカル・ネットワークで接続されたi.MXデバイス間で双方向のビデオ・ストリーミングを行う

MultiCameraPreview.jpg

Multi Cameras Preview

Basler/OS08A20カメラとOV5640カメラを同時に使用したカメラ・プレビュー
ISP

ISPControl.jpg

ISP Control

ISPの様々なパラメータをリアルタイムに変更することができる。BaslerカメラまたはOS08A20カメラに対応
Video Dump カメラのRAWフレーム・データを接続されたドライブにダンプ。Baslerカメラのみ対応
Voice

iMXVoiceControl.jpg

i.MX Voice Control

様々なアプリケーションを音声でOpen / Close。
8-MIC Arrayボード(8MIC-RPI-MX8)が必要

iMXMultimediaPlayer.jpg

i.MX Multimedia Player

音声コマンドでBluetooth接続されたオーディオ・プレイヤーを制御

SmartKitchen.jpg

Smart Kitchen

NXPのVIT (Voice Intelligent Technology)を使用した音声コマンドによるスマート・キッチンの制御

eBikeVIT.jpg

E-Bike VIT

NXPのVITを使用した音声コマンドによるeBikeの制御

 

GPU

GLES2

VivanteLauncher.jpg

Vivante Launcher

Vivanteランチャのデモ

Bloom.jpg

Bloom

ブルーム効果の作成例。
正確さよりも描画速度を重視した簡易的な処理を行うデモ

Blur.jpg

Blur

元画像を1/4に縮小してから「ぼかし」処理を行い、ぼかした画像を元のサイズに拡大することで帯域幅を節約するデモ

EightLayerBlend.jpg

Eight Layer Blend

8枚の1080pレイヤーを重ねてブレンドすることで、簡単なパララックス・スクロール効果を作成するデモ

FractalShader.jpg

Fractal Shader

フラグメント・シェーダーを使用して、ジュリア集合とマンデルブロ集合の両方をレンダリング

LineBuilder101.jpg

Line Builder 101

ダイナミック・ライン・レンダリングの簡単な例

ModelLoader.jpg

Model Loader

FslSceneImporter と Assimp を使用してシーンを読み込み、OpenGLES2 を使ってレンダリングする方法を示すデモ

S03Transform.jpg

S03_Transform

アニメーションされた頂点カラー付きの三角形をレンダリングするデモ

S04Projection.jpg

S04_Projection

遠近投影行列の構築方法と、フレームレートに依存しないアニメーションを使用して3Dモデルをレンダリングする方法を示すデモ

S06Texturing.jpg

S06_Texturing

テクスチャ・クラスを使用して立方体にテクスチャを適用する方法を示すデモ

mapping.jpg

Mapping

反射素材の効果をシミュレートするためのキューブマップ・テクスチャの使用法と、OpenGL ESでキューブマップ・テクスチャを生成するためのContentManagerの使用法についてのデモ

MappingReflection.jpg

Mapping Reflection

上記のデモと同様にキューブマップ・テクスチャを使用するが、反射素材そのものをシミュレートするデモ
Open VG 2D

TigerG2D.jpg

Tiger G2D

OpenVGを使用してベクター・イメージの回転/拡大・縮小を行うデモ

 

その他

TSN - Qbv

TSN.jpg

TSN 802.1Qbv

Time Sensitive Network
トラフィック・スケジューリングを強化

 

おわりに

 

i.MXアプリケーション・プロセッサ用のLinux BSPに含まれるデモ・セット「GoPoint」の起動方法と、各デモの簡単な説明および詳細なwebページへのリンクを紹介しました。これらのデモの情報がアプリケーション・ソフトウエアの開発の一助になれば幸いです。

 

=========================

本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。

お手数をおかけしますが、お問い合わせの際には、NXP代理店、もしくはNXPまでお問い合わせください。