Xây dựng Ứng dụng Theo dõi 3D Đa Camera với Kỹ năng NVIDIA DeepStream 9.1

Các nhà phát triển xây dựng ứng dụng phân tích video trên các không gian lớn phải theo dõi cùng một đối tượng khi nó di chuyển giữa các góc nhìn của camera. Theo dõi 2D bằng một camera đơn thiếu thông tin độ sâu đáng tin cậy và thường bị mất dấu đối tượng khi nó rời khỏi khung hình, hạn chế các ứng dụng như an toàn nhà kho, phân tích bán lẻ và giám sát tòa nhà thông minh. Các phương pháp theo dõi 3D hiện tại yêu cầu hiệu chuẩn camera thủ công và các phép tính phức tạp.

NVIDIA DeepStream 9.1 giải quyết thách thức này bằng AutoMagicCalib (AMC)Theo dõi 3D Đa góc nhìn (MV3DT). AMC và MV3DT hợp nhất các phát hiện từ nhiều camera được tự hiệu chuẩn vào một hệ tọa độ 3D chung và duy trì một ID đối tượng nhất quán trên các góc nhìn.

Bài viết này sẽ đề cập đến chi tiết về MV3DT và AMC, cũng như cách bắt đầu với DeepStream 9.1, một bước tiến lớn trong việc đơn giản hóa và tăng tốc phát triển pipeline AI thị giác.

Với sự tập trung mạnh mẽ vào tính mô-đun, tự động hóa và hiệu suất biên, DeepStream 9.1 giới thiệu một bộ kỹ năng tác tử mạnh mẽ giúp các nhà phát triển chuyển từ ý tưởng sang triển khai nhanh hơn và chính xác hơn.

Những gì mới với DeepStream 9.1:

  • Truy cập vào 13 kỹ năng tác tử được thiết kế để đẩy nhanh quá trình phát triển AI thị giác.
  • Kỹ năng theo dõi 3D đa camera (MV3DT) để theo dõi đối tượng chính xác, từ đầu đến cuối trên nhiều luồng camera.
  • Kỹ năng AutoMagicCalib (AMC) tự động hóa việc hiệu chuẩn camera, giảm công sức thủ công và giảm thiểu lỗi.
  • Hỗ trợ NVIDIA JetPack 7.2, cho phép hiệu suất AI thị giác tăng tốc trên các nền tảng biên Jetson như Orin và Thor.
  • Sẵn có mã nguồn mở thông qua một kho lưu trữ GitHub thống nhất, giúp việc áp dụng, tùy chỉnh và bảo trì trở nên đơn giản hơn.

Video 1: Triển khai MV3DT đầu cuối bằng cách sử dụng DeepStream Skills, từ một lời nhắc ngôn ngữ tự nhiên đến một quy trình theo dõi 3D đa camera đang chạy

Hiện có sẵn qua kho lưu trữ GitHub NVIDIA DeepStream, DeepStream 9.1 bao gồm mã nguồn đầy đủ và các ứng dụng tham khảo.

MV3DT theo dõi các đối tượng qua nhiều camera như thế nào

MV3DT chiếu các phát hiện từ nhiều camera được hiệu chuẩn vào một hệ tọa độ 3D chung. Sau đó, nó liên kết các quan sát về cùng một đối tượng qua các góc nhìn của camera và gán một ID đối tượng nhất quán toàn cầu. Mỗi camera độc lập chiếu các đối tượng vào không gian 3D, và hệ thống hợp nhất các đầu vào này để đảm bảo theo dõi nhất quán toàn cầu.

Điều này đảm bảo rằng mọi đối tượng đều duy trì một ID duy nhất, ổn định trên toàn bộ môi trường, với các vị trí được tính toán trong một hệ tọa độ thế giới thống nhất.

Các thuật toán liên kết đa chế độ và kỹ thuật hợp nhất 3D cơ bản được trình bày chi tiết trong bài báo nghiên cứu, Fully Distributed Multi-View 3D Tracking in Real-Time.

Tìm hiểu kiến trúc MV3DT

Architecture diagram showing MV3DTHình 1. Tổng quan hệ thống MV3DT (Hernandez et al., 2026)

MV3DT mở rộng trình theo dõi DeepStream với hỗ trợ theo dõi 3D đa góc nhìn phân tán trên mạng lưới các camera đã được hiệu chỉnh.

Đây là cách dữ liệu chảy qua hệ thống:

  • Detection Capabilities: DeepStream pipeline processes all camera streams, with the MV3DT tracker independently detecting and tracking objects in each view. It supports three detector models out of the box:
    • PeopleNetTransformer: Bộ phát hiện người dựa trên Transformer, mặc định cho các cảnh có người đi bộ.
    • PeopleNet v2.6.3: Một bộ phát hiện hiệu suất cao dựa trên kiến trúc DetectNet_v2.
    • RT-DETR 2D: Bộ phát hiện đa lớp, lý tưởng cho môi trường công nghiệp, phát hiện người đi bộ, xe vận chuyển và xe nâng.
  • Nhận thức 3D đơn mắt: Mỗi camera sử dụng ma trận chiếu 3×4 (được lưu trong tệp hiệu chuẩn YAML) để chiếu ngược các phát hiện hộp giới hạn 2D thành tọa độ không gian thế giới 3D bằng cách giả định mặt phẳng mặt đất.
  • Liên kết đa góc nhìn: Trình theo dõi sử dụng Message Queuing Telemetry Transport (MQTT), một giao thức nhắn tin pub/sub nhẹ chia sẻ các tracklet trên các camera. Khi hai camera quan sát cùng một người, thuật toán liên kết đa góc nhìn sẽ khớp các tracklet của chúng bằng cách sử dụng khoảng cách gần trong không gian thế giới 3D và gán một ID đối tượng nhất quán toàn cục.
  • Output: Tracking results stream out in three forms:
    • Hiển thị trên màn hình (OSD): Cung cấp lưới trực tiếp các luồng camera với các hộp giới hạn 2D/3D và ID được chia sẻ được phủ lên.
    • Chế độ xem từ trên cao (BEV): Cung cấp bản đồ 2D từ trên xuống theo thời gian thực hiển thị quỹ đạo đối tượng trong tọa độ thế giới, được kết xuất trên hình ảnh bố cục.
    • Nhắn tin Kafka: Truyền siêu dữ liệu protobuf có cấu trúc cho mỗi khung hình như ID cảm biến, ID đối tượng và hộp giới hạn 3D cho các ứng dụng hạ nguồn.

Cách hiệu chuẩn mạng camera với AutoMagicCalib

MV3DT yêu cầu các camera đã được hiệu chuẩn để ánh xạ chính xác các pixel hình ảnh sang tọa độ thế giới trên ma trận chiếu 3×4. Các phương pháp truyền thống là thủ công và tốn thời gian, thường yêu cầu đặt các mẫu hiệu chuẩn (như bàn cờ) trước các camera, điều này có nghĩa là gián đoạn hoạt động và đặt thiết bị đặc biệt trong không gian.

Screenshot of the AutoMagicCalib results page with object trajectories displayed on a BEV map after camera calibration. Hình 2. Trang kết quả giao diện người dùng AutoMagicCalib hiển thị các quỹ đạo trên hình ảnh Chế độ xem từ trên cao (BEV) sau khi hiệu chuẩn

AMC đơn giản hóa và tự động hóa quy trình hiệu chỉnh mạng camera bằng cách sử dụng DeepStream để phân tích các đối tượng được theo dõi di chuyển qua các tệp video hoặc luồng hiện có.

AMC tự động ước tính các tham số nội tại (tiêu cự, điểm chính, méo ống kính) và ngoại tại (xoay, tịnh tiến, vị trí thế giới) của mỗi camera để tạo ra các tệp hiệu chuẩn cho các ứng dụng như MV3DT. AMC có thể tùy chọn sử dụng Visual Geometry Grounded Transformer (VGGT), một phương pháp dựa trên mô hình tận dụng các mô hình đã học để đạt độ chính xác và tính mạnh mẽ cao hơn khi chuyển động của vật thể bị giới hạn.

Quy trình hiệu chuẩn nội bộ chạy qua các giai đoạn sau:

  1. Trích xuất quỹ đạo theo từng camera: DeepStream phát hiện và theo dõi các đối tượng trong từng video. AMC thu thập dữ liệu quỹ đạo kết quả.
  2. Hiệu chỉnh và chỉnh thị từ một góc nhìn: Đối với từng camera một cách độc lập, AMC ước tính các tham số nội tại (tiêu cự, ma trận chiếu, méo ống kính) từ các quỹ đạo và tạo ra một góc nhìn đã được chỉnh thị.
  3. Ghép nối tracklet đa góc nhìn: AMC ghép nối các tracklet đối tượng qua các camera, sử dụng các điểm căn chỉnh được cung cấp thủ công làm điểm neo ban đầu giữa các góc nhìn camera và bản đồ bố cục.
  4. Điều chỉnh gói: Tất cả các tham số camera được tinh chỉnh chung trên mọi góc nhìn để giảm thiểu lỗi tái chiếu trên toàn cục.
  5. Hiệu chuẩn VGGT tùy chọn: Người dùng có thể tùy chọn chạy VGGT, một quy trình hiệu chuẩn dựa trên mô hình riêng biệt có thể hữu ích khi chuyển động của vật thể bị hạn chế hoặc khi hình học học được cung cấp kết quả hiệu chuẩn mạnh mẽ hơn.

Người dùng chỉ cần cung cấp một hình ảnh bố cục và xác định một vài điểm căn chỉnh bằng cách chọn các điểm mốc tương ứng trong các góc nhìn camera và trên bản đồ. AMC có sẵn dưới dạng một microservice với cả REST APIs và giao diện web.

Xây dựng và triển khai các ứng dụng với các kỹ năng agent NVIDIA DeepStream

DeepStream 9.1 giới thiệu các kỹ năng module được thiết kế để sử dụng bởi các tác nhân lập trình như Claude Code, Codex hoặc bất kỳ tác nhân nào khác bạn chọn, bao gồm MV3DT và AMC. Thay vì chạy thủ công các tập lệnh và chỉnh sửa các tệp cấu hình, bạn mô tả những gì bạn muốn bằng các lời nhắc ngôn ngữ tự nhiên thuần túy và tác nhân sẽ xử lý việc thiết lập, cấu hình và thực thi.

Bạn có thể tìm hiểu thêm về các kỹ năng DeepStream và các tác nhân mã hóa trong bài đăng blog “How to Build Vision AI Pipelines Using NVIDIA DeepStream Skills and Coding Agents” “How to Build Vision AI Pipelines Using NVIDIA DeepStream Skills and Coding Agents”.

Chúng tôi sẽ triển khai các ứng dụng đa camera bằng cách sử dụng các kỹ năng sau:

  • MV3DT Skill: This comprehensive skill manages the MV3DT deployment lifecycle, including:
    • Validating prerequisites (OS, GPU driver, Docker runtime)
    • Kéo hoặc xây dựng container DeepStream cần thiết
    • Installing Kafka and Mosquitto broker services
    • Tải trọng số mô hình phát hiện (PeopleNetTransformer, RT-DETR)
    • Tạo cấu hình pipeline DeepStream từ tập dữ liệu của bạn
    • Tự động kích hoạt các kỹ năng AMC nếu không tìm thấy tệp hiệu chuẩn
    • Khởi chạy pipeline theo dõi đa camera đầy đủ
  • AMC Skills: These skills handle the AMC lifecycle:
    • amc-setup-calibration-stack: Kéo container microservice AMC và khởi động ngăn xếp dịch vụ (giao diện người dùng web + REST API).
    • amc-run-sample-calibration: Chạy hiệu chuẩn đầu cuối trên tập dữ liệu mẫu được đóng gói; hữu ích để xác minh cài đặt AMC mới trước khi sử dụng dữ liệu của riêng bạn.
    • amc-run-video-calibration: Để giúp hiệu chuẩn một tập dữ liệu mới gồm các tệp video, cùng với hình ảnh bố cục và các điểm căn chỉnh để tạo các tệp YAML hiệu chuẩn sẵn sàng cho các ứng dụng hạ nguồn như MV3DT.
    • amc-run-rtsp-calibration: Để giúp hiệu chuẩn một tập dữ liệu mới trực tiếp từ các luồng RTSP.

Bộ kỹ năng mới nhất đầy đủ có thể được tìm thấy tại kho lưu trữ GitHub DeepStream.

Luồng công việc sau đây cho thấy cách một nhà phát triển có thể chuyển từ thiết lập kho lưu trữ đến một ứng dụng MV3DT đang chạy. Lời nhắc chính xác có thể được điều chỉnh cho tác nhân mã hóa và tập dữ liệu đang được sử dụng.

Các điều kiện tiên quyết

  • Ubuntu 24.04 (x86_64)
  • Trình điều khiển NVIDIA phiên bản 580 trở lên
  • Docker với NVIDIA Container Toolkit
  • Claude Code hoặc Codex được cài đặt và xác thực
  • Một khóa API NGC (để kéo các container DeepStream và AMC từ http://nvcr.io)
  • Khóa Hugging Face để kéo mô hình VGGT cho bước tinh chỉnh AMC
  • Để hiển thị: X11 hoặc máy tính để bàn từ xa VNC (tùy chọn – chế độ không đầu sẽ lưu các video đầu ra thay thế)

Hãy bắt đầu nào!

Bước 1: Nhân bản kho lưu trữ và cài đặt các kỹ năng

git clone https://github.com/NVIDIA/DeepStream.git
cd DeepStream

Sao chép các kỹ năng vào thư mục kỹ năng của tác nhân mã hóa của bạn. Đường dẫn phụ thuộc vào tác nhân bạn sử dụng:

# Claude Code: ~/.claude/skills/
# Codex: ~/.codex/skills/
# Cursor: ~/.cursor/skills/

# Example for Codex (adjust path for your agent):
mkdir -p ~/.codex/skills

cp -r skills/* ~/.codex/skills/

Các kỹ năng cũng có thể được cài đặt ở cấp độ không gian làm việc (giới hạn cho một dự án duy nhất). Xem README kỹ năng DeepStream để biết chi tiết cài đặt đầy đủ và hướng dẫn cấp độ không gian làm việc.

Bước 2: Khởi chạy tác nhân mã hóa

Từ thư mục gốc của repo DeepStream, hãy khởi động tác nhân mã hóa của bạn:

claude
# or
codex

Đó là tất cả các bước thiết lập cần thiết. Từ đây, bạn tương tác bằng cách sử dụng các lời nhắc ngôn ngữ tự nhiên.

Kịch bản A: Chạy MV3DT trên tập dữ liệu mẫu 12 camera

Kỹ năng MV3DT bao gồm các tập dữ liệu mẫu 4 camera và 12 camera với hiệu chuẩn đã được bao gồm, không yêu cầu bước AMC. Đối với ví dụ này, chúng tôi sẽ sử dụng tập dữ liệu 12 camera. Dán lời nhắc mẫu này vào tác nhân:

Sample prompt: deploy mv3dt on the 12-camera sample dataset

Tác nhân sẽ hướng dẫn bạn qua các bước sau:

  1. Kiểm tra hệ thống của bạn để truy cập hiển thị (X11/VNC) và phát hiện chế độ không đầu (headless mode) nếu không tìm thấy màn hình.
  2. Yêu cầu sự chấp thuận của bạn trước khi chạy các lệnh Docker đặc quyền (`sudo xhost +` and `--privileged`).
  3. Chạy tập lệnh thiết lập để tải xuống các mô hình, khởi động các dịch vụ Kafka và Mosquitto, và chuẩn bị đường ống.
  4. Khởi chạy container DeepStream và bắt đầu theo dõi. Lần chạy đầu tiên có thể mất vài phút vì nó đang xây dựng và tải engine mô hình.

Nếu có màn hình hiển thị, hai cửa sổ sẽ mở:

  • DeepStreamTest5App: Một lưới ô vuông chứa tất cả 12 luồng camera với các hộp giới hạn 2D và 3D
  • Góc nhìn từ trên cao về Theo dõi 3D Đa góc nhìn: Bản đồ quỹ đạo thời gian thực trong tọa độ thế giới

Screenshot of two windows on a Linux desktop: a birdHình 3. MV3DT chạy ở chế độ hiển thị – cửa sổ Chế độ nhìn từ trên cao hiển thị quỹ đạo đối tượng theo thời gian thực trong tọa độ thế giới. Cửa sổ DeepStreamTest5App hiển thị lưới đa camera với các hộp giới hạn 2D và 3D

Nhấn 'q' trong bất kỳ cửa sổ nào để thoát. Tác nhân sẽ nhắc bạn về điều này. Ở chế độ headless, tác nhân tạo các video đầu ra tiled_display_raw.mp4 và video quỹ đạo BEV) trong thư mục thử nghiệm. Để xem các kết quả mẫu, hãy xem các GIF quỹ đạo BEV 12 camera trong kho lưu trữ MV3DT.'q'

experiments/deepstream/12cam/
├── config_deepstream.txt           # Generated pipeline config
├── config_tracker.yml              # MV3DT tracker config
├── outVideos/
│   └── tiled_display_raw.mp4      # Multi-camera grid with 2D and 3D overlays
└── bev_outputs/
    └── trajectory_video_.mp4   # BEV trajectory video

Kịch bản B: Chạy MV3DT trên camera của riêng bạn (cùng với hiệu chuẩn AMC)

Để sử dụng các luồng video đồng bộ hóa tùy chỉnh mà không cần hiệu chuẩn trước, hãy cung cấp đường dẫn thư mục:

Sample prompt: deploy mv3dt on these videos ~/my-camera-dataset/videos

Đảm bảo thư mục chứa các tệp video được đồng bộ hóa thời gian và được đặt tên theo thứ tự của camera (ví dụ: cam_00.mp4, cam_01.mp4), và bạn cũng nên có một hình ảnh bố cục BEV (layout.png). Sau đó, tác nhân sẽ thực hiện các bước sau:

  1. Xác thực thư mục nguồn video.
  2. Phát hiện các tệp hiệu chuẩn caminfo.yml bị thiếu và cần hiệu chuẩn.
  3. Tự động gọi các kỹ năng AMC theo thứ tự, trước tiên amc-setup-calibration-stack để khởi động microservice AMC, sau đó amc-run-video-calibration để bắt đầu hiệu chuẩn.

Trước khi bắt đầu hiệu chuẩn, tác nhân sẽ hỏi một vài câu hỏi cấu hình. Tại đây, bạn có thể phải chỉ định loại detector và cài đặt hiệu chuẩn khi được nhắc.

> Agent: What detector type would you like to use for calibration? (resnet or transformer)
> User: Resnet

> Agent: Do you have a calibration settings file to upload?
> User: No, I will update on the UI

Screenshot of the AutoMagicCalib manual alignment step showing user selected points Hình 4. Bước căn chỉnh thủ công trên giao diện người dùng AutoMagicCalib

Microservice AMC khởi động và tác nhân cung cấp địa chỉ giao diện người dùng web. Mở nó trong trình duyệt của bạn để hoàn tất bước căn chỉnh thủ công—các điểm căn chỉnh giữa các chế độ xem camera và bản đồ bố cục của bạn. Sau khi lưu, thông báo cho tác nhân:

> User: alignment is done

AMC chạy toàn bộ quy trình hiệu chuẩn: trích xuất quỹ đạo, hiệu chỉnh chế độ xem đơn, khớp đường đi đa chế độ xem và điều chỉnh bó. Tác nhân thăm dò để hoàn thành và, khi hoàn tất, tải xuống bản xuất hiệu chuẩn tương thích với MV3DT và đặt các tệp YAML vào `~/my-camera-dataset/camInfo/`.

MV3DT sau đó tự động chạy trên tập dữ liệu của bạn, sử dụng dữ liệu hiệu chuẩn được tạo.

Việc triển khai MV3DT thành công sẽ tạo ra các đầu ra sau:

  • Cửa sổ OSD trực tiếp: Tất cả các luồng camera trong lưới ô vuông với các hộp giới hạn 2D và 3D và ID đối tượng nhất quán. Nhấp vào bất kỳ camera nào để phóng to; nhấp chuột phải để quay lại lưới.
  • Cửa sổ BEV trực tiếp: Lập bản đồ quỹ đạo từ trên xuống với tùy chọn chụp ảnh màn hình và ghi lại.
  • Luồng siêu dữ liệu Kafka: Các thông báo protobuf trên mỗi khung hình trên chủ đề `mv3dt`, chứa ID đối tượng, tọa độ hộp giới hạn 3D, điểm tin cậy và ID cảm biến. Những dữ liệu này sẵn sàng cho phân tích, bảng điều khiển hoặc hệ thống cảnh báo hạ nguồn.
  • Video đã lưu: Với đầu ra tệp được bật, hệ thống sẽ lưu một video OSD dạng lưới và một video quỹ đạo BEV.

Bắt đầu

Tất cả mã nguồn, kỹ năng, ứng dụng tham khảo và bộ dữ liệu mẫu cho MV3DT và AMC đều có sẵn trong kho lưu trữ GitHub NVIDIA DeepStream NVIDIA DeepStream như một phần của bản phát hành DeepStream 9.1:

  • Ứng dụng tham khảo MV3DT: src/apps/reference_apps/deepstream-tracker-3d-multi-view
  • Kỹ năng MV3DT: skills/deepstream-run-mv3dt
  • Kỹ năng AMC: skills/amc-setup-calibration-stack, skills/amc-run-video-calibration, skills/amc-run-sample-calibration, skills/amc-run-rtsp-calibration.

Microservice MV3DT được xây dựng sẵn cũng có thể được sử dụng với bản thiết kế và kỹ năng tác nhân NVIDIA VSS để tích hợp quy trình với các microservice, cơ sở dữ liệu và tác nhân bổ sung.

Đối với các câu hỏi và thảo luận cộng đồng, hãy truy cập Diễn đàn Nhà phát triển NVIDIA DeepStream.

____
Bài viết liên quan
TAG: , , ,