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.pswp.cn/news/914081.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914081.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914081.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Cesium實戰:交互式多邊形繪制與編輯功能完全指南(最終修復版)

&#x1f4cb; 文章目錄 引言功能概述環境準備核心實現步驟 地圖初始化多邊形繪制頂點編輯功能顏色與透明度自定義面積計算與顯示 常見問題解決方案 多邊形顏色顯示異常面積標簽不可見控制臺alpha類型錯誤地圖交互無法恢復 完整代碼總結與擴展 引言 Cesium作為一款強大的3D地…

SQL判斷先判斷條件1是否符合,條件1不符合再判斷條件2

偽代碼假設存在條件1和條件2SELECT * FROM table1 WHERE 條件1 AND 條件2方法1&#xff1a;先判斷條件1是否符合,條件1不符合再判斷條件2是否滿足&#xff1a;SELECT * FROM table1 WHERE (條件1) OR (NOT 條件1 AND 條件2);方法 2: 使用 IF 或數據庫特有函數&#xff08;…

游戲的程序員會不會偷偷改自己賬號的數據?

看到這個問題&#xff0c;我忍不住笑了。 作為一個在程序員這條路上摸爬滾打了快10年的老司機&#xff0c;雖然我主要專精嵌入式開發&#xff0c;但我也接觸過不少游戲開發的朋友&#xff0c;對游戲行業的內部運作有一定了解。這個問題可以說是每個游戲玩家都曾經想過的&#x…

uniapp小程序tabbar跳轉攔截與彈窗控制

一、第一步1、App.vue中定義globalData用于全局存儲狀態globalData:{needShowReleaseConfirm: false, // 標記是否需要顯示發布頁面確認彈窗allowReleaseJump: false ,// 標記是否允許跳轉到發布頁面},2、在App.vue中的onLaunch寫入監聽事件onLaunch: function() {// 添加switc…

華為網路設備學習-26(BGP協議 一)

一、AS&#xff08;自治系統&#xff09;AS&#xff08;自治系統&#xff09;的大小通常指其分配的唯一編號&#xff0c;范圍分為兩種&#xff1a;?2字節AS號?&#xff1a;取值范圍1至65535&#xff08;其中64512-65535為私有AS號&#xff09; ??4字節AS號?&#xff1a;取…

大模型開發框架LangChain之函數調用

1.前言 之前一直使用 dify開發 agent&#xff0c;雖然功能很全面、效果也穩定&#xff0c;但是也存在流程固化、不靈活&#xff0c;以及 dify本身太重&#xff08;內部包含10個容器&#xff09;等問題。 故最近研究了大名頂頂的 langchain&#xff0c;先從函數調用開始&#xf…

pycharm中自動補全方法返回變量

使用IDEA開發java中&#xff0c;可以使用altenter 快捷鍵快速補全方法放回的變量使用pycharm也想實現此效果&#xff0c;如下圖操作方法&#xff1a;pycharm中默認的補全方法返回變量的快捷鍵是&#xff1a;CtrlAltv 可以直接使用默認快捷鍵&#xff0c;也可以在settings->k…

Set 二分 -> 劍指算法競賽

C【STL】集合set 標準庫提供 set 關聯容器分為&#xff1a; 按關鍵字有序保存元素&#xff1a;set&#xff08;關鍵字即值&#xff0c;即只保存關鍵字的容器&#xff09;、multiset&#xff08;關鍵字可重復出現的 set&#xff09;&#xff1b; 無序集合&#xff1a;unordered…

php的原生類

前言&#xff1a;累麻了&#xff01; 反射類 反射類 ReflectionClass&#xff1a;ReflectionClass 類報告了一個類的有關信息。正如其名用于映射反射一個類的類&#xff01; new ReflectionClass(MyClass) 會創建一個 ReflectionClass 實例&#xff0c;代表 MyClass 這個類。 …

PC網站和uniapp安卓APP、H5接入支付寶支付

首先我們需要完成支付寶賬號注冊&#xff0c;支持的賬號類型&#xff1a;支付寶企業賬號、支付寶個人賬號、個體工商戶。 到支付寶商家平臺 產品中心開通APP支付、手機網站支付、電腦網站支付的產品權限。 一、電腦PC網站接入 電腦PC網站支付是指商戶在電腦網頁展示商品或服務&…

MCU芯片內部的ECC安全機制

MCU&#xff08;微控制器單元&#xff09;芯片內部的 ECC&#xff08;錯誤檢測與糾正&#xff09;安全機制 是一種至關重要的硬件級可靠性技術&#xff0c;主要用于保護關鍵存儲單元&#xff08;如 SRAM、Flash、Cache&#xff09;中的數據完整性&#xff0c;防止因外部干擾或硬…

【自動駕駛】經典LSS算法解析——深度估計

LSS-Lift.Splat,Shoot 論文題目&#xff1a;Lift, Splat, Shoot: Encoding Images From Arbitrary Camera Rigs by Implicitly Unprojecting to 3D 代碼&#xff1a;https://github.com/nv-tlabs/lift-splat-shoot 概括&#xff1a;先做深度估計和特征融合&#xff0c;然后投…

《【第八篇-圖片總結篇】Python圖片處理自動化:終極工廠!從裁剪壓縮到智能加水印,打造你的視覺內容生產流水線!》

在數字時代&#xff0c;圖片無處不在。然而&#xff0c;高質量的圖片背后&#xff0c;往往隱藏著繁瑣的后期處理&#xff1a;圖片文件太大導致加載慢&#xff1b;尺寸不符需要裁剪&#xff1b;版權保護要加水印&#xff1b; 為了兼容性還得批量轉換格式……這些重復、機械的工…

frame 與新窗口切換操作【selenium 】

&#x1f9ed; 一、切換到 iframe 內部進行操作在瀏覽器自動化測試中&#xff0c;iframe 是一個特別的存在。它相當于在當前頁面中嵌入了另一個獨立的 HTML 頁面。當我們試圖直接訪問 iframe 中的元素時&#xff0c;往往會發現定位不到&#xff0c;比如&#xff1a;elements w…

MYSQL C_API使用全解

文章目錄C_API&#xff08;簡單的&#xff09;安裝這個庫使用流程初始化連接mysql_init建立連接mysql_real_connect執行SQL語句mysql_query處理結果mysql_store_resultmsyql_use_resultmysql_num_rowsmsyql_free_resultmysql_num_fieldsmysql_fetch_row多線程安全關閉連接mysql…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第二課——RGB轉YCbCr的FPGA硬件編程詳解

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程文件請關注…

RK3566/RK3568 Android11 修改selinux模式

概述RK3566/RK3568 Android11 SDK默認的selinux是Enforcing模式(強制模式)。Enforcing&#xff1a;強制模式&#xff1a;SELinux在運行中&#xff0c;且已經開始限制domain/type之間的驗證關系 Permisssive&#xff1a;寬容模式&#xff1a;SELinux在運行中&#xff0c;如果驗證…

iOS Widget 開發-3:Widget 的種類與尺寸(主屏、鎖屏、靈動島)

iOS 支持多種類型的 Widget&#xff0c;分布在主屏幕、鎖屏、靈動島、待機模式、控制中心等多個系統位置。每種 Widget 都有各自的尺寸、交互能力與限制。 本篇將系統梳理 iOS 當前支持的 Widget 類型與尺寸規格。主屏 Widget&#xff08;Home Screen Widgets&#xff09; 主屏…

ffmpeg 中 write_option()函數詳細注釋

author: hjjdebug date: 2025年 07月 11日 星期五 10:51:23 CST descrip: ffmpeg 中 write_option()函數詳細注釋 文章目錄1. 函數原型1.1 參數說明1.2 SpecifierOpt 說明符選項結構2. write_option 代碼注釋2.1 誰調用了write_option 函數?3. 小結:write_option()不僅在ffmpe…

PandaCoder重大產品更新-引入Jenkinsfile文件支持

寫在前面 安裝這個插件可以直接平替 Jenkinsfile Pro &#xff0c;節省200元關于插件介紹的處女篇&#xff1a;https://mp.weixin.qq.com/s/fwMEhmx8vxVlvfnipx09Ag為什么叫「熊貓編碼助手」&#xff1f; 熊貓是中國的國寶&#xff0c;備受世界喜愛&#xff0c;代表著中國特色和…