【飛槳開發者說】白浩傑,鷗若教育CEO,北航軟件工程碩士,美國佛羅里達國際大學高性能數據庫研究中心助理研究員,百度深度學習佈道師,主要研究方向深度學習、數據可視化等。git
我在教授AI課程中發現,學生們學習AI的熱情高漲,可是很難有一個場景可以給學員們提供一個直觀的感覺。而智能貨櫃偏偏可以解決學員們的這個問題,爲學員們提供了一個學以至用的好機會。爲了方便AI教學與普及,爲學員提供看得見摸得着的真實AI體驗,所以,我用深度學習技術,用了大概2個月的時間,幾百行代碼製做了這款「AI無人售貨櫃」,目前已能識別5種飲料。在下文中,我將爲你們揭祕這款「AI無人售貨櫃」的具體實現過程和效果。github
在商場購物或餐廳就餐,常常會遇到排隊結帳的困擾。若是能有無人售貨裝置,實現「不排隊,秒收銀」,徹底無需人工干預,就能極大地提高結算效率,緩解結算排隊擁堵的問題。算法
現今常見的的無人售貨機,有感應式和紅外掃描式兩大類。這兩類無人售貨機,大多集成了射頻讀寫裝置、紅外掃描等多種設備,結構複雜,成本廣泛較高,維護及更新換代困難。數據庫
然而,隨着人工智能的發展,計算機視覺領域取得了許多超越常人的成就。尤爲是深度學習算法的引入,解決了許多實際問題。後端
本次,咱們就突破常規,再也不研究感應式和紅外掃描式這兩類無人結算系統,而是利用深度學習技術,結合計算機視覺,來研製一款基於計算機視覺的「AI無人售貨櫃」。框架
這款基於計算機視覺的「AI無人售貨櫃」,結構簡單,咱們經過攝像頭採集商品信息,而後通過部署在後端的模型進行推斷,就能夠檢測到顧客購買了哪些商品,而後調用付款功能,實現無人售貨流程。模塊化
基於計算機視覺的「AI無人售貨櫃」,前期最重要的兩項工做就是深度學習框架的選擇和深度學習算法的選擇。性能
要開發深度學習項目,首要是選擇一款開發利器,那就是「深度學習框架」,他會讓你的工做達到事半功倍的效果。學習
全世界流行的深度學習框架有Tensorflow、飛槳、Caffe、Theano、MXNet、PyTorch等。通過綜合考量,咱們選擇百度研發的飛槳(PaddlePaddle)框架。之因此選擇這款框架,是由於飛槳發佈了許多官方支持的工業級應用模型,這些模型涵蓋了天然語言處理、計算機視覺、推薦引擎等多個領域。而本次咱們處理的問題就屬於計算機視覺領域,因此能夠直接使用飛槳實現的模型。好比此次咱們用的模型是yolov3,在飛槳官網上也能夠獲得這個模型,連接:人工智能
https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3
飛槳還發布了在coco數據集上訓練好的預訓練模型,咱們直接拿過來在此基礎上作fine tuning。
下載連接:
https://paddlemodels.bj.bcebos.com/yolo/yolov3.tar.gz
當櫃體以及其餘硬件裝好以後,接下來就是利用深度學習算法來進行商品檢測。
用深度學習算法來進行商品檢測的工做流程以下圖所示:
整個工做流程可分以下幾步:
① 製做數據集
② 調用飛槳框架搭建yolov3模型
③ 加載飛槳在coco數據集上訓練好的預訓練模型
④ 開始訓練,並保存模型
⑤ 使用訓練好的模型,進行預測部署
以上步驟中,最核心的就是第二步了:如何調用飛槳框架搭建yolov3模型。
yolov3是一個很不錯的目標檢測算法,用它來作無人售貨櫃的核心算法很是合適。可是,yolov3這個算法很是複雜,如何用深度學習框架來搭建它,而且讓他發揮出該有的高速度、高精度呢?這一點是最關鍵的。由於飛槳框架同時支持動態圖和靜態圖,這樣能夠同時兼顧靈活性和高性能,並且通過後期驗證,用飛槳框架搭建的yolov3模型,「高速度+高精度」是能夠雙實現的。同時,從代碼上來看,用飛槳框架搭建的yolov3模型呈模塊化設計,很簡潔,一目瞭然,下面貼一些用飛槳框架搭建yolov3的核心代碼:
單就不一樣飲料的檢測來講,訓練200輪以後,效果已經很不錯了,好比下圖就是其中的檢測效果展現:
從圖上能夠看出,用飛槳搭建的yolov3在訓練以後,預測效果是很不錯的,模型可以準確的、快速地把不一樣的飲料檢測出來。
使用深度學習技術,結合飛槳框架,這款基於計算機視覺的「AI無人售貨櫃」,不管是在工做效率上,仍是在工做準確率上,都有很大提升。單就檢測不一樣飲料來講,檢出準確率可以達到90%,實現一次全流程的「取貨、關門、檢測、調出付款碼」,僅需數秒,比人工檢測效率提升數十倍。
同時,相比於感應式和紅外掃描式無人售貨櫃,這款基於計算機視覺的「AI無人售貨櫃」,有以下優勢:
① 結構簡單。由於是「基於計算機視覺」的,因此他的主要部件是攝像頭+計算單元,結構很是簡單,維護也很方便,成本也較低。
② 更新升級簡單。由於是「基於深度學習」的,因此當要升級的時候,不須要更換硬件,只須要從新訓練模型,從新載入就能夠了,沒有難度,任何人均可以操做。
③ 環境適應性強。由於是「基於計算機視覺」的,且櫃體內有補光設施,對環境適應性很強,而感應式和紅外掃描式,則會對環境的溫溼度等外部環境有嚴格要求。
你們有興趣,不妨用飛槳平臺,試一試。
想與更多的深度學習開發者交流,請加入飛槳官方QQ羣:796771754。
若是您想詳細瞭解更多飛槳PaddlePaddle的相關內容,請參閱如下文檔:
官網地址:https://www.paddlepaddle.org.cn/?fr=osc
YOLOv3項目地址:
https://github.com/PaddlePaddle/models/tree/release/1.6/PaddleCV/yolov3
更多目標檢測需求,也歡迎使用PaddleDetection開發套件:
https://github.com/PaddlePaddle/PaddleDetection
>> 訪問 PaddlePaddle 官網,瞭解更多相關內容。