芯片型号:J3
天工开物开发包 OpenExplorer 版本:horizon_xj3_open_explorer_v2.6.4-py38_20240319
问题定位:参考官方的流程进行qat,编译得到hbm后推理并用自己的后处理代码离线评估时,发现部分指标下降很大,特别是分割的指标,检测的指标还好
首先进行浮点训练,得到float-checkpoint.ckpt,评估得到精度指标如下:

进行qat训练,得到qat-checkpoint.ckpt,评估得到精度指标如下:

再进行int_infer评估得到指标如下:

在x86上经过float-qat-int_infer后,从指标上来看基本上没有损失,于是进行最后的编译步骤,得到上板的模型hbm,再编写部署代码,在板端生成推理数据后,传至开发主机,基于评测代码进行离线评估,精度指标如下:


分析精度损失:
模型在板端量化部署后整体表现出“基础检测坚挺、精细分割与小目标受损严重”,核心的大目标检测能力例如Driving_area 的 Box/Mask mAP50 仅从 0.970/0.968 微跌至 0.958/0.957(-1%),整体 Box mAP50 从 0.382 降至 0.352(-3%),均处于 INT8 量化的正常损耗水位;但在对边缘贴合度要求高的指标和小目标类别上出现明显掉点,整体 Mask mAP50-95 从 0.237 跌至 0.157(-8%),Driving_area 的 Box mAP50-95 降至 0.802(-14.7%),同时小目标如 Road_cone 的 Mask mAP50 降至 0.121(-6.4%),Bollard 和 Obstacle 的 Mask P 更是分别跌至 0.196(-14.5%)和 0.173(-17.9%);灾难级崩盘出现在 mask 和 curb 类别,mask 的 Mask mAP50 和 mAP50-95 分别从 0.984、0.867 暴跌至 0.571(-41.3%)和 0.310(-55.7%),其 Box mAP50-95 也跌至 0.522(-36.9%),而细长不规则的 curb 类别 Mask mAP50 亦从 0.272 降至 0.167(-10.5%)
请问由int_infer到最后板端实际推理的指标下降原因可能出在哪里,后续有什么精度优化方向吗
模型在板端量化部署后整体表现出“基础检测坚挺、精细分割与小目标受损严重”,核心的大目标检测能力例如Driving_area 的 Box/Mask mAP50 仅从 0.970/0.968 微跌至 0.958/0.957(-1%),整体 Box mAP50 从 0.382 降至 0.352(-3%),均处于 INT8 量化的正常损耗水位;但在对边缘贴合度要求高的指标和小目标类别上出现明显掉点,整体 Mask mAP50-95 从 0.237 跌至 0.157(-8%),Driving_area 的 Box mAP50-95 降至 0.802(-14.7%),同时小目标如 Road_cone 的 Mask mAP50 降至 0.121(-6.4%),Bollard 和 Obstacle 的 Mask P 更是分别跌至 0.196(-14.5%)和 0.173(-17.9%);灾难级崩盘出现在 mask 和 curb 类别,mask 的 Mask mAP50 和 mAP50-95 分别从 0.984、0.867 暴跌至 0.571(-41.3%)和 0.310(-55.7%),其 Box mAP50-95 也跌至 0.522(-36.9%),而细长不规则的 curb 类别 Mask mAP50 亦从 0.272 降至 0.167(-10.5%)
请问由int_infer到最后板端实际推理的指标下降原因可能出在哪里,后续有什么精度优化方向吗



