Jetson 源碼編譯不同版本OpenCV

SDKManager自動安裝的OpenCV不支持CUDA且版本是固定搭配的,如下方法提供了在Nvidia Jetson 上手動編譯OpenCV(支持/不支持CUDA)

1.下載安裝OpenCV源碼編譯按照腳本(Github Jetsonhacks)
https://github.com/JetsonHacksNano/buildOpenCV (Nano 安裝)
https://github.com/jetsonhacks/buildOpenCVXavier (Xavier/NX 安裝)

OpenCV 代碼包下載:(Git clone如果很慢,可以在releases中下載tar.gz 包)
git clone --branch "4.4.0" https://github.com/opencv/opencv.git
git clone --branch "4.4.0" https://github.com/opencv/opencv_contrib.git

https://github.com/opencv/opencv/releases
https://github.com/opencv/opencv_contrib/releases

  1. 編譯安裝問題

問題1、buildOpenCV.sh 腳本默認支持CUDA且指定了OpenCV版本,如需其他版本則要修改buildOpenCV.sh的一些參數(shù):
a. 修改版本:OPENCV_VERSION=4.1.1 -> 3.4.11
b. 修改CUDA不支持: -D WITH_CUDA=ON -> OFF
c. 修改ARCH BIN版本:-D CUDA_ARCH_BIN=${ARCH_BIN} -> 不同平臺不同,需根據(jù)平臺進行設(shè)置

問題2、 編譯opencv和openc_contrib 提示缺少boostdesc_bgm.i文件出錯
錯誤提示:
opencv_contrib/modules/xfeatures2d/src/boostdesc.cpp:673:20: fatal error: boostdesc_bgm.i: No such file or directory
解決方法:
由于采用的是源碼編譯,所以可以查看 build 文件夾下的日志文件 CMakeDownloadLog.txt,在日志文件CMakeDownloadLog.txt 中搜索 boostdesc_bgm.i 關(guān)鍵詞 (不是在文件夾中搜索),發(fā)現(xiàn)這個文件下載失敗了。日志文件里就有這個文件的下載地址,直接復(fù)制其下載地址到網(wǎng)頁可以看該到文件的源碼,直接拷貝源碼并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路徑下即可。
參考連接:
https://github.com/opencv/opencv_contrib/issues/1301
https://blog.csdn.net/u011736771/article/details/85960300

image.png

問題3、編譯時提示cuda.hpp ,
錯誤提示:
/home/nvidia/opencv/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory

解決方法一、
編輯matchers.hpp 添加cuda.hpp的絕對路徑

$vi /home/nvidia/opencv/modules/stitching/include/opencv2/stitching/detail/matchers.hpp

如下內(nèi)容:

#ifdef HAVE_OPENCV_XFEATURES2D
//#include "opencv2/xfeatures2d/cuda.hpp"  
#include "/home/nvidia/opencv_contrib/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
#endif

解決方法二、
/home/nvidia/opencv/modules/stitching/CMakeLists.txt
添加:
set(STITCHING_CONTRIB_DEPS "opencv_xfeatures2d")
INCLUDE_DIRECTORIES(/home/nvidia/opencv_contrib/modules/xfeatures2d/include)
修改后重新執(zhí)行Cmake再編譯但未解決(不建議采納)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容