-
1 # 歡樂pets
-
2 # 論智
首先,我們需要把影象轉換成神經網路能夠接受的格式(表示,representation)。然後,我們設計一個神經網路模型(model)。之後我們在一大堆影象上訓練(train)上一步設計的神經網路。最後我們用訓練好的網路來識別影象。
表示影象如何表示?假設我們有一個影象,該影象的大小是646x454。那麼,我們可以用一個[646, 454]的矩陣來表示這個影象,矩陣中的每個元素對應一個畫素。這是一個非常簡單直接的做法。假設我們用1表示對應畫素為黑色,用0表示對應畫素為白色,那麼我們的矩陣就由大量1和0組成。大概就是這副樣子:
646x454太大了,畫不下,上面是一個4x4的示意圖,你可以把它想象成是由646x454個元素組成的巨大矩陣。
顯然,這個矩陣只能表示真黑白影象。如果我們要表示灰度影象,那麼我們可以用一個數字表示畫素的亮度(intensity)。比如,下面這個矩陣(同樣需要你發揮想象力,將它想象成一個646x454的巨大矩陣)。
那麼,如果是彩圖怎麼辦?很簡單,再增加一個維度。用[646, 454, 3]表示。(數字3是因為一般我們用RGB系統表示色彩,比如,[1.0, 0.0, 0.0]表示紅色)。
所以,某種意義上說,灰度影象(也就是我們平常說的黑白照片)才是真2D影象。;-)
模型將影象轉換為矩陣或張量後,我們就可以讓神經網路學習這些矩陣或張量了。最早的神經網路就是這麼幹的。當然,這麼幹有一個缺點,就是隻能處理尺寸非常小的影象,否則算力負擔太重。
所以,後來人們提出了卷積網路(CNN),大大提升了處理影象的效能。現在CNN是影象識別的主流。
(圖為Yann LeCun1994年提出的LeNet5,是最早出現的CNN之一。)
CNN的基本思路很簡單,影象中有很多空間關係,比如線條什麼的。直接學習畫素,不好好利用這些空間關係,太傻了。
從上圖我們可以看到,CNN不同層學習不同層次的空間關係(特徵),從細小的區域性的邊緣,逐漸到高層的抽象特徵。
訓練簡單來說,訓練過程分為以下幾步:
蒐集大量影象如果影象不夠,我們透過資料增強手段生成一些新影象,比如平移幾個畫素,縮放一下影象,這樣可以避免模型過擬合將影象分為訓練集和測試集(比如,按80%和20%的比例切分)在訓練集上訓練用測試集評估模型的表現訓練成功後,就可以將新影象傳給神經網路,讓神經網路自動識別。
-
3 # 鎂客網
人工神經網路作為一個新技術正不斷融入各個學科,其獨有的優勢在數字影象處理中也得到了不錯的運用。針對卷積神經網路做影象識別,則是一個相當火的方向,如騰訊雲識別,只要上傳任意一張影象就能識別出圖中有人還是有花等,那這到底是怎麼實現的呢?
下面我們就以如何透過神經網路識別人物形象來說事。
假設有一張女人的影象:
這是一張大小為350x450的影象,那現在我們在人工智慧裡設定,如果在看到其他的圖,只要其大小為350x450,並且所有畫素點跟上面這張圖一樣,那就判定圖中的人是女的。
很顯然,在海量的影象裡除了這張能再找到完全一樣的才怪。那怎麼辦嘞,每個人都長的不一樣,有的白一點,有的黑一點,即使是同一個女人,也有可能她吃胖了,那豈不是認不出來了?
這時神經網路發揮作用了,我們看這張圖時看到了什麼特徵?帽子、長髮、捲髮、大眼睛而且還露背了。
再分析一下,頭髮是黑色的,黑色的畫素亮度低,頭髮一般是一簇的,捲髮是打卷的,大眼睛在整個臉部佔比多一點,好像都是廢話,但對於神經網路不是,這都是特徵。
若我們有10萬張長髮的人的影象,讓神經分析所有圖中畫素點的位置和畫素點的值的共同點,最終會得到一個網路,只要跟這個網路裡記憶的特徵相同或者相似的就會被定義為長髮。10萬個長髮髮型樣本幾乎覆蓋了所有能想到的髮型,當再拿一張長髮的人的影象來透過網路,就會查到一個大多數女人的特徵:長髮。
那該有人問了,這還是不能知道圖中的人是男是女啊,有的動物也是長髮,比如馬。。。。。。
那我們再增加特徵唄,10萬張嘴的特徵,10萬張鼻子的特徵等,只管往上加,每一個物種都有其共同特徵和獨有特徵。
假如在人工智慧裡定義一個女人需要滿足100個特徵,那麼在海量的影象裡只要滿足這100個我們定義的特徵,那麼她就是女人。
-
4 # 小馬哥的愛99
神經網路在人工智慧的各領域中,只不過是一個不再主流的研究方向,日本人的這種攻擊性嘗試,因為直接針對神經網路,所以對於深度學習、增強學習或者貝葉斯理論等其他發展研究方向,比較大的可能是完全沒有意義的。
-
5 # 程式設計老大叔
想知道這個問題,首先就得了解人工智慧是如何識別圖片的。
傳統機器學習識別與深度學習識別對比傳統機器學習識別是透過人為提取圖片特徵,比如人臉五官,形成龐大的特徵資源庫。再由機器對需要識別的圖片進行特徵提取和對比從而對圖片進行識別。
而深度學習是透過建立神經網路,讓神經網路自己去學習圖片各特徵與結果之間的權重。
計算機眼中的影象計算機只認識0和1的二進位制,那麼人類眼中色彩豐富的圖片計算機是如何識別和儲存的呢?在計算機眼中一張色彩鮮豔的圖片其實就是有數字組成的矩陣。灰度影象和色彩影象。彩色影象(R、G、B)表示顏色,圖片在計算機中表現為三階張量。
CNN卷積神級網路影象識別一般是用卷積神經網路來建立深度學習模型的。之所以不用全連線神經網路的原因是:一張圖片每一個畫素點都是引數,輸入的引數太多、網路層數有限制。假設一張1000*1000大小的圖片,輸入層就有1000*1000 = 100萬個節點,假設一個影藏層有100個節點,那麼光這一層就有(1000*1000+1)*100 = 1億個引數;而卷積神經網路能在減少圖片輸入引數的前提下又不失圖片本身的特徵。
CNN神經網路主要包括卷積層、池化層、全連線層:
卷積提取影象中的特徵作為濾鏡。如下圖,提取了X的三個特徵。
提取特徵作為濾鏡後,使用濾鏡掃描圖片:以影象每一個點為中心,取周圍N*N格點構成一個面,稱為卷積核,每一格給予不同的權重,計算加權總和,當做這一點的outPut,再移動至下一個點以相同方式處理。
透過三層濾鏡掃描後得到:
池化池化是一種壓縮圖片但會保留圖片重要資訊的手段,採用滑動視窗,取範圍內最大值。例如滑動視窗大小2*2,並且每次滑動2格,則圖片會被縮小為原來的四分之一。
CNN再加上其他的一些其他元件,如ReLu啟用函式、全連線等,構成完整的CNN(卷積)神經網路。
透過CNN神經網路的判別後,會給出各結果的可能性,可能性最高的極大可能就是我們要的結果。
目前影象識別的程度深度學習影象識別有一個很知名的比賽,每年都會有知名的模型出來,像AlexNet、VGGNet、ResNet等,模型層數也是越來越多,準確率也越來越高。今年這個比賽已經不再舉行了,因為現在識別準確率已經十分高了,將近97%的準確率,再舉行比賽已經沒有意義了。
人工智慧影象識別準確率飛速提升
像ResNet識別狗的圖片,都能區分出狗的品種來,這可是很多人類都不見得做的到的
回覆列表
我的理解是這樣的,由很多個單元構成的層,存在多個層且相近層間的單元間存在聯絡,這就是一個網路。不同層的作用不同,每個層就相當於濾鏡,透過這個濾鏡來看一張圖片會得到一種特徵(也可以說是圖片的某種特徵被放大),透過很多層濾鏡會得到這個更具概括性的特徵,我們經過檢視海量有關貓的圖片,就會得到關於貓的特徵!我們將這個特徵儲存起來!接下來有一張新的圖片,我們來識別圖片的東西是不是貓,就用之前存下來的特徵和本次掃描得到的特徵進行對比!如果兩特徵差別不大,我們就說這張是關於貓的圖片!