Jetson Orin Nano 实战解决CSI摄像头绿色画面与YOLOv5部署全流程刚拿到Jetson Orin Nano时那种兴奋感就像孩子拿到新玩具。但当我兴冲冲地连接CSI摄像头准备跑YOLOv5时屏幕上却出现了一片诡异的绿色——这恐怕是许多开发者遇到的第一个欢迎仪式。本文将带你系统解决这个经典问题并完成完整的YOLOv5部署。1. 问题诊断为什么CSI摄像头显示异常1.1 硬件与协议差异CSI摄像头与USB摄像头的工作机制截然不同特性CSI摄像头USB摄像头接口协议MIPI CSI-2USB Video Class (UVC)数据处理需要专用ISP处理已编码的压缩流Linux设备/dev/video0/dev/video1典型分辨率3280×2464 (IMX219)640×480关键发现当OpenCV未启用GStreamer支持时CSI摄像头的数据流无法正确解析导致绿色画面。1.2 验证摄像头状态先确认硬件连接正常# 列出视频设备 ls /dev/video* # 测试CSI摄像头 nvgstcapture-1.0如果看到绿色画面继续以下诊断import cv2 print(cv2.getBuildInformation()) # 检查GStreamer是否为YES2. 编译支持GStreamer的OpenCV2.1 卸载冲突包sudo pip3 uninstall opencv-python sudo apt-get purge libopencv*2.2 准备编译环境sudo apt-get update sudo apt-get install -y \ cmake g git \ libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev2.3 编译安装OpenCV 4.5.4wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.4.zip unzip opencv.zip cd opencv-4.5.4 mkdir build cd build关键配置选项cmake -D CMAKE_BUILD_TYPERELEASE \ -D WITH_GSTREAMERON \ -D WITH_CUDAON \ -D CUDA_ARCH_BIN8.7 \ -D BUILD_EXAMPLESOFF ..编译优化技巧make -j$(nproc) # 使用所有核心 sudo make install3. YOLOv5环境部署3.1 PyTorch for Jetson选择JetPack 5.1.1对应的正确组合wget https://nvidia.box.com/shared/static/ssf2v7pf5i245fk4i0q926hy4imzs2ph.whl -O torch-1.14.0a044dac51c.nv23.02-cp38-cp38-linux_aarch64.whl pip3 install torch-1.14.0a044dac51c.nv23.02-cp38-cp38-linux_aarch64.whl3.2 安装YOLOv5git clone https://github.com/ultralytics/yolov5 cd yolov5 pip3 install -r requirements.txt测试USB摄像头python3 detect.py --source 0 --weights yolov5n.pt4. DeepStream集成方案4.1 安装DeepStream 6.2sudo apt-get install \ libssl1.1 libgstreamer1.0-0 \ gstreamer1.0-plugins-good gstreamer1.0-plugins-bad下载对应版本的SDK包后sudo tar -xvf deepstream_sdk_v6.2.0_jetson.tbz2 -C / cd /opt/nvidia/deepstream/deepstream-6.2 sudo ./install.sh4.2 配置CSI摄像头参数编辑/opt/nvidia/deepstream/deepstream-6.2/samples/configs/deepstream-app/source1_csi_dec_infer_resnet_int8.txt[source0] enable1 type5 # CSI类型 camera-width1280 camera-height720 camera-fps-n30 camera-csi-sensor-id05. DeepStream-Yolo融合部署5.1 模型转换git clone https://github.com/marcoslucianops/DeepStream-Yolo.git cd yolov5 python3 ../DeepStream-Yolo/utils/gen_wts_yoloV5.py -w yolov5n.pt5.2 自定义推理配置修改config_infer_primary_yoloV5.txt[property] custom-network-configyolov5n.cfg model-fileyolov5n.wts5.3 编译运行cd /opt/nvidia/deepstream/deepstream-6.2/sources/DeepStream-Yolo CUDA_VER11.4 make -C nvdsinfer_custom_impl_Yolo deepstream-app -c deepstream_app_config.txt6. 性能优化技巧6.1 内存管理修改zRAM配置sudo nano /etc/systemd/nvzramconfig.sh # 将mem $((${totalmem}/2/${NRDEVICES})*1024) # 改为 mem $((${totalmem}*2/${NRDEVICES})*1024)6.2 实时监控使用jtop观察资源占用sudo pip3 install -U jetson-stats jtop当看到CSI摄像头终于正常显示画面YOLOv5的检测框准确框住目标时那种成就感让人忘记所有调试的煎熬。建议在深夜调试时准备些零食——你永远不知道下一个问题会消耗多少时间。
Jetson Orin Nano 新手避坑指南:从零部署YOLOv5,解决CSI摄像头绿色画面问题
发布时间:2026/5/29 3:10:04
Jetson Orin Nano 实战解决CSI摄像头绿色画面与YOLOv5部署全流程刚拿到Jetson Orin Nano时那种兴奋感就像孩子拿到新玩具。但当我兴冲冲地连接CSI摄像头准备跑YOLOv5时屏幕上却出现了一片诡异的绿色——这恐怕是许多开发者遇到的第一个欢迎仪式。本文将带你系统解决这个经典问题并完成完整的YOLOv5部署。1. 问题诊断为什么CSI摄像头显示异常1.1 硬件与协议差异CSI摄像头与USB摄像头的工作机制截然不同特性CSI摄像头USB摄像头接口协议MIPI CSI-2USB Video Class (UVC)数据处理需要专用ISP处理已编码的压缩流Linux设备/dev/video0/dev/video1典型分辨率3280×2464 (IMX219)640×480关键发现当OpenCV未启用GStreamer支持时CSI摄像头的数据流无法正确解析导致绿色画面。1.2 验证摄像头状态先确认硬件连接正常# 列出视频设备 ls /dev/video* # 测试CSI摄像头 nvgstcapture-1.0如果看到绿色画面继续以下诊断import cv2 print(cv2.getBuildInformation()) # 检查GStreamer是否为YES2. 编译支持GStreamer的OpenCV2.1 卸载冲突包sudo pip3 uninstall opencv-python sudo apt-get purge libopencv*2.2 准备编译环境sudo apt-get update sudo apt-get install -y \ cmake g git \ libgstreamer1.0-dev \ libgstreamer-plugins-base1.0-dev \ libgtk-3-dev libavcodec-dev libavformat-dev libswscale-dev2.3 编译安装OpenCV 4.5.4wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.4.zip unzip opencv.zip cd opencv-4.5.4 mkdir build cd build关键配置选项cmake -D CMAKE_BUILD_TYPERELEASE \ -D WITH_GSTREAMERON \ -D WITH_CUDAON \ -D CUDA_ARCH_BIN8.7 \ -D BUILD_EXAMPLESOFF ..编译优化技巧make -j$(nproc) # 使用所有核心 sudo make install3. YOLOv5环境部署3.1 PyTorch for Jetson选择JetPack 5.1.1对应的正确组合wget https://nvidia.box.com/shared/static/ssf2v7pf5i245fk4i0q926hy4imzs2ph.whl -O torch-1.14.0a044dac51c.nv23.02-cp38-cp38-linux_aarch64.whl pip3 install torch-1.14.0a044dac51c.nv23.02-cp38-cp38-linux_aarch64.whl3.2 安装YOLOv5git clone https://github.com/ultralytics/yolov5 cd yolov5 pip3 install -r requirements.txt测试USB摄像头python3 detect.py --source 0 --weights yolov5n.pt4. DeepStream集成方案4.1 安装DeepStream 6.2sudo apt-get install \ libssl1.1 libgstreamer1.0-0 \ gstreamer1.0-plugins-good gstreamer1.0-plugins-bad下载对应版本的SDK包后sudo tar -xvf deepstream_sdk_v6.2.0_jetson.tbz2 -C / cd /opt/nvidia/deepstream/deepstream-6.2 sudo ./install.sh4.2 配置CSI摄像头参数编辑/opt/nvidia/deepstream/deepstream-6.2/samples/configs/deepstream-app/source1_csi_dec_infer_resnet_int8.txt[source0] enable1 type5 # CSI类型 camera-width1280 camera-height720 camera-fps-n30 camera-csi-sensor-id05. DeepStream-Yolo融合部署5.1 模型转换git clone https://github.com/marcoslucianops/DeepStream-Yolo.git cd yolov5 python3 ../DeepStream-Yolo/utils/gen_wts_yoloV5.py -w yolov5n.pt5.2 自定义推理配置修改config_infer_primary_yoloV5.txt[property] custom-network-configyolov5n.cfg model-fileyolov5n.wts5.3 编译运行cd /opt/nvidia/deepstream/deepstream-6.2/sources/DeepStream-Yolo CUDA_VER11.4 make -C nvdsinfer_custom_impl_Yolo deepstream-app -c deepstream_app_config.txt6. 性能优化技巧6.1 内存管理修改zRAM配置sudo nano /etc/systemd/nvzramconfig.sh # 将mem $((${totalmem}/2/${NRDEVICES})*1024) # 改为 mem $((${totalmem}*2/${NRDEVICES})*1024)6.2 实时监控使用jtop观察资源占用sudo pip3 install -U jetson-stats jtop当看到CSI摄像头终于正常显示画面YOLOv5的检测框准确框住目标时那种成就感让人忘记所有调试的煎熬。建议在深夜调试时准备些零食——你永远不知道下一个问题会消耗多少时间。