(第2天)Image Preprocess before Machine Learing 圖像預處理

Wendyyao
6 min readDec 18, 2020

--

上次剛講完Data Preprocess,這次來介紹Image Preprocess,因為Image Preprocess牽涉的範圍比較廣,所以這邊先大致介紹圖片預處理的方法與理論

那….再說Image Preprocess之前,我們先來談談Image Proccessing

一 什麼是Image Processing

Image process可區分為Analogue Image Process(模擬圖像處理)跟Digital Image Process(影像處理),本次主題只先針對Digital Image Process做說明

digital image process(數位影像處理)

使用演算法對數位的圖像進行圖像處理,他允許更廣泛的應用於輸入數據。數字圖像處理的目的是通過抑制不必要的失真和/或增強某些重要圖像功能來改善圖像數據(功能),從而使我們的AI計算機 視覺模型可以從改進後的數據中受益。

而圖像不過是由介於0~255之間的數字組合成的二維陣列,他可由數學的f函數(x,y)表示,fxy)的任意點的值給出的是圖像在該點的像素值。

處理圖像的步驟如下:

1. Read image — 讀取圖像

我們必須透過一些方法去image dataset抓去我們所需要的圖片,可透過網路爬蟲的方式去收集大量的圖片資訊。

2. Resize image — 調整圖像大小

為什麼我們要調整圖像大小呢?因為不同的來源圖像大小各不相同,這樣演算法比較難處理,所以我們必須把這些標準resize成一個基本的大小

3. Remove noise(Denoise) — 消除雜訊

圖像的雜訊會影響訓練的準確度,所以必須消除雜訊,常見的方法為gaussian blur

在弄懂gaussian blur之前,必須先知道什麼是高斯函數與image filter

一維的高斯函數(Gaussian noise)

常態分布(英語:normal distribution)又名高斯分布(英語:Gaussian distribution), 是一個非常常見的連續機率分布

Image Filter(影像過濾器)

最常使用的方式:

A. 平滑化(濾除雜訊)

常用的方法有:均值濾波器, 中值濾波器,Gaussian Filter

B. 銳化(強化邊緣)

常用的方法有: Laplace Filter, Sobel Filter

所以說明gaussian blur其實是處理Image常見的方法。如果單從數學公式下去看高斯模糊,我是看不懂的,所以接下來我們會以用途下去反推,從用途 -> 生成矩陣 ->數學式去了解什麼是gaussian Filter

1. 用途

主要減少圖像雜訊以及降低細節層次,其視覺效果就像是經過一個半透明屏幕在觀察圖像

2. 生成矩陣

以下近似3*3 Gaussian Filter的generalized weighted smoothing filter矩陣, 圖像與3*3 Gaussian Filter做卷積將會達到濾除雜訊、低通、模糊化的效果。

為何對這個矩陣卷積就能將圖片模糊化?

卷積後會從九個點變一個點,當然會模糊化阿!!

為何對這個矩陣卷積就能將圖片模糊化?

簡單來說圖片的每一點都會跟矩陣的中心點卷積一次,也就是Sliding window的概念。邊角的點,由於周圍沒有點可以卷積,則補0。若想進一步了解我相當推薦以下這個教學影片。

如果要將圖片模糊化,為何不9個點相加除以9就好了?

不論是對任何圖像作低通,都不希望圖像失真,而降低圖像失真最好的辦法就是增加圖像中心點的權重,所以中心點的權重最高,越往邊角權重就越低!

那……該如何決定權重的比例呢?

好問題! 讓我們看第三點Gaussian Filter數學函式

3. 數學函式

步驟一 實際的Gaussian Filter由此方程式產生

步驟二 簡化計算,假設sigma = 0.707(根號0.5)

步驟三 Gaussian Filter的中心點(x,y)須為(0,0),下例為一個3*3的(x,y)值矩陣

將此矩陣的x,y值套入Gaussian Function正規化後就可以得到3*3的Gaussian filter了!

4. Segmentation and Morphology(smoothing edges)

上面我們學會了消除雜訊的方式,就是透過高斯模糊,這一步我們將會將影像分割,將背景與前景對象分離開來,並通過進一步去除噪點進一步改善分割效果。

參考:

https://kknews.cc/zh-tw/code/mbgoyeg.html

--

--