這些年深度學習煊赫一時,人臉識別,圖像分類,目標檢測等技術已經應用到咱們生活的方方面面。做爲一個時刻保持好奇心的程序猿想入門深度學習,但又苦於門檻較高,難以得到理想的學習成果。好在一些大廠已經推出了深度學習雲平臺,讓咱們前端小白也能體驗深度學習的樂趣。前端
此次咱們基於百度AI開放平臺EasyDL來實現一個logo圖像識別小程序,半天時間輕鬆搞定客戶BABA的需求。git
logo目標檢測演示github
1: 建立訓練模型小程序
要實現logo識別的功能,咱們先要建立一個物體檢測模型。機器學習
訪問百度EasyDL地址 https://ai.baidu.com/easydl 在操做平臺菜單中,選擇物體檢測選項。學習
1.1 選擇建立模型this
1.2 爲模型命名,模型歸屬選擇我的。編碼
2: 建立訓練數據集url
模型建立好之後,咱們要爲模型提供訓練數據,所謂訓練數據就是咱們要識別的logo圖片。spa
模型就像一個懵懂的孩子,咱們要用訓練數據教他識別圖片中的logo,讓他能觸類旁通,之後遇到不在數據集中的圖片也能準確的識別出來。
2.1 準備訓練數據
爲了提升識別精度,咱們須要用手機拍攝不一樣的光線,角度,背景下的logo圖片上傳,圖片數據越多,越有助於提升模型的識別精度,通常建議上傳40張左右。
2.2 標註數據
上傳後,用鼠標拖拽矩形區域標註出logo圖形位置,並設置統一的標籤名,而後點擊左下角的保存按鈕。若是嫌手動標註麻煩,也能夠嘗試右下角的智能標註。
2.3 開始訓練
訓練時間和數據集大小成正比,以我30多張的訓練數據爲例,大概須要20分鐘左右,已經很快啦,若是是在本地單機上訓練可能要幾小時的時間,這就是雲服務分佈計算的好處。
2.4 校驗模型
訓練結束後,咱們須要對模型進行校驗,看看模型的識別精度是否符合預期。
上傳幾張不在數據集中的照片來檢驗結果,若是效果滿意,咱們就能夠進行下一步,發佈模型。
3: 發佈模型
3.1 提交申請
發佈模型前須要提交審覈,填寫服務名稱和接口地址,提交申請。
審覈成功後,在操做列表中點擊服務詳情->當即使用。
3.2 建立應用
在使用接口前,咱們還須要建立一個應用,應用能夠理解爲一個容器,一個應用能夠包含多個接口,爲這些接口提供訪問鍵值,祕鑰等參數。
應用建立結束後,會看到分配的API Key和Secret Key,這些都是接口調用須要攜帶的參數。
4: 在小程序中調用識別接口
4.1 接口token驗證
在調用識別接口前先要拿到access_token令牌,這是全部接口調用的前提條件。
wx.request({ url: API_AUTH_URL, //token受權地址 method: 'GET', data: { grant_type: 'client_credentials', client_id: CLIENT_ID, //API Key client_secret: CLIENT_SECRET //Secret Key }, success: (res) => { _access_token = res.data.access_token this._getImageData() } })
4.2 調用接口
傳遞access_token和要識別的圖片等參數,具體能夠參考官方的技術文檔。
wx.request({ url: `${API_URL}?access_token=${_access_token}`, //access_token做爲query參數 method: 'POST', data: { image, //攝像頭幀圖片用base64編碼 threshold: 0.1 } })
5:總結
百度EasyDL平臺, 讓咱們無需機器學習專業知識,只用半天時間就開發出一個深度學習的小應用。相信從此這樣的平臺也會愈來愈多,提供給開發者更多的玩法解決工做中的實際問題。
附上小程序github源碼地址: https://github.com/imokya/object-detect