モーション補償
3 分
ライダーのセットアップでラベリングを行う際の本質的な問題は、結果として得られる点群が単一の瞬間のスナップショットではなく、ライダースイープが行われた時間間隔であることです。これはラベリング時に問題を引き起こします。なぜなら、ライダースイープ中にオブジェクトが移動する可能性があり、例えば車を3dボックスでラベリングしようとすると、そのボックスは実際の車のサイズを正確に表していない場合があるからです。この問題はモーション補償によって軽減できます。モーション補償では、点群内のすべての点のタイムスタンプを同期します。 エゴビークルの慣性計測装置(imu)からのデータを取り込むことで、ライダースイープ中の車の移動軌跡を正確に把握できます。これにより、点群内の点を同一の瞬間を表すように調整するモーション補償を実行できます。 さらに、モーション補償が機能するために、提供される点群内の各点にはunixタイムスタンプ(ナノ秒単位)が指定されている必要があります。 モーション補償を行う時点は unix timestamp パラメータで指定できます。指定されていない場合は、各フレームについて、そのフレーム内のすべての点の中央値の時刻が代わりに使用されます。 モーション補償は、複数のライダースイープに対して同時にアノテーションを行う場合、例えば複数ライダー構成やフレームをまたいで点群が集約される場合に特に重要です。 すべてのunixタイムスタンプはナノ秒単位で指定する必要があります。 モーション補償が正しく機能するためには、一貫した時間単位が重要です。そのため、すべてのunixタイムスタンプはナノ秒単位で提供する必要があります。 点群内のすべてのタイムスタンプおよび指定された unix timestamp は、imuデータのタイムスタンプの範囲内に収まっている必要があることに注意してください。そうでない場合、シーンの作成は失敗します。 imuデータは以下のように、オブジェクトのルートに imudata オブジェクトのリストとして提供します。 from kognic io model ego import imudata from kognic io model calibration import position, rotationquaternion from kognic io model scene lidars and cameras sequence import lidarsandcamerassequence, frame from kognic io client import kognicioclient imu data = \[ imudata( position=position(x= 10 44, y=126 06, z=78 817), rotation quaternion=rotationquaternion(x= 1 0, y=0 5, z=1, w=0), timestamp=1665997200597027072 # ns ), ] frames = \[ frame( , unix timestamp = 1665997358832901120), frame( , unix timestamp = 1665997503951270144), ] lidars and cam seq = lidarsandcamerassequence( , imu data = imu data, frames = frames, ) client = kognicioclient() client lidars and cameras sequence create( lidars and cam seq, project="project ext id", dryrun=true, ) dryrunを使用して検証する メソッド呼び出しで dryrun パラメータを true に設定すると、apiを使用してシーンを検証しますが、シーンは作成されません。 モーション補償の有効化/無効化 デフォルトでは、imuデータが提供されている場合、lidarの点群を含むシーンに対してモーション補償が実行されます。 モーション補償の有効・無効は docid\ r7jjwwzw8kl3lux52wdod で制御されます。デフォルトでは有効になっていますが、空のフィーチャーフラグを指定することで無効化できます。 from kognic io model scene feature flags import featureflags client lidars and cameras sequence create( , feature flags=featureflags() ) kognicプラットフォーム外ですでにモーション補償が適用されている点群の場合、モーション補償を無効化することが望ましい場合があります。
