一、前言
Jetson 系列的開發(fā)板 CPU 性能不是很強(qiáng),往往需要采用 GPU 加速的方式處理圖像數(shù)據(jù),因此本文主要介紹如何安裝帶有 GPU 加速的 OpenCV,其中 GPU 加速通過 CUDA 來實(shí)現(xiàn)。
參考博客
Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0-CSDN博客Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679Ubuntu 20.04 配置 VINS-Fusion-gpu + OpenCV 4.6.0https://blog.csdn.net/qq_44998513/article/details/131462679
二、安裝 OpenCV 4.6.0
下載 opencv 源碼,選擇所需要的版本 opencv 4.6.0,相應(yīng)的擴(kuò)展 opencv_contrib 4.6.0,以及用于橋接 ROS 和 opencv 的 cv_bridge
Release OpenCV 4.6.0 · opencv/opencv · GitHub
Release 4.6.0 · opencv/opencv_contrib · GitHub
GitHub - ros-perception/vision_opencv at noetic
這里將 opencv 4.6.0 以及相應(yīng)的擴(kuò)展 opencv_contrib 4.6.0 下載到 ~/Documents 目錄下,編譯前現(xiàn)確定 opencv 的安裝路徑,我的安裝路徑是
CMAKE_INSTALL_PREFIX=/usr/local/
確定 Jetson Orin NX 的算力為 8.7,這個后面要用,參考
CUDA GPUs - Compute Capability | NVIDIA Developer
安裝cuda 可以參考上一期文章
Jetson Orin NX 開發(fā)指南(4): 安裝 cuda 和 realsense_想要個小姑娘的博客-CSDN博客
如果需要安裝其他版本的 cuda 與算力的匹配情況可以參考
支持CUDA運(yùn)算的顯卡算力表_cuda算力排行_聽風(fēng)三千里的博客-CSDN博客
https://en.wikipedia.org/wiki/CUDA#GPUs_supported
接下來,進(jìn)入 opencv 4.6.0 文件夾
cd ~/Documents/opencv-4.6.0/
mkdir build && cd build
預(yù)編譯 opencv 4.6.0 及其擴(kuò)展模塊 opencv_contrib-4.6.0,生成 Makefiles 文件
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/ \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.6.0/modules \
-D WITH_CUDA=ON \
-D CUDA_ARCH_BIN=8.7 \
-D CUDA_ARCH_PTX="" \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D WITH_LIBV4L=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \
-D WITH_TBB=ON \
..
其中
CMAKE_INSTALL_PREFIX=/usr/local/ 為安裝地址,
OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.6.0/modules 為擴(kuò)展模塊所在路徑,
CUDA_ARCH_BIN=8.7 為 GPU 算力,
編譯完成后如下所示
?然后 make install 編譯安裝 opencv 4.6.0 及其擴(kuò)展模塊 opencv_contrib-4.6.0,電腦性能好的話可以多核編譯 make -j8,如果出現(xiàn)兼容性錯誤的花建議用 make,速度慢一點(diǎn),終端輸入
sudo make install -j8
這里編譯會很慢,耐心等待,只要一開始沒有什么報(bào)錯后面就不會報(bào)錯。
經(jīng)過漫長的等待,最后編譯安裝完成后如上所示,最后可以打開 jtop 查看帶 GPU 加速的 OpenCV 是否已經(jīng)安裝完成,終端輸入
jtop
點(diǎn)擊最下反的 7 INFO 我們發(fā)現(xiàn) OpenCV: 4.6.0 with CUDA: YES 表示以及安裝成功!
三、配置 cv_bridge 功能包
因?yàn)?opencv 的數(shù)據(jù)和 ROS 的數(shù)據(jù)需要轉(zhuǎn)化,因此需要通過 cv_bridge 這個橋接工具,接下來我們介紹怎么自己下載安裝并配置一個自己的 cv_bridge 功能包。
首先,創(chuàng)建一個 ROS 的工作空間
mkdir -p ~/catkin_pkg/src/
cd ~/catkin_pkg/src/
然后,下載對應(yīng)版本的源碼,因?yàn)槭?JetPack 5.1.2 對應(yīng) Ubuntu 20.04 因此下載 noetic 版本
GitHub - ros-perception/vision_opencv at noetic
終端輸入
git clone https://github.com/ros-perception/vision_opencv.git -b noetic
下載完成后因?yàn)槲覀冎恍枰?cv_bridge,所以只需保留 cv_bridge 文件夾,將其放在 ~/catkin_pkg/src/ 目錄下,然后修改一下 cv_bridge 的配置文件,終端輸入
cd ~/catkin_pkg/src/cv_bridge/
gedit ./CMakeLists.txt
添加自己安裝的 帶有 GPU 加速的 OpenCV 的 build 文件的路徑
include("~/Documents/opencv-4.6.0/build/OpenCVConfig.cmake")
?添加在 CMakeLists.txt 文件的如下位置,
保存后編譯該功能包,終端輸入
cd ~/catkin_pkg/
catkin_make
如下結(jié)果表明編譯成功
編譯完成后將其路徑添加到 ~/.bashrc 文件中,并刷新環(huán)境變量文章來源:http://www.zghlxwxcb.cn/news/detail-764808.html
echo "source ~/catkin_pkg/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
至此,自己的 cv_bridge 功能包就制作完成了,如果需要使用別的版本的 OpenCV,只需將 cv_bridge 中 include("~/Documents/opencv-4.6.0/build/OpenCVConfig.cmake") 修改為相應(yīng)的路徑。文章來源地址http://www.zghlxwxcb.cn/news/detail-764808.html
到了這里,關(guān)于Jetson Orin NX 開發(fā)指南(5): 安裝 OpenCV 4.6.0 并配置 CUDA 以支持 GPU 加速的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!