《安创“芯”视野》第31期,邀请到Xilinx软件和AI解决方案市场部高级经理刘珊珊,她围绕赛灵思最新推出的边缘侧智能视觉加速系统模块及统一的Vitis软件工具开发流程,为大家介绍如何快速打造低时延、低功耗、高吞吐的端到端智能视觉解决方案。
(以下是分享内容整理)
大家好,我是来自赛灵思软件AI解决方案市场部的刘姗姗,今天分享的主题是“自适应计算助力智能安防快速升级”,主要包括以下四个部分:
自适应计算改变世界
近年,随着自动驾驶和5G的兴起,以及云计算和互联网的发展,我们看到应用市场正在经历着前所未有的需求变化。随之而来也给前端的研发和产品设计工程师带来了诸多问题,比如不断演进的AI算法和模型、持续增长的安全和保密需求以及不断增加的传感器类型和传感器接口等等。就目前来看,这些需求引领的创新周期已经远远超过了一个芯片设计的周期。为了应对这样的变化,赛灵思根据实际情况,将产品的适应性和灵活性作为主要发力点,也因此受到了越来越多人的关注。
以往在谈及FPGA的时候,大家可能还非常地陌生;但是近几年,随着AI和大数据技术以及它们相关应用的蓬勃发展,我们再次提到FPGA的时候,相信很多人已经有了一个粗浅概念。虽然在真正的工作中大家不一定会接触并用到它,但是在特定领域进行数据处理时,它将是一个非常重要的芯片,因为FPGA带来的正是这种强大的应对变化的能力。与此对应地,赛灵思的企业愿景也正是致力于打造灵活应变、万物智能的世界。因此,我首先与大家分享的是赛灵思如何通过赋能创新来帮助人们实现健康守护、实现高品质的生活和探索宇宙的梦想。
在当下席卷全球的新冠疫情中,赛灵思始终优先来支持全球客户进行医疗设备的研发和生产。早在2020年1月,在武汉疫情最为严重的时期,赛灵思就开始支持迈瑞来开展病患智能转运监护仪的大规模生产。在整个过程中,赛灵思投入了大量的物流和技术支持来帮助仪器的研发和投产,为医护人员提供了更便捷、更高效的监护设备,也为病患提供了生命保障。在医疗领域,很多耳熟能详的企业包括外资的GE、飞利浦、西门子以及国内的迈瑞、开立,联影等企业都是赛灵思的客户。
在汽车领域,赛灵思正在帮助全球很多合作伙伴不断地提高多传感器的数据处理能力,从而改善车辆的感知,提高车辆在道路行驶中的快速决策能力。截止到目前,赛灵思在全球汽车市场累计出货量已经达到了2亿颗芯片,其中1/3用于自动驾驶相关场景。从去年7月开始,国际社会掀起了新一轮星际探测热潮。中国、美国、阿联酋都分别向火星发射了太空探测器。而赛灵思也在其中发挥了非常重要的作用——它为毅力号火星车提供了核心的器件。毅力号火星车在火星表面的着陆导航、自动驾驶以及相关的加速成像和扫描等任务,都是通过赛灵思的一些航空航天器件来实现的。
因为独特的灵活性和适应性使得赛灵思能够服务来自全球60多个国家,超过60000+客户来进行云端到边缘侧的应用部署。除了刚刚介绍的航空航天、汽车和医疗方面之外,赛灵思也赋能了其它领域。比如,在音视频广播方向,我们会去做一些与视频编解码以及信号质量增强相关的任务;我们在存储和网络加速方面也有着非常优异的表现,因为现在数据中心里大量的异构计算高性能平台都离不开FPGA;在工业和视觉方向,原来FPGA主要做一些工业控制,但现在已经融入到机器视觉与机器人的相关应用中去;通信领域,不管是在有线还是无线场景里,我们都会用到FPGA来做一些与信号处理和协议栈处理的相关任务。
为了更好地向我们的用户提供自适应提升的能力,赛灵思这些年里一直在不断地加速转型。从1985年我们发明了FPGA开始,赛灵思不断延续FPGA的核心价值,把它打造成了可以满足各种应用需求的片上系统。比如随着28纳米和16纳米制程的演进,我们不断推出了MPSoC、RFSoC,以及最新的7纳米制程上的ACAP平台。通过不断努力,赛灵思研发出了更易于软件编程的体系结构,同时也为客户提供了一些更为广泛的部署方式。在传统场景里,客户采用赛灵思器件时都是把芯片集成到自己的系统里去。而从18年开始,我们不断推出了像Alveo或是Kria SOM这种即插即用的加速卡和系统级模组,使得大家能够直接从系统级开发去做相关应用。此外,我们很多合作伙伴如阿里巴巴、AWS、Nimbix等云服务商会把FPGA作为一个云端服务提供给大家,即FaaS这样的服务,从而使得更多的客户能够更轻松地访问到这些灵活易用的资源。
在AI领域,赛灵思自适应计算平台所具有的domain specific architecture(特定领域架构)可以满足AI创新在速度方面的要求。目前,很多AI最新的神经网络正在日益涌现,那么,怎么样能够让硬件处理平台有效地加速最新的神经网络成为了一个很大的挑战。赛灵思的MPSoC平台可以妥善解决上述问题,它最大的优势是具备整体应用的协同优化能力。很多前端研发人员以及产品开发人员在实际应用中都非常清楚地了解,在一个真实的智能器件或是解决方案里,我们除了需要做AI推理的任务外,还有大量的前处理和后处理工作,其中又包含了大量的数据交互和计算工作。如果通过板级的交互来进行数据和数据之间的互通,这很容易导致一些系统级的性能瓶颈。因此,赛灵思把这些关键功能进行硬件底层的优化加速,再把它紧紧耦合在一个单芯片的方案中。这不仅能够极大地提升整个系统的工作效率,并且降低了端到端的时延和整体的系统功耗。
智能安防解决方案关键能力及案例
根据自己的理解,我将广泛的智能安防场景分为三类:第一个类是我们在城市里能够见到的与安防相关的一些解决方案或系统,比如我们非常熟悉的面向公安、交通、消防以及其它的政府应急指挥部门为公共服务而建设的监控系统。我们可以看到,所有的这种系统都有自己相互独立的一套基础设施和网络,以保证它们在一些非常关键的时间对关键信息的调用和留存。比如,我们在道路上经常见到的灯杆上的一排摄像头就可能归属于不同的公共体系;楼宇和园区这类公共场所也有与人员和场所运营服务相关的一些智能化系统。而这些系统里其实都分布着大量的摄像头。其中,有的是传统的模拟摄像头,部署得比较早,数量比较多;有的是数字摄像头;有的则是近几年最新建设的具有一些智能功能的智能摄像头。而所有的摄像头在这样的安防系统里都充当着一个信息采集员的角色。但是,如果所有的采集员都将本地采集到的信息上传到云端或是存储端,就会带来非常大的数据传输压力和存储压力。所以我们现在广为采用的解决方案是先在前端把信息进行预处理,再把提取到的关键信息比如一些结构化数据传输到云端,最后进行存储或是分析、决策等等,以支持智慧城市这样一个非常大的体系的正常运转。因此,我们在边缘侧就需要引入大量的智能处理能力。
而在行业级场景里,我们关注更多的是电力、能源,矿产这些相关行业。这些行业更加注重安防,因为这些行业场景里普遍存在着危险因素,而且这些场景里的工作环境可能也比较恶劣,因此,对于我们解决方案的要求级别也非常高。比如,油井矿井生产系统的监控光线和本身的工作环境都很差;一些电网自动巡检系统可能对我们的安防解决方案也有一些差异化的要求。
最后是消费级场景。目前应用最多的场景是人脸等生物特征识别的门锁,其次是一些用来防范异常入侵和监控老人小孩行为的小型家用摄像头,以及家里水煤电气的异常情况告警系统。
智能视觉方案常见处理流程
我们不难发现,无论是汽车的前视摄像头还是安防的IP camera,甚至是特殊场景里特殊用途定制的智能摄像头,它的基本处理流程都是相似的。首先,要有前端的图像获取模块,以及对图像进行处理的模块,比如前处理和后处理;接下来会进入到与AI相关的推理模块,比如做一些检测、分类、分割等等,也会基于AI检测的结果去做相应的决策;同时,基于我们方案的需求,对它进行显示或者编码传输。这种流程其实是我们现在在主流的视觉方案里比较常见的一种流程。
基于上述流程,赛灵思为这类应用提供了一个全流程的应用加速库。比如,在视频获取、后处理以及显示环节,我们的加速库提供了丰富的接口IP,包括了大家常见的MIPI、HDMI、USB、SDI、DP等接口。这些非常丰富的接口IP库能够支持设备之间的互联互通。同时,我们也给大家提供了视频相关的编解码处理能力,并且,在视频的后处理和显示方面也提供了VCU,实现视频流的编解码功能。
了解了视频图像的获取以及后处理环节之后,我们来看看它的一些核心功能。一部分核心功能其实就是与视觉相关的library,就是我们刚刚略过的视频前处理和后处理里的内容。为什么要略过呢?因为我后面会做更详细的深入分析,现在我们先把它放一下。除此之外,另外一个重要的功能是用来做AI加速的一个DPU的核。这个DPU叫做deep learning process unit,是我们专门为大量的卷积网络运算提供的一个从底层硬件层面做好并加速的IP核。我们在这个核里已经对现在主流的一些神经网络框架比如Caffe、TensorFlow、PyTorch等都做好了底层的优化。我们大概有100多个优化好的网络正在GitHub上做开源,大家可以结合自己应用需求,对它进行重训和部署。在这里,我们也针对不同资源的器件给大家提供了8个不同大小型号的IP核——从512的到4096的,就是我们能够用到的在FPGA上的逻辑资源。大小不一样,提供的IP核也不一样。综上所述,我们做AI加速的核心之一就是DPU的这样的一个加速IP。
下面来看图像处理环节,因为这个环节往往更能体现FPGA的灵活性和方案的差异性。首先,我们来看前处理。前处理主要包含两大块任务:一个是ISP,一个是与AI相关的一些任务的前处理。我们先来看ISP环节。前端的sensor会将光信号变为电信号,这时我们会得到一种贝尔模式的数据,然后,我们需要把这个数据重建为肉眼可见的RGB格式图像,并且对这个图像进行一系列的处理,以得到能够满足应用要求的一个图像。我们熟知的比如华为海思、RK、安霸等企业的安防解决方案里主要采用的SoC,通常是已经具备了一些标准的ISP功能,比如把贝尔格式变成RGB格式、做降噪、做自动曝光、做白平衡、做聚焦、以及做色彩校正等等。但是,需要强调的是一些特定的需求。比如,当我们需要做黑光相机或者高速相机等这类在特定场景里有特定用途的差异化非常大、要求非常高的相机的时候,我们对ISP就会有更高的要求,就需要有更灵活的架构来对ISP进行定制。
在机器学习模型训练过程中,我们对于输入数据会做一些特别的定义,比如说数据格式是什么样的,RGB还是YUV?它的分辨率是怎么样的?它的比特位宽是什么样的?同时还有一些做正则化的要求。对于这些任务,赛灵思提供了经过底层硬件层面加速的库来满足大家的个性化需求。在后处理环节,我们刚刚着重介绍了我们是采用DPU的IP核来做神经网络加速的,但是实际上在真实的任务中,除了用到这种神经网络加速之外,我们还会用到比如3D视觉、虚拟增强现实、路径规划、行为估计以及环视摄像头的拼接和处理等等的一些计算机视觉方案。在这些方案里,大家用到的不仅仅是这种卷积加速还有其它的一些运算方式,所以,我们往往会采用AI和CV混合的方案来解决实际的问题。总的来说,针对这样的需求,除了DPU的能力之外,我们同样提供了一个经过硬件加速的CV Library来实现差异化的方案。这也是我们与传统安防芯片功能不一样的地方。
这是一款基于赛灵思MPSoC平台开发的智能相机。它采用了ZU4芯片。大家可以看到,这个方案具有非常丰富的物理接口以及非常强大的图像处理能力和AI能力。典型的接口就是我们所熟知的Mini DP、USB等接口。其中还提供了各种内存方案,比如eMMC、DDR,内置了一个视频编解码的内核,可以实现4K60帧的实时编解码能力。这款相机前面的感光和ISP是由我们的合作伙伴安森美开发的。整体来看,这款智能相机支持120帧的高清成像。从这个智能相机智能的角度来讲,它具有超低延迟的特性。其实这个方案在FPGA内是用了我们硬化的视频编解码的一个内核去做的图像编码,所以,它在编码的同时在并行做着一个任务。是什么呢?就是一些与AI相关的处理流程,包括MIPI接口进来后的协议处理、resize前处理、目标detection、结果输出。在整个过程中,因为AI和视频编码是并行发生的,所以在每一帧,从图像获取到编码的整个流程需要70毫秒,但是我们的AI处理能力只用到40毫秒。所以,在这个方案里,我们整体的输出并没有因为做AI分析而被延长。我刚刚提到这款智能相机的解决方案是用了一颗ZU4的芯片,与之匹配的是我们B3136的一颗DPU的内核。它可以做到的实时处理能力是200帧每秒,但是在前端很多应用场景里我们其实用不到200帧,所以,我们就可以把它作为一个边缘计算盒子来做多路视频,比如可以做4路视频的实时处理和分析。
Kria SOM智能视觉开发平台介绍
这个SOM也是基于MPSoC架构的,刚刚提到的案例采用的是ZU4芯片,而这个SOM采用的是ZU5芯片——它的资源更丰富些。首先来给大家解释为什么我们要做这样一款模组。虽然这些年来赛灵思一直致力于不断研发最新的灵活应变的硬件架构来实现赋能创新,但是我们客户在使用赛灵思器件的时候确实还是存在一些从底层向上开发的不便。以前,客户们需要将芯片集成到自己的系统中。这其中包含了大量的系统集成工作,而且还要去设计板子和做代工,等把这个板子调好之后才能在上面做应用开发。所以,为了把这个创新流程缩短,让大家能够采用相对标准化的平台来把灵活应变能力扩展到更广泛的应用里,我们一直在试图寻找一种更为友好的部署方式。在18年,我们推出了一个在数据中心侧可以即插即用的Alveo系列的加速卡。过去几年里,我们的Alveo卡在金融、安全、高性能计算等等领域得到了非常好的应用,并且发挥了非常重要的作用。于是,出于同样的构想,我们今年推出了一个在edge端也能够即插即用的最小化的系统级模组,希望能够在edge端支持更为广泛的应用需求,尤其是智能视觉方面的一些创新需求。
第二个原因是,赛灵思这些年在开发工具上也做了很多投入。为了让我们的软件和应用开发人员能够很容易地上手我们的自适应计算平台,而不用从最底层的RTL层面去做开发,我们推出了这款标准化的硬件平台,希望大家可以在这个标准化硬件平台上去做标准化的软件设计流程以及各类已经做好的加速应用。当然,这也是一个开箱即用的平台,成本非常低。能够让更多的人以非常低的成本在各类应用里感受到FPGA的这种灵活架构是极具优越性的。与此同时,这个平台也是一个异构平台。它里面有四核ARM A53的应用处理器、两核R5的实时处理器、Mali的GPU、256K的逻辑单元。基于上面这些资源去与我们的DPU B3136的一颗内核做匹配的话,它最大能够实现1.4 TOPS每秒的AI处理能力。这是什么概念呢?这表示我们对一些主流的神经网络模型进行相应的优化之后,基本上能够做到实时或者准实时的处理能力。在接口层面,这块核心板提供了双排240-Pin Connector,大家可以在上面去做一些非常丰富的扩展。它最多可以支持15个camera,像常见接口的camera以及CMOS、CCD需求类型的camera都能支持。此外,它最高支持扩展到40G的Ethernet,也包括了多个USB接口以及具备4GB的DDR4 存储能力。可以说,我们所能想到的在边缘侧与AI推理相关的场景基本上都能够满足这样的要求了。
这是一块即插即用的系统级模组。我们为开发者提供的这个入门级开发套件可以让没有任何FPGA开发经验的开发者在一小时之内快速上手,让一些与AI、智能相机、AI box等相关的应用跑起来。怎么做到的呢?通过我们与赛灵思官方以及第三方合作伙伴一起合作开发出了一些已经做好加速的应用:Accelerated Applications。这些应用都被我们放在了赛灵思官方网站上的应用商城里。应用商城里有一个Kria SOM专区,大家可以在这里找到我们基于这一款标准化的硬件平台打造的若干标准化的一些应用,且这些应用已经经过了加速优化。另外,我们已经通过overlay的方式把这些应用进行了封装,大家不需要在底层做任何的调试和部署,就可以直接把这个应用丢进去,就会通过非常简单的命令行代码让它跑起来。我们的这块板子就变成了一个智能相机或者是一个AI box。
其实,现在赛灵思原厂已经做好了像smart camera这种model,它可以支持多种接口的输入,具备多种前后处理功能以及最核心的AI推理能力,最终来对这个摄像头做显示或传输。对于以上所有功能,我们已经在里面都封装好了,只需要命令行语言去对它进行调用即可。同时,这里面也带有RelD功能的AI box和一些基于OpenCV的瑕疵检测。我们的合作伙伴也对此做了非常多的贡献。
其实,我们希望提供标准化的硬件和软件开发流程,让更多人能够把很多广泛应用需求做出来并且贡献出来。一方面,我们的客户会根据自己的需求快速评估这样的应用和器件,可能在这上面还会去做一些进一步优化的工作;另一方面,我们也希望极具创新能力的开发伙伴能够通过我们的官方平台把自己做得非常好的一些加速应用进行对外发布和推广。与此同时,我们也给大家提供了非常专业的数字版权证书的认证和保护服务。通过这项服务,我们既可以保证大家的知识产权,也可以帮助大家在这个过程中通过各种各样的方式比如使用时长或是license等来帮助大家把自己做好且加速的应用商业化。
为了这样一个标准化的硬件平台,我们推出了标准化的软件开发流程。首先,作为一个边缘侧的智能视觉加速的平台,它可以支持基于yocto的Petalinux也可以支持ubuntu,极大地满足了嵌入式开发工程师的需求。同时,通过这个统一的开发工具和平台,我们的VITIS及VITIS AI可以为不同类型的开发者提供最适合的开发工具以及开发流程。
对于AI开发者而言,他可以完全不去顾及AI开发之外的所有其它流程,只用VITIS AI来定制化自己的神经网络模型的加速即可。其中,DPU实现了我们所需要的大部分主流神经网络框架的底层加速,所以,开发者只需要根据自己客制化的AI模型和DPU进行相应匹配,然后去做相应的参数设置、型号匹配、模型优化等流程,就可以得到一个能够用于部署的网络模型。因此,我们只需要去做神经网络相关的替换工作即可,这极大地降低了AI开发者使用MPSoC门槛。
对于软件开发者而言,VITIS开放了大量的经过优化的软件加速库,软件开发者只需要使用像C、C++、Open CL这种熟悉的开发语言以及开发环境来调用这些库即可。除了DPU部分之外,我们就可以对它的前处理、后处理以及与它的视频加速流水线相关的一些应用做进一步的定制化加速,从而得到高性能低延迟的一个视频流解决方案。
对于硬件开发者而言,不管是使用VITIS还是使用VIVADO开发工具都可以更充分地发挥出FPGA架构的灵活性以及我们整个片上系统的完备性。我们可以基于RTL的设计有针对性地对应用的全流程进行优化。
赛灵思开发者计划
赛灵思开发者计划是一个面向全球硬件工程师、软件工程师、算法工程师、系统工程师、学者、科研人员和学生推出的专项服务计划。为了更好地完善赛灵思的生态,我们希望能够引入一些最具突破性构想的创新者和变革推动者,赋能他们更便捷、更高效、更全面的自适应计算服务,从而加速创新的发生。为此,我们打通了赛灵思内部和外部很多资源,为大家提供了包括课程学习、项目开发、交流分享等内容的一个自循环的小生态体系。在这个体系里,大家可以通过更多的途径得到一些官方技术文档教程、参加免费培训、赛灵思的人才认证计划等。在这个过程中,我们也通过给大家提供免费的license和免费的硬件来鼓励大家去做开发尝试;同时,也通过我们的月度项目以及自适应计算挑战赛来去激励大家做更多的自适应计算方面的项目开发尝试。此外,我们也打造了丰富的线上线下活动与大家进行交流分享。线上,我们有社区、应用商城、开发者网站,所以不管是在个人层面还是企业小型创业项目层面,我们都给大家提供了一个全方位交流分享的机会;同时,也为大家量身定制了很多线下专属活动。
今天也借这个机会跟大家做一个小征集。一个是征集一些月度项目。如果大家有在赛灵思平台上做出来的比较好的作品,我们希望能够把这些作品征集过来,然后通过我们官方平台进行展示;同时,也会通过我们的一些技术专家资源帮助大家进行进一步的优化,并通过我们的市场资源把它推向市场。所以,我们希望大家把自己做好的这些作品,比如一个早期的小demo,发布到开源的平台上去,然后把这个demo视频传到第三方网站比如B站、优酷视频等等网站上。之后,你只要把这两个链接发给赛灵思开发者计划的邮箱即可,我们就会和你在线下做进一步的沟通和交流。另外,我们希望征集更多的开发者计划的志愿者帮助我们服务更广泛的开发者群体。如果你是一个互联网意见领袖,或者你在做自己的科技类自媒体,或者你是一个资深的FPGA发烧友,或者你是高校里科技相关社团的非常活跃的小伙伴,我们非常欢迎你的加入。我们希望这样的人能够把自己周边非常活跃的技术交流圈子介绍给我们,让我们在其中投入相应的市场资源,量身打造一些专属活动,从而为更广泛的开发者朋友们提供更好的服务。所以,关于以上两点,大家有什么想法都可以联系我们。
以上就是我今天分享的内容。谢谢大家。
责任编辑:tzh
评论
查看更多