英伟达Orin算法库都有什么算法?


英伟达Orin算法库都有什么算法?

文章插图
 
做自动驾驶芯片必须软硬一体,最多的工作不是芯片本身,而是与之对应的算法库 。对于自动驾驶,英伟达提供两种合作模式 。
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
一种是车企交出全部灵魂,英伟达提供全套解决方案,包括底层OS,中间件DRIVEWORKS,上层应用模块DRIVE AV包括座舱的模块DRIVE IX也一起提供 。不过中国禁止国外厂家上路采集信息,也就是用于识别的训练数据集还是需要中国厂家自己去做 。如果是在美国,训练数据集英伟达也可以提供 。
 
另一种是车企交出部分灵魂,英伟达提供底层的基础算法,这些算法大多基于手工模型,和深度学习没关联 。实际深度学习或者说AI是自动驾驶领域最容易做的部分,搜集数据,标注数据,训练数据,提取权重模型 。这也是为什么AI不具备可解释性,无法迭代,好在AI可溯源 。工作量最大,难度最高的都是非深度学习部分 。手工模型,传统算法的好处是可解释,可迭代,具备确定性 。
 
后一种的算法库,英伟达称之为VPI,即Vision Programming Interface,2021年2月发布,目前是2.0版本,VPI除了针对智能驾驶,也能用在任何计算机视觉领域,英伟达Jeston系列硬件平台都支持VPI 。VPI提供一系列软件库,可在英伟达的硬件平台上得到加速,通常加速器还叫Backend后端 。VPI用来取代NVIDIA®VisionWorks™ 。VPI可以最大化利用硬件,特别是Xavier和Orin的PVA、VIC、OFA 。简单地说VPI将一些简单的算法封装成了类似硬件指令集的指令,对用户几乎透明,可直接调用,让原本需要N行代码才能完成的算法函数,只需一行指令就完成,让不熟悉基础算法的人也能胜任 。大大缩减了开发周期和开发人员,效率显著提升 。缺点是被英伟达深度捆绑,想换个平台绝无可能 。
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
用C++或Python/ target=_blank class=infotextkey>Python都可以直接使用 。
  • PVA(Programmable Vision Accelerator),可编程视觉加速器;
  • VIC(Video Image Compositor),做一些固定功能的图像处理,如缩放、色彩转换、消噪;
  • NVENC(NVIDIA Encoder Engine),主要做视觉编码,也能做稠密光流应用 。
整个VPI的执行概念,就是提供适合实时图像处理应用的异步计算管道,由一个或多个异步计算流(streams)组成,这些流在可用计算后端(backends)的缓冲区(buffers)上运行算法(algorithms),流之间使用事件(events)进行同步 。VPI将数据封装到需要使用的每个算法的缓冲区中,提供Images(二维图像)、Arrays(一维数组)和Pyramids(二维图像金字塔)的三种抽象,以及用户分配内存包装,由VPI直接分配和管理 。
 
英伟达VPI 2.0算法对应硬件 。
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
算法库主要包含三类算法:
  • 一是简单的图像前处理,包括各种平滑滤波、镜头畸变矫正、缩放、透视、拼接、直方图、消噪、快速傅里叶变换等;
  • 二是针对立体双目视差的获得;
  • 三是光流追踪 。
OFA即光流加速器,为Orin平台独有,Xavier平台不支持 。OFA只针对一个算法,就是立体双目视差估算 。
 
英伟达VPI核心算法即图中这六大算法
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
尽管只有奔驰和丰田用英伟达处理器处理立体双目,新型造车除了RIVIAN目前都不使用立体双目(小鹏小米可能在将来使用立体双目),但英伟达每一次硬件升级都不忘对立体双目部分特别关照 。


推荐阅读