专栏算法工具链【学习笔记】地平线算法工具链培训第一周

【学习笔记】地平线算法工具链培训第一周

puppy2023-11-22
138
0

常见图像格式

目标:掌握不同图像之间的区别和联系

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校准:集成多种校准方法的搜索策略

  1. 确定量化敏感节点

  2. 遍历所有量化敏感节点,尝试KL,Max和Max-0.99995校准方法,选出最佳的,得到Mix校准模型

  3. 评估几个校准模型的误差,输出最优模型

default校准:从系列校准话参数中获得效果较好的组合

地平线天工开物芯片算法工具链概述

引言

XJ3

XJ3

面对车载

J5

高效智能原生支持,低延迟,高效率

安全岛系统监测和故障工作

双核地平线BPU加双核P6 DSP和八核A55 CPU

地平线天工开物芯片算法工具链使用指南

OpenExplrer

OpenExplrer基本能力

  1. 模型量化:将训练好的深度神经网络的权值】激活值等从高精度压缩至低精度的操作过程,且量化后模型精度与量化前尽可能接近,降低功耗,提升计算速度,减少内存和存储占用

量化方案:PTQ为第一选择

  1. 模型优化编译:计算拆分,指令并行,计算融合

  2. 模型部署:为芯片提供嵌入式端预测库,实现每个计算在最合适器件上的最优调度策略

  3. 调试工具与示例:转换工具,性能测评工具,仿真推理工具,一致性对齐工具,精度调试工具,性能调试工具

工具链使用流程与建议

地平线开发者社区-产品中心-资源中心

http://developer.horizon.ai/resource

板端部署-LibDNN

  • 适配地平线所有芯片

  • 异构调度,无需开发者干预

  • 接口简单易用

  • 支持模拟器端和板端推理

DSP开发

RPC只需几个接口就可以完成AMR端和DSP端的功能调用

算法工具链
杂谈
评论0
0/1000