はじめに
AlpaSimとNuRecを使って、カメラ画像と反射強度付きLiDAR点群を扱いたいとき、まず何を確認すればよいでしょうか。
NuRecの公開gRPC APIには、LiDAR点群と強度を返すためのフィールドがあります。ただし、APIにフィールドがあること、使用するモデルから値が返ること、用途に十分な品質であることは、それぞれ別の確認事項です。
この記事では、公式の公開資料に基づき、取得経路、強度学習の設定例、返却値の検査方法を整理します。個別のデータセットから得た画像・点群・モデル内部設定・実験ログ・性能評価数値は掲載しません。
公開資料の確認日:2026年10月2日。この記事は確認手順の解説です。独自実験の成功報告や、任意のシーンで動作を保証する完全な実行レシピではありません。
1 AlpaSimとNuRecの役割
AlpaSimの公式READMEでは、自動運転の方策を閉ループで試すためのシミュレーション基盤として紹介されています。
| 名前 | 本記事での役割 |
|---|---|
| AlpaSim | シミュレーションを構成し、センサーサービスを利用する側 |
| NuRec | 再構築したシーンからセンサーデータを生成する側 |
| USDZ | NuRecが読み込むシーンのアーティファクト |
NuRecの公開APIにLiDAR機能があっても、使用するAlpaSimのruntimeが、その要求・応答・保存を扱っているかは別途確認します。
2 記録済みデータと生成データを区別する
| 目的 | 確認する経路 |
|---|---|
| 記録された画像と実測LiDAR強度を取り出す | 元データの読出しと変換 |
| 指定した姿勢からLiDAR強度を生成する | 強度を予測するシーンモデルとレンダリングAPI |
NCoreの公式PAI変換資料には、変換後のLiDARに、XYZ、正規化した強度、点ごとの時刻などを保持する説明があります。元データの実測強度を取り出すことと、新しい姿勢から強度を生成することは区別してください。
なお、データの利用と、データ・生成結果の公開は別です。PhysicalAIの配布ページに掲載された利用規約には、出力・評価結果を含む守秘条項と、配布・ホスティングなどの制限があります。公開を伴う用途では、適用される規約と許諾範囲を確認してください。
3 強度を扱うための7つの確認手順
手順1 使用する版をそろえる
AlpaSimの公式案内とNuRecのgRPCガイドを入口に、GPU・コンテナ・クライアントを準備します。
確認用に、次を手元に記録します。
- AlpaSimのcommit。
- NuRecコンテナのタグ。厳密に固定する場合はdigestも記録。
- クライアントのprotobufパッケージの版。
- 使用するUSDZの出自とハッシュ。
NuRec側の nre.grpc.protos とAlpaSim側の alpasim_grpc.v0 を使う例を混在させず、選択した版の定義に合わせます。
手順2 1スキャンで返却値を確認する
公式APIリファレンスの render_lidar を使い、まず1スキャンを確認します。
| 返却フィールド | 内容 |
|---|---|
point_xyzs |
XYZを並べた配列 |
point_intensities |
各点の強度 |
num_points |
点数 |
point_xyzs_buffer |
XYZのバイナリバッファ |
point_intensities_buffer |
強度のバイナリバッファ |
「強度が空」「値が0」「値はあるが範囲や分布が不適切」を分けます。通常フィールドが空の場合は、バッファ側も確認してください。欠損を0で埋めても、強度を取得できたことにはなりません。
手順3 実測強度を含む学習入力を準備する
強度対応のシーンを自分で再構築する場合は、実測強度を含む入力を用意します。公式PAI変換資料とAVシーン再構築ガイドに従い、センサーデータ、校正、姿勢、必要な補助データを準備します。
実装上は、次を確認すると切り分けやすくなります。
- XYZと強度が同じ点に対応している。
- 強度の型・値域・正規化方法を確認している。
- カメラ指定が、実際に存在するセンサーと一致する。
- manifestと補助ファイルを、学習環境から読み込める。
正規化方法は使用するデータと変換器で確認し、すべてのLiDARデータに同じ換算式を適用しないようにします。
手順4 強度信号と教師損失を確認する
NVIDIAの公開設定例 pai.yamlには、各層の追加信号に intensity を加える例と、強度損失の設定例があります。確認時点では、これらの行はコメントアウトされていました。
同ファイルの説明では、背景、道路、剛体の動的物体、変形する動的物体の4層を対象とし、既存の semantic_logits を維持する構成が示されています。また、教師損失がなければ、追加した強度信号は意味のある値を学習しない旨が説明されています。
確認するのは次の3点です。
- 入力に、対応する実測強度がある。
- 必要な層に、強度を予測する信号がある。
- 強度を教師にする損失が有効になっている。
val_lidar: true は検証時にLiDARを出力するための設定です。それだけで強度学習を有効にしたとは判断しません。設定の継承・上書きもあるため、編集したYAMLに加え、使用版の機能で実行時の解決済み設定を確認します。
手順5 対象USDZをサーバーへ指定する
公式gRPCガイドでは、serve-grpc の --artifact-glob にUSDZを指定する方法が紹介されています。ホスト上のパスと、コンテナ内で見えるパスを区別します。
サーバーの版と利用可能なシーン一覧を確認した後、対象シーンへ実際に描画要求を送ります。
get_available_scenes にIDがあることは、そのモデルのロード・描画成功や強度品質の証明ではありません。 描画応答とサーバー側の状態を併せて確認し、意図したUSDZを使っているかも照合します。
手順6 校正と時刻を指定して取得する
LidarRenderRequest には、シーンID、LiDAR設定、走査開始・終了時刻、センサーの開始・終了姿勢、動的物体の情報を指定します。
公開定義では、時刻の単位はµs、返却XYZは走査終了時のLiDAR座標系、強度の規定値域は [0, 1] です。定義はNuRec APIリファレンスとAlpaSimの公開protobufで確認できます。
画像と照合する場合は、センサーから車体への外部校正、画像時刻、走査時刻も保存します。車体姿勢をそのままセンサー姿勢として使わないようにします。
手順7 個数と品質を検査する
以下は、取得後の検査方法としての提案です。
| 検査 | 確認する内容 |
|---|---|
| 個数 | 復号後のXYZ点数・強度数・num_points が整合する |
| 有限性 | XYZと強度にNaN・Infがない |
| 値域 | APIが規定する強度範囲を満たす |
| 分布 | 一定値や極端な飽和になっていない |
| 保存後の読戻し | 値と点の順序が保存前と一致する |
| 用途ごとの品質 | 実測との誤差、投影の一致、道路・白線の再現性を評価する |
個数と値域が合っていても、品質が十分とは限りません。また、生成した強度を、校正済みの物理的な反射率と同一視しないようにします。
4 症状別の確認と解決案
次の表は一般的な切り分けの提案です。特定の環境で原因や解決を実証した一覧ではありません。
| 症状 | 確認すること | 解決案と再確認 |
|---|---|---|
| データ取得で403になる | 利用条件への同意、アカウント、トークン権限 | 正規のアクセス権を確認し、小さなファイルで取得を試す。トークンは記事やログへ掲載しない |
| RGBは取得できるがLiDARが保存されない | runtimeがLiDARを要求・処理しているか | 直接RPCで取得経路を切り分け、その後runtimeの統合・保存処理を確認する |
| XYZはあるが強度が空 | 通常フィールドとバッファ、クライアント互換性、モデルの強度対応 | 復号方法とモデルを順に確認。強度対応モデルが必要な場合は、教師付き再構築を検討する |
| 追加信号があるのに強度が学習されない | 信号の名前、対象層、教師、損失 | 次元数だけで判断せず、intensity と有効な教師損失を解決済み設定で確認する |
| 強度が規定値域を外れる | 復号、教師の正規化、出力処理 | 使用版の設定・実装を確認し、必要なら再学習。事後の切り詰めだけで品質確認を済ませない |
| 正常終了したのに品質が低い | 損失の推移、評価データ、対応付け | 学習に使っていない評価データと適切なマスクで再評価する |
| 画像と点群が合わない | 外部校正の向き、カメラモデル、走査・画像時刻 | 各座標変換を確認し、使用カメラの投影モデルと時間差を考慮する |
カメラを一律にピンホールモデルとして扱わない点も重要です。NCoreの公開資料では、FTheta、OpenCV fisheye、OpenCV pinholeなどのモデルと、ローリングシャッターに関する情報が説明されています。
5 評価結果を報告するときに記載する条件
将来、公開許諾を得た結果を報告する際は、少なくとも次を明記します。
- 評価スキャンが、形状の再構築と強度学習のそれぞれに使われたか。
- 同一シーン内の再現性、新しい姿勢、未知シーンのどれを評価したか。
- 生成点と実測点の対応付け、マスク、誤差の集計方法。
- 一定値を出す比較対象などの定義と、その値を決めたデータ。
公式のtest区分に属するデータでも、そのデータでシーンを学習していれば、その評価を未使用データへの汎化性能と呼ぶことはできません。本記事では、条件を確認できない独自の評価数値は掲載しません。
おわりに
強度を扱う際は、まず1スキャンで返却形式を確認し、取得経路、モデルの強度信号、教師損失、値と品質の順に切り分けます。
公開APIがあることと、任意の配布シーンから強度を生成できることは別です。実測データの読出し、シーンからの生成、画像との照合も、それぞれの条件を確認して進めてください。