单目标跟踪模型转换过程中部分层余弦相似度过低

转换单目标跟踪模型(两个分支,cls和reg),reg分支部分中间层的余弦相似度出现了异常低值,量化后的模型已经经过长时间验证,发现在部分场景下,reg分支的输出结果相较于onnx模型波动较大,由于跟踪问题较为特殊,模型误差会随着时间累积,因此需要量化后的模型结果尽可能接近原始模型。请问如何改善余弦相似度过低的问题。附件中是原始的onnx模型和转换日志。

sot_20221116155159.zip

1. 建议先更换校准方法,从default开始进行尝试;不行的话,将 calibration_type 配置为 max,并配置 max_percentile 为不同的分位数(取值范围是0-1之间),推荐您优先尝试 0.999990.999950.99990.99950.999,通过这五个配置观察模型精度的变化趋势,最终找到一个最佳的分位数;尝试启用 per_channel,可与之前任意校准方式配合使用。

2. 可以尝试适当增加或减少数据数量(通常来说检测场景相较于分类场景需要的校准数据要少;此外可以观察模型输出的漏检情况,适当增加对应场景的校准数据);

3. 指定算子(满足一定要求)运行在 CPU 上请通过yaml文件中的 run_on_cpu 参数,通过指定节点名称将对应算子运行在cpu上(参考示例:run_on_cpu: conv_0),可以尝试将相似度较低的算子指定跑在CPU上;

4. 预计下个月会新发版,建议届时尝试新版工具链再次尝试一下;

5. 预计在新发版工具链中会提供debug调试工具,欢迎尝试使用!