← Quay lại Blog
aiai-perceptionedge-computingnvidia

Edge AI với NVIDIA Jetson: Triển khai AI trên thiết bị nhúng

Hướng dẫn triển khai Edge AI với NVIDIA Jetson và TensorRT — tối ưu inference real-time cho robot và ứng dụng nhúng.

Nguyễn Anh Tuấn15 tháng 8, 20255 phút đọc
Edge AI với NVIDIA Jetson: Triển khai AI trên thiết bị nhúng

Edge AI là gì và tại sao cần Jetson?

Edge AI là việc chạy mô hình AI trực tiếp trên thiết bị thay vì gửi dữ liệu lên cloud. Ưu điểm rõ ràng: độ trễ cực thấp (dưới 30ms), hoạt động offline, bảo mật dữ liệu và tiết kiệm băng thông. Trong robotics, edge AI là bắt buộc — robot không thể chờ 200ms round-trip tới cloud để né vật cản.

NVIDIA Jetson là dòng SBC (Single Board Computer) được thiết kế riêng cho AI inference, với GPU CUDA tích hợp mạnh mẽ.

NVIDIA Jetson board và thiết bị AI nhúng cho robotics

Dòng sản phẩm Jetson

Module GPU Cores RAM AI Performance Giá (~)
Jetson Nano 128 CUDA 4GB 472 GFLOPS $149
Jetson Orin Nano 1024 CUDA 8GB 40 TOPS $249
Jetson Orin NX 1024 CUDA 16GB 100 TOPS $599
Jetson AGX Orin 2048 CUDA 64GB 275 TOPS $1999

Với robot di động, Jetson Orin Nano là lựa chọn tối ưu nhất về hiệu năng/giá/công suất (15W).

Cài đặt môi trường

JetPack SDK

JetPack là bộ SDK chính thức, bao gồm CUDA, cuDNN, TensorRT và các thư viện tối ưu:

# Flash JetPack 6.0 bằng SDK Manager (trên host Ubuntu)
# Hoặc dùng pre-built image
sudo apt update && sudo apt install -y nvidia-jetpack

# Kiểm tra CUDA
nvcc --version
python3 -c "import torch; print(torch.cuda.is_available())"

Container cho development

NVIDIA cung cấp container đã cài sẵn mọi thứ — việc sử dụng Docker cho IoT giúp đơn giản hóa triển khai trên Jetson:

# Pull container tối ưu cho Jetson
sudo docker pull nvcr.io/nvidia/l4t-pytorch:r36.2.0-pth2.1-py3

# Chạy với GPU access
sudo docker run -it --runtime nvidia --network host \
  -v /home/user/project:/workspace \
  nvcr.io/nvidia/l4t-pytorch:r36.2.0-pth2.1-py3

Tối ưu Model với TensorRT

TensorRT là engine inference của NVIDIA, tăng tốc model lên 2-5 lần so với PyTorch native.

YOLOv8 là model phổ biến cho kiểm tra chất lượng tự động và nhận dạng vật thể trên dây chuyền sản xuất.

Chuyển đổi YOLOv8 sang TensorRT

from ultralytics import YOLO

# Load model PyTorch
model = YOLO("yolov8n.pt")

# Export sang TensorRT FP16
model.export(format="engine", device=0, half=True, imgsz=640)

# Inference với TensorRT engine
trt_model = YOLO("yolov8n.engine")
results = trt_model.predict("test.jpg", conf=0.5)

So sánh hiệu năng trên Jetson Orin Nano

Format FPS (640x640) Latency
PyTorch FP32 12 FPS 83ms
TensorRT FP32 28 FPS 36ms
TensorRT FP16 45 FPS 22ms
TensorRT INT8 62 FPS 16ms

Quantization: FP16 và INT8

FP16 giảm một nửa bộ nhớ và tăng tốc inference mà gần như không mất accuracy. Đây là lựa chọn mặc định cho Jetson.

INT8 cần calibration dataset nhưng cho tốc độ cao nhất:

import tensorrt as trt

# INT8 calibration
config.set_flag(trt.BuilderFlag.INT8)
config.int8_calibrator = EntropyCalibrator(
    calibration_data="/path/to/calib_images/",
    cache_file="calibration.cache"
)

Inference AI real-time trên thiết bị edge computing

Pipeline Real-time hoàn chỉnh

import cv2
from ultralytics import YOLO

model = YOLO("yolov8n.engine")
cap = cv2.VideoCapture(0)  # CSI camera hoặc USB

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # Inference
    results = model.predict(frame, conf=0.5, verbose=False)

    # Xử lý kết quả
    for box in results[0].boxes:
        cls = int(box.cls[0])
        conf = float(box.conf[0])
        x1, y1, x2, y2 = map(int, box.xyxy[0])

        # Gửi lệnh cho robot dựa trên detection
        if cls == 0:  # person detected
            distance = estimate_distance(y2 - y1)
            if distance < 1.0:  # dưới 1 mét
                send_stop_command()

Power Management

Jetson có nhiều power mode, chọn phù hợp với ứng dụng:

# Xem power mode hiện tại
sudo nvpmodel -q

# Chuyển sang mode 15W (hiệu năng cao)
sudo nvpmodel -m 0

# Mode 7W (tiết kiệm pin cho robot di động)
sudo nvpmodel -m 1

# Maximize performance
sudo jetson_clocks

Lời khuyên triển khai

  1. Luôn dùng TensorRT FP16 — đây là baseline, chỉ chuyển INT8 khi cần thêm FPS
  2. Pre-process trên GPU: dùng cv2.cuda hoặc NVIDIA VPI thay vì CPU OpenCV
  3. Batch inference: gom nhiều frame xử lý cùng lúc nếu latency cho phép
  4. Monitor nhiệt độ: Jetson throttle ở 80°C, cần tản nhiệt tốt cho robot chạy liên tục

Edge AI với Jetson mở ra khả năng triển khai AI mạnh mẽ ngay trên robot, không phụ thuộc cloud, đáp ứng yêu cầu real-time khắt khe nhất. Kết hợp với lập trình Python cho robot, bạn có thể xây dựng pipeline AI hoàn chỉnh từ perception đến action.

Bài viết liên quan

Bài viết liên quan

Sim-to-Real Transfer: Train simulation, chạy thực tế
ai-perceptionresearchrobotics

Sim-to-Real Transfer: Train simulation, chạy thực tế

Kỹ thuật chuyển đổi mô hình từ simulation sang robot thật — domain randomization, system identification và best practices.

1/4/202612 phút đọc
Nghiên cứuEmbodied AI 2026: Toàn cảnh và xu hướng
ai-perceptionresearchrobotics

Embodied AI 2026: Toàn cảnh và xu hướng

Tổng quan embodied AI -- từ foundation models, sim-to-real đến robot learning tại scale với open-source tools.

25/3/202612 phút đọc
TutorialHands-on: Fine-tune OpenVLA với LeRobot
ai-perceptionvlatutorialPhần 7

Hands-on: Fine-tune OpenVLA với LeRobot

Tutorial thực hành — fine-tune OpenVLA trên custom data, LoRA, quantization và deploy trên robot thật.

23/3/202613 phút đọc