Jetson Nano 编译带 CUDA 支持的 OpenCV 库

问题

英伟达官方自带的 Jetson Nano SD 卡镜像中,已经有 OpenCV 库了,查看方法是:在终端中输入 jtop,然后按数字键 “7”,如下所示:

jtop

jtop 安装方法参考:链接: link

sudo pip3 install -U jetson-stats

在这里插入图片描述

结果 如下图所示:
在这里插入图片描述

从上图中可以看出,官方自带的SD卡镜像中,OpenCV 是不带 CUDA 支持的,如果要让 OpenCV 支持 CUDA,需要重新编译 OpenCV。

方法

网上有很多文章说了用源码在 Jetson Nano 上编译安装 OpenCV 的方法。不过,我最后在外网上找到了更好用的方法,有人已经做好了相关的脚本,做好环境配置后,直接运行脚本即可编译安装。具体参考:
官方论坛 相关问题 链接: link
编译安装脚本下载 链接: link
编译安装方法 链接: link

简要说明

大家可以直接按照上面的三个链接中的说明进行操作,主要参考 “编译安装方法 链接” 中的步骤即可。这里我简要说明一下一些注意事项:

1 编译前要先增加 swap 容量

这一点在链接中有说明,我在查相关资料时,也发现有的人在编译时,遇到了编译进度到 99% 时卡住的现象。原文中是这样说的:
在这里插入图片描述

2 swap 大小的修改

我在修改 swap 大小时(修改 /sbin/dphys-swapfile 文件中的 CONF_MAXSWAP=8192,修改 /etc/dphys-swapfile 中的 CONF_SWAPSIZE=8192要注意,文章中这里说得不明确,要修改两个地方),没有按文章中的方法修改为 “4096”,这样的值刚好在临界点,为了保险,我修改为了 “8192”,SD卡的容量也足够。修改完成后一定要重启并验证是否修改成功!!
在这里插入图片描述

3 nano 编辑器可以不安装

文章中安装了 nano 编辑器,其实可以不安装,用已经有的文本编辑器编辑文件即可,如 vim。

4 执行完升级命令后

执行完 “sudo apt-get upgrade” 命令后,L4T 和 Jetpack 也升级了,所以,如果你对 L4T 和 Jetpack 版本有要求,这里要注意一下
在这里插入图片描述

5 OpenCV 版本问题

链接中给的脚本,可以安装不同的 OpenCV 版本,我选择了 OpenCV4.8.0 这个脚本,但是,我将其中的 “4.8.0” 全改成了 “4.8.1”,让它编译安装的是 OpenCV4.8.1 这个版本,没有遇到问题。
但是,实际上,我先运行的是 OpenCV4.9.0 这个脚本,结果,出错了 “fatal error: cuda/std/tuple: No such file or directory”,如下:
在这里插入图片描述
我查了错误中提到的 “tuple” 头文件,如下:
在这里插入图片描述
它并不在 “cuda/std” 目录下,所以我怀疑,我的 jetson nano 当前的环境,不适合安装 OpenCV4.9.0 这个版本,于是我删除了运行 OpenCV4.9.0 这个安装脚本时产生的文件,重启设备,并重新编译安装了 OpenCV4.8.1 版本。

6 文件下载问题

在运行脚本编译安装时,会下载一些文件,有些文件因为在 github 上,没有下载下来,但是,编译安装仍然顺利进行了,目前没发现问题。

7 编译安装耗时

开始时间:18:17:00
在这里插入图片描述
结束时间:20:14:15
在这里插入图片描述
上面图中是在等待输入密码进行安装,后面的安装时间约 4 分钟。
在这里插入图片描述

总耗时约 2 小时。

测试结果

用 jtop 命令查看:
在这里插入图片描述

Python 查看:
在这里插入图片描述
最后还写了一个 C++ 程序,测试了一下,暂时没有发现任何问题。程序用的是:链接: link 的第 30 讲:实时人脸检测,以及:链接: link

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值