python計算機視覺深度學習工具3影象分類基礎
什麼是影象分類?
影象分類的核心任務是從預定義的一類影象中為影象分配標籤。分析輸入影象並返回標籤對影象進行分類。標籤始終來自一組預定義的可能類別。
比如預定義的標籤為:
categories = {cat, dog, panda}

image.png
分類系統還可以通過概率為影象分配多個標籤。比如狗:95%;貓:4%;熊貓:1%。更重要的是,W×H畫素輸入影象有三個通道,Red,Green和Blue,分析W×H×3 = N畫素影象,並弄清楚如何正確分類影象的內容。

image.png
在影象分類中,我們的資料集是影象的集合。因此,每個影象都是資料點。

image.png
左邊貓,右邊狗,電腦看到的是畫素矩陣。實際上,計算機並不知道影象中有動物。

image.png
上圖可描述如下:
•空間:天空位於影象的頂部,沙/海洋位於底部。
•顏色:天空是深藍色,海水淺藍色,而沙子則是
棕褐色。
•紋理:天空具有相對均勻的圖案,而沙子非常粗糙。
需要應用特徵提取來量化影象的內容。特徵提取是獲取輸入影象,應用演算法和獲得特徵向量的過程。可使用HOG,LBP或其他傳統影象量化方法。也可應用深度學習來自動學習。

image.png
- 視角:方向/旋轉等
- 大小
- 變形
- 遮擋
- 照明
- 背景
- 類內變異
對內容做出假設:影象以及容忍的變化。最終目標是什麼?我們想要建立什麼?
如果採用過於廣泛的方法,例如“我想對廚房的每個物件進行分類和檢測,除非你有多年構建影象分類器的經驗,否則不太可能表現良好。但是,如果你構建問題並使其範圍縮小,例如“我想要識別只是爐子和冰箱“,那麼你的系統更可能是準確和有效。儘管深度學習和卷積神經網路強大,你仍然應該儘可能地保持專案的範圍。ImageNet的影象分類的事實標準的基準資料集:計算演算法由我們在日常生活中遇到的1,000個物件組成。
學習型別
常見的監督學習演算法包括邏輯迴歸(Logistic Regression),支援向量機(SVM Support Vector Machine)隨機森林(Random Forest)和人工神經網路(Artificial Neural Network)。

image.png
無監督學習(有時稱為自學式學習)沒有與輸入資料相關聯的標籤,因此我們無法更正我們的模型預測。
用於無監督學習的經典機器學習演算法包括主成分分析(PCA Principle Component Analysis)和k均值聚類( k-means clustering)。對於神經網路,還有自動編碼器(Autoencoders),自組織對映(Self-Organizing Map: SOM)和自適應共振理論(Adaptive Resonance Theory)。

image.png
半監督學習演算法將採用已知的資料,分析它們,並嘗試標記每個未標記的資料點。半監督學習在計算機視覺中特別有用,我們根本沒有時間或資源來標記每個個人形象。方法有標籤傳播(label spreading),標籤累積(label propagation),梯形網路(ladder network)和共同學習/共同培訓(co-learning/co-training)。

image.png
深度學習的流程
思維方式的轉變
0,1,1,2,3,5,8,13,21,34 ......
當然,我們也可以使用(在極其未經優化的)Python函式中定義此模式
遞迴:
>>> def fib(n): ...if n == 0: ...return 0 ...elif n == 1: ...return 1 ...else: ...return fib(n-1) + fib(n-2) ... >>> fib(7) 13 >>> fib(13) 233 >>> fib(35
深度學習和影象分類沒有定義函式這麼簡單。沒有確定的規則,而是採用資料驅動的方法歸類。
每個類別看起來像然後教我們的演算法識別之間的差異
訓練資料集包括:
1.影象
2.影象的標籤/類別(即狗,貓,熊貓等)

image.png
- 步驟#1:收集資料集
影象本身以及與每個影象相關聯的標籤。例如:categories = dog,cat,panda。此外,每個類別的影象數量應大致相同(即每個類別的相同數量的例子)。
- 步驟2:拆分資料集
現在我們有了初始資料集,我們需要將它分成兩部分:
1.訓練集
2.測試集

image.png
神經網路有需要調整,例如,學習率,衰減,正則化等,稱為超引數。注意訓練集、調整超引數的驗證集和測試集一定要嚴格分開。
- 步驟3:訓練您的網路
網路瞭解如何識別標記資料中的每個類別。當模型出錯時,如何從這個錯誤中學習並改進自己。一般來說,我們應用一種梯度下降的方法。
- 步驟#4:評估測試
除了正確性(ground-truth標籤),還有聚合報告,如精度,recall和f-measure,用於量化整個網路的效能。
在傳統的,基於特徵的影象分類方法中,在步驟#2和步驟#3之間有特徵提取。採用HOG、LBP等演算法,基於我們想要編碼的影象的特定分量(即形狀、顏色、紋理)量化影象的內容,然後繼續訓練我們的分類器並對其進行評估。
在構建卷積神經網路時,我們實際上可以跳過特徵提取。這是因為CNN是端到端的模型。但訓練CNN是非常重要的過程。
參考資料
- 討論qq群144081101 591302926 567351477 釘釘免費群21745728
- ofollow,noindex">本文最新版本地址
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載