当前位置: 首页 > news >正文

AGX Xavier 搭建360环视教程【二、环境配置】

AGX Xavier 场景下的 【OpenCV + FFmpeg + CUDA + GStreamer】 重装 & 编译的2025年稳定方案

1️⃣ 先卸载老版本

AGX 自带很多预装包,原则:卸载干净,避免旧库和新编译冲突。


🔹 卸载 OpenCV

dpkg -l | grep opencv
sudo apt-get remove --purge libopencv* python3-opencv# 自己 make install 装过的也一起删
sudo rm -rf /usr/local/include/opencv4
sudo rm -rf /usr/local/lib/libopencv*
sudo rm -rf /usr/local/lib/pkgconfig/opencv4.pc
sudo rm -rf /usr/local/lib/python3*/dist-packages/cv2*# 卸载 pip 版本(如果有)
pip3 uninstall opencv-python opencv-contrib-pythonsudo ldconfig

🔹 卸载 FFmpeg

dpkg -l | grep ffmpeg
sudo apt-get remove --purge ffmpegsudo rm -rf /usr/local/bin/ffmpeg /usr/local/bin/ffprobe /usr/local/lib/libav*sudo ldconfig

2️⃣ 检查 CUDA 和 GStreamer

AGX Xavier 自带 CUDA,JetPack 4.5 默认是 CUDA 10.2 + GStreamer 1.14.x
→ 不要自己乱装 CUDA,保持 JetPack 自带就行。

检查一下:

nvcc --version
gst-launch-1.0 --version

确认有:

CUDA compilation tools, release 10.2, V10.2.89
GStreamer 1.14.x

 

3️⃣ 安装依赖

sudo apt-get update# 编译工具
sudo apt-get install -y build-essential cmake git pkg-config# GStreamer (一定要有)
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \gstreamer1.0-plugins-ugly gstreamer1.0-libav# 图像编解码
sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev# OpenGL 和 V4L2
sudo apt-get install -y libgtk-3-dev libcanberra-gtk* libtbb2 libtbb-dev libdc1394-22-dev# Python
sudo apt-get install -y python3-dev python3-numpy

4️⃣ 编译 OpenCV (推荐 4.5.5)

🔹 拉源码

cd ~
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.5.5cd ~
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout 4.5.5cd ~/opencv
mkdir build && cd build

将opencv_contrib放在opencv的文件夹下。后面配置CMake路径时注意统一。

解决ADE被墙

 cmake的过程中,会因为下载ADE被墙,而停顿,因此只好手动下载。

wget https://github.com/opencv/ade/archive/refs/tags/v0.1.1f.zip
# 解压到 opencv_contrib/modules/ade 或者 opencv/3rdparty/ade
unzip v0.1.1f.zip
mv ade-0.1.1f/* ~/opencv_build/opencv/3rdparty/ade
opencv/├── 3rdparty/│    ├── ade/│         ├── CMakeLists.txt│         ├── source.cpp ...

只要在 opencv/3rdparty/ade/ 里能找到它的 CMakeLists.txt,就没问题。

并在CMake是加上一句:

-D OPENCV_ADE_DIR=~/opencv_build/opencv/3rdparty/ade

 解决NVIDIA_OPTICAL_FLOW被墙

🔹 CMake 推荐配置(AGX Xavier 专属 🚀)

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D WITH_CUBLAS=ON -D WITH_GSTREAMER=ON -D WITH_FFMPEG=ON -D WITH_GSTREAMER_0_10=OFF -D WITH_LIBV4L=ON -D WITH_OPENGL=ON -D WITH_QT=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D PYTHON3_EXECUTABLE=$(which python3) -D PYTHON3_INCLUDE_DIR=$(python3 -c "from sysconfig import get_paths as gp; print(gp()['include'])") -D PYTHON3_LIBRARY=$(python3 -c "from sysconfig import get_paths as gp; print(gp()['stdlib'])") -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_TESTS=OFF -D OPENCV_ENABLE_NONFREE=ON -D BUILD_EXAMPLES=OFF -D OPENCV_ADE_DIR=~/opencv/3rdparty/ade ..

需要包含:

-D BUILD_opencv_python3=ON \
-D PYTHON3_EXECUTABLE=$(which python3) \
-D PYTHON3_INCLUDE_DIR=$(python3 -c "from sysconfig import get_paths as gp; print(gp()['include'])") \
-D PYTHON3_LIBRARY=$(python3 -c "from sysconfig import get_paths as gp; print(gp()['stdlib'])") \

 否则会提示:

 python3 -c "import cv2; print(cv2.getBuildInformation())" | grep CUDATraceback (most recent call last):File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'
nvidia@agxA:~/opencv/build$ python3 -c "import cv2; print(cv2.getBuildInformation())" | grep GStreamer
Traceback (most recent call last):File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'

🔹 编译 & 安装

make -j$(nproc)   # Xavier AGX 建议一次用 4-6 核,别一次全开,避免 OOM
sudo make install
sudo ldconfig

5️⃣ (可选)FFmpeg

如果主要用 GStreamer 了,FFmpeg 不必须单独编译。

要自己带硬编解码:

  • Jetson 上推荐用 NVIDIA 提供的 L4T Multimedia API 或者 nvmpi 社区版。

  • nvmpi 维护得很久没更新,新项目直接用 GStreamer + nvarguscamerasrc + nvv4l2decoder 最稳定。

6️⃣ 验证

# OpenCV
python3 -c "import cv2; print(cv2.getBuildInformation())" | grep CUDA
python3 -c "import cv2; print(cv2.getBuildInformation())" | grep GStreamer# GStreamer
gst-inspect-1.0 | grep nv

关键点总结:

1️⃣ JetPack 4.5 的 CUDA/FFmpeg/GStreamer 都需要自己编时打开
2️⃣ ADE 可手动解压替代自动下载
3️⃣ JNITesseract 非刚需可以跳过或后装
4️⃣ BUILD_opencv_python3=ON 和 Python 路径一定配好
5️⃣ 不要混用 pip 的 opencv-python,它是 CPU 版,没 GPU

http://www.dtcms.com/a/274546.html

相关文章:

  • 【JMeter】执行系统命令
  • git restore
  • Java项目中图片加载路径问题解析
  • 多线程Java
  • Leaflet面试题及答案(1-20)
  • 《汇编语言:基于X86处理器》第7章 整数运算(2)
  • Ubuntu 22.04 Server 虚拟机初始化配置与优化指南
  • 用Python制作抖音风格短视频:从图片到精美视频的完整指南
  • docker-compose安装常用中间件
  • AI产品经理面试宝典第7天:核心算法面试题-上
  • VS 按F12 提示cannot navigate to the symbol under the caret
  • JavaSE——Object
  • 【实时Linux实战系列】现有应用迁移到实时环境的步骤
  • Web安全-Linux基础-01-初识Linux
  • 进程状态 + 进程优先级切换调度-进程概念(5)
  • 小智AI模型接入MCP
  • 【C++】内联函数inline以及 C++入门(4)
  • 【Linux】C++项目分层架构:核心三层与关键辅助
  • 构建一个简单的有监督的异常点检测项目
  • 如何让FastAPI与Celery完美联姻,打造高效异步任务处理系统?
  • 灰盒级SOA测试工具Parasoft SOAtest重新定义端到端测试
  • uniapp制作一个视频播放页面
  • 软件测试之单元测试
  • 【Luogu】每日一题——Day1. P3385 【模板】负环
  • 功能测试知识总结
  • 盲超分的核心概念
  • 飞书AI,正在成为零售企业的“靠谱辅助”
  • 用 ELK+Filebeat 提高50%问题排查效率,这套方案实测有效!
  • Spring MVC中异常处理
  • Visual Studio 2022 上使用ffmpeg