天天看点

海思AI芯片(Hi3519A/3559A)方案学习(二十三)nnie上进行图像数据预处理(Normalize)的五种方式

前言

大家知道,深度学习算法模型在推理前,都会对图像数据进行预处理,即RGB三个通道上的数据(0~255) normalize成0~1以内的值。值得注意的是,normalize方式有好几种,而且不同的算法模型所采用的预处理方式还不太一样。这就要求在nnie开发中,将caffe算法模型转换成wk文件时,必须选择合适的预处理方式。否则可能会导致识别结果不正常。

normalize方式的解释

在使用Ruyistudio进行模型文件转换时,支持下面5中方式,如下所示

海思AI芯片(Hi3519A/3559A)方案学习(二十三)nnie上进行图像数据预处理(Normalize)的五种方式

下面对这5种方式分别进行解释:

1) mean file:

如果选择这种norm type, 就要选择一个后缀名为binaryproto的文件。 它是caffe框架中常用的一种均值数据格式。常见的做法就是统计train lmdb里面图像数据的均值(每个像素的每个channel累加和再除以image size)。其对应预处理方式是将待识别的图像每个像素值减去binaryproto里面对应的像素值。

2)channel mean value

该方式对应的均值文件就是里面含3个channel均值的txt文件,如mobilenet ssd的就是 127.5 127.5 127.5。 其预处理过程就是将图像上每个像素的三个通道数据分别减去127.5。注意,经过该预处理后,图像数据并没有normalize成0~1范围内。

3)data scale

顾名思义就是直接对图像数据除以255缩小到0~1内。1/255=0.0039216,但其缺省的scale值为1/256=0.0039062。

4)mean file with data scale

上面提到,光减去mean值,并不能使得图像数据落入到绝对值0~1范围内,所以,一般地,需要在这个基础上再做一个scale。

5)channel mean value with data scale

同上,每个像素的各个通道减去mean value后还得再除以mean value。  还是以mobilenet ssd为例子,减去127.5后还得再乘以scale值0.007843(约等于1/127.5)。

继续阅读