天天看點

嵌入式視覺領域的機器學習

在機器學習實作方案中,通過使用稱為卷積神經網絡 (CNN) 的網絡結構,因為它們能夠處理二維輸入。CNN 是一類前饋網絡,内置多個卷積層和子采樣層以及一個單獨的全連通網絡,以執行最終分類。鑒于 CNN 的複雜性,它們也歸屬深度學習類别。在卷積層中,輸入圖像被細分為一系列重疊的小子產品。在進行進一步的子采樣和其它階段之前,該卷積的結果先通過激活層建立激活圖,然後應用到最終的全連通網絡上。CNN 網絡的具體定義因實作的網絡架構而異,但它一般會包含至少下列元:

卷積 – 用于識别圖像中的特征

修正線性單元(reLU)- 用于在卷積後建立激活圖的激活層

最大池化 – 在層間進行子采樣

全連通 - 執行最終分類

這些元中每一個元的權重通過訓練決定,同時 CNN 的優勢之一在于訓練網絡相對容易。通過訓練生成權重需要龐大的圖像集,其中既有需要檢測的對象,也有僞圖像。這樣能讓我們為 CNN 建立所需的權重。由于訓練流程中所涉及的處理要求,訓練流程一般運作在提供高性能計算的雲處理器上。

架構

機器學習是一個複雜的課題,尤其是在每次不得不從頭開始,定義網絡、網絡架構和生成訓練算法的時候。為幫助工程師實作網絡和訓練網絡,有一些行業标準架構可供使用,例如 Caffe 和 Tensor Flow。Caffe 架構為機器學習開發人員提供各種庫、模型和 C++ 庫内的預訓練權重,同時提供 Python 和 Matlab 綁定。該架構能讓使用者無需從頭開始即能建立網絡并訓練網絡,以開展所需的運算。為便于重複使用,Caffe 使用者能通過 model zoo 共享自己的模型。Model Zoo 提供多種能根據所需的專門任務實作和更新的模型。這些網絡和權重定義在 prototxt 檔案中。在用于機器學習環境時,prototxt 檔案是用于定義推斷引擎的檔案。