Jetson Xavier NX设备将opencv和tensorrt链接到conda环境

news2025/2/27 18:16:05

注意安装的时候先查看设备旧版本的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 --modversion

sudo 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

 

 可以撒花了

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

白银走势图如何做空?

做现货白银的好处是,我们可以在白银走势图上做空,不再像股票那样只能先卖后买,还能先卖后买,这样我们做投资就多了一份从容!任何时候我们都能获得投资获利的机会,但是由于习惯了单向交易,我们要…

Sarsa算法讲解及实现

Sarsa算法讲解及实现 1. Q表格 我们使用表格来存储每一个状态 state, 和在这个 state 每个行为 action 所拥有的 Q 值。 Q即为Q(s,a)就是在某一时刻的 s 状态下(s∈S),采取动作a (a∈A)动作能够获得收益的期望,环境会根据agent…

java嵌入式持久化消息队列SMQ,改造自FQueue

一、说明之前项目中一直使用ConcurrentLinkedQueue做为缓冲队列(主要是单个项目内,单条改批量的场景,多个项目间使用的是rocketmq),虽然用着方便但是是纯内存的,如果项目发生异常崩溃内存队列中的数据就会全…

JavaSE学习day6 进制转换和idea的调试

1.进制 1.1 常见的进制分类(掌握) 学过计算机组成原理的同学可以跳过这里。 二进制 十进制 八进制 十六进制 1.2 二进制 计算机数据在底层存储和运算的时候,都是以二进制的形式操作的,了解不同的进制,便于我们对数据的运算过程理解的更…

个人博客推出了更多功能

背景 Web2.0的典型代表博客,吸引着粉丝们打造属于自己的个人博客,分享自己的学习经验,记录自己的日常生活。随着大厂的入局,我们可以很容易的申请自己的个人博客,但是弊端就是往往会被他们控制,甚至封号。…

汕头市农村生活污水治理“十四五”规划行动方案

汕头,简称“汕”,广东省辖地级市,北接潮州,西邻揭阳,南濒南海,东与台湾隔海相望,境内韩江、榕江、练江三江入海,是中国大陆唯一拥有内海湾的城市。今天就来为大家介绍,汕…

Windows系统实现命令行(CMD)关闭指定的IIS网站

一、需求说明我们部署在Windows服务器上的IIS网站,需要在特定的时间停止一会后在进行重新启动该网站。二、思路分析由于需要特定的时间停止后重启网站,则手动操作肯定是不行的,需要实现自动化操作:①特定时间操作可以使用Windows系…

聚观早报|王慧文要做「中国版 OpenAI」;Temu斥资近亿元赞助超级碗

点击蓝字 / 关注我们今日要闻:王慧文要做「中国版 OpenAI」;Temu斥资近亿元赞助超级碗;新东方在线股价收跌2.8%;ChatGPT带动的AIGC创业热潮要来了;传谷歌拆分其AR部门王慧文要做「中国版 OpenAI」 2 月 13 日&#xff…

CSS中的常见单位(px,%,em,rem,vw,vh,vmax,vmin,calc)

像素(px)&百分比(%) 像素(Pixel) 长度单位,相对于显示器屏幕分辨率而言,通常在不定义显示缩放比例的情况下,1px对应显示器屏幕上的一个像素点。早年的pc端展示的页面基本都用这个单位。 百分比(%) 相对长度单位,指占用的父…

电源模块 DC-DC直流升压正负高压输出12v24v转±110V±150V±220V±250V±300V±600V

特点效率高达80%以上1*2英寸标准封装电源正负双输出稳压输出工作温度: -40℃~85℃阻燃封装,满足UL94-V0 要求温度特性好可直接焊在PCB 上应用HRA 1~40W系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为:4.5~9V、9~18V、及18~36VDC标准&…

对比Hashtable、HashMap、TreeMap有什么不同?

第9讲 | 对比Hashtable、HashMap、TreeMap有什么不同? Map 是广义 Java 集合框架中的另外一部分,HashMap 作为框架中使用频率最高的类型之一,它本身以及相关类型自然也是面试考察的热点。 今天我要问你的问题是,对比 Hashtable、…

HTTP协议——详细讲解

目录 一、HTTP协议 1.http 2.url url的组成: url的保留字符: 3.http协议格式​编辑 ①http request ②http response 4.对request做出响应 5.GET与POST方法 ①GET ②POST 7.HTTP常见Header ①Content-Type:: 数据类型(text/html等)在上文…

JavaSE系列 打基础版

JavaSE 笔记记录P1 Java概述1.1 java编译1.2 认识JDK、JRE1.3 下载jdk和配置环境变量1.4 开发注意事项和开发细节1.5 学习java之我的需求1.6 转义字符1.7 注释1.8 代码规范1.9 dos命令 了解P2 变量数据类型变量基本使用数据类型转换P3运算符P4 控制结构P5 数组、排序和查找P6面…

突破压缩极限的AI语音编解码器

I. Speech Codecs语音编码的目的是在保持语音质量的前提下尽可能地减少传输所用的带宽,主要是利用人的发声过程中存在的冗余度和人的听觉特性达到压缩的目的。经过了多年的发展,目前语音编解码器大致可以分为以下几类:波形编码,将…

c++ 指针、引用和常量

指针、引用和常量的关系_夜悊的博客-CSDN博客 1. ① 指针是对象,引用不是对象(在此可以理解为变量,一个变量是一个对象) 指针不必须初始化引用只是为一个已经存在的对象所起的另一个名字(别名)&#xff…

亚马逊云科技汽车行业解决方案

当今,随着万物智联、云计算等领域的高速发展,创新智能网联汽车和车路协同技术正在成为车企加速发展的关键途径,推动着汽车产品从出行代步工具向着“超级智能移动终端”快速转变。 挑战无处不在,如何抢先预判? 随着近…

安装 GPU 版本的 tensorflow 完整版本

前言: 之前安装的 CPU 版本的 tensorflow 一直出问题,索性就直接安装 GPU 版本的 tensorflow 了(有了GPU 就不能浪费)。 安装过程: 1)看自己有无 GPU,找到对应 GPU 的版本:任务管理…

C生万物 | 常量指针和指针常量的感性理解

文章目录📚引言✒常量指针🔍介绍与分析📰小结与记忆口诀✒指针常量🔍介绍与分析📰小结与记忆口诀👉一份凉皮所引发的故事👈总结与提炼📚引言 本文我们来说说大家很困惑的两个东西&am…

【蒸滴C】C语言指针入门很难?看这一篇就够了

目录 一、前言 二、指针是什么 小结: 三、指针变量是什么 小结: 四、指针在32位机器和64位机器中的差别 32位机器: 64位机器: 小结: 五、指针和指针类型 (1)指针的意义 (2&#xff…

springboot自动配置原理以及spring.factories文件的作用详解

一、springboot 自动配置原理先说说我们自己的应用程序中Bean加入容器的办法:bean加入容器我们在应用程序的入口设置了 SpringBootApplication标签,默认情况下他会扫描所有次级目录。如果增加了 scanBasePackages属性,就会扫描所有被指定的路…