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


 
英伟达立体双目处理流程

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

文章插图
图片来源:互联网
立体双目视差的获得需要多种运算资源的参加,包括了VIC、GPU(CUDA)、CPU和PVA 。
英伟达Orin算法库都有什么算法?

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

文章插图
图片来源:互联网
并且此时是火力全开,运行频率如下:
  • 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追踪主要用于目标的行驶轨迹的预测 。
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
上图就是奔驰用光流法预测车辆行驶轨迹 。
英伟达Orin算法库都有什么算法?

文章插图
图片来源:互联网
上图是奔驰的颜色编码,不同的颜色代表车辆即将行驶的速度和方位角 。
 
光流是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法 。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场,其本质是一个二维向量场,每个向量表示了场景中该点从前一帧到后一帧的位移 。那对于光流的求解,即输入两张连续图像(图像像素),输出二维向量场的过程 。除了智能驾驶,体育比赛中各种球类的轨迹预测,军事行动中的目标轨迹预测都能用到 。光流场是运动场在二维图像平面上的投影 。因为立体双目和激光雷达都是3D传感器,而单目或三目是2D传感器,所以单目或三目的光流非常难做 。光流再分为稀疏和稠密(Dense)两种,稀疏光流对部分特征点进行光流解算,稠密光流则针对的是所有点的偏移 。
 
最常见的光流算法即KLT特征追踪,源自1981年,早期的光流算法都是稀疏光流,手工模型或者说传统算法 。2015年有人提出深度学习光流法,在CVPR2017上发表改进版本Flo.NET2.0,成为当时最先进的方法 。截至目前,FlowNet和FlowNet2.0依然是深度学习光流估计算法中引用率最高的论文 。传统算法计算资源消耗少,实时性好,效果比较均衡,但鲁棒性不佳 。深度学习消耗大量的运算资源,鲁棒性好,但容易出现极端,即某个场景非常差,但无法解释,与训练数据集关联程度高 。即使强大的Orin也无法FlowNet2.0做到实时性,毕竟Orin不能只做光流这一件事 。因此英伟达还是推荐KLT 。产业领域光流法主流还是KLT 。但学术领域已经是深度学习了 。
 
硬件与算法互相推动,硬件算力的增强让人们敢于部署越来越大规模的深度学习模型,反过来,这又推动硬件算力的需求,特别是自动驾驶,传统可解释算法研究的人越来越少,因为投入产出比太低,深度学习正横扫一切,但深度学习不可解释,汽车领域需要的是可解释可预测可确定 。否则无法迭代,无法划出安全边际线 。这也是自动驾驶难以落地的主要原因 。


推荐阅读