前言

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

normalize方式的解释

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

下面对这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)。

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐