QAT方案中为了将常见的输入预处理放入模型中,提供了专用的前处理算子centered_yuv2bgr/centered_yuv2rgb(依据训练时的数据格式进行选择),具体使用方式可参考用户手册 RGB888部署章节), 这两个预处理算子有三个作用:
数据归一化
量化
图像格式转换,参考公式如下
需要注意的是,由于该算子为定点算子,因此:
- 算子输入需要是int8的数据(yuv444128)
算子输出也是int8
因此若要将原模型输入与插入该节点后的处理结果做对比,需要使用yuv444128的数据作为其输入,并将它的输出和经过归一化+量化后的数据做对比。
对比发现部分数值存在些许差异,是因为将数据处理成nv12会有一定的损失,这个是正常的,关于nv12、yuv444等数据格式的介绍可参考常见图像格式。
参考代码:
