在開始介紹卷積神經網絡之前,覺得有必要先說一說計算機是如何讀解圖像語義的。在計算機中是採用什麼樣數據結構來保存圖像。只有理解這些內容我們還此基礎上開始研究讓給你計算機像人類一樣讀取圖片語義來做一些計算機任務。
我在西瓜視頻發佈相關視頻,賬號 zidea 頭像和簡書一致,希望大家多多關注。
其實用矩陣來保存一張圖像,通過將 3 維矩陣來表示一張圖像,可以理解將圖像切分一個一個小方塊 (pixel) 每個小方塊都有一個位置信息座標,pixel 顏色通過 RBG 來表示,可能還具有透明通道,或者帶有表示深度的通道,就用這些信息來表示一張圖像輸入給計算機。這樣這種表示存儲圖像方式比較低級,會丟失許多語義信息。
我們可以將圖像理解爲一個函數 其中 和 表示像素位置,輸出一個像素 RGB 值。
那麼計算機在面對這些只有位置和顏色的信息數據,想要得到更多信息就需要靠自己,因爲信息不足,這樣對於計算機來理解或者讀懂一張圖片的語義無形帶來困難。
以及有關圖像的一些問題,我們需要讀懂一張圖像就像知道圖像變化,計算機通過感知這些變化(邊緣變化),有了邊緣信息可以將圖像進行分隔具有一定含義區域。
爲了把握圖片 intensity 變化看層空間上變換,空間變化程度可以看成圖片的一些特徵,在邊和角是圖片。
我們可以將圖像處理爲灰度圖,在灰度圖中明暗可以 intensity 來描述圖片。這裏 intensity 可以簡單理解爲我們某一像素(點)對光感知程度。怎麼把這件事說清楚呢。我們看到物體是物體反射的光,發生不同顏色光以及光強度來反映一個物體。在計算機上我們將圖像數字化過程,就是給圖像每一個位置一個像素值,這個值可以分解爲多個通道,值大小表示感光的程度。這就是我們在計算機視覺中要研究的對象。
通過 3D 視圖形象地將我們如何通過灰度圖 intensity 來表示圖。接下來說一說卷積,
卷積
學習卷積神經也有一段時間,雖然已經瞭解到瞭如何將卷積應用到圖像進行運算來得到特徵圖,以及卷積如何應用圖片上進行濾波、降噪、銳化以及邊緣檢測。但是如何要深究卷積,還是有點摸不到頭腦。所以收集一些資料。
我們先把公式拋出來,大家先看一看,覺得有點陌生也不要緊,接下來我們就來詳細解釋這個公式由來以及其應用
- 是在 上可以積分的函數
- 大家可能已經注意到了
- 所謂積分就是曲線進行切分很小的間隔然後進行求和,其實所謂的積分就是求和
- 假設兩次抽取撲克牌概率是獨立
接下來用圖解方式給大家詳細介紹卷積,以及卷積的過程,假設我們有兩個骰子,每次一起投擲骰子。通過連線來表示兩兩組合。
如果我們找出兩個骰子數加起來爲 6 的組合,通過連線方式表達出來
同上,如果我們想要找出兩個骰子數加起來爲 8 的組合,通過連線方式表達出來。不過這樣連線看起來不是很舒服,所以我們可以通過翻卷得到就得到下面的形式,這就是卷積的由來。
這張圖
我們把一個骰子做行,另一個骰子作爲列組成一個矩陣,如果再次選擇讓兩個骰子數值相加得到某一個數值時,組合情況用顏色表示出來如以下幾張圖,就有點像將一張 paper 從右上角開始捲起。
卷積的特性
- 濾波Filtering
- 卷積Convolution
- 矩陣Matrix
- 顏色值Color values
- 卷積核 kernel:
空間頻率
卷積濾波用於修改圖像的空間頻率特性。
卷積的定義
- 一般卷積可以用於圖片的濾鏡效果,是對圖像
- 卷積是運算,用整數組成的矩陣掃過圖像
- 卷積在圖片上作用可以看作,通過將所有相鄰像素的加權值相加來確定中心像素的值
- 輸出經過過濾的圖像
- 卷積核就是放置權重的模版
卷積是如何處理圖片
通過將一個像素及其相鄰像素的顏色值乘以一個矩陣,也就是對應位置數值相乘。
<img src="./images/conv_001.png">
- 卷積的像素
- 像素的值
- F 係數
- V 表示輸出像素
卷積核進行旋轉 180 度後,再去做卷積操作,如果不進行旋轉卷積核的操作叫做相關,其實通常卷積核都是對稱的。可以將我們神經網絡學習到卷積核
<img src="./images/conv_003.png">
卷積的性質
- 疊加性:
- 平移不變性:
- 交換律
- 結合律
- 分配律
- 標量
邊界填充
一般經過卷積操作的圖像會變小,所以爲了保持輸入和輸出圖像一樣大小,需要在做卷積前對邊界進行填充。
- 拉伸填充
- 鏡像填充
- 0 填充
平滑和銳化
<img src="./images/conv_005.png">
紋理特徵(Texture Features)
形態特徵(Morphological Features)
圖像平滑
根據某一個像素其周圍值來重新計算得到改點的新的值從而實現平滑。