天天看點

海思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)。

繼續閱讀