[算法工具链][RDK X5]关于模型量化的精度问题

量化工具链:horizon_x5_open_explorer_v1.2.8-py310_20240926

板卡OS版本:3.4.1

在使用算法工具链量化一个进行姿态识别类任务的 onnx 模型时,出现若干问题。

该 onnx 模型为特制模型,基于 yolov5 进行魔改,使用 MobileNetV3 为 backbone ,head 输出如下:
[目标四点的 x、y 归一化坐标] <置信度> <目标类 id> <目标颜色 id>

在使用 PTQ 手段量化该 onnx 模型时,在包括更换 max、KL 等校准算法;修改 optimization 与 per_channel 等参数;更换部分节点修改部分尾部算子至 CPU 等精度优化手段,量化精度仍不及预期。

若将所有节点强制 int16 计算,那么精度会有比较明显的提示,但推理延时高到不能忍受。

同时,在部署阶段出现 quantized_model 与 bin 模型的推理结果不同。具体而言,使用 hb_verifier 进行测试时,随机推理的最大误差可达到 60。

问题:

  1. 在 rdk_model_zoo 内提供的分类模型中 MobileNet 类的模型在量化后掉点严重,这是否意味着使用 MobileNet 类型的模型不能应对较高精度的任务,需要更换对量化更加友好的模型(如 RepViT 等各类重参数化模型)来提高精度?
    2.按照算法工具链手册 6.3.6 模型精度分析 一节中,quantized_model 与 bin 模型的推理结果应当一致,那么造成他们之间误差的原因是什么,我要怎么做才能避免?

一些可能用到的文件:

rdkos_info.txt (20.6 KB)

量化编译与测试文件 提取码: rnjp