常见图像格式
目标:掌握不同图像之间的区别和联系
RGB:每个像素点都会存储红绿蓝三个颜色通道的亮度值(0-255)
纯白(255,255,255)纯黑(0,0,0)
BGR:只是红绿蓝三个通道排列顺序不同,其他与RGB一样,常用于OpenCV中
RGB/BGR每个像素点必须同时存储R,G,B三个通道,不适合做视频图像处理
YUV:采用亮度—色度分离,Y为亮度UV为色度,每个通道数值范围为(0-255)
只有Y为黑白灰度图,可以识别图像内容,UV只能看见色彩
视频处理领域可减少UV分量来减少数据量。根据Y和UV占比分为YUV444,YUV422,YUV420
YUV444每个像素24bits,YUV422每个像素16bits,YUV420每个像素12bits
4为最多4个Y共享一对UV
YUV420根据数据排布方式不同分为420P和420SP,Y相同,UV略不同
420P:Y连续存放,U连续存放,V连续存放
420SP:Y连续存放,UV交替存放
NV12属于YUV420SP,每四个Y共用一组UV
根据Y和UV分量是否存在一片连续内存空间,分为NV12和NV12_SEPARATE
NV12数据量是RGB等图像格式的一半,是嵌入式端部署图像的首选

Gray灰度图
每个像素点只包含一个亮度值(0-255),只包含亮度信息,图像数据量较小,在对图像亮度比较敏感场景有重要价值,如人脸识别
图像格式转换

数据排布与跨距对齐
数据排布
数据排布:四个维度的排布方式
批量大小N,特征图通道数C,特征图高度H,特征图宽度W
NV12不适用NHWC/NCHW
NHWC:在内存按照CWHN顺序存储,不同通道同一位置像素会存储在一起

NCHW:按照WHCN顺序排序,一个通道内部所有数据存储在一起


跨距对齐
图像存储在内存中每一行所占空间的实际大小
Padding做跨距对齐,原始图像为8位深灰度图,Stride=32bits,Height=20bits,Width=40bits,则Padding=2bits

去除对齐:绿色BPU算子,灰色CPU算子

深度学习模型量化
为什么需要量化
深度神经网络推动了AI的发展,需要设置更加高效的网络结构或者通过压缩、编码等方式减少网络规模
更小的模型占用
更少的工作内存和用于激活的缓存
更快的推理速度
更低的功耗
量化
用离散的符号或者整数值来近似连续信号的过程
均匀量化和非均匀量化


PTQ:使用一批校准数据对训练好的模型进行校准,以获取截断范围(量化阈值),后用其进行量化。简单快速、无需训练
QAT:将训练过的模型量化后再进行重训练,相对复杂

地平线支持的量化方式
PTQ,QAT两种
对称量化

max校准,kl校准

mix校准:集成多种校准方法的搜索策略
确定量化敏感节点
遍历所有量化敏感节点,尝试KL,Max和Max-0.99995校准方法,选出最佳的,得到Mix校准模型
评估几个校准模型的误差,输出最优模型
default校准:从系列校准话参数中获得效果较好的组合

地平线天工开物芯片算法工具链概述
引言
XJ3
XJ3
面对车载
J5
高效智能原生支持,低延迟,高效率
安全岛系统监测和故障工作
双核地平线BPU加双核P6 DSP和八核A55 CPU
地平线天工开物芯片算法工具链使用指南

OpenExplrer

OpenExplrer基本能力
模型量化:将训练好的深度神经网络的权值】激活值等从高精度压缩至低精度的操作过程,且量化后模型精度与量化前尽可能接近,降低功耗,提升计算速度,减少内存和存储占用
量化方案:PTQ为第一选择
模型优化编译:计算拆分,指令并行,计算融合
模型部署:为芯片提供嵌入式端预测库,实现每个计算在最合适器件上的最优调度策略
调试工具与示例:转换工具,性能测评工具,仿真推理工具,一致性对齐工具,精度调试工具,性能调试工具
工具链使用流程与建议
地平线开发者社区-产品中心-资源中心
http://developer.horizon.ai/resource






板端部署-LibDNN
适配地平线所有芯片
异构调度,无需开发者干预
接口简单易用
支持模拟器端和板端推理
DSP开发
RPC只需几个接口就可以完成AMR端和DSP端的功能调用

