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

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

3天内不再提示

视觉感知数据流在A1000平台上的基础软件开发

黑芝麻智能 来源:黑芝麻智能 2023-12-19 15:53 次阅读

近日,黑芝麻智能A1000芯片基础软件开发在线研讨会在顺利完结直播。研讨会由黑芝麻智能李坤、中兴通讯李玉鹏两位技术专家主讲,主题分别为《视觉感知数据流在A1000平台上的基础软件开发》,以及《中兴车用操作系统SafetyLinux在A1000平台上的适配》。

本文是黑芝麻智能李坤的主讲实录整理,同时附上线本次研讨会的直播回放。

李坤:非常感谢智猩猩平台提供了这次和大家共享黑芝麻智能华山二号A1000芯片基础软件技术的机会。接下来我会来向大家介绍视觉感知数据流在A1000平台上的基础软件开发方面的内容。

A1000芯片SoC硬件加速器及其功能

wKgaomWBTAaAdvnyAAW8UmY30pI411.png

这是一个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低速接口。

再重点提一下每个加速器在基础软件开发当中有什么功能?

wKgaomWBTAaAUU3gAAWBaaXljOc815.png

首先是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相关的硬件架构。

齐全的平台软件开发

从软件平台来说,黑芝麻智能提供了比较灵活的软件配置。黑芝麻智能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的算子功能。

wKgZomWBTAeAWCQiAAOjx0o6QMA784.png

以上是嵌入式板端的,接下来介绍一下PC端最常用的开发工具链。

比如我们拿到一个板子以后,要把系统最小镜像烧录到板子,然后开始调试板子的基础软件;调试板子的应用时,统计系统的性能数据,通过USB或以太网传到PC上分析;在线调试一些Linux应用程序,这些都是这套PC开发工具提供的功能。

深度学习山海工具链是一个很大的topic,这里面我就不细讲,大概提一下。它其实是一个很大的范围,包括神经网络模型的量化,深度学习算法的适配,算子运行效率的优化,诸如此类。

接下来就是对这些平台软件做展开。

wKgaomWBTAeABd99AAPqfYH22bU085.png

首先,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工具使用方面的培训。

A1000上典型的行车泊车感知的部署

接下来,我给大家介绍一个A1000上典型的泊车应用的部署。这是一个流程框图。

wKgaomWBTAeAE0cMAARfaHhUaUY491.png

从图上看,泊车一般是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带宽的使用。

接下来是一个行车的框图。

wKgZomWBTAeAOcr0AARrtALOOMo707.png

行车感知,一般使用6个摄像头,或者7个摄像头(双前视)。包括一到两个前视摄像头、四个侧视摄像头,一个后视摄像头。这些摄像头模组需要做同步曝光处理。当和其他传感器需要同步时,比如激光雷达,就需要激光雷达输出一个触发信号,再由这个触发信号,控制多个摄像头模组的同步曝光。

计算机视觉加速器把输入的视频数据,进行缩放、裁剪,再零拷贝送到下一个处理节点,比如Codec、NPU做处理。在行车应用中,计算机视觉DSP可以支持客户自研的算法处理模块,比如激光雷达的算子、测距算法、泊车建图、行车标定等。

A1000平台典型开发场景

我们接下来讨论一下,是平常工作中花时间最多的几个典型场景:

wKgZomWBTAaAdXynAAZthKbuUVU631.png

1、多传感器的同步触发主要是说摄像头、激光雷达等传感器,如何做到同步触发。这个和模组之间的差异,激光雷达外发触发信号的精度等因素有关。我们需要了解senor的触发机制、同步曝光的原理,才能够做到游刃有余。

2、高效的数据处理流程,需要我们充分了解整个SoC的各个硬件模块,以及数据处理的流程。在数据处理过程中,充分利用SoC的硬件加速器。

3、黑芝麻智能提供ISP的tuning服务,这也是我们工作的一部分。为了给用户呈现最好的图像效果,一组摄像头一般来说需要半个月左右的时间去优化效果。

4、在基于神经网络的视觉感知算法上的的适配上,黑芝麻智能提供了山海深度学习工具链,支持第三方深度学习的算法跑在A1000芯片上。

5、四个计算机视觉DSP,很多客户会开发此DSP的算子,把四个DSP都用起来,减轻CPU负担,加快整个视频数据流的运转。

6、每个平台都会需要系统性能分析与优化。根据并发的场景,分析每个环节的资源消耗,具体分析出系统的瓶颈在哪里,做相应地优化。

黑芝麻智能在面向客户的项目空间中,积累了大量的问题分析和经验总结。大家可以通过我们的项目空间去看一下,学习和借鉴以往经验积累。

黑芝麻智能自研的ISP是A1000突出的亮点之一。

wKgaomWBTAWAFJ4mAAUgraV09io569.png

A1000集成了3个ISP Core。每个ISP Core都能支持4个摄像头同步输入,因此最多可以支持12个原始图像的摄像头模组接入,满足行泊一体项目的多摄像头接入的需求。

黑芝麻智能提供量产级别的tuning服务。ISP tuning需要很高的专业知识深度,黑芝麻智能可以给客户提供免费的A1000 ISP tuning培训,增强客户自己的图像处理能力。

黑芝麻智能自研的NPU是个A1000第二个非常大的亮点。

wKgZomWBTAWAbvVzAAT_lIPG6D4693.png

黑芝麻智能的深度学习山海工具链是相当完备和成熟的,可以支持客户把算法快速移植到A1000的DynamAI NN深度学习引擎上来。

我想要向大家推荐的是黑芝麻智能为客户提供的开发者平台。这个平台有我们专业的团队在维护。在这个平台上,有技术积累的资料,有向客户开放的A1000芯片资料。黑芝麻智能的工程师和客户的工程师,在这个平台上,共同讨论并解决问题。这个解决问题的过程,就变成了一篇“开发者指南”。一方面供我们黑芝麻智能的同事学习和成长,同时也给客户的工程师分享知识积累。

我们的目标是,在这个开发者平台,只要用关键字就能搜到我们关心的问题,指导我们快速的定位/解决问题。

黑芝麻智能核心竞争力

再次向大家介绍一下黑芝麻智能的核心竞争力。

1、卓越的华山二号A1000的芯片;

2、黑芝麻智能自研的核心IP(ISP,NPU);

3、完备的参考设计和工具链;

4、国内头部车企的量产品质;

5、A1000的各个生态合作伙伴的加持,快速量产落地。

审核编辑:汤梓红

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

    关注

    447

    文章

    47795

    浏览量

    409156
  • 数据流
    +关注

    关注

    0

    文章

    112

    浏览量

    14208
  • 视觉感知
    +关注

    关注

    0

    文章

    38

    浏览量

    3122
  • 黑芝麻智能
    +关注

    关注

    0

    文章

    98

    浏览量

    3208

原文标题:公开课实录 | 黑芝麻智能华山二号A1000芯片基础软件开发 在线研讨会

文章出处:【微信号:BlackSesameTech,微信公众号:黑芝麻智能】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Cadence宣布与Arm合作,提供基于芯粒的参考设计和软件开发平台

    中国上海,2024 年 3 月 19 日——楷登电子(美国 Cadence 公司,NASDAQ:CDNS)近日宣布与 Arm 公司合作,提供基于芯粒的参考设计和软件开发平台,以加速软件定义汽车(SDV)取得创新。
    的头像 发表于 03-19 11:41 319次阅读

    把CY8C4146平台上工程移植到CY8C4147平台上,用户程序没运行的原因?

    客户现在想把CY8C4146平台上工程移植到CY8C4147平台上,在topdesign重新选择4147,管脚也调整了一下,编译重新生成底层代码,creator4.2IDE编译没报错,同时同步更新
    发表于 02-21 06:04

    嵌入式软件开发应该掌握哪些知识?

    嵌入式软件开发应该掌握哪些知识? 一、 什么是嵌入式软件? 嵌入式软件通常是指嵌入式系统中运行的软件,嵌入式系统是一种特殊的计算机系统,通常用于控制、监测和
    发表于 02-19 11:23

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发嵌入在硬件设备中的软件,而
    的头像 发表于 01-22 15:27 595次阅读

    中兴车用操作系统SafetyLinux在A1000平台上的适配

    近日,黑芝麻智能A1000芯片基础软件开发在线研讨会在顺利完结直播。研讨会由黑芝麻智能李坤、中兴通讯李玉鹏两位技术专家主讲,主题分别为 《视觉感知
    的头像 发表于 12-19 15:51 332次阅读
    中兴车用操作系统SafetyLinux在<b class='flag-5'>A1000</b><b class='flag-5'>平台上</b>的适配

    单片机软件开发的分层设计思路

    在实际的项目开发中,项目往往是并行开发的,也就是说硬件设计,底层软件设计,应用软件设计是同步进行的。比如说在开发板上调试模块驱动,在其他
    的头像 发表于 09-22 10:29 679次阅读

    Vitis统一软件平台文档:嵌入式软件开发

    电子发烧友网站提供《Vitis统一软件平台文档:嵌入式软件开发.pdf》资料免费下载
    发表于 09-15 10:11 0次下载
    Vitis统一<b class='flag-5'>软件</b><b class='flag-5'>平台</b>文档:嵌入式<b class='flag-5'>软件开发</b>

    软件开发必读!华为云软件开发生产线 CodeArts 深度体验指南

    7 月 7 日-9 日,随着华为开发者大会 2023 的到来,华为云软件开发生产线 CodeArts 也走进了很多开发者的视野。 开发者都比较好奇,什么是华为云 CodeArts?Co
    的头像 发表于 08-25 13:43 783次阅读
    <b class='flag-5'>软件开发</b>必读!华为云<b class='flag-5'>软件开发</b>生产线 CodeArts 深度体验指南

    Cortex-A8的RealView平台基板用户指南

    软件开发平台Cortex A8处理器和内存系统以接近ASIC的速度运行。 与堆叠在基板的基于FPGA的RealView逻辑瓦片一起使用,它可以将添加到现有ARM中的自定义AMBA 3
    发表于 08-08 06:12

    RTX低功耗软件开发(三)

    软件开发
    橙群微电子
    发布于 :2023年07月11日 15:48:14

    【视频教程】紫光同创PDS软件开发平台视频教程之IP使用及仿真

    【视频教程】紫光同创PDS软件开发平台视频教程之IP使用及仿真~
    发表于 06-13 15:06

    机器视觉软件开发的多样性

    机器视觉是一种涉及计算机科学和人工智能的技术领域,它使计算机能够感知和理解图像或视频数据
    发表于 06-01 09:14 258次阅读

    如何在Layerscape平台上启用5G模块?

    到 Layerscape 平台。 3、在OK1028A-C v1.1和OK1046A-C2 v1.1板卡安装5G模块和5G测试所需的软件
    发表于 05-17 06:24

    安全软件开发的最佳实践

    安全的软件开发最佳实践是必要的,因为安全风险无处不在。在网络攻击盛行的时代,它们可以影响每个人,包括个人、公司和政府。因此,确保软件开发的安全性至关重要。 在这里,我们将解释了什么是安全软件,如何确保
    的头像 发表于 05-08 10:51 489次阅读
    安全<b class='flag-5'>软件开发</b>的最佳实践

    deepin入驻飞腾软件开发平台,深度为开发者使能

    软件开发平台(专区入口:https://service.phytium.com.cn/developer/20/),双方将共建开发者友好的开源新生态,深度为开发者使能。   飞腾
    的头像 发表于 05-01 01:34 1810次阅读
    deepin入驻飞腾<b class='flag-5'>软件开发</b>者<b class='flag-5'>平台</b>,深度为<b class='flag-5'>开发</b>者使能