0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英伟达Orin算法库主要三类算法

佐思汽车研究 来源:佐思汽车研究 作者:佐思汽车研究 2022-08-03 14:13 次阅读

自动驾驶芯片必须软硬一体,最多的工作不是芯片本身,而是与之对应的算法库。对于自动驾驶,英伟达提供两种合作模式。

0608e9f4-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

一种是车企交出全部灵魂,英伟达提供全套解决方案,包括底层OS,中间件DRIVEWORKS,上层应用模块DRIVE AV包括座舱的模块DRIVE IX也一起提供。不过中国禁止国外厂家上路采集信息,也就是用于识别的训练数据集还是需要中国厂家自己去做。如果是在美国,训练数据集英伟达也可以提供。

另一种是车企交出部分灵魂,英伟达提供底层的基础算法,这些算法大多基于手工模型,和深度学习没关联。实际深度学习或者说AI是自动驾驶领域最容易做的部分,搜集数据,标注数据,训练数据,提取权重模型。这也是为什么AI不具备可解释性,无法迭代,好在AI可溯源。工作量最大,难度最高的都是非深度学习部分。手工模型,传统算法的好处是可解释,可迭代,具备确定性。

后一种的算法库,英伟达称之为VPI,即Vision Programming Interface,2021年2月发布,目前是2.0版本,VPI除了针对智能驾驶,也能用在任何计算机视觉领域,英伟达Jeston系列硬件平台都支持VPI。VPI提供一系列软件库,可在英伟达的硬件平台上得到加速,通常加速器还叫Backend后端。VPI用来取代NVIDIAVisionWorks。VPI可以最大化利用硬件,特别是Xavier和Orin的PVA、VIC、OFA。简单地说VPI将一些简单的算法封装成了类似硬件指令集的指令,对用户几乎透明,可直接调用,让原本需要N行代码才能完成的算法函数,只需一行指令就完成,让不熟悉基础算法的人也能胜任。大大缩减了开发周期和开发人员,效率显著提升。缺点是被英伟达深度捆绑,想换个平台绝无可能。

0617edaa-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

C++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算法对应硬件。

062bf5f2-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

算法库主要包含三类算法:

一是简单的图像前处理,包括各种平滑滤波、镜头畸变矫正、缩放、透视、拼接、直方图、消噪、快速傅里叶变换等;

二是针对立体双目视差的获得;

三是光流追踪。

OFA即光流加速器,为Orin平台独有,Xavier平台不支持。OFA只针对一个算法,就是立体双目视差估算。

英伟达VPI核心算法即图中这六大算法

06432da8-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

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

英伟达立体双目处理流程

065bd0ba-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

立体双目视差的获得需要多种运算资源的参加,包括了VIC、GPU(CUDA)、CPU和PVA。

066c4116-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

英伟达Orin平台立体双目视差测试成绩,要达到每秒30帧,那么处理时间必须低于30毫秒,考虑到还有后端决策与控制系统的延迟,处理时间必须低于20毫秒。1个下取样情况下,显然都无法满足30帧的要求,4个下取样,不加置信度图时,单用OFA就可以满足。加置信图后,需要OFA/PVA/VIC联手,也能满足30帧需求。但这只是200万像素,300万像素估计就无法满足了。

068a3c3e-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

并且此时是火力全开,运行频率如下:

CPU: 12x ARMv8 Processor rev 1 (v8l) running at 2.2016 GHz

EMC freq.: 3.1990 GHz

GPU freq.: 1.3005 GHz

PVA/VPS freq.: 1.1520 GHz

PVA/AXI freq.: 832.8 MHz

VIC freq.: 729.6 GHz

Power mode: MAXN

Fan speed: MAX

这种火力全开情况下,恐怕不能持续太长时间。

光流Optical Flow追踪主要用于目标的行驶轨迹的预测。

069d347e-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网 上图就是奔驰用光流法预测车辆行驶轨迹。

06bae8d4-12ee-11ed-ba43-dac502259ad0.png

图片来源:互联网

上图是奔驰的颜色编码,不同的颜色代表车辆即将行驶的速度和方位角。

光流是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场,其本质是一个二维向量场,每个向量表示了场景中该点从前一帧到后一帧的位移。那对于光流的求解,即输入两张连续图像(图像像素),输出二维向量场的过程。除了智能驾驶,体育比赛中各种球类的轨迹预测,军事行动中的目标轨迹预测都能用到。光流场是运动场在二维图像平面上的投影。因为立体双目和激光雷达都是3D传感器,而单目或三目是2D传感器,所以单目或三目的光流非常难做。光流再分为稀疏和稠密(Dense)两种,稀疏光流对部分特征点进行光流解算,稠密光流则针对的是所有点的偏移。

最常见的光流算法即KLT特征追踪,源自1981年,早期的光流算法都是稀疏光流,手工模型或者说传统算法。2015年有人提出深度学习光流法,在CVPR2017上发表改进版本FlowNet2.0,成为当时最先进的方法。截至目前,FlowNet和FlowNet2.0依然是深度学习光流估计算法中引用率最高的论文。传统算法计算资源消耗少,实时性好,效果比较均衡,但鲁棒性不佳。深度学习消耗大量的运算资源,鲁棒性好,但容易出现极端,即某个场景非常差,但无法解释,与训练数据集关联程度高。即使强大的Orin也无法FlowNet2.0做到实时性,毕竟Orin不能只做光流这一件事。因此英伟达还是推荐KLT。产业领域光流法主流还是KLT。但学术领域已经是深度学习了。

硬件与算法互相推动,硬件算力的增强让人们敢于部署越来越大规模的深度学习模型,反过来,这又推动硬件算力的需求,特别是自动驾驶,传统可解释算法研究的人越来越少,因为投入产出比太低,深度学习正横扫一切,但深度学习不可解释,汽车领域需要的是可解释可预测可确定。否则无法迭代,无法划出安全边际线。这也是自动驾驶难以落地的主要原因。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4457

    浏览量

    90761
  • 英伟达
    +关注

    关注

    22

    文章

    3332

    浏览量

    87799
  • 自动驾驶
    +关注

    关注

    773

    文章

    13060

    浏览量

    163236

原文标题:英伟达Orin算法库都有什么算法?

文章出处:【微信号:zuosiqiche,微信公众号:佐思汽车研究】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用lsm303agr传感器做一个电子罗盘,能否使用X-CUBE-MEMS1算法库

    使用ST的lsm303agr传感器做一个电子罗盘的应用,希望使用的是nrf52832作为数据采集端,并希望能移植X-CUBE-MEMS1算法库,请问可行吗?如何操作?
    发表于 04-02 07:35

    请问有人用过瑞芯微自定义3A算法模块吗

    目前也研究了好一阵了,想请教一下如何开发自己的3A算法库或者别的图像处理算法库。想和各位讨论一下
    发表于 01-25 10:15

    xmc7200如何将KEIL的算法库移植到MTB?

    你好我正在使用xmc7200芯片,我想将 KEIL 算法库移植到MTB使用,我应该如何操作?最好的问候
    发表于 01-25 06:08

    mini57系列运行带算法库的程序,编译没有错误但无法运行是为什么?

    我用mini57系列的芯片跑做一个心率检测的产品。加入心率算法库后,发现程序无法运行,但是编译没有报错。我在线仿真发现无法进入main函数,程序运行不了。算法库是用新塘的demo在keil的环境下生成的。 不知道是为什么。
    发表于 01-15 08:33

    英伟为何放不下中国?

    英伟行业资讯
    深圳市浮思特科技有限公司
    发布于 :2023年11月27日 15:11:09

    #英伟 #显卡 英伟全新旗舰显卡RTX 5090性能暴涨70%

    显卡英伟
    深圳市浮思特科技有限公司
    发布于 :2023年11月20日 14:19:25

    #消费级显示被禁止出口 英伟RTX 4090显卡遭遇下架风波

    英伟
    深圳市浮思特科技有限公司
    发布于 :2023年10月19日 15:58:35

    关于数据挖掘的十种算法原理讲解

    数据挖掘主要分为三类:分类算法、聚类算法和相关规则,基本涵盖了当前商业市场对算法的所有需求。这三类
    的头像 发表于 09-18 15:00 664次阅读
    关于数据挖掘的十种<b class='flag-5'>算法</b>原理讲解

    一文弄懂数据挖掘的十大算法,数据挖掘算法原理讲解

    数据挖掘主要分为三类:分类算法、聚类算法和相关规则,基本涵盖了当前商业市场对算法的所有需求。这三类
    的头像 发表于 09-14 15:56 534次阅读
    一文弄懂数据挖掘的十大<b class='flag-5'>算法</b>,数据挖掘<b class='flag-5'>算法</b>原理讲解

    【开源方库】crypto-js加密算法库的使用方法

    应用。如果是发布到开源社区,称为开源方库,开发者可以通过访问开源社区获取。接下来我们来了解crypto-js开源方库。crypto-js是一个加密算法库,可以非常方便地在前端进行
    发表于 09-08 15:10

    新唐有提供BLDC软件算法库吗?

    我看新塘的介绍里面 提供BLDC 软件算法库
    发表于 09-06 07:58

    mini57系列运行带算法库的程序,编译没有错误但无法运行是为什么?

    我用mini57系列的芯片跑做一个心率检测的产品。加入心率算法库后,发现程序无法运行,但是编译没有报错。我在线仿真发现无法进入main函数,程序运行不了。算法库是用新塘的demo在keil的环境下生成的。 不知道是为什么。
    发表于 08-22 08:16

    深度学习算法库框架学习

    深度学习算法库框架的相关知识点以及它们之间的比较。 1. Tensorflow Tensorflow是Google家的深度学习框架,已经成为深度学习领域的“事实标准”。它是个非常强大的库,主要用于构建和训练神经网络。Tensorflow支持多种编程语言,例如
    的头像 发表于 08-17 16:11 441次阅读

    全新一代Jetson Orin Nano来袭,40TOPS超强算力,刷新你的想象! #Jetson #英伟

    英伟
    学习电子知识
    发布于 :2023年07月02日 13:27:15

    mini57系列运行带算法库的程序,编译没有错误,但无法运行是为什么?

    我用mini57系列的芯片跑做一个心率检测的产品。加入心率算法库后,发现程序无法运行,但是编译没有报错。我在线仿真发现无法进入main函数,程序运行不了。算法库是用新塘的demo在keil的环境下生成的。 不知道是为什么。
    发表于 06-13 09:05