モデル
Live Sense モデルは、オブジェクトの検出に使用される基礎となる機械学習( ML )モデルと対話するためのインターフェイスを提供します。
注
オブジェクトの検出 / 認識では、オブジェクトの分類、画像内の関心のあるオブジェクトの特定、および画像内のオブジェクトの位置を特定することでのローカリゼーションの組み合わせを記述します。 例として、画像内の車両を特定し、車両が特定された場所のバウンディング ボックスを提供する Live Sense モデルがあります。
すべてのモデルの中心的な機能は、 RGB 画像を取り込み、画像内で検出された検出のリストを返すことです。
各 Live Sense モデルには、検出できるオブジェクトクラスのセットがあります。 開発者が、ユースケースに関連するオブジェクト、つまりモデルを決定するのはデベロッパの責任です。
モデルタイプと検出クラス
カテゴリ | モデル名 | ラベル | 自信をお勧めします |
道路の基本 | RoadBasicsModel ( 日 ) | pedestrian | 47 |
| | ライダー | 47 |
| | 車 | 46 |
| | bicycle | 45 |
| | motorcycle | 47 |
| | トラック | 45 |
| | 渋滞状況 | 47 |
| | バス | 50 |
道路の危険 | コーン & バリヤ | 長方形バリア | 60 |
| | ストリップスタンド | 60 |
| | 円筒形 - バリア | 60 |
| | デリニエータ - バリア | 60 |
| | 円錐 | 60 |
| 路面料理 | 路面料理 | 80 |
道路標識 | RoadSignsModel | DS_SpeedLimit[5-130] | 55 |
| | DS_AdvisorySpeedLimit[10-85] | 55 |
| | DS_Stop | 55 |
| | DS_DoNotEnter | 55 |
| | DS_NoAccess | 55 |
| | DS_StartConstruction | 55 |
| | DS_Yield | 55 |
| | DS_PedestrianCrossing | 55 |
| | DS_SpeedBumps | 55 |
| | DS_StopHereOnRed | 55 |
| | DS_NoLeftTurn | 55 |
| | DS_NoRightOrLeftTurn | 55 |
| | DS_NoUTurn | 55 |
| | DS_NoUTurnOrLeftTurn | 55 |
| | DS_ParkingRestriction | 55 |
道路標識( TRT ) | RoadSignsModel | DS_SpeedLimit[5-130] | 60 |
| | DS_SpeedLimit[5-130] | 60 |
| | DS_Stop | 60 |
ブレーキランプ | ブレーキライト | カー - ブレーキ - ライト - オン | 45 |
注
道路標識モデルでは、ラベルの接頭辞のみが上記に記載されています。
サンプル画像を含む完全なラベル一覧については、以下の道路標識のセクションを参照してください
ベータモードで利用可能なモデル
以下のモデルはベータテストで利用できます。
カテゴリ | モデル名 | ラベル | 自信をお勧めします |
道路の基本 | 交通信号ステータス | 交通状況 - ライト - 緑色 | 75 |
| | 渋滞状況 - ライト - レッド | 75 |
| | 交通状況 - ライト - 黄色 | 75 |
| RoadBasicsNightModel | pedestrian | 45 |
| | motorcycle | 40 |
| | 車 | 40 |
| | トラック | 40 |
| | バス | 40 |
車線検知 | ロードレーンズ | 車線 | 該当なし |
道路の危険 | speed_bump_object | クロスウォーク | 55 |
| speed_bump_signage | スピードバンプサイン | 55 |
| bridge_tunnel | 橋 | 75 |
| | トンネル | 75 |
| height_restriction_signals | 高さ制限サイン - Xft-Yin | 60 |
信頼性の高い設定
Live Sense SDK for Linux では、モデルの信頼度の値を設定できます。
モデルの信頼性を更新します
モデルクラスの各オプション構造体を使用して、指定したモデルで使用可能なすべてのクラスに最小信頼度しきい値を設定できます。 オプションはモデルの初期化中に設定され、 setter メソッドを使用して更新できます。
ls::RoadBasicsModelOptions roadBasicsOptions;
roadBasicsOptions.roadBasicsConfidenceThresh = 0.45;
roadBasicsOptions.trafficLightConfidenceThresh = 0.75;
std::vector<ls::RoadHazardsModelOptions> roadHazardsModelOptions = {
{ls::RoadHazardsModelType::RH_CONE_CONSTRUCTION, 0.6},
{ls::RoadHazardsModelType::RH_POTHOLES, 0.6},
{ls::RoadHazardsModelType::RH_SPEED_BUMP_OBJECT, 0.55},
{ls::RoadHazardsModelType::RH_SPEED_BUMP_SIGNAGE, 0.55},
{ls::RoadHazardsModelType::RH_BRIDGE_TUNNEL, 0.75},
{ls::RoadHazardsModelType::RH_HEIGHT_RESTRICTION_SIGNS, 0.6}};
ls::RoadSignsModelOptions roadSignsOptions;
roadSignsOptions.roadSignsConfidenceThresh = 0.55;
ls::BrakeLightModelOptions brakeLightOptions;
brakeLightOptions.brakeLightConfidenceThresh = 0.8;
モデルの場合 、モデルタイプおよび検出クラスの表に記載されている「推奨される信頼度」から信頼度のしきい値 HERE を使用できます。
制限事項
信頼度のしきい値を小さくすると、検出数は増加しますが、全体的に精度は低下します。 このため、ラベルに誤検知が表示されることがあります。 このため、アプリケーションは、 0.6
妥当な精度の出力を維持するために、信頼性のしきい値を超えておく必要があります。
スレッディング
Live Sense モデルはスレッドセーフではありません。同じスレッドで初期化および実行する必要があります。 同じモデルインスタンスに複数のスレッドを使用すると、予期しない動作が発生する可能性があります。
モデルは並行して実行できますが、各モデルインスタンスは一度に 1 つのイメージのみを処理できます。 前の呼び出しが完了する前にモデルを実行すると、例外が発生します。
モデル実行オプション
Live Sense SDK for Linux は、 Live Sense モデルを実行するための複数のインスタンスをサポートしています。 正確なサポートは、使用しているデバイスおよびモデルによって異なります。
オブジェクト認識
Live Sense Recognition
は、検出されたオブジェクトの次のプロパティを記述します。
- クラス-検出されたオブジェクト。 詳細について は、「モデルタイプ」および「検出クラス」を参照してください。
- Location - 画像フレーム内でオブジェクトが見つかった場所。
- 信頼度スコア - オブジェクトが正しく検出されたことを示す 0 ~ 1 の数値。
モデルタイプ
次のライブラリがサポートされています。
TensorFlow Lite (TFLite)
TensorRT
Coral Edge TPU
エンジンランタイムのサポート
| CPU | GPU | TPU |
TensorFlow Lite | Y | Y | いいえ |
テンソルト | いいえ | Y | いいえ |
コーラルエッジ TPU | いいえ | いいえ | Y |
TensorFlow Lite バリアントで GPU にモデルをロードするに true
は、適切なモデルオプションをに設定する必要があります。
ls::ModelOptions mOptions;
mOptions.setUseGpuDelegate(true);
注
TensorFlow Lite の Linux ベースの OpenGL ES GPU のサポートはまだ試験的です。 すべての Live Sense モデルが一部の GPU でサポートされているわけではありません。
ランタイムサポートをモデル化します
| TFLite fp32 | TFLite fp16 | TFLite INT8/Quant | tensorRT fp32 | tensorRT fp16 | Edge TPU INT8 |
道路の基本 | Y | Y | Y | Y | Y | Y |
道路の基本業務の夜間 | Y | Y | Y | いいえ | いいえ | Y |
道路標識 | Y | Y | Y | Y | Y | Y |
コーン & バリヤ | Y | Y | Y | Y | Y | Y |
路面料理 | Y | Y | Y | Y | Y | Y |
スピードバンプ | Y | Y | いいえ | いいえ | いいえ | いいえ |
スピードバンプサイン | Y | Y | Y | いいえ | いいえ | Y |
ブリッジ & トンネル | Y | Y | Y | いいえ | いいえ | Y |
身長制限サイン | Y | Y | Y | いいえ | いいえ | いいえ |
ロードレーンズ | Y | Y | Y | Y | Y | いいえ |
ブレーキランプ | Y | Y | Y | Y | Y | Y |
デフォルトでは、 SDK は fp32
バリアントを実行します。 モデルオプションで、またはそれぞれの変数をTRUE
に設定することでfp16
INT8
有効化または設定できます。 一 TRUE
度に設定できるバリアントは 1 つだけにしてください。
ls::ModelOptions mOptions;
mOptions.setRunInFp16(true);
mOptions.setRunInInt8(true);
距離と位置の推定
注
この機能はベータ版で、返された距離と相対位置の値が不正確になる可能性があります。
上記のすべての物体検知モデルは、検知された各物体について、カメラの視点からの推定距離および位置を提供できます。
検出されたオブジェクトのdistance
およびrelativePosition
プロパティの出力値は次のとおりです。
- 高さ : 地面からの検出距離。
- 横方向 : カメラのビューの中央を基準とした検出の距離。 この値は正または負の値で、検出がカメラのビューの左側に向いていることを示します。また、逆の場合もあります。
- 奥行き : 実際の距離が横方向の距離と等しくなるように、デバイスが直線的に前進する必要がある距離。
- 距離 : カメラの視点からの検出の実際の距離。
すべての距離の値はメートル単位で提供され、 Live Sense SDK の次の機能で使用されます
道路標識
グループ | ラベル | サンプル画像 |
制限速度 | DS_SpeedLimitXX_White_Circle_00 | |
| DS_SpeedLimitXX_White_Circle_01 | |
| DS_SpeedLimitXX_White_Rectangle_01 | |
AdvisorySpeedLimit | DS_AdvisorySpeedLimitXX_Yellow_Rectangle_00 | |
| DS_AdvisorySpeedLimitXX_Yellow_Rectangle_01 | |
| DS_AdvisorySpeedLimitXX_Yellow_Rectangle_03 | |
経由地 | DS_Stop_Red_Octogon_00 | |
DoNotEnter | DS_DoNotEnter_Red_Circle_00 | |
| DS_DoNotEnter_White_Rectangle_00 | |
| DS_DoNotEnter_White_Rectangle_01 | |
NoAccess | DS_NoAccess_White_Circle_00 | |
StartConstruction | DS_StartConstruction_White_Triangle_00 | |
収率 | DS_Yield_White_Triangle_00 | |
PedstrianCrossing | DS_PedestrianCrossing_Blue_Rectangle_00 | |
| DS_PedestrianCrossing_White_Triangle_00 | |
| DS_PedestrianCrossing_Yellow_Circle_00 | |
| DS_PedestrianCrossing_Yellow_Diamond_01 | |
| DS_PedestrianCrossing_Yellow_Triangle_00 | |
SpeedBumps | DS_SpeedBumps_Blue_Rectangle_00 | |
| DS_SpeedBumps_White_Triangle_00 | |
| DS_SpeedBumps_Yellow_Diamond_01 | |
StopHereOnRed | DS_StopHereOnRed_White_Rectangle_00 | |
NoLeftTurn | DS_NoLeftTurn_White_Circle_00 | |
| DS_NoLeftTurn_White_Rectangle_02 | |
NoRightOrLeftTurn | DS_NoRightOrLeftTurn_White_Rectangle_00 | |
| DS_NoRightOrLeftTurn_White_Circle_00 | |
NoUTurn | DS_NoUTurn_White_Circle_00 | |
NoUTurnOrLeftTurn | DS_NoUTurnOrLeftTurn_White_Rectangle_00 | |
ParkingRestriction | DS_ParkingRestriction_Blue_Circle_00 | |
| DS_ParkingRestriction_White_Circle_01 | |
| DS_ParkingRestriction_White_Rectangle_03 | |