alert-lib
alert-lib
距離の推定、速度の計算、アラート、カメラ、および AR オーバーレイに関連するクラスが含まれています。
距離の推定
距離フィルターは、カメラからの物体の距離を推定します。
このStaticDistanceEstimator
クラスでは、想定される幅 / 高さおよびカメラのプロパティを使用して、オブジェクトからカメラまでの距離を決定します。 概算見積書は、デフォルトでは車や歩行者に使用されますが、ユースケースに他の物体が必要な場合は延長されることがあります。 デフォルト値の距離はメートル単位です。 カスタム値の場合、距離の単位は指定したサイズと同じになります。
public void estimateDistance(List<Recognition> recognitions, Size frameSize, int sensorRotation, float focalLength, SizeF sensorSize)
次のリストでは、メソッドのパラメータについて説明します。
recognitions
- 処理する認識のリスト -
frameSize
- 0 回の回転で認識された画像のサイズ -
sensorRotation
- 各フレームの自然な向きに 90 度の倍数で時計回りに回転します -
focalLength
- キャプチャカメラの焦点距離 ( ミリメートル単位 ) -
sensorSize
- 物理カメラセンサーのサイズ ( ミリメートル単位 )
注
の距離の値 Recognition
は、すでに ML モデルから使用できる場合があります。
ROI - 関心領域
関心領域 (ROI) は、ソースイメージの領域を定義して、イメージ内の場所に基づいて検出をフィルタリングできるようにします。 たとえば、車両前方の検知のみが関連する場合、反対側の検知を削除できます。
SDK では、次のタイプのリージョンが定義されています。
- プライマリ : このリージョンタイプは通常、エゴレーンを表します
- セカンダリ : このリージョンタイプは通常、エゴレーンの両側に隣接するレーンを含むリージョンを表します
SDK では、次の方法で ROI を生成できます。
-
makeStaticRoi
: 静的 ROI は、アプリケーションによって定義された頂点に基づいて生成されます 注
静的 ROI の頂点は、次の制約を満たす必要があります。
- 頂点は凸多角形を形成する必要があります
- 各頂点の x および y には、イメージの幅と高さの割合を表す 0.0 ~ 1.0 の値を指定する必要があります
-
makeLaneRoi
: レーン ROI は道路車線モデルの出力に基づいて生成されます - プライマリリージョンは、 2 つのエゴレーンのマークで定義されます
- セカンダリ領域は、隣接する車線標示がある場合はそれによって定義されている
注
モデルの検出にLSModelManager
クラスを使用している場合 は、LSModelManager#setRecognitionProcessor()
コールバックを設定して、Roi
を使用して結果をフィルタリングしてから、認識コールバックおよびトラッカーに渡す必要があります。
アラート
Live Sense SDK は LSDAlertManager
、このクラスを介して複数の種類のアラートをサポートしています。
入力します
エントリアラートは、検出が最初にプライマリ ROI リージョンに入ったときにアプリケーションに信号を送ります。
これらの警告は、歩行者検知をサポートして、歩行者が道路に入ったときにドライバーに警告し、車両検知をサポートして別の車両が自走車線に合流したことを警告します。
レーンデパーチャー
車線逸脱警告は、対象車両が自我レーンを出発し、隣接する地域に入っていることを示します。
車線逸脱警告には、以下の 2 つの重大度レベルがあります。
-
WARNING
: 対象車両は意図的に車線を変更するのではなく、車線から逸脱している可能性があります。 -
INFO
: 対象車両が車線から出発しました。
注
レーンデパーチャーワーニングの場合、 SDK は以下を想定しています。
- カメラは車両の中央にあり、まっすぐ前方に向いています。
- カメラを車両の片側に近づけすぎると、 SDK が誤検知警告を発することがあります。
- カメラの視野は、スマートフォンの広角カメラに似ています
TTC - 衝突までの時間
Live Sense SDK は、ユーザー / ドライバーに 衝突までの時間を警告する機能を提供します。 この機能は、事故を防ぎ、ドライバーの安全を確保するのに役立ちます。 この機能は、車両の想定される経路でのcar
、car-brake-light-on
、およびpedestrian
の検出に適用されます。 衝突までの時間( TTC )は、次のように計算されます。
Time to Collision (T) = -1 * d / ( Δd / Δt ) when Δd < 0
- d = オブジェクトまでの距離
- Δ D = 処理されたフレーム間のオブジェクトまでの距離の変更
- Δ T = 処理されたフレーム間の時間の変化
この計算は、オブジェクトまでの距離が減少している場合にのみ適用されます。 それ以外の場合、 TTC は無限であり、アラートは生成されません。
LSDAlertManager
経路上の潜在的な危険をユーザーに警告するための追加のヒューリスティックが含まれています。 これには、主要車両との衝突までの時間や、車両の直行ルートに入る人々が含まれます。
次の一覧では、 TTC の値に基づいたアラートのさまざまな重大度について説明します。
-
INFO
- T >2.5 秒 -
WARNING
-1.8 秒未満の場合 <T<=2.5 秒 -
ALERT
- T<=1.8 秒の場合
これらはデフォルトで設定されている値です。 WARNING
およびの値 ALERT
は、次の方法で変更できます。
public void setTimeToCollisionWarning(float timeInSeconds)
public void setTimeToCollisionAlert(float timeInSeconds)
が LSDAlertManager
完全に機能するには、次の入力が必要です。
- 使用しているカメラの特定のプロパティ。 詳細については、を参照
LSDCameraProperties
してください。 - カメラの設定ごとに 1 回だけ設定する必要があります。 これには、デバイスの回転は含まれません。
- 車両の現在の速度。通常はデバイスの位置情報サービスによって提供されます。
- これは
setCurrentSpeed()
、デバイスの加速度計または GPS を使用して継続的に入力される必要があります。
- の最新コレクション
LSDObjectRecognition
。 - 経由で継続的に給紙
determineAlerts()
されます。
このLSDAlertManager.onAlerts
プロパティは、アラートの非同期フィードで使用できます。
使用量
コトリン
val alertManager = LSDAlertManager()
alertManager.setCameraProperties(cameraController.cameraProperties)
alertManager.onAlerts.addListener { alerts: MutableList<LSDAlert> ->
}
alertManager.setCurrentSpeed(speedMetersPerSecond)
alertManager.determineAlerts(objectRecognitions, imageWidth, imageHeight, imageRotation, imageTimestamp)
Java
LSDAlertManager alertManager = new LSDAlertManager();
alertManager.setCameraProperties(cameraController.getCameraProperties());
alertManager.onAlerts.addListener(lsdAlerts -> {
});
alertManager.setCurrentSpeed(speedMetersPerSecond);
alertManager.determineAlerts(objectRecognitions, imageWidth, imageHeight, imageRotation, imageTimestamp);