如何識別圖像邊緣?
點擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時間送達
作者:?阮一峰
圖像識別(image recognition)是現(xiàn)在的熱門技術(shù)。
文字識別、車牌識別、人臉識別都是它的應(yīng)用。但是,這些都算初級應(yīng)用,現(xiàn)在的技術(shù)已經(jīng)發(fā)展到了這樣一種地步:計算機可以識別出,這是一張狗的照片,那是一張貓的照片。

這是怎么做到的?

讓我們從人眼說起,學(xué)者發(fā)現(xiàn),人的視覺細胞對物體的邊緣特別敏感。也就是說,我們先看到物體的輪廓,然后才判斷這到底是什么東西。
計算機科學(xué)家受到啟發(fā),第一步也是先識別圖像的邊緣。

加州大學(xué)的學(xué)生 Adit Deshpande 寫了一篇文章《A Beginner's Guide To Understanding Convolutional Neural Networks》,介紹了一種最簡單的算法,非常具有啟發(fā)性,體現(xiàn)了圖像識別的基本思路。

首先,我們要明白,人看到的是圖像,計算機看到的是一個數(shù)字矩陣。所謂"圖像識別",就是從一大堆數(shù)字中找出規(guī)律。
怎樣將圖像轉(zhuǎn)為數(shù)字呢?一般來說,為了過濾掉干擾信息,可以把圖像縮?。ū热缈s小到 49 x 49 像素),并且把每個像素點的色彩信息轉(zhuǎn)為灰度值,這樣就得到了一個 49 x 49 的矩陣。
然后,從左上角開始,依次取出一個小區(qū)塊,進行計算。

上圖是取出一個 5 x 5 的區(qū)塊。下面的計算以 7 x 7 的區(qū)塊為例。
接著,需要有一些現(xiàn)成的邊緣模式,比如垂直、直角、圓、銳角等等。

上圖右邊是一個圓角模式,左邊是它對應(yīng)的 7 x 7 灰度矩陣??梢钥吹?,圓角所在的邊緣灰度值比較高,其他地方都是0。
現(xiàn)在,就可以進行邊緣識別了。下面是一張卡通老鼠的圖片。

取出左上角的區(qū)塊。

取樣矩陣與模式矩陣對應(yīng)位置的值相乘,進行累加,得到6600。這個值相當(dāng)大,它說明什么呢?

取樣矩陣移到老鼠頭部,與模式矩陣相乘,得到的值是0。
乘積越大就說明越匹配,可以斷定區(qū)塊里的圖像形狀是圓角。通常會預(yù)置幾十種模式,每個區(qū)塊計算出最匹配的模式,然后再對整張圖進行判斷。
交流群
歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~

