1. 如何基於opencv使用神經網路實現圖像識別
本科生自己下載代碼就可以啦,github一大把,一般是在Linux下吧,如果要求很高的性能,建議購買計算機能力較強的顯卡,然後利用CUDA框架進行提速。
2. 如何用Python和深度神經網路尋找相似圖像
代碼
首先,讀入TuriCreate軟體包
import turicreate as tc
我們指定圖像所在的文件夾image,讓TuriCreate讀取所有的圖像文件,並且存儲到data數據框
data = tc.image_analysis.load_images('./image/')
我們來看看,data數據框的內容:
data
data包含兩列信息,第一列是圖片的地址,第二列是圖片的長寬描述。
下面我們要求TuriCreate給數據框中每一行添加一個行號。這將作為圖片的標記,方便後面查找圖片時使用,並輸出查看data。
data = data.add_row_number()
data
下面,是重頭戲。我們讓TuriCreate根據輸入的圖片集合,建立圖像相似度判別模型。
model = tc.image_similarity.create(data)
這個語句執行起來,可能需要一些時間。如果你是第一次使用TuriCreate,它可能還需要從網上下載一些數據。請耐心等待。
經過或長或短的等待,模型已經成功建立。
下面,我們來嘗試給模型一張圖片,讓TuriCreate幫我們從目前的圖片集合里,挑出最為相似的10張來。
為了方便,我們就選擇第一張圖片作為查詢輸入。
我們利用show()函數展示一下這張圖片。
tc.Image(data[0]['path']).show()
下面我們來查詢,我們讓模型尋找出與這張圖片最相似的10張。
similar_images = model.query(data[0:1], k=10)
我們把結果存儲在了similar_images變數裡面,下面我們來看看其中都有哪些圖片。
similar_images
返回的結果一共有10行。跟我們的要求一致。
每一行數據,包含4列。分別是:
查詢圖片的標記
獲得結果的標記
結果圖片與查詢圖片的距離
結果圖片與查詢圖片近似程度排序值
有了這些信息,我們就可以查看到底哪些圖片與輸入查詢圖片最為相似了。
注意其中的第一張結果圖片,其實就是我們的輸入圖片本身。考慮它沒有意義。
我們提取全部結果圖片的標記(索引)值,忽略掉第一張(自身)。
similar_image_index = similar_images['reference_label'][1:]
把上面9張圖片的標記在所有圖片的索引列表中過濾出來:
filtered_index = data['id'].apply(lambda x : x in similar_image_index)
filtered_index
驗證完畢以後,請執行以下語句。我們再次調用TuriCreate的explore()函數,展現相似度查詢結果圖片。
data[filtered_index].explore()
3. 卷積神經網路怎麼生成圖片
需要使用類似GAN的生成模型去做。望採納
GAN的基本原理其實非常簡單,這里以生成圖片為例進行說明。假設我們有兩個網路,G(Generator)和D(Discriminator)。正如它的名字所暗示的那樣,它們的功能分別是:
G是一個生成圖片的網路,它接收一個隨機的雜訊z,通過這個雜訊生成圖片,記做G(z)。
D是一個判別網路,判別一張圖片是不是「真實的」。它的輸入參數是x,x代表一張圖片,輸出D(x)代表x為真實圖片的概率,如果為1,就代表100%是真實的圖片,而輸出為0,就代表不可能是真實的圖片。
在訓練過程中,生成網路G的目標就是盡量生成真實的圖片去欺騙判別網路D。而D的目標就是盡量把G生成的圖片和真實的圖片分別開來。這樣,G和D構成了一個動態的「博弈過程」。
4. 神經網路是如何處理多個圖片的
神經網路可以用batch,一次輸入多個圖片來做處理
5. 求一份用BP神經網路進行預測的matlab代碼,自己根據實際問題再套用一下
BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
上傳的m文件里是一個電力系統負荷預測的實例,用的是最簡單的BP演算法,你可以參考。
6. 如何用神經網路 識別圖片中的個數
您的問題可以作為目標檢測問題。目標檢測目前有很多開源的模型可以使用,如有有自己的數據集需要用自己的數據集再訓練一下,叫做遷移學習。
使用模型就需要用到深度學習框架,推薦您可以使用以下飛槳,網路出品的深度學習框架。
飛槳PPDB。
7. 怎樣獲得圖片的像素作為神經網路的輸入
卷積神經網路有以下幾種應用可供研究: 1、基於卷積網路的形狀識別 物體的形狀是人的視覺系統分析和識別物體的基礎,幾何形狀是物體的本質特徵的表現,並具有平移、縮放和旋轉不變等特點,所以在模式識別領域,對於形狀的分析和識別具有十分重要的意義,而二維圖像作為三維圖像的特例以及組成部分,因此二維圖像的識別是三維圖像識別的基礎。 2、基於卷積網路的人臉檢測 卷積神經網路與傳統的人臉檢測方法不同,它是通過直接作用於輸入樣本,用樣本來訓練網路並最終實現檢測任務的。它是非參數型的人臉檢測方法,可以省去傳統方法中建模、參數估計以及參數檢驗、重建模型等的一系列復雜過程。本文針對圖像中任意大小、位置、姿勢、方向、膚色、面部表情和光照條件的人臉。 3、文字識別系統 在經典的模式識別中,一般是事先提取特徵。提取諸多特徵後,要對這些特徵進行相關性分析,找到最能代表字元的特徵,去掉對分類無關和自相關的特徵。然而,這些特徵的提取太過依賴人的經驗和主觀意識,提取到的特徵的不同對分類性能影響很大,甚至提取的特徵的順序也會影響最後的分類性能。同時,圖像預處理的好壞也會影響到提取的特徵。
8. 如何使用tensorflow實現卷積神經網路
沒有卷積神經網路的說法,只有卷積核的說法。
電腦圖像處理的真正價值在於:一旦圖像存儲在電腦上,就可以對圖像進行各種有效的處理。如減小像素的顏色值,可以解決曝光過度的問題,模糊的圖像也可以進行銳化處理,清晰的圖像可以使用模糊處理模擬攝像機濾色鏡產生的柔和效果。
用Photoshop等圖像處理,施展的魔法幾乎是無止境的。四種基本圖像處理效果是模糊、銳化、浮雕和水彩。?這些效果是不難實現的,它們的奧妙部分是一個稱為卷積核的小矩陣。這個3*3的核含有九個系數。為了變換圖像中的一個像素,首先用卷積核中心的系數乘以這個像素值,再用卷積核中其它八個系數分別乘以像素周圍的八個像素,最後把這九個乘積相加,結果作為這個像素的值。對圖像中的每個像素都重復這一過程,對圖像進行了過濾。採用不同的卷積核,就可以得到不同的處理效果。?用PhotoshopCS6,可以很方便地對圖像進行處理。
模糊處理——模糊的卷積核由一組系數構成,每個系數都小於1,但它們的和恰好等於1,每個像素都吸收了周圍像素的顏色,每個像素的顏色分散給了它周圍的像素,最後得到的圖像中,一些刺目的邊緣變得柔和。
銳化卷積核中心的系數大於1,周圍八個系數和的絕對值比中間系數小1,這將擴大一個像素與之周圍像素顏色之間的差異,最後得到的圖像比原來的圖像更清晰。
浮雕卷積核中的系數累加和等於零,背景像素的值為零,非背景像素的值為非零值。照片上的圖案好像金屬表面的浮雕一樣,輪廓似乎凸出於其表面。
要進行水彩處理,首先要對圖像中的色彩進行平滑處理,把每個像素的顏色值和它周圍的二十四個相鄰的像素顏色值放在一個表中,然後由小到大排序,把表中間的一個顏色值作為這個像素的顏色值。然後用銳化卷積核對圖像中的每個像素進行處理,以使得輪廓更加突出,最後得到的圖像很像一幅水彩畫。
我們把一些圖像處理技術結合起來使用,就能產生一些不常見的光學效果,例如光暈等等。
希望我能幫助你解疑釋惑。
9. CNN神經網路給圖像分類(Matlab)
你要看你的圖像是什麼。如果是彩色數字,先轉成灰度。用MNIST訓練網路。如果是各種主題,用彩色的imageNET訓練。如果你的數據量大到足以與數據集媲美,那麼直接用你的數據訓練網路即可。
在流行的數據集上訓練完,你需要固定卷積池化層,只訓練後面的全連接層參數,用你自己的數據集。
CNN一是調整網路結構,幾層卷積幾層池化,卷積的模板大小等。而是在確定結構上調整參數,weight scale,learning rate,reg等。
你用CNN做圖像分類,無非是把CNN當成學習特徵的手段,你可以吧網路看成兩部分,前面的卷積層學習圖像基本-中等-高層特徵,後面的全連接層對應普通的神經網路做分類。
需要學習的話,首先你去看UFLDL教程。然後cs231n
與其問別人,首先你看了imageNet數據集了嗎?
對於把流行數據集與自己數據混合訓練模型的方法。如果兩種數據十分相似,也未嘗不可。但是對於流行數據集而言,自己的標注數據量一般不會太大,如果是1:1000,1:100這種比例,那麼可能不加自己的數據,完全用數據集訓練的模型就能得到一個還好的結果。
如果自己的數據和數據集有些差別,那混在一起我認為自己的是在用自己的數據當做雜訊加到數據集中。cnn認為圖像是局部相關的,而欺騙CNN的方法則主要出於,自然圖像分布在一種流形結構中,訓練的模型需要這種流形假設,而人工合成的圖像由於添加非自然噪點,不滿足模型假設,所以能用肉眼難分辨的雜訊嚴重干擾分類結果。
如果二者相差過大,數據集是一種分布,你的數據是另一種,放到一起訓練,我沒試過,但我認為結果不會太好。
這時候只能把數據集用來訓練cnn的特徵提取能力。而後用於分類的全連接層,視你的數據量調整規模。
10. 如何通過人工神經網路實現圖像識別
人工神經網路(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲、並行處理以及自學習能力等優點,已經在信息處理、模式識別、智能控制及系統建模等領域得到越來越廣泛的應用。尤其是基於誤差反向傳播(Error Back Propagation)演算法的多層前饋網路(Multiple-Layer Feedforward Network)(簡稱BP 網路),可以以任意精度逼近任意的連續函數,所以廣泛應用於非線性建模、函數逼近、模式分類等方面。
目標識別是模式識別領域的一項傳統的課題,這是因為目標識別不是一個孤立的問題,而是模式識別領域中大多數課題都會遇到的基本問題,並且在不同的課題中,由於具體的條件不同,解決的方法也不盡相同,因而目標識別的研究仍具有理論和實踐意義。這里討論的是將要識別的目標物體用成像頭(紅外或可見光等)攝入後形成的圖像信號序列送入計算機,用神經網路識別圖像的問題。
一、BP 神經網路
BP 網路是採用Widrow-Hoff 學習演算法和非線性可微轉移函數的多層網路。一個典型的BP 網路採用的是梯度下降演算法,也就是Widrow-Hoff 演算法所規定的。backpropagation 就是指的為非線性多層網路計算梯度的方法。一個典型的BP 網路結構如圖所示。
六、總結
從上述的試驗中已經可以看出,採用神經網路識別是切實可行的,給出的例子只是簡單的數字識別實驗,要想在網路模式下識別復雜的目標圖像則需要降低網路規模,增加識別能力,原理是一樣的。