1. 程式人生 > >【CV】影象標準化與歸一化

【CV】影象標準化與歸一化

使用深度學習在進行影象分類或者物件檢測時候,首先需要對影象做資料預處理,最常見的對影象預處理方法有兩種,正常白化處理又叫影象標準化處理,另外一種方法叫做歸一化處理,下面就詳細的說一下這兩種處理方法。

一:影象標準化處理

標準化處理的公式如下:

tensorflow中對影象標準化預處理的API函式如下:

tf.image.per_image_standardization(image)
- image 引數表示一個三維的張量(tensor) 分別對應影象高、寬、通道數目(height, width, channels)

函式返回處理以後的影象,大小與通道數目與原影象保持一致。 使用opencv+tensorflow對影象進行標準化處理的程式碼演示如下:

執行效果

解釋

影象標準化是將資料通過去均值實現中心化的處理,根據凸優化理論與資料概率分佈相關知識,資料中心化符合資料分佈規律,更容易取得訓練之後的泛化效果, 資料標準化是資料預處理的常見方法之一

二:影象歸一化處理

影象歸一化最常見的就是最大最小值歸一化方法,公式如下:

基於OpenCV實現影象最大最小值歸一化的程式碼演示如下:

原影象素值輸出

歸一化之後畫素值:

解釋

原圖與歸一化之後的執行結果完全一致,說明歸一化不會改變影象本身的資訊儲存,但是通過打印出來的畫素值可以發現,取值範圍從0~255已經轉化為0~1之間了,這個對於後續的神經網路或者卷積神經網路處理有很大的好處,tensorflow官方給出mnist資料集,全部採用了歸一化之後的結果作為輸入影象資料來演示神經網路與卷積神經網路。

為答謝作者,幫推廣:

關注【OpenCV學堂】

長按或者掃碼二維碼即可關注