jetson nano 查看opencv版本_Jetson “家族”大揭秘 | 知乎大咖详述 Jetson 系列的多样化应用...

一款外观小巧,但功能强大的开发者工具可以用来做什么?Jetson “家族”告诉你答案。

自 Jetson 系列产品推出以来,就在不断满足广大开发者和创新者的各种想象。近期,一位知乎极具影响力的 KOL 袁博融(HIT Robot Group DL 工程师,拥有 7,418 名粉丝)通过 Jetson 系列产品,实现了多样化的应用。

使用 Jetson+ 双目相机模组自制深度相机

7a90a4be2cc01d861baa63cab596290e.png

很多 Jetson 开发者在刚接触这个平台时都会有个疑问,为什么预装的 OpenCV 竟然没有 GPU 加速。

NVIDIA 论坛上的解释说,OpenCV 的 GPU 部分可能存在 Bug,不能保证稳定性。于是大家要在 Jetson 上使用有 GPU 支持的 OpenCV,就要从源码编译。

实际上,除了 OpenCV,Jetson 平台上的计算机视觉库还有另一个选择,就是 NVIDIA 的 VisionWorks。

VisionWorks 包含了大量算法,大部分都使用了 GPU 加速。同时 VisionWorks 也可以和 OpenCV 一起使用。下面是 VisionWorks 的算法清单:

IMAGE ARITHMETIC

  • Absolute Difference
  • Accumulate Image
  • Accumulate Squared
  • Accumulate Weighted
  • Add / Subtract / Multiply +
  • Channel Combine
  • Channel Extract
  • Color Convert +
  • CopyImage
  • Convert Depth
  • Magnitude
  • MultiplyByScalar
  • Not / Or / And / Xor
  • Phase
  • Table Lookup
  • Threshold

FLOW & DEPTH

  • Median Flow
  • Optical Flow (LK) +
  • Semi-Global Matching
  • Stereo Block Matching
  • IME Create Motion Field
  • IME Refine Motion Field
  • IME Partition Motion Field

GEOMETRIC TRANSFORMS

  • Affine Warp +
  • Warp Perspective +
  • Flip Image
  • Remap
  • Scale Image +

FILTERS

  • BoxFilter
  • Convolution
  • Dilation Filter
  • Erosion Filter
  • Gaussian Filter
  • Gaussian Pyramid
  • Laplacian3x3
  • Median Filter
  • Scharr3x3
  • Sobel 3x3

FEATURES

  • Canny Edge Detector
  • FAST Corners +
  • FAST Track +
  • Harris Corners +
  • Harris Track
  • Hough Circles
  • Hough Lines

ANALYSIS

  • Histogram
  • Histogram Equalization
  • Integral Image
  • Mean Std Deviation
  • Min Max Locations

在刷好 JetPack 后,一般就会自动执行 /usr/share/visionworks/sources/install-samples.sh 将 VisionWorks 示例放到用户目录下,如果不慎删除可以再手动执行。关于示例的运行可以参考官方文档。

在这篇文章中,我们还为大家介绍了 VisionWorks 的一个特别的使用方式,即在 ROS 中使用 GPU 加速调用双目相机并生成视差图和点云。ROS 包已更新至 GitHub(以下链接)。

https://github.com/borongyuan/jetson_csi_stereo_ros

这部分使用了微雪推出的 Jetson 双目相机模组,不到 300 元就能买到。

http://www.waveshare.net/wiki/IMX219-83_Stereo_Camera

这个模组其实是将 2 个 CSI 相机和 1 个 IMU 做到同一块电路板上,但并没有硬件同步。有硬件同步的双目深度相机如 ZED、小觅、INDEMIND 效果更好,但价格都较高。

得益于 GPU 加速,使用廉价的双目模组也能取得很好的效果。相机的读取和解码通过 gscam 包使用了 Gstreamer,尽管没有硬件同步,左右相机间也几乎没有延迟。

在整个流程中,图像获取和处理部分都使用了 GPU。我们目前建议用 Jetson Xavier NX 进行测试。

要跑整套流程,可以参考以下主要步骤:

  • apt 安装 ROS 非 OpenCV 依赖的部分
  • 编译安装依赖 OpenCV 的 ROS 包
  • 双目相机标定
  • 运行 Pipeline

用这种特殊的方式安装部分 ROS 包是因为 JetPack 4.3 和 4.4 预装的是 OpenCV 4.1,而 ROS Melodic 预编译用的是 OpenCV 3。

用 apt 安装使用相关包一般不会有问题,但会导致我们用到的 gpu_stereo_image_proc 无法编译。

使用 jetson_csi_stereo.launch 即可以启动 2 个相机,其中包含 Gstreamer 的配置字符串。

相机图像消息分别发布到 /stereo/left/image_raw和/stereo/right/image_raw,可以使用 rqt 来查看。这里发布的是原始图像,未经过校准,此时的 camera_info 也是空的或错误的。

建议先检查一下左右图像有没有搞反。如果在 Jetson Xavier NX 开发者套件上,CAM0 和 CAM1 实际反了,需要在 launch 文件修改 Gstreamer 字符串中的 sensor-id。如果相机安装方式不同,导致图像颠倒,flip-method 也要修改。

接下来,为了能顺利进行视差计算,我们需要对双目相机进行标定。标定包括两个相机的内参和外参。这里直接使用 ROS 的相机标定工具,参考 ROS 中的教程即可。

http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration

如果还想尝试相机和 IMU 联合标定,可以试试 kalibr 标定工具。标定成功后更新到 cfg 目录下的 left.yaml 和 right.yaml。下次再启动相机时就可以发布正确的 camera_info。

完成相机标定后,就可以生成校准后的图像,并计算视差,生成点云。ROS 包 stereo_image_proc 就实现了这一系列流程。但其使用 CPU 运算,在 PC 上都未必能流畅运行,更不用说 Jetson。我们使用的 gpu_stereo_image_proc 提供了和 stereo_image_proc 几乎一样的功能和接口,但内部使用 VisionWorks 的 GPU 版 SGBM 算法,性能要好很多。跑整套流程只需要 jetson_csi_stereo_pipeline.launch 这一个文件,其中已包含 jetson_csi_stereo.launch。

知乎视频​www.zhihu.com

运行参数中,只需将 shrink_scale 改为 4。具体参数大家可以使用 rqt_reconfigure 自行试验。

要在 rviz 中可视化点云,需要将 Fixed Frame 设为 stereo_left_image_raw。

为 Jetson 安装 WPS, QQ, VSCode, TeamViewer, NoMachine 等应用

b11cfc63611dcf3bbd99d69a0a264d56.png

Jetson 不光可以用于开发,而且还可以用来当做办公的小电脑。对于小标题中列出的可安装工具,大家可能会觉得很惊讶。由于社区开发者对 arm64 软件生态上的建设,这些现在都可以进行安装。

WPS Office

Linux 上最佳的办公软件,免费无广告。最早发布的那个版本测试启动不了,但后来更新的几版都能正常使用。安装很简单,可以从 WPS Office for Linux 官网下载 arm64 的 deb 包。

至于启动时提示字体缺失等问题,需要通过网上搜索自行解决,因为官方也无法提供版权字体。

QQ

虽说目前安装微信比较困难,但可以安装 QQ。同时,NVIDIA 也为开发者朋友们建了多个 QQ 群。以后 Jetson 上遇到什么问题直接截图群聊就好了。安装同样很简单,即通过 QQ for Linux 官网下载 arm64 的 deb 包。

VSCode

这个虽然不是官方编译,但有社区维护,同样能及时更新。安装有脚本,也很方便。

https://github.com/JetsonHacksNano/installVSCode

可以直接执行 installVSCode.sh,Jetson系列都能用。可以安装部分插件,比如改简体中文,Python 插件。之后可使用 apt-get 更新。

TeamViewer

这个安装步骤较多。TeamViewer 其实还没有推出官方的 arm64 版,可以安装的其实是TeamViewer Host for Raspberry Pi。树莓派版为 armhf 架构,于是需要装一些 armhf 的依赖。

sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install libxtst6:armhf

然后再 dpkg 安装下载好的 armhf 版 deb 包。最后,如果缺依赖,还要再修复一下。

sudo apt-get install -f

TeamViewer 连接后可能资源占用会较高。而且官方现在查商业用途越来越严,容易被误伤。下面的 NoMachine 也是一个不错的远程桌面选择。

NoMachine

NoMachine 也是跨平台的远程桌面工具。Jetson 系列 K1 之前都是 ARMv7 的 CPU,X1 之后都是 ARMv8,因此大家可以从官网页面下载 ARMv8 的 deb 包。

在 Jetson 上用 NoMachine 体验要比 VNC 和 TeamViewer 好很多,而且想要更好连接的可以选择加硬件。

DFRobot 的 LattePanda Streaming Cable 也可以直接用。这样就可以用笔记本屏幕当显示器来做 Jetson 开发。实际通过 USB 虚拟网卡进行连接,又快又稳。

Vivaldi 浏览器

Vivaldi 浏览器采用 Chromium 引擎,可定制化程度高,保留了简洁的风格。Vivaldi 其实也有 arm64 编译,但因还未正式推出,链接被官方隐藏了起来。

流程是先从官网页面复制 Linux DEB ARM 的链接,链接最后是 armhf.deb,改成 arm64.deb 就可以进行下载。

*本文转自“NVIDIA英伟达企业解决方案”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值