理解核心组件和术语对于有效利用我们的转换工具至关重要。 本页介绍了一些您在浏览文档时会遇到的关键概念。转换是将模型格式进行转换的过程。 该格式决定了模型的存储和部署。从历史上看,Luxonis 设备发布了多个代际产品。 我们称它们为机器人视觉核心 (RVC) 平台,每个平台 都有自己的一套功能和要求。 在“硬件”部分可以找到更多信息。适用于特定 RVC 平台的模型格式:- RVC2 -
.superblob(以及旧版的 .blob) - RVC3 -
.blob - RVC4 -
.dlc
SHAVE
流式混合架构向量引擎 (SHAVE) 是 RVC2 VPU 上的硬件计算核心,负责执行神经网络工作负载。 在 DepthAI v2 中,模型被编译成 .blob 文件,每个文件都针对单个固定数量的 SHAVE 构建。 相比之下,DepthAI v3 引入了 .superblob 文件,该文件在一个模型文件中打包了所有可能的 SHAVE 配置 (有关更多信息,请参阅“推理”部分中“设置模型 SHAVE”部分)。 这使得在初始化管道期间动态选择所需 SHAVE 数量成为可能,从而提供了更大的灵活性,因为同一个模型文件可以在不同的 SHAVE 分配之间重用,而无需重新编译。量化是一种用于使 AI 模型更小、更快、更高效的方法。 这是通过降低模型权重和激活的精度来实现的。现代 AI 模型通常使用大量的数值数据,这些数据默认以 32 位浮点格式存储(一种精确但内存占用大的数字存储方式)。虽然这种精度在训练期间很有用,但在实际应用中运行模型时,它通常是过多的。这种简化会导致:- 更快的执行速度(需要处理的数据更少)
- 减少内存使用量(模型尺寸更小)
- 更低的功耗
- 准确性下降幅度最小(如果做得好)
对于我们的 RVC4 设备,我们使用 Qualcomm Neural Processing SDK 量化。 简而言之,它的工作原理如下:- 确定输入数据的范围(真实最小值和最大值)。
- 确定编码范围(编码最小值和最大值),确保其满足特定要求(例如,零表示)。
- 将每个 32 位浮点值转换为以下之一:
- 16 位浮点值,或
- 介于 0 和 255 之间的 8 位定点值。
在量化过程中,数据用于确定模型权重和激活的输入范围和编码范围。 选择良好的校准数据可以减少精度而不会显著丢失信息。为了实现这一点,它必须:- 代表模型在训练期间遇到的数据,并且
- 涵盖模型预期处理的完整值范围。
建议您使用验证图像构建校准数据集。使用更大、更多样化的校准集应该意味着量化后模型的整体性能 更好。