本文会为大家介绍 NVIDIA 在 JetPack 开发环境中,提供的两套非常完整的与视觉技术相关的开发工具包,分别是 VisionWorks 与 MultiMedai API,这两个开发工具包不仅在电脑视觉(Computer Vision)中占据非常重要的分量,也在深度学习的视觉应用中扮演十分重要的角色。在一个完整的视觉应用中,包括摄像头/视频这些输入源的格式转换处理,以及计算结果的输出叠加处理,都非常复杂并且需要消耗大量计算资源。
NVIDIA 设备不仅能够在计算性能上取得绝对的优势(这在上一篇文章中就能从 CUDA 范例中得到验证),另外,在 Jetson Nano 2GB 设备中,还可以提供硬件编解码器以提高 IO 性能,以及 VisionWorks 与 MultiMedia API 这两套高层(high level)与底层(low level)开发界面,在性能上做最大程度优化,同时大幅度减少开发时间,因此这两套工具对于发挥 Jetson Nano 2GB 的总体效益非常关键。
由于 MultiMedai API 属于非常底层的开发接口,需要一定技术基础,因此本文不多做说明,在这里我们聚焦于 VisionWorks 的案例与体验。
VisionWorks 高阶视觉整合应用开发包
在执行范例之前,首先看一下 VisionWorks 的框架示意图:
从上往下数第二层“VisionWorks Source Samples”就是本文要带着大家执行的范例,里面包括特征追踪(Feature Tracking)、霍夫转换(Hough Transform)、方向预测(Motion Estimation)、视频防抖(Video Stabilizer)等范例,这些是属于图像/视频处理中的经典项目,而且计算量都相当大,接下来我们在 Jetson Nano 2GB 上执行,感受一下这款嵌入式设备的惊人计算能力。
编译 VisionWorks 范例
VisionWorks 范例都是用 C/C++ 撰写,执行前需要先进行编译。范例文件存放在 /usr/share/visionworks/sources/ 下面,请执行以下指令进入:
进到这里之后,还不能马上执行编译,目