机器不学习:CNN 入门讲解1-什么是卷积
機(jī)器不學(xué)習(xí)(jqbxx.com)-機(jī)器學(xué)習(xí)好網(wǎng)站
我們第一部分先講 Convolution,到底什么是卷積,別忙,大家都用過(guò)某美顏軟件吧,
比如我老婆新垣結(jié)衣:
美的不要的不要的。。。。。
然后我銳化了一下,變成如下圖所示:
我們會(huì)發(fā)現(xiàn),銳化后的圖像邊緣細(xì)節(jié)的對(duì)比度加大了。
然后我強(qiáng)調(diào)邊緣,變成如下圖所示:
強(qiáng)調(diào)邊緣之后,圖像邊緣細(xì)節(jié)變的高亮,非邊緣圖像變動(dòng)暗淡或者模糊,邊緣被突出。
我說(shuō)你們,能不能別老盯著別人看!
看細(xì)節(jié)呀!
看變化啊!!
什么?!
管不住眼?
什么!????
還管不住手?????!
那我再放一張:
現(xiàn)在呢,看出來(lái)了嗎?
你們每天拍拍拍,有沒(méi)有想過(guò)是如何做到的呢?
對(duì),就是卷積(Convolution)
首先我們先來(lái)回顧一下卷積公式:
它的物理意義大概可以理解為:系統(tǒng)某一時(shí)刻的輸出是由多個(gè)輸入共同作用(疊加)的結(jié)果。
放在圖像分析里,f(x) 可以理解為原始像素點(diǎn)(source pixel),所有的原始像素點(diǎn)疊加起來(lái),就是原始圖了。
g(x)可以稱(chēng)為作用點(diǎn),所有作用點(diǎn)合起來(lái)我們稱(chēng)為卷積核(Convolution kernel)。
卷積核上所有作用點(diǎn)依次作用于原始像素點(diǎn)后(即乘起來(lái)),線性疊加的輸出結(jié)果,即是最終卷積的輸出,也是我們想要的結(jié)果,我們稱(chēng)為destination pixel.
我們來(lái)看看一張圖,你就懂了:
最左邊呢就是我們?cè)驾斎雸D像了,中間呢是卷積層,-8就是卷積的結(jié)果。
你肯定會(huì)問(wèn),我們?yōu)樯兑镁矸e核,destination pixel 的意義何在,別急,我先挖個(gè)坑,我們往下走。
我們先來(lái)看看銳化。
圖像的銳化和邊緣檢測(cè)很像,我們先檢測(cè)邊緣,然后把邊緣疊加到原來(lái)的邊緣上,原本圖像邊緣的值如同被加強(qiáng)了一般,亮度沒(méi)有變化,但是更加銳利。
(仔細(xì)想想卷積的物理意義,是不是仿佛有點(diǎn)卷積的感覺(jué))
但是,我們一般是什么操作去檢測(cè)邊緣呢?
我們先來(lái)看一,二階微分。
對(duì)于一維函數(shù)f(x),其一階微分的基本定義是差值:
我們將二階微分定義成如下差分:
我們首先我們來(lái)看邊緣的灰度分布圖以及將一二階微分作用于邊緣上:
我們可以看到,在邊緣(也就是臺(tái)階處),二階微分值非常大,其他地方值比較小或者接近0 .
那我們就會(huì)得到一個(gè)結(jié)論,微分算子的響應(yīng)程度與圖像在用算子操作的這一點(diǎn)的突變程度成正比,這樣,圖像微分增強(qiáng)邊緣和其他突變(如噪聲),而削弱灰度變化緩慢的區(qū)域。
也就是說(shuō),微分算子(尤其是二階微分),對(duì)邊緣圖像非常敏感。
很多時(shí)候,我們最關(guān)注的是一種各向同性的濾波器,這種濾波器的響應(yīng)與濾波器作用的圖像的突變方向無(wú)關(guān)。也就是說(shuō),各向同性濾波器是旋轉(zhuǎn)不變的,即將原圖像旋轉(zhuǎn)之后進(jìn)行濾波處理,與先對(duì)圖像濾波再旋轉(zhuǎn)的結(jié)果應(yīng)該是相同的。
可以證明,最簡(jiǎn)單的各向同性微分算子是拉普拉斯算子。
一個(gè)二維圖像函數(shù)f(x,y)的拉普拉斯算子定義為:
那么對(duì)于一個(gè)二維圖像f(x,y),我們用如下方法去找到這個(gè)拉普拉斯算子:
這個(gè)結(jié)果看起來(lái)太復(fù)雜,我們能不能用別的方式重新表達(dá)一下,如果我們以x,y 為坐標(biāo)軸中心點(diǎn),來(lái)重新表達(dá)這個(gè)算子,就可以是:
等等,這個(gè)是不是有點(diǎn)和上面提到的卷積核(Convolutional kernel)有點(diǎn)像了?
我們?cè)倩氐嚼绽顾阕?#xff1a;
由于拉普拉斯是一種微分算子,因此其應(yīng)用強(qiáng)調(diào)的是圖像中的灰度突變。
將原圖像和拉普拉斯圖像疊加在一起,從而得到銳化后的結(jié)果。
于是模板就變?yōu)?#xff1a;
注:如果所使用的模板定義有負(fù)的中心系數(shù),那么必須將原圖像減去經(jīng)拉普拉斯變換后的圖像,而不是加上他。
上面這個(gè),就是一個(gè)銳化卷積核模板了。原始邊緣與它卷積,得到的就是強(qiáng)化了的邊緣(destination pixel),圖像變得更加銳利。
更詳細(xì)的介紹,請(qǐng)移步:http://blog.csdn.net/zouxy09/article/details/49080029
額外再說(shuō)明一點(diǎn):
同樣提取某個(gè)特征,經(jīng)過(guò)不同卷積核卷積后效果也不一樣(這是個(gè)重點(diǎn),為什么說(shuō)重點(diǎn),因?yàn)镃NN里面卷積核的大小就是有講究的)。
比如說(shuō):
可以發(fā)現(xiàn)同樣是銳化,下圖5x5的卷積核要比上圖3x3的卷積核效果細(xì)膩不少。
說(shuō)了這么多,我只想說(shuō)明,
(1)原始圖像通過(guò)與卷積核的數(shù)學(xué)運(yùn)算,可以提取出圖像的某些指定特征(features)。
(2)不同卷積核,提取的特征也是不一樣的。
(3)提取的特征一樣,不同的卷積核,效果也不一樣。
我為啥子要說(shuō)這些,是因?yàn)?#xff0c;CNN實(shí)際上也就是一個(gè)不斷提取特征,進(jìn)行特征選擇,然后進(jìn)行分類(lèi)的過(guò)程,卷積在CNN里,就是充當(dāng)前排步兵,首先對(duì)原始圖像進(jìn)行特征提取。所以我們首先要弄懂卷積在干什么,才能弄懂CNN。
下一期將講卷積在CNN是怎么運(yùn)作的。
有什么疑問(wèn)或者建議,請(qǐng)?jiān)谙路搅粞耘?#xff0c;我會(huì)選擇性(我懂的)回答。
轉(zhuǎn)載于:https://www.cnblogs.com/jiqibuxuexi/p/8410821.html
總結(jié)
以上是生活随笔為你收集整理的机器不学习:CNN 入门讲解1-什么是卷积的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 函数参数和函数返回值
- 下一篇: Codeforces Round #45