Một lớp cảm nhận (perception stack) được định hình bởi phương tiện vận hành nó. Khi chuyển cùng một phần mềm sang một dòng xe mới—ví dụ, từ SUV sang sedan hoặc một biến thể xe khác trong danh mục sản phẩm—cách nó cảm nhận thế giới sẽ thay đổi. Vị trí đặt cảm biến, hiệu chuẩn, trường nhìn, các vật che khuất, hình học thân xe, thời gian và phạm vi bao phủ đều thay đổi. Một đèn giao thông có thể xuất hiện ở một phần khác của khung hình. Một lề đường có thể trở nên khó nhìn hơn. Một người đi bộ gần rìa phạm vi bao phủ có thể trở nên khó xác định. Khi một ngăn xếp lái tự động mở rộng sang các dòng xe và biến thể mới, các nhà phát triển phải tính đến những khác biệt này ngay cả khi ngăn xếp cảm nhận cơ bản vẫn giữ nguyên.
Việc thu thập và gán nhãn một bộ dữ liệu thực tế mới cho mỗi dòng xe là tốn kém và có thể không khả thi trong giai đoạn đầu của quá trình phát triển xe. Các đội xe mới có thể chưa sẵn có, và các điều kiện hiếm hoi không phải lúc nào cũng có thể được ghi lại. Dữ liệu lái xe thực tế vẫn rất quan trọng để xác thực và kiểm tra hiệu suất hệ thống, nhưng dữ liệu tổng hợp có thể giúp các nhóm thích ứng các mô hình trước khi có sẵn một bộ dữ liệu đầy đủ cho dòng xe mục tiêu.
Thách thức trong việc thích ứng dòng xe là chuẩn bị phần mềm nhận thức cho một phương tiện có thể chưa tồn tại, và mở rộng phần mềm đó qua các biến thể nền tảng mà không cần thu thập và gán nhãn một tập dữ liệu lớn cho từng loại.
NVIDIA Omniverse NuRec giúp quá trình này trở nên thực tế hơn. Nó bắt đầu từ các chuyến lái thực tế đã được ghi lại, tái tạo từng khung cảnh, và hiển thị các góc nhìn camera mới cho cấu hình xe mục tiêu.
Các nhà phát triển có thể tái sử dụng dữ liệu thực tế để đặt ra các câu hỏi như:
- Kịch bản này sẽ trông như thế nào từ góc nhìn của xe mục tiêu?
- Những hệ thống lái hiện có nào bao phủ tốt chiếc xe mới?
- Những thay đổi về hình học tạo ra các điểm yếu ở đâu?
- Những khoảng trống nào cần thu thập dữ liệu thực tế?
Bài viết này trình bày cách điều chỉnh một bộ cảm nhận (perception stack) cho một bộ cảm biến mới bằng cách sử dụng dữ liệu lái xe hiện có, thông qua bốn bước sau:
- Kết hợp một hành trình đã được tái tạo với cấu hình rig mục tiêu.
- Tạo hình ảnh các góc nhìn mục tiêu.
- Tinh chỉnh các khung hình với NVIDIA Harmonizer.
- Huấn luyện mô hình nhận thức trên đầu ra.
Hướng dẫn này sử dụng các cảnh được tái tạo từ Bộ dữ liệu Physical AI NuRec của NVIDIA để hoàn thành bốn bước.
Cách NuRec hỗ trợ thích ứng với dòng xe
NuRec sử dụng kỹ thuật làm nổi bật Gaussian 3D để tái tạo môi trường thực tế từ dữ liệu cảm biến và hiển thị chúng cho mô phỏng. Đối với việc thích ứng với dòng xe, NuRec tái tạo một chuyến đi thực tế được ghi lại bởi một phương tiện hiện có và hiển thị các luồng camera mới từ góc nhìn của phương tiện mục tiêu.
Hai khả năng của NuRec đặc biệt hữu ích cho việc thích ứng với dòng xe.
- Tổng hợp ảnh từ góc nhìn mới: NuRec có thể render cảnh bằng gsplat, vốn chiếu các Gaussian qua mô hình camera đã chỉ định. Khả năng này cho phép người dùng thay đổi extrinsics, intrinsics, trường nhìn (field of view) và mô hình ống kính của camera, bao gồm các cấu hình pinhole, fisheye và f-theta.
- Dữ liệu cảnh và chú thích có thể tái sử dụng: Cảnh được tái tạo giữ lại các quỹ đạo rig ban đầu, hiệu chuẩn theo từng camera, các đường theo dõi đối tượng động và dữ liệu bản đồ. Những tài sản này có thể được sử dụng để căn chỉnh hoặc thích ứng các nhãn như đối tượng, làn đường, đèn giao thông và ranh giới đường trong các góc nhìn mới được render.

Hình 1. Quy trình thích ứng dòng xe NuRec. Một cảnh USDZ được tái tạo được render qua bộ cảm biến của dòng xe mục tiêu, được tinh chỉnh bằng Harmonizer và được sử dụng cho việc huấn luyện nhận thức
Thích ứng mô hình nhận thức sang một dòng xe mới với NuRec
Quy trình sau đây cho thấy các nhóm phát triển có thể hiển thị một cảnh quay đã được tái tạo từ một lần lái xe thực tế thông qua một bộ camera mục tiêu, tinh chỉnh các khung hình kết quả và chuẩn bị dữ liệu cho việc huấn luyện mô hình nhận thức.
Bước 1. Tải xuống một cảnh đã được tái tạo
Bộ dữ liệu NuRec Physical AI trên Hugging Face bao gồm hơn 1.500 cảnh lái xe được tái tạo bằng mạng nơ-ron. Mỗi cảnh kéo dài khoảng 20 giây và được tái tạo từ sáu góc nhìn camera: một góc nhìn rộng phía trước 120 độ, một góc nhìn telephoto phía trước 30 độ, các góc nhìn chéo trái và chéo phải 120 độ, cùng các góc nhìn sau trái và sau phải 70 độ.
Bộ dữ liệu NuRec yêu cầu xác thực. Chấp nhận giấy phép, xác thực bằng mã thông báo Hugging Face và tải xuống một cảnh.
import os from huggingface_hub import login, snapshot_download login(token=os.getenv("HF_TOKEN")) # Download one reconstructed scene (USDZ) from the 26.04 release snapshot_download( repo_id="nvidia/PhysicalAI-Autonomous-Vehicles-NuRec", repo_type="dataset", allow_patterns="sample_set/26.04_release//*", )
Nếu sử dụng tác nhân mã hóa, hãy sao chép kho lưu trữ NVIDIA/nurec-skills. Kho lưu trữ này bao gồm các kỹ năng để tải xuống các bộ dữ liệu Physical AI, kết xuất bằng NuRec và tinh chỉnh các khung hình đầu ra.
git clone https://github.com/NVIDIA/nurec-skills.git
Bước 2. Kết xuất từ bộ cảm biến của dòng xe mục tiêu

Hướng dẫn này sử dụng một bộ máy quay mục tiêu tổng hợp được cung cấp kèm theo mẫu công khai. Tên máy quay, tư thế, độ phân giải và các tham số ống kính của nó chỉ mang tính chất minh họa.
Bộ rig tổng hợp được cung cấp chứa một camera mục tiêu, vì vậy hướng dẫn này tạo ra một luồng dữ liệu từ camera mục tiêu. Trong tệp rig, mỗi mục cảm biến xác định tên camera được phân tách bằng dấu hai chấm, độ phân giải hình ảnh, mô hình ống kính F-Theta, các tham số nội tại và tư thế từ camera đến rig.
NRE chuyển đổi tên được phân tách bằng dấu hai chấm thành một ID camera logic. Ví dụ, nó chuyển đổi camera:front:synthetic:120fov thành camera_front_synthetic_120fov. Để thêm một camera mục tiêu khác, hãy thêm một mục khác vào rig.sensors. Đặt cho nó một tên duy nhất và cung cấp chiều rộng, chiều cao, mô hình ống kính, các tham số nội tại và phép biến đổi nominalSensor2Rig_FLU của riêng nó.
Đặt vị trí đầu vào và đầu ra:
export SCENE_DIR=/absolute/path/to/scene export SCENE_FILE=.usdz export RIG_DIR=/absolute/path/to/rig export RIG_FILE=minimal-synthetic-target-rig.json export OUTPUT_DIR=/absolute/path/to/output mkdir -p "$OUTPUT_DIR"
Gắn cố định container NuRec công khai với digest bất biến của nó và kéo hình ảnh:
export NUREC_IMAGE='nvcr.io/nvidia/nre/nre-ga:26.04.01@sha256:97f43e7130c5636ce3e80ea3184d97f56a87fdd989b05cce42230881dbdea284'
docker pull "$NUREC_IMAGE"
docker image inspect "$NUREC_IMAGE" --format '{{range .RepoDigests}}{{println .}}{{end}}'
Chạy quá trình xuất quỹ đạo và kết xuất dưới dạng các thao tác container riêng biệt. Xuất quỹ đạo của camera mục tiêu:
docker run --rm --gpus all --shm-size=64g \
-v "$SCENE_DIR":/inputs/scene:ro \
-v "$RIG_DIR":/inputs/rig:ro \
-v "$OUTPUT_DIR":/outputs \
"$NUREC_IMAGE" export-custom-rig-trajectory \
--artifact-path="/inputs/scene/$SCENE_FILE" \
--rig-json="/inputs/rig/$RIG_FILE" \
--output=/outputs/custom_rig_trajectories.json
Tiếp theo, chạy một lần kết xuất thưa (sparse render) của một camera mục tiêu để xác nhận cấu hình. Trong ví dụ này, hãy chọn camera mục tiêu camera_front_synthetic_120fov vì bộ khung mục tiêu (target rig) trong ví dụ định nghĩa một camera hướng về phía trước. Lệnh kết xuất sẽ tải tệp quỹ đạo đã xuất và sau đó sử dụng –camera-id để chọn camera cần kết xuất.
Cảnh USDZ được tái tạo bằng cách sử dụng sáu camera nguồn: một camera góc rộng phía trước 120 độ, một camera telephoto phía trước 30 độ, các camera chéo trái và chéo phải 120 độ, và các camera sau trái và sau phải 70 độ. Một camera mục tiêu không cần phải tương ứng từng cặp một với bất kỳ camera nguồn nào trong số này. Nó có thể sử dụng vị trí, hướng, độ phân giải, trường nhìn hoặc hiệu chỉnh khác, miễn là tư thế (pose) của nó được biểu diễn trong cùng khung tọa độ rig và mô hình ống kính của nó được trình xuất (exporter) hỗ trợ. Các camera được đặt quá xa ngoài quỹ đạo quan sát hoặc hướng về các khu vực có phạm vi phủ sóng của camera nguồn hạn chế có thể tạo ra các bản render chất lượng thấp hơn.
Hướng dẫn này sử dụng một camera mục tiêu hướng về phía trước để thích ứng với một góc nhìn khác; ví dụ, để sử dụng một camera sau trái, trước tiên hãy thêm một cảm biến sau trái vào tệp JSON của rig mục tiêu, cung cấp cho nó các thông số ngoại sai (extrinsics) từ camera sau trái sang rig, xuất lại quỹ đạo, và truyền ID logic chuẩn hóa của nó vào đối số –camera-id.
docker run --rm --gpus all --shm-size=64g \
-v "$SCENE_DIR":/inputs/scene:ro \
-v "$OUTPUT_DIR":/outputs \
"$NUREC_IMAGE" render \
--artifact-path="/inputs/scene/$SCENE_FILE" \
--output-dir=/outputs/smoke \
--custom-rig-trajectory=/outputs/custom_rig_trajectories.json \
--no-replicate-training-views \
--renderer=default \
--image-format=png \
--frame-step=30 \
--image-scale=1 \
--frame-naming=frame-end-timestamp \
--camera-id=camera_front_synthetic_120fov
Kiểm tra các khung hình để đảm bảo rằng tư thế, trường nhìn và dấu thời gian là chính xác. Sau khi xem xét các lượt render thưa, hãy render toàn bộ chuỗi với `–frame-step=1` cho tất cả các camera mục tiêu. Lặp lại –camera-id cho mỗi camera đã được xác thực trong rig mục tiêu.
Bước 3. Tinh chỉnh các khung hình đã render
Neural rendering có thể để lại các lỗi phụ thuộc vào góc nhìn, màu sắc hoặc tông màu không nhất quán, và các đối tượng động được tái tạo kém. NVIDIA Harmonizer là một mô hình hậu xử lý công khai, có khả năng nhận biết thời gian, giúp sửa chữa các lỗi trong NuRec và các phương pháp render thần kinh liên quan. Nó cải thiện chất lượng hình ảnh, nhưng không thể sửa chữa hiệu chỉnh sai lệch, khôi phục phạm vi cảnh chưa từng được tái tạo, hay thay thế việc xác thực với camera mục tiêu.
Kỹ năng nurec-fixer trong NVIDIA/nurec-skills bao gồm thiết lập, suy luận, đánh giá và tinh chỉnh tùy chọn Harmonizer. Trước tiên, hãy xác thực máy chủ trước khi tải xuống mô hình.
git clone https://github.com/NVIDIA/nurec-skills.git python nurec-skills/skills/nurec-fixer/scripts/validate_setup.py
Chấp nhận các giấy phép mô hình trên Hugging Face, sao chép kho lưu trữ Harmonizer, xây dựng hình ảnh thời gian chạy của nó và tải xuống các điểm kiểm tra đã phát hành:
git clone https://github.com/NVIDIA/harmonizer.git cd harmonizer docker build -t harmonizer-cosmos-env -f Dockerfile.cosmos . hf auth login ./download_checkpoints.sh test -f models/diffusion_harmonizer.pkl test -d src/checkpoints/nvidia/Cosmos-Predict2-0.6B-Text2Image
Chạy từng chuỗi camera một. Gắn kết thư mục gốc của bản dựng để đảm bảo đầu ra—được ghi bên cạnh thư mục đầu vào—được lưu trữ trên máy chủ:
export HARMONIZER_DIR=/absolute/path/to/harmonizer export RENDER_ROOT=/absolute/path/to/output/render export CAMERA_ID=camera_front_synthetic_120fov docker run --rm --gpus all --ipc=host \ --entrypoint python \ -v "$HARMONIZER_DIR":/work \ -v "$RENDER_ROOT":/frames \ -w /work/src \ harmonizer-cosmos-env \ inference_pix2pix_turbo_harmonizer.py \ --input_image="/frames/$CAMERA_ID" \ --model_path=/work/models/diffusion_harmonizer.pkl \ --model_identifier=harmonized \ --timestep=250 \ --resolution=1024 \ --use_sched

Bước 4. Huấn luyện mô hình nhận thức
Sau khi tạo các tập dữ liệu được render bởi NuRec cho một dòng xe mới, hãy xác thực kết quả đầu ra trước khi đưa vào quy trình huấn luyện nhận thức. Xử lý tập dữ liệu mới này tương tự như dữ liệu camera thực tế được thu thập từ các phương tiện. Sau đó, chuẩn bị nó để sử dụng dựa trên nhu cầu của mô hình nhận thức.
Chương trình thích ứng dòng xe
NVIDIA đã đánh giá quy trình làm việc này trong một chương trình lái xe tự hành nội bộ, chương trình này cần hỗ trợ một cấu hình camera mới. Nhóm đã có một thư viện các chuyến lái xe hiện có từ một loại xe khác, nhưng dữ liệu của dòng xe mục tiêu vẫn chưa sẵn có.

Tự động hóa quy trình làm việc với các kỹ năng tác nhân của NuRec
Kho lưu trữ NVIDIA/nurec-skills đóng gói các bước chính dưới dạng các kỹ năng tác nhân. Một tác nhân lập trình có thể sử dụng physical-ai-datasets để xác định vị trí và tải xuống các cảnh, nre để hiển thị chúng, và nurec-fixer để tinh chỉnh kết quả đầu ra.
Để xem ví dụ toàn diện, hãy xem buổi phát trực tiếp về các kỹ năng của tác nhân tái tạo thần kinh.
Kho lưu trữ NVIDIA/nurec-skills công khai chứa các kỹ năng để định vị các bộ dữ liệu Physical AI, sử dụng NCore, chạy NuRec và áp dụng DiffusionHarmonizer. Kỹ năng nurec-carline-adaptation thêm một lớp tương thích và nguồn gốc mỏng; nó không phân phối lại mã nguồn hoặc mô hình của NuRec.
git clone https://github.com/NVIDIA/nurec-skills.git
Sau khi sao chép kho lưu trữ, hãy yêu cầu một tác nhân mã hóa tương thích:
Sử dụng kỹ năng $nurec-carline-adaptation để xác thực USDZ và bộ xương mục tiêu đã được làm sạch, hiển thị cho tôi các lệnh Docker cục bộ chính xác, chạy thử nghiệm khói với một camera thưa thớt, và dừng lại trước khi render đầy đủ nếu bất kỳ kiểm tra camera hoặc kính chắn gió nào thất bại.
Áp dụng NuRec vào dữ liệu lái xe hiện có
Việc tái tạo một chuyến lái đã ghi nhận yêu cầu các video đồng bộ từ thiết bị ghi hình và metadata tương ứng từ cùng một lần ghi. Dữ liệu nguồn sau đó phải được tổ chức theo một bố cục nhất quán:
clip/
└── raw/
├── generated/
│ ├── front_wide.mp4
│ ├── front_tele.mp4
│ ├── cross_left.mp4
│ ├── cross_right.mp4
│ ├── rear_left.mp4
│ ├── rear_right.mp4
│ └── rear.mp4
└── clipgt/parquets/
├── calibration_estimate.parquet
├── egomotion_estimate.parquet
└── object_fused.parquet
Các file MP4 được lấy từ bộ ghi hình của camera trên xe. Các file Parquet chứa metadata được chia sẻ bởi toàn bộ hệ thống camera.
| Đầu vào | Nội dung | Nguồn điển hình |
|---|---|---|
| calibration_estimate.parquet | Thông số ống kính camera và vị trí lắp đặt | Xuất cấu hình hiệu chỉnh camera hoặc cấu hình giá đỡ |
| egomotion_estimate.parquet | Vị trí và hướng của xe theo thời gian | Định vị, odometry, VIO hoặc SLAM |
| object_fused.parquet | Các đối tượng di chuyển, lớp, kích thước và ID theo dõi | Quy trình nhận dạng hoặc gán nhãn |
Ba tệp Parquet này đều được yêu cầu bởi bộ chuyển đổi và công thức tái tạo đi kèm được sử dụng trong hướng dẫn này. Các quy trình NuRec khác có thể hỗ trợ tái tạo mà không cần theo dõi đối tượng. Các tên tệp và quá trình tuần tự hóa Parquet này không phải là yêu cầu của NCore. Nếu cùng thông tin được lưu trữ trong JSON, cơ sở dữ liệu hoặc định dạng khác, mẫu bộ chuyển đổi NCore công khai có thể được điều chỉnh để đọc dữ liệu nguồn.
Quy trình này giả định rằng các video đã chọn được đồng bộ hóa và bao phủ cùng khoảng thời gian ghi. Dữ liệu hiệu chuẩn phải xác định mọi máy ảnh đã chọn, dữ liệu chuyển động tự thân (egomotion) phải bao phủ toàn bộ chuỗi từ khung hình đầu tiên đến khung hình cuối cùng, và các đường theo dõi đối tượng được yêu cầu bởi công thức này phải chồng lấn khoảng thời gian đó và sử dụng cùng hệ tọa độ thế giới. Trình xác thực ngữ nghĩa chạy sau khi chuyển đổi và kiểm tra các mối quan hệ này trong chuỗi NCore đã tạo.
Ánh xạ dữ liệu nguồn sang NCore
Trình chuyển đổi đi kèm trong phần tiếp theo hỗ trợ bố cục gồm bảy video và ba bảng được hiển thị ở trên. Khi các tệp tuân theo lược đồ này, quy trình có thể tiếp tục trực tiếp với Chạy trình chuyển đổi đi kèm.
Các định dạng nguồn không được hỗ trợ yêu cầu một bản sao tùy chỉnh của mẫu bộ chuyển đổi công cộng, đọc các tệp nguồn và ghi dữ liệu vào NCore.
export CONVERTER_DIR="$WORK_DIR/cosmos-clipgt-converter" cp -R "$NUREC_SKILLS_REPO/skills/ncore/ncore_template" "$CONVERTER_DIR"
Mẫu này là một khung mã, không phải là một bộ chuyển đổi đa năng. Trình đọc nguồn của nó phải ánh xạ thông tin tương đương vào các thành phần NCore sau:
| Dữ liệu nguồn | NCore V4 |
|---|---|
| Hình ảnh camera đã được mã hóa và các khoảng thời gian phơi sáng theo từng khung hình | Một CameraSensorComponent cho mỗi camera logic |
| Mô hình ống kính camera và các thông số nội tại | IntrinsicsComponent |
| Các tham số ngoại sai từ camera đến khung máy | PosesComponent : T_sensor_rig |
| Chỉ số chuyển động tự thân | PosesComponent : T_rig_world |
| Tham chiếu toàn cục tùy chọn | PosesComponent : T_world_world_global |
| Mặt nạ Ego | MasksComponent |
| Quan sát và theo dõi đối tượng | CuboidsComponent |
Tuân theo các quy ước tọa độ công khai của NCore:
- Rig:
+Xvề phía trước,+Ysang trái,+Zhướng lên trên - Camera:
+Xsang phải,+Yhướng xuống dưới,+Zvề phía trước - Dấu thời gian: micro giây nguyên
- Khoảng cách: mét; tư thế: các phép biến đổi SE(3) hợp lệ
Giữ tính toán tư thế ở định dạng float64. Tái căn chỉnh khung “thế giới” cục bộ sao cho tư thế rig đầu tiên là đơn vị. Đối với video có tốc độ khung hình không đổi được đồng bộ hóa mà không có dấu thời gian khung hình đã ghi, dấu thời gian danh nghĩa cho khung hình `i` là:
frame_timestamp_us = anchor_timestamp_us + i * 1,000,000 / fps
Sử dụng dấu thời gian phơi sáng đã ghi khi có sẵn. Công thức danh nghĩa giả định rằng các luồng MP4 được đồng bộ hóa. Bộ chuyển đổi ghi chuỗi với hồ sơ `separate-sensors` của NCore. Hồ sơ này tạo một kho lưu trữ thành phần camera cho mỗi camera được chuyển đổi và một kho lưu trữ chung cho các tư thế, thông số nội tại, mặt nạ và hình hộp. Bộ chuyển đổi bảo toàn độ phân giải thực tế và cách diễn giải màu sắc của mỗi camera.
Chạy bộ chuyển đổi kèm theo
Khi bộ chuyển đổi cụ thể cho nguồn được phân phối cùng kho lưu trữ hướng dẫn, hãy chạy nó như sau:
export COSMOS_CONVERTER="$TUTORIAL_REPO/tools/cosmos_ncore/build_cosmos_ncore_v4.py" test -f "$COSMOS_CONVERTER" env -u PYTHONPATH "$NCORE_PYTHON" "$COSMOS_CONVERTER" \ --root "$INPUT_ROOT" \ --anchor-us "$ANCHOR_TIMESTAMP_US" \ --sequence-id "$SEQUENCE_ID" \ --fps "$FPS" \ --store-type itar
Xác thực chuỗi NCore
Đặt các đường dẫn đã tạo theo hợp đồng đầu ra của bộ chuyển đổi:
export NCORE_DIR="$INPUT_ROOT/ncore/$SEQUENCE_ID" export NCORE_MANIFEST="$NCORE_DIR/$SEQUENCE_ID.json" export NCORE_VALIDATOR="$TUTORIAL_REPO/tools/cosmos_ncore/validate_cosmos_ncore_v4.py" test -s "$NCORE_MANIFEST" python3 -m json.tool "$NCORE_MANIFEST" > /dev/null
Chạy trình xác thực dành riêng cho nguồn:
env -u PYTHONPATH "$NCORE_PYTHON" "$NCORE_VALIDATOR" \ --root "$INPUT_ROOT" \ --sequence-id "$SEQUENCE_ID"
Sau đó, kiểm tra chuỗi bằng trình xem NCore công khai và mở http://localhost:8080.
export NCORE_REPO=/absolute/path/to/ncore
export NCORE_MANIFEST=/absolute/path/to/sequence/.json
(
cd "$NCORE_REPO"
bazel run //tools/ncore_vis -- \
v4 \
--component-group="$NCORE_MANIFEST"
)
Đầu ra dự kiến
Một chuỗi NCore V4 với cảm biến riêng biệt thường bao gồm:
/ ├── .json ├── build_manifest.json ├── .ncore4.zarr.itar ├── .ncore4-.zarr.itar └── ... one camera archive per converted camera
Kho lưu trữ `.ncore4.zarr.itar` chung chứa các thành phần như vị trí, thông số nội tại, mặt nạ và hình hộp. Mỗi kho lưu trữ `.ncore4-.zarr.itar` chứa các khung hình cho một camera đã được chuyển đổi. Tệp kê khai JSON và tất cả các kho lưu trữ được tham chiếu tạo thành một chuỗi logic duy nhất; chúng phải được giữ cùng nhau.
Tạo dữ liệu phụ trợ NuRec
Chuỗi NCore đã chuyển đổi chứa các phép đo cảm biến đã ghi lại, thông tin hiệu chuẩn, tư thế và các đường theo dõi đối tượng. Hiện tại, chuỗi này chưa bao gồm các mặt nạ phân đoạn ngữ nghĩa suy luận, độ sâu và mặt nạ ego cần thiết cho quy trình tái tạo chỉ sử dụng camera này. Các hướng dẫn skills/nre công khai mô tả giai đoạn này, và tài liệu dữ liệu phụ trợ NuRec xác định các sản phẩm dữ liệu. Container nre-tools-ga NGC công khai trên NGC cung cấp ứng dụng suy luận.
Quy trình sử dụng NRE_AUX_IMAGE để xác định các container dữ liệu phụ trợ và phân biệt chúng với hình ảnh huấn luyện và render nre-ga riêng biệt. Hình ảnh GA 26.04 cung cấp nhiều công cụ thông qua một điểm truy cập duy nhất, vì vậy quy trình chọn rõ ràng phân lệnh ncore-aux-data:
export NUREC_AUX_IMAGE=nvcr.io/nvidia/nre/nre-tools-ga:26.04.00 python3 "$NUREC_SKILLS_REPO/skills/nre/scripts/validate_setup.py" --strict docker pull "$NUREC_AUX_IMAGE" docker run --rm --gpus all --shm-size=2g \ --env NGC_API_KEY \ --volume "$NCORE_DIR:/workdir/dataset" \ "$NUREC_AUX_IMAGE" ncore-aux-data \ --dataset-path="/workdir/dataset/$SEQUENCE_ID.json" \ --output-dir=/workdir/dataset \ --segmentation-backend=mask2former \ --depth-backend=depthanythingv2 \ --max-depth-m=80 \ --ego-mask \ --no-lidar-seg-camvis \ --no-seg-logits \ --zarr-store-type=itar \ --store-meta \ --num-threads=auto
Các tùy chọn đã chọn có vai trò rõ ràng. Bảng 3 tóm tắt đầu ra được tạo ra bởi mỗi tùy chọn đã chọn.
| Tùy chọn | Sản phẩm được tạo ra |
|---|---|
| –segmentation-backend=mask2former | .aux.sseg.zarr.itar: mặt nạ lớp ngữ nghĩa theo từng khung hình |
| –depth-backend=depthanythingv2 | .aux.depth.zarr.itar: chiều sâu theo mét |
--ego-mask |
.aux.egomask.zarr.itar: mặt nạ loại trừ xe chủ theo từng camera |
--store-meta |
.aux-meta.json: các cài đặt phụ trợ đã được giải quyết từ ảnh đã ghim |
--no-lidar-seg-camvis |
Vô hiệu hóa phân đoạn LiDAR vì quy trình làm việc không bao gồm dữ liệu LiDAR |
Bỏ qua --camera-id sẽ xử lý mọi camera được khai báo trong NCORE_SEQUENCE_JSON. Việc chọn các camera cụ thể yêu cầu một --camera-id= cho mỗi camera, sử dụng các ID camera logic từ tệp kê khai.
Sau khi tạo dữ liệu phụ, thư mục đầu vào của quá trình tái tạo có cấu trúc như sau:
/ ├── .json ├── build_manifest.json ├── .ncore4.zarr.itar ├── .ncore4-.zarr.itar └── ... one camera archive per converted camera ├── .aux.sseg.zarr.itar ├── .aux.depth.zarr.itar ├── .aux.egomask.zarr.itar └── .aux-meta.json
Bắt đầu
Sử dụng các tài nguyên sau để bắt đầu thích ứng một cảnh đã tái tạo với một dòng xe mục tiêu.
- Tải xuống một cảnh USDZ và bộ khung mục tiêu mẫu đi kèm từ Bộ dữ liệu Physical AI NuRec.
- Kết xuất cảnh thông qua bộ khung mẫu, thay thế JSON của bộ khung bằng cấu hình dòng xe mục tiêu, và kết xuất lại cảnh.
- Xem tài liệu NuRec để biết các yêu cầu thiết lập, phần cứng được hỗ trợ, xác thực và hướng dẫn kết xuất.
- Để tái tạo các chuyến lái đã ghi lại, hãy làm theo Tái tạo cảnh xe tự hành và hướng dẫn chuyển đổi NCore cũng như dữ liệu phụ trợ trong NVIDIA/nurec-skills.
- Sử dụng NVIDIA Harmonizer để xử lý hậu kỳ chuỗi dữ liệu nhất quán theo thời gian.
Phần mềm công khai, container, tập dữ liệu và các tệp mô hình yêu cầu tài khoản NVIDIA NGC hoặc Hugging Face tương ứng và chấp nhận giấy phép của họ. Runtime NuRec có sẵn trong container nre-ga trên NGC.
Bài viết liên quan
- Xây dựng Agent dựa trên bộ nhớ với NVIDIA NemoClaw
- Tạo quỹ đạo, dấu vết lập luận và nhãn tự động với NVIDIA Alpamayo 2 Super
- TensorRT 11 có gì mới và AI Engineer cần chuẩn bị gì khi nâng cấp?
- Cách sử dụng AI Agents để chuẩn bị cảnh 3D cho mô phỏng
- Tại sao việc mở rộng hiệu suất điện toán AI đòi hỏi một kiến trúc nguồn điện mới?
