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

    文章

    4604

    浏览量

    92710
  • 英伟达
    +关注

    关注

    22

    文章

    3750

    浏览量

    90899
  • 自动驾驶
    +关注

    关注

    783

    文章

    13716

    浏览量

    166216

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

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

收藏 人收藏

    评论

    相关推荐

    硬件设计技巧:三类GPIO接口的实用指南

    今天教大家一些关于硬件设计的的技巧,只要掌握好三类GPIO,轻松玩好硬件设计。
    的头像 发表于 11-05 12:22 189次阅读
    硬件设计技巧:<b class='flag-5'>三类</b>GPIO接口的实用指南

    不可错过的三类GPIO硬件设计指南!

    今天我们学习三类GPIO硬件设计,这三类绝对是不可错过的,本文将把三类设计的重要性展示出来:
    的头像 发表于 11-04 09:45 737次阅读
    不可错过的<b class='flag-5'>三类</b>GPIO硬件设计指南!

    Orin芯片的编程语言支持

    Orin是一款高度集成、高性能的车载计算平台,由英伟推出,并采用了英伟自家的Volta架构GPU和其他高级处理器技术。关于
    的头像 发表于 10-27 16:45 216次阅读

    Orin芯片的技术特点

    随着自动驾驶技术的飞速发展,对车载计算平台的要求也越来越高。英伟(NVIDIA)作为全球领先的图形处理器和人工智能技术公司,推出了Orin芯片,这是一款专为自动驾驶汽车设计的系统级芯片(SoC
    的头像 发表于 10-27 15:47 683次阅读

    英伟TITAN AI显卡曝光,性能狂超RTX 409063%!# 英伟# 显卡

    显卡英伟
    jf_02331860
    发布于 :2024年07月24日 17:18:28

    英伟否认星HBM未通过测试

    英伟公司CEO黄仁勋近日就有关星HBM(高带宽内存)的传闻进行了澄清。他明确表示,英伟仍在认证
    的头像 发表于 06-06 10:06 539次阅读

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

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

    英伟主要产品有哪些

    英伟(NVIDIA)的主要产品包括显卡、芯片、硬件产品和软件产品等。
    的头像 发表于 03-01 18:09 6473次阅读

    请问有人用过瑞芯微自定义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

    变压器按用途分哪三类

    变压器是一种常见的电气设备,主要用于改变交流电压或电流的大小。根据用途的不同,变压器可以分为以下三类:电力变压器、仪用变压器和特殊用途变压器。本文将对这三类变压器进行详细的介绍。 一、电力变压器
    的头像 发表于 01-04 16:29 3205次阅读

    稳压电源一三类区别

    稳压电源一、二三类是指按照供电设备的直流输出偏差范围和抗干扰能力对稳压电源进行分类的方法。下面将详细介绍稳压电源一、二
    的头像 发表于 12-28 17:54 8891次阅读

    英伟正在考虑第家晶圆代工伙伴

    英伟专为AI、高效能计算(HPC)设计的数据中心GPU目前大多由台积电代工,但此前英伟的游戏GPU主要是交给
    的头像 发表于 12-12 10:48 2201次阅读
    <b class='flag-5'>英伟</b><b class='flag-5'>达</b>正在考虑第<b class='flag-5'>三</b>家晶圆代工伙伴