强大的低功耗嵌入式AI方案海思Hi3519AV100介绍

海思Hi3519AV100是2018年10月在北京安防展展会上第一次进入我们视线的,然后11月初北京一家公司委托我们先研究一下,并从代理拿到初始版本的SDK资料,本人认真看了芯片DATASHEET,当时发觉比公司主推的Hi3519V101+Intel Movidius Myriad 2 MA2450强大,就决定动手做这个芯片方案,为了降低风险,我们只能先出自己的V1.0版本开发板玩玩,等软件工程师和硬件工程师调试SDK软件跑起来,我们才答应北京客户,进行Hi3519AV100项目定制。2019年1月底样机回来,能跑Hi3519AV100 的SDK程序,我们就立刻动手给北京客户定制Hi3519AV100的产品,反而本公司的对外销售的开发板没那么快出来,客户定制优先。本公司2019年3月份才对外出售Hi3519AV100方案的开发板,博客这边一直没多少时间来打理,去年写《图像识别VPU——易用的嵌入式AI支持深度学习平台介绍》里面介绍了Hi3559A这个更强悍的嵌入式AI平台,但是由于海思不对小公司开放SDK资源,我们就没必要这里详细介绍。
时间来到2019年6月,发觉这个上半年推出很多价格适中低功耗嵌入式AI方案,比较有代表性的:
英伟达的JETSON NANO
(JETSON TX1的简化版本,注意是TX1的简化,核心板把价格降低到1000元内,性能是相当不错,不过看到那个散热片我们就不考虑了。当然如果你的产品放在室内使用,这个NANO还是相当不错的,因为性能强大是摆在那里的)
GOOGLE的CORAL USB(TPU)加速棒
)GOOGLE 的CORAL USB 这个TPU性能也是相当强悍,我们还没玩过,不好评论,也是学人家Intel Movidius NCS加速棒模式)
瑞芯微RK3399PRO,RK1808加速棒
(RK3399PRO的AI核就和Hi3519AV100 NNIE的AI相当类似,ARM 方面的性能RK3399PRO比Hi3519V100强悍,功耗比Hi3519AV100大多了,用在室外我们还是不敢拿来给客户做产品,RK1808加速棒也是学人家Intel Movidius NCS加速棒模式)
百度基于赛灵思Zynq的EdgeBoard(比较贵)
还有RISC-V+KPU低成本方案(超级便宜)
加上去年主推的Intel Movidius Myriad X MA2485(今年才发布支持树莓派OpenVINO开发包,本人上个月才在树莓派3和RK3288平台上面跑通车牌识别和人脸识别的例子,基于l_openvino_toolkit_raspbi_p_2019.1.094 包,本公司VPU模组板子正在做)

说实在的,我们小公司精力也有限,有现成的客户定制,就做对应的芯片方案,其他没时间折腾,而且Hi3519AV100软硬件资料SDK比较容易搞到手。详细介绍Hi3519AV100前,我们这里提示一下:
海思芯片命名比较头疼(很多客户反馈),单单在安防监控IPC网络摄像机领域,Hi3519AV100和Hi3519V101、Hi3519V100性能相差非常遥远,我们图-2看到Hi3519AV100不单单是双核CORTEX-A53+IVE,而且增加支持深度学习的NNIE和DSP;Hi3519V101只是CORTEX-A17+CORTEX-A7+IVE组合而已,不带支持深度学习的加速引擎,所以本公司去年推出的Hi3519V101 +VPU,就是必须外加Intel Movidius Myriad 2 MA2450 VPU芯片才能跑Caffe深度学习算法(必须是C/C++程序),而最差劲的Hi3519V100已经停产,这3个Hi3519芯片型号工艺制程不一样,所以性能就不一样。都叫Hi3519,但是后缀的字母和数字不一样,性能相差非常大,很多客户被搞晕了。在做IPC(网络摄像机)产品方面,海思还有一个性价比很高的型号叫Hi3516,这个型号衍生至少9个后缀,性能也相差非常大,这里就不多说了,见海思官网:http://www.hisilicon.com/en/Products/ProductList/Surveillance 。其他拿来做NVR-DVR-机顶盒-手机等等型号这里也不描述,我们这里只关注图像识别的平台。

Hi3519AV100我们可以从下图图-1看看Hi3519AV100应用框图。

图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第1张图片
图-1 Hi3519AV100应用框图

Hi3519AV100是一颗面向监控 IP 摄像机、运动相机、全景相机、后视镜、航拍无人机、双目机器人等多个产品领域推出的高性能、低功耗的 4K Ultra HD Mobile Camera SOC(台积电12nm工艺)。

Hi3519AV100 MIPI接口4-LANE模式可以同时接3个CMOS SENSOR, 2-LANE模式可以同时接5路CMOS SENSOR。内置高性能全景拼接引擎,可实现4K级的2~4实时视频全景拼接。主摄像头 ISP0支持4K x 2K(3840 x 2160)@30fps 编码,用于 SD 卡存储 + 1080p@30fps 子码流编码并通过网口或 USB 送给无线传输模块。ISP1/2 接向双目摄像头,采用 DPU 模块提取双目深度图,送飞控 MCU 用于避障。ISP3/4 接朝下的单目或双目摄像头,在 向量DSP 运行 SLAM 算法,计算结果送飞控MCU 用于悬停。
NNIE (寒武纪AI核)是一个强大的可编程神经网络推理引擎,用于运行人脸识别/检测、目标检测或手势识别算法。
图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第2张图片
图-2 Hi3519AV100芯片内部结构图

从上图-2我们可以看到Hi3519AV100还是比较强悍的:
1、2*ARM Cortex [email protected],32KB I-cache,32KB Dcache /256KB L2 cache
2、支持 Neon 加速,集成 FPU 处理单元
3、DSP集成Tensilica Vision P6 DSP@630MHz,32KB I-Cache/32KB I-RAM/512KB Data RAM, 0.3Tops 神经网络运算性能,支持 Huawei LiteOS
4、支持DDR4
图像识别的芯片现在最差的都得备DDR3的内存了,而Hi3519AV100是外接DDR4 内存芯片,深度学习访问内存速度是很关键的指标,DDR3还是比较落后。
5、NNIE
支持 AlexNet、VGG、ResNet、GoogLeNet 等多种分类神经网络
支持 Faster R-CNN、SSD、YoloV2 等多种目标检测神经网络
2.0Tops 神经网络运算性能
支持完整的 API 和工具链(编译器、仿真器),易于适配客户定制网络
(做过深度学习算法的朋友对上面列的算法应用很熟悉了,呵呵)
Hi3519AV100板上集成NNIE核支持深度学习:
加速引擎 NNIE 是一款基于 CNN、RCNN 等神经网络结构的深度学习专用加速器,可
用于图片分类、目标检测等应用场景。

NNIE性能:
支持深度学习算法AlexNet、VGG、ResNet、GoogLeNet 等多种分类神经网络
支深度学习算法Faster R-CNN、SSD、YoloV2 等多种目标检测神经网络
2.0Tops 神经网络运算性能
支持完整的 API 和工具链(编译器、仿真器) ,易于适配客户定制网络

NNIE 加速引擎特性如下:
支持 N * N 卷积
支持 Pooling(Max 和 Average)
支持 Stride
支持 Pad
支持激活函数(Relu、Sigmoid 和 TanH)
支持 LRN 运算
支持 BN(Batch Normalization)
支持向量与矩阵的乘加运算(Inner Product)
支持 Concat
支持 Eltwise
支持 8bit 的数据与参数模式
支持数据与参数位宽可配置
支持参数压缩和参数稀疏
支持输入图像为单通道(灰度图)和三通道(RGB 格式)
支持图像预处理(均值化和像素值缩放)
支持图像批处理
支持中间层结果上报

在海思SDK开发包的路径:Hi3519AV100R001C02SPC010\ReleaseDoc\zh\01.software\board\SVP下面,有一个《HiSVP 开发指南.pdf》和《HiSVP API 参考.pdf》
(提示:这些资料不得对外随便公布,必须采购华为海思Hi3519AV100芯片得到代理授权拿到资料,才能在公司内部公开的,所以本人也遵守一定原则)
图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第3张图片
图-3 Hi3519AV100 NNIE介绍1
图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第4张图片
图-4 Hi3519AV100 NNIE介绍2
图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第5张图片
图-5 Hi3519AV100 NNIE开发流程

我们从以上3个图片可以看到一些深度学习的算法的知识,深度学习模式训练和开发都是在PC端或者借助云端来处理,而最终程序是放在SoC Hi3519AV100板子上面运行,总之内容很多很大,这里就不搬弄过来了。
Hi3519AV100板上集成向量DSP:
向量DSP (Tensilica Vision P6 DSP@630MHz, 0.3Tops 神经网络运算性能)是给视觉处理加速的专用处理器,具有可编程的能力,基于 DSP 既可以开发供智能分析算法用的一系列基础运算功能,也可以实现复杂的算法。Hi3519AV100 支持 1个 向量DSP.
DSP 有如下主要规格点:
支持标量定点和浮点运算;
支持矢量定点和(单精度)浮点运算;
支持直方图统计加速;
支持 Gather/Scatter 操作;
支持 ICache 大小为 32KB,不支持数据 DCache;
支持 32KB 大小的 IRAM;
支持总共 512KB 大小的 DRAM,DRAM0 和 DRAM1 各 256KB;
支持 18 个电平触发中断;
支持 Input Queue 和 Output Queue;
支持内置 IDMA 用于在片上 DRAM 和 DDR 之间交换数据;
支持 JTAG 调试。
Hi3519AV100板上集成DPU:
DPU(Depth Process Unit)对输入的左图像和右图像经过校正和匹配计算得出深度图。
DPU 有如下主要规格点:
支持校正和匹配,可同时使用,也可单独使用;
支持左图和右图同时校正;
支持最大分辨率 1080P;
支持最大搜索视差数目 224;
支持起始视差可配置,范围 0~64;
只支持单分量输入;
支持亚像素深度图输出;
只支持以右图为参考图像,左图作为搜索图像;
匹配支持左图宽度大于右图宽度;
校正支持左图和右图分辨率不同,输入输出分辨率不同。
Hi3519AV100板上集成IVE:
IVE (Intelligent Video Engine)模块提供智能分析算法中所用到的一系列基础运算功能,以及部分耗时较大的特殊功能,是智能分析系统中的硬件加速模块。支持 IVE 2.1 智能算子,支持特征点检测、光流、计算机形态学处理等多种算子硬件加速。
IVE 模块支持如下功能特点:
DMA:支持直接拷贝、间隔拷贝、内存填充。
Filter:支持 5x5 模板滤波。
CSC:支持 YUV2RGB、YUV2HSV、YUV2LAB、RGB2YUV 颜色空间转换。
FilterAndCSC:支持 5x5 模板滤波和 CSC 的复合功能。
Sobel:支持 5x5 模板 Sobel-like 梯度计算。
MagAndAng\Canny:支持 5x5 模板梯度幅值和幅角计算、Canny 边缘提取。
Erode:支持 5x5 模板腐蚀。
Dilate:支持 5x5 模板膨胀。
Thresh\Thresh_S16\Thresh_U16:支持图象阈值化处理。
And\Or\Xor:支持两幅图象相与、或、异或。
Add\Sub:支持两幅图象相加权加、减。
Integ:支持积分图计算。
Hist:支持直方图统计。
Map:支持对图像通过 256 级 map 映射赋值。
16BitTo8Bit:支持 16bit 数据到 8bit 数据线性转换。
OrdStatFilter:支持顺序统计量滤波:中值滤波、最大值滤波、最小值滤波。
NCC:支持两相同大小图像互相关系数计算。
CCL:支持连通区域标记。
GMM:支持灰度图与 RGB 图的混合高斯背景建模。
LBP:支持简单局部二值模式计算。
NormGrad:支持归一化梯度计算。
LKOpticalFlow:支持 LK 光流跟踪。
STCorner:支持 ShiTomasi 角点检测。
GradFg:支持梯度前景运算。
MatchBgModel\UpdateBgModel:支持背景匹配、背景更新。
ANN_MLP_Predict:支持 ANN_MLP 预测。
SVM_Predict:支持 SVM 预测。
SAD:支持分块计算两幅图像对应像素差值绝对值的累加和。
Resize:支持双线性、区域图像缩放。
GMM2:支持灰度图、RGB 图的快速混合高斯背景建模。
CNN_Predict:支持卷积神经网络计算。
支持单独进行软复位。
支持 SP400、SP420 (semi-plannar 420)、SP422 (semi-plannar 422)、package、planar
等输入格式。
支持 SP400、SP420、SP422、package、plannar 等输出格式。
部分算子支持读写地址非 16-byte 对齐。
在海思SDK开发包的路径:Hi3519AV100R001C02SPC010\ReleaseDoc\zh\01.software\board\SVP下面,有一个《HiIVE API 参考.pdf》;解压SVP_PC.rar里面的HiIVE_PC_V2.1.0.7_64bit.tar.gz,也得到《HiIVE工具使用指南.pdf》
(提示:这些资料不得对外随便公布,必须采购华为海思Hi3519AV100芯片得到代理授权拿到资料,才能在公司内部公开的,所以本人也遵守一定原则)
Hi3519AV100视频输入接口介绍:
支持 12-lane Image Sensor 串行输入,支持 MIPI/subLVDS/HiSPI/SLVS-EC 多种接口;
最大可支持 5 路 Sensor 串行输入;
支持12-lane/8-lane+4-lane/4-lane+4x2-lane等多种组合方式;
最大输入分辨率:7680x4320;
支持 10/12/14 bit Bayer RGB DC 时序视频输入;支持 BT.656、BT.1120 视频输入;
支持通过 MIPI 虚拟通道输入 1~4 路 YUV。
Hi3519AV100 ISP与图像处理介绍:
ISP 支持多路时分复用,可处理多路 sensor 输入视频;
支持 3A(AE/AWB/AF)功能,3A 参数用户可调节;
支持去固定模式噪声(FPN);
支持两帧曝光 WDR 及 Local Tone Mapping,支持强光抑制、背光补偿;
支持坏点校正、镜头阴影校正;
支持多级 3D 去噪,提供优秀的低照度图像效果,去除运动拖尾和色噪;
支持 3D-LUT 色彩调节;
支持图像动态对比度增强及边缘增强处理;
支持色差校正(CAC)及去紫边;
支持去雾;
支持 6-Dof 数字防抖及 Rolling-shutter 校正;
支持镜头畸变几何校正及鱼眼矫正;
支持图像 90 度/270 度旋转;
支持图像 Mirror、Flip;
支持多路缩放输出,缩放倍数:1/15.5~16x;
支持最大 8 个区域的编码前处理 OSD 叠加;
提供 PC 端 ISP 调节工具。
Hi3519AV100其他功能介绍
支持H.264/H.265编码和解码;
支持HDMI2.0输出接口;
支持视频拼接硬件加速引擎;
支持音频接口,集成 Audio codec,支持 16bit 语音输入和输出;
支持音频编码和解码;
支持1000M网口;
Hi3519AV100功耗
台积电12nm工艺;(这个12nm工艺确实很不错)
典型场景(4K x 2K(3840 x 2160)@30fps编码+ 神经网络算法)功耗:1.9W
支持多级省电模式;
最大功耗场景:环境温度70°,结温110°,运行4K +神级网络等等模块全部打开:功耗2.9W,不过这种情况几乎很少出现。
Hi3519AV100工作温度
温度范围:-25°C——70°C,商业级,本公司高低温实际测试结果。

Hi3519AV100 SDK包
Hi3519AV100的SDK包需要安装在ubuntu16.04 LST 64bit环境,这里就不累赘,SDK包里面有介绍如何安装SDK,简单的几个命令。不过这里还是提醒一下从来没安装过海思SDK包的朋友,由于在ubuntu16.04 LST 64bit环境,下面几个命令需要做的:
使用root登录ubuntu,
1、./sdk.unpack: run_command_progress_float: not found
#dpkg-reconfigure dash,选择no

2、/bin/sh: /opt/hisi-linux/x86-arm/arm-himix200-linux/bin/arm-himix200-linux-size: No such file or directory
#apt-get install lib32z1-dev

3、"mkimage" command not found - U-Boot images will not be built
#apt-get install u-boot-tools

4、/usr/bin/ld: cannot find -lncurses
#apt-get install libncurses5-dev

5、makeinfo: command not found
#apt-get install texinfo

最后提到Hi3519AV100 SDK包里面的SVP_PC
1) HiIVE_PC_Vx.x.x.x.rar
IVE PC端组件包,包含/tool目录,文档《HiIVE工具使用指南.pdf》
2) HiSVP_PC_Vx.x.x.x.rar
SVP PC端组件包,包含include/lib/sample/tool
3) HiDPU_PC_Vx.x.x.x.rar
DPU PC端组件包,包含tool

图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第6张图片
图像识别——强大的低功耗嵌入式AI方案海思Hi3519AV100介绍_第7张图片

上面是公司自己做的Hi3519AV100核心板和开发板,淘宝上面有卖,输入Hi3519AV100应该能看到,或者链接:https://shop472233692.taobao.com/?spm=2013.1.0.0.304c52653E7qVS。 还有本人的联系方式QQ:2505133162周1---周6在线。总之做这个Hi3519AV100需要一定实力,而且对深度学习一些经典Caffe算法在PC上的开发需要一定功力。图-3、图-4 和图-5 NNIE开发指南,涉及的知识点还比较多。Hi3519AV100上面提到Hi3519AV100除了能做人脸识别,而且能做手势识别的产品,本人也希望更多算法软件公司基于这些嵌入式AI平台,在边缘端做出更多识别算法服务老百姓,比如现在一直存在的反人类的抢夺和拐卖儿童的事件,配合人脸识别、手势识别、行为分析和云端处理,让犯罪份子无地藏身等等。越往后,嵌入式AI的芯片越强大,比如1W功耗10.0T运算能力很快就出来。
这些天(2019-05-25)贸易战打得很火,这对于我们这些科技公司杀伤力很大,活下去是短期最大目标了,还好海思拿到ARM公司的ARMV7和ARMV8的永久授权,台积电那边也支持这些大客户,应该对Hi3519AV100这些都没有影响。当然,我们公司不单单拿海思的芯片设计嵌入式AI产品,也拿Intel Movidius的芯片做产品,后面还会做其他平台的产品,根据自己的实力,哪个好用,资料容易搞到,性价比最优,就选择谁。从上面的介绍,Hi3519AV100性价比真的还不错的。