サンプルアプリケーションを実行します

サンプルアプリケーションは Debian パッケージにバンドルされています。 サンプルのアプリケーションを利用できない場合は、 HERE の担当者に連絡してください。

API のデモを行ったり、サンプルデータを予測したりするためのソースコードの例が <LIVESENSE-INSTALL-DIR/example/ フォルダーに用意されています。

Debian パッケージをインストールすると、の例のソースコードを見つける /usr/local/share/livesense/exampleことができます。

これらのアプリケーションを実行するには、次の依存関係が必要です。

sudo apt-get install libssl-dev

# OpenCV:
# OpenCV is used within the example applications as a matter of convenience.
# OpenCV is not required by the {{book.standard.productNameSdk}}

# GStreamer:
# gstreamer development libraries are required to compile and link the
# example_camera_viewer example application. For more information,
# see the GStreamer installation documentation for your
# (Debian-based) system.

提供されたサンプルを明示的にコンパイルするには、次の操作を行います。

ステップ 1 : example ユーザーのフォルダへのアクセス権を付与します

sudo chown -R $USER:$USER example/

ステップ 2 : 資格情報を設定します

資格情報の取得方法の詳細について は、「アプリケーションの認証」を参照してください。

# Setup environment variables or modify example/CMakeLists.txt
export LIVE_SENSE_APP_ID=<app-id>
export LIVE_SENSE_APP_TOKEN=<app-token>
export LIVE_SENSE_LICENSE_KEY=<license-key>

ステップ 3 : .cpp cmake を使用してファイルをコンパイルします

mkdir build && cd build
cmake ..
# OR if using the TensorRT variant
# cmake -DTENSORRT_LIB=ON ..
make

ステップ 4 : 実行可能ファイルを実行します

  export DISPLAY=:{Your_display_identifier}  
  export LD_LIBRAY_PATH=/usr/local/lib/

 ./<example-program> [example-args]

README.md 詳細については、サンプルアプリケーションの横にあるを参照してください。

次のイメージを使用してモデルをテストできます。

  • 道路の基本モデル

    車と人
    図 1. 車と人
  • 道路の危険性モデル

    ハザードコーン
    図 2. ハザードコーン
  • 道路標識モデル

    制限速度 50
    図 3. 制限速度 50
  • 道路標識モデル

    制限速度 70
    図 4. 制限速度 70

モデルおよびトラッカーの例

入力ビデオで SDK 内で利用できるモデルおよびトラッカーの使用を実証するためのサンプルアプリケーションがいくつか用意されています。 これらの各例では、注釈の付いたフレームが画面に表示され、レビューのために出力ビデオに書き込まれた状態で、モデル出力がビデオフレームにプロットされます。

これらの例には、次のものがあります。

  • example_without_tracker - 道路の基礎、道路標識、道路の危険性モデルによる特徴的な検出
  • example_with_tracker - 非同期モデル推測による機能の検出と追跡
  • example_with_lanes - 車線検知
  • example_with_lanes_tracker - 非同期のレーンモデル推測によるレーンの検出と追跡

接続された機能の例

この機能は、データ ハブ のシャットダウンにより廃止されました。

GStreamer を使用した外部カメラセンサーのサポート

外部カメラからのリアルタイムの画像キャプチャは GStreamer 、 Linux for Live Sense SDK と Multimedia Framework によって提供されます。 前述のよう に、example_camera_viewer.cppサンプルアプリケーションを実行するには、GStreamer開発ライブラリおよびヘッダーファイルが必要です。 詳細について GStreamer は、ご利用の (Debian-Based ) システムに適したインストールドキュメントを参照してください。

NVIDIA Jetson プラットフォームで Linux for Live Sense SDK を実行している場合 GStreamer 、サンプルプログラムは NVIDIA のハードウェアアクセラレーションライブラリおよびデバイスドライバを対象としています。

そうでない場合 v4l2 、デバイスドライバと API がリアルタイムのキャプチャに使用されます。

v4l2-utils カメラデバイスについてシステムを照会するには、パッケージをインストールすることを検討してください。

sudo apt-get install v4l-utils
# List Devices and Formats
v4l2-ctl --list-devices --list-formats

# Show the Driver Info
v4l2-ctl -d /dev/video0 -D
v4l2-ctl -d 0 -D

# List Formats and Resolutions for a Device
v4l2-ctl --list-formats-ext --device /dev/video0

v4l2でサポートデバイスを使用した stdout の例を示します /dev/video2

$ ./example_camera_viewer
2020-11-02 11:06:58.649 [INFO ] [gstreamer] - initialized gstreamer, version 1.14.5.0
2020-11-02 11:06:58.649 [INFO ] [gstreamer] - GstCamera: attempting to create device v4l2:///dev/video2
2020-11-02 11:06:59.582 [INFO ] [gstreamer] - GstCamera pipeline string:
2020-11-02 11:06:59.582 [INFO ] [gstreamer] -   v4l2src device=/dev/video2 ! video/x-raw, format=(string)YUY2, width=(int)640, height=(int)360 ! videoconvert ! video/x-raw, format=(string)RGB, width=(int)640, height=(int)360 ! appsink name=mysink
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - GstCamera successfully created device v4l2:///dev/video2
2020-11-02 11:06:59.587 [INFO ] [camera-viewer] - Successfully initialized camera device (640x360)
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - opening GstCamera for streaming, transitioning pipeline to GST_STATE_PLAYING
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> mysink
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> capsfilter1
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> videoconvert0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> capsfilter0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> v4l2src0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from NULL to READY ==> pipeline0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> capsfilter1
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> videoconvert0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> capsfilter0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer stream status CREATE ==> src
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> v4l2src0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> pipeline0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> capsfilter1
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> videoconvert0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> capsfilter0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> v4l2src0
2020-11-02 11:06:59.587 [INFO ] [gstreamer] - gstreamer stream status ENTER ==> src
2020-11-02 11:06:59.687 [INFO ] [camera-viewer] - Camera open for streaming
2020-11-02 11:06:59.834 [WARN ] [gstreamer] - GstCamera: map buffer size was less than max size (691200 vs 691207)
2020-11-02 11:06:59.834 [DEBUG] [gstreamer] - GstCamera: received first frame, codec=raw format=rgb8 width=640 height=360 size=691207
2020-11-02 11:06:59.834 [INFO ] [gstreamer] - gstreamer changed state from READY to PAUSED ==> mysink
2020-11-02 11:06:59.834 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> mysink
2020-11-02 11:06:59.834 [INFO ] [gstreamer] - gstreamer changed state from PAUSED to PLAYING ==> pipeline0
^Creceived SIGINT
2020-11-02 11:07:07.416 [INFO ] [camera-viewer] - Shutting down...
2020-11-02 11:07:07.416 [ERROR] [gstreamer] - GstCamera: stopping pipeline, transitioning to GST_STATE_NULL
2020-11-02 11:07:07.668 [INFO ] [gstreamer] - GstCamera: pipeline stopped
2020-11-02 11:07:07.669 [INFO ] [camera-viewer] - Shutdown complete.

中央のクロップ

ヘルパクラス ImageCropper には、イメージを Live Sense モデルに送信する前に実行するオプションのクロッピング操作の例が含まれています。 トリミングを使用すると、特定のモデルのターゲットオブジェクトの詳細を確認できます。特に、標識などの小さいオブジェクトや遠くにあるオブジェクトの詳細を確認できます。 次の 2 つのトリミング操作を使用できます。

  • サイドクロッピングを使用すると、指定した割合に基づいてフレームの一部がサイドから削除されます。
  • プログレッシブセンタークロップで、画像の中央を囲む割合を返します。 クロップシーケンスは 30 パーセント、 50 パーセント、最後に 100 パーセントです。 このループは、次のフレームで繰り返されます。

    デフォルトでは、クロッピングは実行されません。 中央のトリミングは、任意の側面のトリミングが適用された後に実行されます。

検出の記録例

RecordingHelper サンプルアプリケーションの横にあるクラスには、イメージと、イメージで検出されたすべてのオブジェクトの詳細を含む JSON ファイルを保存するメソッドが含まれています。

次の例は RecordingHelper 、クラスの使用方法を示しています。

  • example_recording_helper - 道路の基本および道路標識の検知記録
  • example_recording_helper_with_lanes - 車線標示の検知記録

距離ロガー

ヘルパークラス DistanceLogger は、サンプルアプリケーションと一緒に提供され、 JSON ファイルへの移動距離の任意のロギングを行います。

」に一致する結果は 件です

    」に一致する結果はありません