最近接到了一个在嵌入式设备上跑算法模型的需求,综合评估设备性能和醒目需求后,决定使用英伟达的TX2-NX基于C++实现算法模型,本篇文章是基于此想法做的一个试验。
一、准备阶段首先,需要准备一台TX2-NX,并通过JetPack配置cuda-10.2环境。
其次,编译安装OpenCV-4.5.4,必须是这个版本及以上,否则无法使用CUDA加速。
最后,就是写代码实现模型的推理部分。
补充一下opencv的编译安装过程
1、下载openv-4.5.4以及opencv-contrib-4.5.4安装包,并解压
2、进入opencv-4.5.4目录,创建build目录
cd opencv-4.5.4 mkdir build cd build
3、构造makefile.sh
cmake
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX=/usr
-DBUILD_PNG=OFF
-DBUILD_TIFF=OFF
-DBUILD_TBB=OFF
-DBUILD_JPEG=OFF
-DBUILD_JASPER=OFF
-DBUILD_ZLIB=OFF
-DBUILD_EXAMPLES=ON
-DBUILD_opencv_java=OFF
-DBUILD_opencv_python2=OFF
-DBUILD_opencv_python3=ON
-DENABLE_PRECOMPILED_HEADERS=OFF
-DWITH_OPENCL=OFF
-DWITH_OPENMP=OFF
-DWITH_FFMPEG=ON
-DWITH_GSTREAMER=ON
-DWITH_GSTREAMER_0_10=OFF
-DWITH_CUDA=ON
-DWITH_GTK=ON
-DWITH_VTK=ON
-DWITH_TBB=ON
-DWITH_1394=OFF
-DWITH_OPENEXR=OFF
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2
-DCUDA_ARCH_BIN=7.2 #tx2是6.2
-DCUDA_ARCH_PTX=""
-DINSTALL_C_EXAMPLES=ON
-DINSTALL_TESTS=ON
-DOPENCV_EXTRA_MODULES_PATH为opencv_contrib=../../opencv_extra-4.5.4/testdata #CONTRIB文件的位置
执行脚本
./cv_cmake.sh
如果报权限错误,则需要修改脚本文件的权限
chmod u+x makefile.sh
如果报bash脚本文件格式错误,则可以拷贝下面的内容在命令行直接执行脚本命令
cmake
-D CMAKE_BUILD_TYPE=Release
-D CMAKE_INSTALL_PREFIX=/usr
-D BUILD_PNG=OFF
-D BUILD_TIFF=OFF
-D BUILD_TBB=OFF
-D BUILD_JPEG=OFF
-D BUILD_JASPER=OFF
-D BUILD_ZLIB=OFF
-D BUILD_EXAMPLES=ON
-D BUILD_opencv_java=OFF
-D BUILD_opencv_python2=OFF
-D BUILD_opencv_python3=ON
-D ENABLE_PRECOMPILED_HEADERS=OFF
-D WITH_OPENCL=OFF
-D WITH_OPENMP=OFF
-D WITH_FFMPEG=ON
-D WITH_GSTREAMER=ON
-D WITH_GSTREAMER_0_10=OFF
-D WITH_CUDA=ON
-D WITH_GTK=ON
-D WITH_VTK=ON
-D WITH_TBB=ON
-D WITH_1394=OFF
-D WITH_OPENEXR=OFF
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.2
-D CUDA_ARCH_BIN=6.2
-D CUDA_ARCH_PTX=""
-D INSTALL_C_EXAMPLES=ON
-D INSTALL_TESTS=ON
-D OPENCV_EXTRA_MODULES_PATH为opencv_contrib=../../opencv_extra-4.5.4/testdata
..
执行成功后,进行编译
make -j8
编译成功后进行安装并添加路径到bashrc
sudo make install
vim ~/.bashrc # 在最后面一行进行添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/二、开发阶段
在下篇文章中会讲解具体开发实现



