用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/MIUAV/vibe-coding-ros2 --skill nvidia-jetson命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | nvidia-jetson |
| description | OpenCV4 NVIDIA Jetson 部署技能 - Jetson Nano/Xavier/Orin、JetPack、CUDA、TensorRT、DLA |
| user-invocable | true |
| argument-hint | jetson OR nvidia OR cuda OR tensorrt OR jetpack OR 边缘部署 |
Jetson 平台 OpenCV 加速部署完整指南
当需要以下帮助时使用此技能:
| Jetson 型号 | JetPack 版本 | CUDA 版本 | GPU 架构 |
|---|---|---|---|
| Nano | 4.6.x | 10.2 | Maxwell |
| Xavier | 5.x | 11.4 | Volta |
| Orin | 6.x | 12.x | Ampere |
# 安装依赖
sudo apt update
sudo apt install -y build-essential cmake git libgtk2.0-dev pkg-config \
libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
gfortran openexr libatlas-base-dev python3-dev python3-pip \
libtbb2 libtbb-dev libdc1394-dev
# 克隆 OpenCV 和 opencv_contrib
git clone --branch 4.x https://github.com/opencv/opencv.git
git clone --branch 4.x https://github.com/opencv/opencv_contrib.git
# CMake 配置(启用 CUDA)
cd opencv
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN="8.7" \ # Orin: 8.7, Xavier: 8.7, Nano: 5.3
-D WITH_TBB=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules \
..
make -j$(nproc)
sudo make install
import cv2
import numpy as np
# 检查 CUDA 支持
print(cv2.cuda.getCudaEnabledDeviceCount())
# 创建 CUDA 内存中的图像
img = cv2.imread('image.jpg')
img_cuda = cv2.cuda.GpuMat()
img_cuda.upload(img)
# CUDA 图像处理
gray_cuda = cv2.cuda.cvtColor(img_cuda, cv2.COLOR_BGR2GRAY)
blur_cuda = cv2.cuda.GaussianBlur(img_cuda, (5, 5), 0)
# 下载回 CPU
gray = gray_cuda.download()
blur = blur_cuda.download()
import cv2
import torch
from ultralytics import YOLO
# 导出为 TensorRT
model = YOLO('yolov8n.pt')
model.export(format='engine', half=True, int8=True, device=0)
# TensorRT 推理
model = YOLO('yolov8n.engine')
results = model.predict(source='image.jpg', device=0, half=True)
# 安装 ROS2 Jetson 相关包
sudo apt install -y ros-humble-cv-bridge ros-humble-image-transport \
ros-humble-vision-msgs ros-humble-message_filters
# 使用 image_transport 减少延迟
# Subscriber 端
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
class JetsonCamera(Node):
def __init__(self):
super().__init__('jetson_camera')
self.bridge = CvBridge()
# 使用compressed或theora传输减少带宽
self.sub = self.create_subscription(
Image, '/camera/image_raw', self.callback, 10)
def callback(self, msg):
img = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
# 处理...
# 使用 DMA 零拷贝
# 设置环境变量
# export CUDA_BUFFER_POOL=1GB
# 使用 Pinned Memory 加速传输
import cv2
import numpy as np
# 创建 Pinned Memory 缓冲区
host_buffer = cv2.cuda.HostMem(1920, 1080, cv2.CV_8UC3)
# 使用 GStreamer 捕获(零拷贝)
gst_str = (
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), width=1280, height=720, framerate=30/1 ! "
"nvvidconv ! "
"video/x-raw, format=BGRx ! "
"videoconvert ! "
"appsink"
)
cap = cv2.VideoCapture(gst_str, cv2.CAP_GSTREAMER)
import threading
import queue
from ultralytics import YOLO
class AsyncInference:
def __init__(self, model_path='yolov8n.pt', num_threads=2):
self.model = YOLO(model_path)
self.input_queue = queue.Queue(maxsize=10)
self.output_queue = queue.Queue()
self.threads = []
for _ in range(num_threads):
t = threading.Thread(target=self._inference_loop)
t.start()
self.threads.append(t)
def _inference_loop(self):
while True:
img = self.input_queue.get()
if img is None:
break
results = self.model.predict(img, verbose=False)
self.output_queue.put(results)
def predict(self, img):
self.input_queue.put(img)
return self.output_queue.get()
JetPack 选择:
CUDA 版本匹配:
功耗管理:
sudo nvpmodel -m 1 (5W) / -m 0 (10W)sudo nvpmodel -m 2 (15W) / -m 0 (MAXN)模型优化: