11月14日下午两点,黑芝麻智能A1000芯片基础软件开发在线研讨会在智猩猩顺利完结直播。研讨会由黑芝麻智能技术应用经理李坤、中兴通讯汽车电子基础软件规划架构师&车用操作系统及基础软件规划负责人李玉鹏两位技术专家主讲,主题分别为《视觉感知数据流在A1000平台上的基础软件开发》,以及《中兴车用操作系统SafetyLinux在A1000平台上的适配》。
本文是黑芝麻智能技术应用经理李坤的主讲实录整理。如果对此次在线研讨会的直播回放以及Q&A有需求,可以点击阅读原文前去观看。
李坤:非常感谢智猩猩平台提供了这次和大家共享黑芝麻智能华山二号A1000芯片基础软件技术的机会。接下来我会来向大家介绍视觉感知数据流在A1000平台上的基础软件开发方面的内容。
01 A1000芯片SoC硬件加速器及其功能
这是一个A1000芯片的大体框架。
从这里来看,整个A1000芯片的架构是非常清晰的,有中央处理器、视觉DSP及CV硬件加速引擎、 NN的加速引擎等,还有一些高速接口、视频的接入接口、ISP等。从整个框图来看,和ADAS视频处理流有关的是从前端MIPI输入,接着ISP处理;再往后走是视觉DSP加速,还有一些其他与视觉相关的硬件加速器;最后再送到深度学习NN引擎中。从NN引擎出来的是感知结果,可以通过以太网或者CAN信号,把感知结果传出去。
从整个SoC角度来看,哪些硬件和视频处理有关呢?
ISP处理引擎,计算机视觉加速器(CV的硬件加速),DSP(用户可编程的视觉处理DSP,有很多可调用的视觉函数库),神经网络NPU,ARM中央处理器(整个链路的调度),GPU(做泊车类的拼接、渲染),视频编解码加速器(做 DVR或EDR的视频编解码)。
关于接口类,有MIPI(摄像头接入),千兆以太网(输出感知结果),PCIe(高速数据传输),USB。USB2.0接口经常用来做调试,USB3.0可以在数据采集的时候接USB的移动硬盘。其他的接口,CANFD、SPI、UART是一些业界常用的SoC低速接口。
再重点提一下每个加速器在基础软件开发当中有什么功能?
首先是ISP。其中一个最基本的功能就是,摄像头模组的原始图像数据进来以后,把它处理成后端最常用的NV12格式。除此之外,ISP还可以对原始图像进行缩放,比如输入的是1080p,如果后端需要720p的输出,我们也可以通过ISP本身做缩放。还有裁剪功能,假如原始输入是2.5M的图像(分辨率是1920×1280),我们可以把原始图像做些裁剪,裁成1920×1080输出,这是ISP本身可以做的事情。
第二个硬件加速器模块是视觉加速。它是一个计算机视觉(Computer Vision)的硬件加速模块。我们最常用的几个功能:颜色空间转换(比如RGB到NV12)、去畸变、缩放、裁剪,以及图像金字塔等,这些都是可以通过这个模块实现的。
A1000 SoC内部有4个视觉处理DSP。它主要是用来做视觉加速的,提供了很多视觉图像处理的函数供用户二次开发使用。现在项目中比较常用的功能,包括颜色格式转换、DMA搬运,以及客户基于DSP开发的算法后处理算子、激光雷达感知算法的算子等。
NPU是黑芝麻智能自研的一个神经网络处理加速器,包括卷积、矩阵乘、非线性计算等。
低功耗ARM处理器说的是A1000芯片内的8核应用处理器(Application CPU)。每个核运行在1.5G的频率上,主要是做系统调度,算法的前处理、后处理等。
GPU目前在项目中最常用的几个用途,有BEV图像的拼接、普通2D图像的拼接、AVM 3D的渲染等。
视频编解码加速器,支持H264/H265、MJPEG等格式的编码和解码,一般用来做数据采集、行车记录仪、汽车的黑匣子(EDR)等。
这些都是刚才说的A1000 SoC相关的硬件架构。
02 齐全的平台软件开发
从软件平台来说,黑芝麻智能提供了比较灵活的软件配置。黑芝麻智能A1000平台提供QNX SDK、Linux SDK、 ATF 、Open-TEE等组件。
其中Linux、 ATF、Open-TEE都是源码开放的,源码都在A1000的SDK包里。A1000平台的QNX7.1的BSP包,需要在黑莓的官方下载。A1000 SoC内有一个锁步的MCU核,做A1000芯片级别的监控和故障上报,和视觉、视频流处理没有直接联系。黑芝麻智能提供的A1000 SDK包里,包含了用于这个MCU核的FreeRTOS SDK。
A1000 SoC内的4个视觉DSP,客户可以通过开发使用DSP算子,优化系统实现。黑芝麻智能提供了一套调用框架(RCall SDK),由应用处理器调用DSP的算子功能。
以上是嵌入式板端的,接下来介绍一下PC端最常用的开发工具链。
比如我们拿到一个板子以后,要把系统最小镜像烧录到板子,然后开始调试板子的基础软件;调试板子的应用时,统计系统的性能数据,通过USB或以太网传到PC上分析;在线调试一些Linux应用程序,这些都是这套PC开发工具提供的功能。
深度学习山海工具链是一个很大的topic,这里面我就不细讲,大概提一下。它其实是一个很大的范围,包括神经网络模型的量化,深度学习算法的适配,算子运行效率的优化,诸如此类。
接下来就是对这些平台软件做展开。
首先,A1000平台除了支持Linux、QNX操作系统,也可以支持我们合作伙伴的第三方操作系统,比如接下来中兴专家给大家分享的 SafetyLinux。
其次,A1000平台已经通过了量产项目的考验,在吉利领克08这个车型上成功量产。A1000 SDK提供的服务已经具备量产品质,大大减少客户二次开发过程中,可能碰到的各种问题。
第三,A1000的Linux SDK包中,集成了一套docker编译环境,可以作为本地编译环境使用。SDK中的指导文档也是齐全的,从SDK的整体介绍,到每个硬件模块的编程指南,还提供相应的范例代码。前面说到的PC开发工具链,提供烧录镜像包,镜像包的客制化,在线调试,系统性能分析等功能。这些都极大降低了开发者上手的难度,帮助客户快速的建立A1000平台开发能力。
第四,在A1000 SoC内,集成的硬件加速器,可以简化嵌入式板端的系统设计,优化处理流程。在各个硬件加速器之间,通过共享内存机制,提升数据处理效率。
第五,A1000平台适配性好。黑芝麻智能推荐客户参考A1000 FAD参考设计,来设计自己的最小系统。用户可以根据自己的需求,从最核心的最小系统,到其他的加串器、解串器、摄像头、以太网的PHY、板级其他设备,都可以自行选择,黑芝麻智能支持客户做量产适配。
最后一点,黑芝麻智能自研的ISP。在A1000平台上,黑芝麻智能提供量产级别的ISP tuning服务。如果客户需要自行基于A1000平台,细调摄像头的图像效果,黑芝麻智能可以提供ISP tuning工具使用方面的培训。
03 A1000上典型的泊车/行车感知的部署
接下来,我给大家介绍一个A1000上典型的泊车应用的部署。这是一个流程框图。
从图上看,泊车一般是4个摄像头模组,所以先以4个摄像头模组为例。
4个摄像头的原始图像数据进入A1000后,首先由ISP做处理。A1000集成的ISP,可以调节4个摄像头的数据,达到同步曝光,亮度、色彩的均衡等处理,再给到下一个处理单元。
从ISP送出的图像数据,共有4个使用者。
第一个使用者,是Codec编码。如框图上的第一条通路,做EDR、DVR。计算机视觉的硬件加速器可以把这4幅图简单做四宫格拼接,用CPU把时间戳、敏感信息去掉,再送给Codec编码,最后通过以太网或者其他方式往外输出。
第二个使用者,是泊车感知的障碍物检测。计算机视觉加速器可以做缩放和裁剪,包括去畸变,然后由感知算法做障碍物检测,再到算法后处理。
第三个使用者,是泊车感知的停车位检测。GPU把4幅图像数据做BEV拼接,拼接后输出的是RGBA格式的数据,我们需要把它转成NPU需要的格式。比如NPU需要RGB-planar、NV12格式的图像数据,我们可以通过DSP,把RGBA的数据转成RGB-planar格式,再给到算法后处理。
第四个使用者,是360全景环视。GPU把4幅图做AVM拼接,再加上其他3D渲染,送到车机ECU做显示。
通过这些硬件加速器能够有效地减轻CPU的负担,使整个系统运行更加稳定可靠。每个硬件模块之间,我们尽可能通过Shared Memory来传输数据,减少内存的拷贝,优化DDR带宽的使用。
接下来是一个行车的框图。
行车感知,一般使用6个摄像头,或者7个摄像头(双前视)。包括一到两个前视摄像头、四个侧视摄像头,一个后视摄像头。这些摄像头模组需要做同步曝光处理。当和其他传感器需要同步时,比如激光雷达,就需要激光雷达输出一个触发信号,再由这个触发信号,控制多个摄像头模组的同步曝光。
计算机视觉加速器把输入的视频数据,进行缩放、裁剪,再零拷贝送到下一个处理节点,比如Codec、NPU做处理。在行车应用中,计算机视觉DSP可以支持客户自研的算法处理模块,比如激光雷达的算子、测距算法、泊车建图、行车标定等。
04 A1000平台典型开发场景
我们接下来讨论一下,是平常工作中花时间最多的几个典型场景:
1、多传感器的同步触发主要是说摄像头、激光雷达等传感器,如何做到同步触发。这个和模组之间的差异,激光雷达外发触发信号的精度等因素有关。我们需要了解senor的触发机制、同步曝光的原理,才能够做到游刃有余。
2、高效的数据处理流程,需要我们充分了解整个SoC的各个硬件模块,以及数据处理的流程。在数据处理过程中,充分利用SoC的硬件加速器。
3、黑芝麻智能提供ISP的tuning服务,这也是我们工作的一部分。为了给用户呈现最好的图像效果,一组摄像头一般来说需要半个月左右的时间去优化效果。
4、在基于神经网络的视觉感知算法上的的适配上,黑芝麻智能提供了山海深度学习工具链,支持第三方深度学习的算法跑在A1000芯片上。
5、四个计算机视觉DSP,很多客户会开发此DSP的算子,把四个DSP都用起来,减轻CPU负担,加快整个视频数据流的运转。
6、每个平台都会需要系统性能分析与优化。根据并发的场景,分析每个环节的资源消耗,具体分析出系统的瓶颈在哪里,做相应地优化。
黑芝麻智能在面向客户的项目空间中,积累了大量的问题分析和经验总结。大家可以通过我们的项目空间去看一下,学习和借鉴以往经验积累。
黑芝麻智能自研的ISP是A1000突出的亮点之一。
A1000集成了3个ISP Core。每个ISP Core都能支持4个摄像头同步输入,因此最多可以支持12个原始图像的摄像头模组接入,满足行泊一体项目的多摄像头接入的需求。
黑芝麻智能提供量产级别的tuning服务。ISP tuning需要很高的专业知识深度,黑芝麻智能可以给客户提供免费的A1000 ISP tuning培训,增强客户自己的图像处理能力。
黑芝麻智能自研的NPU是个A1000第二个非常大的亮点。
黑芝麻智能的深度学习山海工具链是相当完备和成熟的,可以支持客户把算法快速移植到A1000的DynamAI NN深度学习引擎上来。
我想要向大家推荐的是黑芝麻智能为客户提供的开发者平台。这个平台有我们专业的团队在维护。在这个平台上,有技术积累的资料,有向客户开放的A1000芯片资料。黑芝麻智能的工程师和客户的工程师,在这个平台上,共同讨论并解决问题。这个解决问题的过程,就变成了一篇“开发者指南”。一方面供我们黑芝麻智能的同事学习和成长,同时也给客户的工程师分享知识积累。
我们的目标是,在这个开发者平台,只要用关键字就能搜到我们关心的问题,指导我们快速的定位/解决问题。
05 黑芝麻智能核心竞争力
再次向大家介绍一下黑芝麻智能的核心竞争力。
1、卓越的华山二号A1000的芯片;
2、黑芝麻智能自研的核心IP(ISP,NPU);
3、完备的参考设计和工具链;
4、国内头部车企的量产品质;
5、A1000的各个生态合作伙伴的加持,快速量产落地。
这是我今天分享的全部内容,谢谢大家。