边缘设备实装

EDGE DEVICE
SERVICE
根据已学习算法为目标硬件设计最适合的处理架构,并在边缘设备上实现高速执行。
客户只需提供开发的算法,我们就可以通过解读其内容,设计出适合算法的架构。 支持Caffe、Keeras、TensorFlow、PyTorch等各种框架。 凭借数十年的数字电路设计和嵌入式软件开发经验,我们将尽最大的努力减轻客户负担,实现最佳解决方案。

边缘设备实装服务

为了在边缘环境中的FPGA和GPU等设备上实现算法,必须在熟悉目标设备特征和资源的基础上,根据架构设计和情况的不同,实现网络的轻量化。
本公司以FPGA为首,利用在作为AI芯片备受瞩目的TPU(Google TPU)、VPU(Intel Movidius Myriad X VPU)上的实装经验,从设备选定到实装都能满足客户的需求。

演示:使用FPGA快速执行语义分割(Zynq UltraScale +)

本公司已经在FPGA上实施了语义分割算法,并实现了处理时间40fps的高速化。
  1. 使用USB摄像机读取显示器上显示的行车记录仪图像
  2. 通过Zynq内的ARM对来自USB相机的图像,在FPGA上进行分割推论
  3. FPGA⇒向ARM传输推论结果,与输入图像一起输出到显示器
 
已实装的算法和目标设备 算法:PixelNet(http://www.cs.cmu.edu/~aayushb/pixelNet/
目标板:ZCU 102ZCU102(搭载Xilinx Zynq UltraScale+ ZU9EG )
※本公司根据上述算法更改了FPGA的网络配置,然后再学习。
处理时间 40fps
类别数 22个类别(道路、白线、汽车、行人等)

示范影片

我们将向您展示实时使用USB摄像头输入并执行语义分割的情况。
类别列表

在边缘设备上高速运行的实装要点

本公司在满足客户要求的同时,我们还结合目标设备和算法,设计实现高速运行的最佳架构。这些要点包括有“通过流水线提高吞吐量”和“将各处理层的输出CH方向实行并行化”等。
 
接下来,我们将介绍“通过流水线提高吞吐量”。
 
例如,如果您将下图所示的Conv(3×3)→Conv(3×3)→MaxPooling(2×2)等作为CNN来考虑,
  • 从前段的Conv1_1开始,当特征量输出满3行时,则开始下一段的Conv1_2的处理
  • 同样地,在MaxPooling中,从Conv1_2 开始,特征量输入满2行时,则开始处理
通过构建这样的流水线,可以提高整个算法的吞吐量。

开发实绩

姿态推测

在Zynq中安装客户开发的算法,开发了面向终端客户的演示系统。

通用物体检测

在SDSoC(Xilinx制高位合成工具)安装环境的开发以及对Zynq的初期安装。

面向车载区域分割

以FPGA、TPU、VPU为目标,探讨分割算法的部署。

开发流程

  • STEP01

    已学习算法
    (客户提供)
  • STEP02

    选定设备
  • STEP03

    设计架构
  • STEP04

    创建与验证代码
  • STEP05

    在实机上确认动作
    (处理时间等)
STEP01

已学习算法(客户提供)

本公司同时提供算法开发的设计服务。 根据客户的问题和要求,提供算法研究和设计等服务。
STEP02

选定设备

根据客户对成本、电力消耗等要求,我们可以提出最适合您的设备。
STEP03

设计架构

在理解设备特征、概算逻辑资源等的同时,设计架构以达到期望的处理时间。根据不同的情况,还将研究实行网络安装设备的轻量化。
示例)瓶颈问题处理的提取等
STEP04

创建与验证代码

创建代码,使其成为所研究的架构,创建后在工具上进行逻辑资源使用率和处理时间的概算及等效性验证(期待值比较)。以实装目标设备为目标,我们进行架构的再探讨⇔代码的修正/验证的迭代。
STEP05

在实机上确认动作(处理时间等)

将在工具上构建的代码实装在实机是上,并在实机上评估其处理时间和精度。

合作伙伴

Lattice Semiconductor
Lattice Semiconductor

三荣高科技是Lattice公司认定的sensAI设计服务合作企业
Xilinx
Xilinx

三荣高科技是Xilinx的联盟成员(Alliance Member)