注意安装的时候先查看设备旧版本的opencv,卸载干净后再装。
Jetpack4.6
opencv4.1.1
conda安装 过程翻一下之前的博客把,下面是创建环境开始
conda create -n py36 python=3.6.9
OPENCV_EXTRA_MODULES_PATH=/home/ta/open/opencv_contrib-4.1.1/modules #这个是opencv_contrib文件,附加的face等lib库需要用到这个链接内的内容
-DBUILD_SHARED_LIBS=ON #这个决定是否生成 cv2.cpython-36m-aarch64-linux-gnu.so to cv2.so 文件,连接到虚拟环境用
-DOPENCV_GENERATE_PKGCONFIG=ON # 这个决定是否生成opencv.pc的配置文件
-DPYTHON_DEFAULT_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m #这个决定安装在哪个python上
编译步骤先下载两个opencv的压缩包,具体过程看下之前的文章内的脚本,cmake的内容可以根据实际需求进行添加
cmake \
-DBUILD_opencv_python3=ON \
-DBUILD_opencv_python2=OFF \
-DPYTHON3_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m \
-DPYTHON_INCLUDE_DIR=/home/nvidia/archiconda3/envs/yolo5/include/python3.6m \
-DPYTHON_LIBRARY=/home/nvidia/archiconda3/envs/yolo5/lib/libpython3.6m.so \
-DPYTHON_NUMPY_INCLUDE_DIRS=/home/nvidia/archiconda3/envs/yolo5/lib/python3.6/site-packages/numpy/core/include \
-DPYTHON_PACKAGES_PATH=/home/nvidia/archiconda3/envs/yolo5/lib/python3.6/site-packages \
-DPYTHON_DEFAULT_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_EXAMPLES=OFF \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCMAKE_BUILD_TYPE=RELEASE \
-DOPENCV_ENABLE_NONFREE=1 \
-DWITH_FFMPEG=1 \
-DCUDA_ARCH_BIN=7.2 \
-DCUDA_ARCH_PTX=7.2 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules \
..
下面这个命令适用于不知道什么时候装了一堆opencv,且在每个opencv的安装目录下都找不到build目录的同志们。
#终端输入命令
find / -name "*opencv*" 2>/dev/null
然后看到跳出来的文件了么,一些是文件夹,一些是文件。然后使用sudo rm -rm删除文件夹,使用sudo rm 删除文件。
pkg-config opencv --libs
pkg-config opencv --modversionsudo make
sudo make install之后执行下面的步骤
1.
sudo ldconfig -v # 链接库共享
2.
sudo gedit /etc/ld.so.conf.d/opencv.conf # 将opencv的库添加到路径 打开是个空文件 加入下面一行
/usr/local/lib # 添加进去
sudo ldconfig # 使配置生效
3.
sudo gedit /etc/bash.bashrc # 配置环境变量 在文末添加下面两行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc # 使配置生效
sudo updatedb # 更新 如果没有该命令:apt-get install mlocate
链接tensorrt到虚拟环境如下
sudo ln -s /usr/lib/python3.6/dist-packages/tensorrt* /home/nvndia/archiconda/envs/car/lib/python3.6/site-packages/
将opencv链接到虚拟环境下
此时我们只需找到 /usr/lib/python3.6/dist-packages/cv2/python-3.6路径下的cv2.cpython-36m-aarch64-linux-gnu.so文件,复制到路径/home/nvidia/archiconda3/envs/car/lib/python3.6/site-packages/
sudo ln -s /usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so /home/nvidia/archiconda3/envs/tf-gpu/lib/python3.6/dite-packages
可以撒花了