本页目录

  • 转换
  • RVC 平台
  • RVC 编译格式
  • 量化
  • 量化为何重要
  • 描述
  • 校准数据

概念

了解核心组件和术语对于有效使用我们的转换工具至关重要。 本页介绍您在浏览文档时会遇到的一些关键概念。

转换

转换是将模型格式进行转换的过程。 格式决定了模型的存储和部署方式。

RVC 平台

历史上,Luxonis 设备发布了多个世代。 我们将其称为 机器人视觉核心(RVC)平台,每个平台都有自己的一套功能和需求。 更多信息请参阅 硬件 部分。

RVC 编译格式

适用于特定 RVC 平台的模型格式:
  • RVC2.superblob(以及作为遗留格式的 .blob
  • RVC3.blob
  • RVC4.dlc

SHAVEs

流式混合架构向量引擎(SHAVEs)是 RVC2 VPU 上的硬件计算核心,负责执行神经网络工作负载。 在 DepthAI v2 中,模型被编译为 .blob 文件,每个文件针对固定数量的 SHAVEs 构建。 相比之下,DepthAI v3 引入了 .superblob 文件,将所有可能的 SHAVE 配置打包在一个模型文件中 (有关详细信息,请参阅 推理 部分中的“设置模型 SHAVEs”小节)。 这使得在管线初始化期间可以动态选择所需的 SHAVEs 数量,从而提供更大的灵活性,因为相同的模型文件可以跨不同的 SHAVE 分配重用,而无需重新编译。

量化

量化是一种用于使 AI 模型更小、更快、更高效的方法。 这是通过降低模型权重和激活值的精度来实现的。

量化为何重要

现代 AI 模型通常使用大量的数值数据,默认情况下这些数据以 32 位浮点格式存储(一种精确但占用内存的数值存储方式)。虽然在训练过程中这种精度是有用的,但在实际应用中使用模型时,通常不需要这么高的精度。这种简化带来了以下好处:
  • 更快的执行速度(处理的数据更少)
  • 更少的内存使用(模型体积更小)
  • 更低的功耗
  • 精度损失极小(如果处理得当)

描述

对于我们的 RVC4 设备,我们使用 Qualcomm Neural Processing SDK 量化 简而言之,其工作原理如下:
  1. 确定输入数据的范围(真实最小值和最大值)。
  2. 确定编码范围(编码最小值和最大值),确保其满足特定要求(例如零表示)。
  3. 将每个 32 位浮点值转换为:
    • 16 位浮点值,或
    • 0 到 255 之间的 8 位定点值。

校准数据

在量化过程中,使用数据来确定模型权重和激活值的输入范围以及编码范围。 选择合适的校准数据可以在不显著丢失信息的情况下降低精度。为实现这一点,校准数据必须:
  • 代表模型在训练期间遇到的数据,并且
  • 覆盖模型预期处理的所有数值范围。
建议从验证图像构建校准数据集。使用更大、更多样化的校准集应该意味着模型量化后的整体性能更好。