1.3 更多边缘检测内容-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 1.2 邊緣檢測示例 | 回到目錄 | 1.4 Padding |
更多邊緣檢測內(nèi)容 (More Edge Detection Example)
你已經(jīng)見識到用卷積運算實現(xiàn)垂直邊緣檢測,在本視頻中,你將學習如何區(qū)分正邊和負邊,這實際就是由亮到暗與由暗到亮的區(qū)別,也就是邊緣的過渡。你還能了解到其他類型的邊緣檢測以及如何去實現(xiàn)這些算法,而不要總想著去自己編寫一個邊緣檢測程序,讓我們開始吧。
還是上一個視頻中的例子,這張6×6的圖片,左邊較亮,而右邊較暗,將它與垂直邊緣檢測濾波器進行卷積,檢測結(jié)果就顯示在了右邊這幅圖的中間部分。
現(xiàn)在這幅圖有什么變化呢?它的顏色被翻轉(zhuǎn)了,變成了左邊比較暗,而右邊比較亮。現(xiàn)在亮度為10的點跑到了右邊,為0的點則跑到了左邊。如果你用它與相同的過濾器進行卷積,最后得到的圖中間會是-30,而不是30。如果你將矩陣轉(zhuǎn)換為圖片,就會是該矩陣下面圖片的樣子。現(xiàn)在中間的過渡部分被翻轉(zhuǎn)了,之前的30翻轉(zhuǎn)成了-30,表明是由暗向亮過渡,而不是由亮向暗過渡。
如果你不在乎這兩者的區(qū)別,你可以取出矩陣的絕對值。但這個特定的過濾器確實可以為我們區(qū)分這兩種明暗變化的區(qū)別。
再來看看更多的邊緣檢測的例子,我們已經(jīng)見過這個3×3的過濾器,它可以檢測出垂直的邊緣。所以,看到右邊這個過濾器,我想你應(yīng)該猜出來了,它能讓你檢測出水平的邊緣。提醒一下,一個垂直邊緣過濾器是一個3×3的區(qū)域,它的左邊相對較亮,而右邊相對較暗。相似的,右邊這個水平邊緣過濾器也是一個3×3的區(qū)域,它的上邊相對較亮,而下方相對較暗。
這里還有個更復雜的例子,左上方和右下方都是亮度為10的點。如果你將它繪成圖片,右上角是比較暗的地方,這邊都是亮度為0的點,我把這些比較暗的區(qū)域都加上陰影。而左上方和右下方都會相對較亮。如果你用這幅圖與水平邊緣過濾器卷積,就會得到右邊這個矩陣。
再舉個例子,這里的30(右邊矩陣中綠色方框標記元素)代表了左邊這塊3×3的區(qū)域(左邊矩陣綠色方框標記部分),這塊區(qū)域確實是上邊比較亮,而下邊比較暗的,所以它在這里發(fā)現(xiàn)了一條正邊緣。而這里的-30(右邊矩陣中紫色方框標記元素)又代表了左邊另一塊區(qū)域(左邊矩陣紫色方框標記部分),這塊區(qū)域確實是底部比較亮,而上邊則比較暗,所以在這里它是一條負邊。
再次強調(diào),我們現(xiàn)在所使用的都是相對很小的圖片,僅有6×6。但這些中間的數(shù)值,比如說這個10(右邊矩陣中黃色方框標記元素)代表的是左邊這塊區(qū)域(左邊6×6矩陣中黃色方框標記的部分)。這塊區(qū)域左邊兩列是正邊,右邊一列是負邊,正邊和負邊的值加在一起得到了一個中間值。但假如這個一個非常大的1000×1000的類似這樣棋盤風格的大圖,就不會出現(xiàn)這些亮度為10的過渡帶了,因為圖片尺寸很大,這些中間值就會變得非常小。
總而言之,通過使用不同的過濾器,你可以找出垂直的或是水平的邊緣。但事實上,對于這個3×3的過濾器來說,我們使用了其中的一種數(shù)字組合。
但在歷史上,在計算機視覺的文獻中,曾公平地爭論過怎樣的數(shù)字組合才是最好的,所以你還可以使用這種: [10?120?210?1]\left[\begin{matrix} 1 & 0 & -1 \\ 2 & 0 & -2 \\ 1 & 0 & -1 \\ \end{matrix}\right]???121?000??1?2?1???? ,叫做Sobel的過濾器,它的優(yōu)點在于增加了中間一行元素的權(quán)重,這使得結(jié)果的魯棒性會更高一些。
但計算機視覺的研究者們也會經(jīng)常使用其他的數(shù)字組合,比如這種:[30?3100?1030?3]\left[\begin{matrix} 3 & 0 & -3 \\ 10 & 0 & -10 \\ 3 & 0 & -3 \\ \end{matrix}\right]???3103?000??3?10?3????,這叫做Scharr過濾器,它有著和之前完全不同的特性,實際上也是一種垂直邊緣檢測,如果你將其翻轉(zhuǎn)90度,你就能得到對應(yīng)水平邊緣檢測。
隨著深度學習的發(fā)展,我們學習的其中一件事就是當你真正想去檢測出復雜圖像的邊緣,你不一定要去使用那些研究者們所選擇的這九個數(shù)字,但你可以從中獲益匪淺。把這矩陣中的9個數(shù)字當成9個參數(shù),并且在之后你可以學習使用反向傳播算法,其目標就是去理解這9個參數(shù)。
當你得到左邊這個6×6的圖片,將其與這個3×3的過濾器進行卷積,將會得到一個出色的邊緣檢測。這就是你在下節(jié)視頻中將會看到的,把這9個數(shù)字當成參數(shù)的過濾器,通過反向傳播,你可以學習這種 [10?110?110?1]\left[\begin{matrix} 1&0&-1\\ 1&0&-1\\ 1&0&-1\\ \end{matrix}\right]???111?000??1?1?1???? 的過濾器,或者Sobel過濾器和Scharr過濾器。還有另一種過濾器,這種過濾器對于數(shù)據(jù)的捕捉能力甚至可以勝過任何之前這些手寫的過濾器。相比這種單純的垂直邊緣和水平邊緣,它可以檢測出45°或70°或73°,甚至是任何角度的邊緣。所以將矩陣的所有數(shù)字都設(shè)置為參數(shù),通過數(shù)據(jù)反饋,讓神經(jīng)網(wǎng)絡(luò)自動去學習它們,我們會發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)可以學習一些低級的特征,例如這些邊緣的特征。盡管比起那些研究者們,我們要更費勁一些,但確實可以動手寫出這些東西。不過構(gòu)成這些計算的基礎(chǔ)依然是卷積運算,使得反向傳播算法能夠讓神經(jīng)網(wǎng)絡(luò)學習任何它所需要的3×3的過濾器,并在整幅圖片上去應(yīng)用它。這里,這里,還有這里(左邊矩陣藍色方框標記部分),去輸出這些,任何它所檢測到的特征,不管是垂直的邊緣,水平的邊緣,還有其他奇怪角度的邊緣,甚至是其它的連名字都沒有的過濾器。
所以這種將這9個數(shù)字當成參數(shù)的思想,已經(jīng)成為計算機視覺中最為有效的思想之一。在接下來的課程中,也就是下個星期,我們將詳細去探討如何使用反向傳播去讓神經(jīng)網(wǎng)絡(luò)學習這9個數(shù)字。但在此之前,我們需要先討論一些其它細節(jié),比如一些基礎(chǔ)的卷積運算的變量。在下面兩節(jié)視頻中,我將與你們討論如何去使用padding,以及卷積各種不同的發(fā)展,這兩節(jié)內(nèi)容將會是卷積神經(jīng)網(wǎng)絡(luò)中卷積模塊的重要組成部分,所以我們下節(jié)視頻再見。
課程板書
| 1.2 邊緣檢測示例 | 回到目錄 | 1.4 Padding |
總結(jié)
以上是生活随笔為你收集整理的1.3 更多边缘检测内容-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.2 边缘检测示例-深度学习第四课《卷
- 下一篇: 1.4 Padding-深度学习第四课《