前言
大家知道,深度學習算法模型在推理前,都會對圖像資料進行預處理,即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)。