36小時,造一個亞馬遜無人商店
無人超市,未來趨勢。
上面這段視訊,展示了逛亞馬遜的Amazon Go無人超市是種怎樣的體驗。毫無疑問,一個完善的無人超市需要複雜的技術支撐。
現在,挑戰來了。
你能不能在一天半的時間裡,從零著手搭建出一個基本的Amazon Go無人超市系統?讓客戶可以體驗無縫銜接的購物體驗?
當然可以。
有個四人小組就在最新的一次黑客馬拉松中,完成了這樣一次挑戰。他們只用了不到36個小時,就搞定了一切,而且還把整個教程公佈了出來。
首先,得有一套文件,列出全部需要做/可以做的事情;然後就是根據文件,去分模組實現。他們給自己的“山寨”Amazon Go起名叫EZShop,由這六大模組構成:
EZShop的六大元件
下面分別介紹一下他們用到的些模組:
Kairos人臉識別API
這是EZShop的一個基本元件,能夠識別、儲存特定的人臉資訊。EZShop用了它兩個API:/enroll和/verify。
/enroll的意思是“拍張照,找到裡邊的臉,然後把這張臉存到你建立的相簿裡。”
這個小組就為顧客們建立了一個相簿,也叫EZShop。顧客註冊時,臉就會存到這個相簿裡,系統的實時資料庫也會向這個顧客的註冊資訊返回並儲存一個face_id。
當要驗證顧客的照片時,就需要把它送到/verify終端那裡,終端返回一個匹配可能性最高的face_id。
在實際應用中,自己用TensorFlow搭一個人臉識別應用可能比用這種API更好,但是36小時hackathon嘛,API挺好用的。
實時Firebase資料庫
這也是一個非常基本的元件,整套EZShop裡,所有其他的元件都得和它實時互動。Firebase支援在資料庫裡的任何資料上建立定製化的變化監聽器,這樣一個特性再加上簡單的設定流程,用起來簡直毫不費力。
整個計劃很簡單,資料庫儲存一組商品、一組顧客,如下面的JSON檔案架構所示:
{ "items": [ { "item_id": 1, "item_name": "Soylent", "item_stock": 1, "price": 10 } ], "users": [ { "face_id": 1, "name": "Subhan Nadeem", "in_store": false, "cart": [ 1 ] } ] }
新顧客通過Kairos API註冊之後,就會被新增到users那一組。當顧客出入時,他的in_store布林值會更新,在商店經理和個人App介面上都有所體現。
顧客拿起商品時,items那組資料會有更新。系統能夠識別出哪個顧客拿了哪件商品,商品的ID會被新增到顧客的cart欄。
經理App和顧客App
團隊裡的iOS開發者John只用了12小時,就寫完了這兩個App。
經理App
經理App是iPad版的,能將新使用者新增到Kairos API和Firebase資料庫中,也能顯示店裡顧客的列表和貨物的庫存清單。商店經理能用這個App操作Firebase資料庫、檢視資料庫發生的變化。
這個App還能追蹤店內當前的所有使用者,並獲取他們的姓名和照片。當使用者離開時,這個系統也能實時更新店內當前使用者列表。
顧客App
另一個App是供商店顧客用的。
顧客要進店,需要先上傳自己的照片,註冊成為可以在無人店內購物的使用者。圖片通過API上傳到Imgur(一家國外圖片分享網站),並與使用者名稱相關聯。
EZShop會根據這個照片來識別顧客。顧客進入商店之後,它們購物車的更新會立刻顯示在這個App上。顧客離開商店時,手機上還會收到一條推送通知,顯示著他們花了多少錢。
貨架、感測器和攝像頭
這些東西由Soheil和Ruslan負責,他們設計了貨架,寫了相關的Pi Python指令碼。
貨架大致長這樣:
貨架
在貨架上,三件商品並排放著,中間的塔上安裝監控攝像頭(就是圖上那個手機),兩排商品後邊還裝有超聲波感測器。超聲波感測器和樹莓派相連線,樹莓派執行的Python指令碼處理感測器與貨架上物體之間的距離讀數。
商品被拿起來的時候,感測器的讀數就會變化,觸發資料庫中商品庫存的更新。
塔頂上綁著的手機(攝像頭)也會探測到場景的變化,還會識別拿商品的顧客。然後,這件商品會被放到顧客的虛擬購物車裡。
出入口的攝像頭
在商店的出口和入口,這個小組使用了Android手機作為面部識別攝像頭。
兩部手機被安裝在一個三腳架上,分別衝著相反的方向,一個方向用來識別入店的顧客,另一個方向用來識別出店的顧客。
至於人臉檢測技術,Google有一套非常棒的API,能夠很好地檢測出人臉。
API地址:https://developers.google.com/vision/
特別的是,這個API還能提供從相機到人臉之間的大致距離,一旦顧客的距離足夠近,攝像頭就會拍照並使用Kairos API進行驗證,然後與Firebase資料庫同步,更新顧客在店內的狀態。
在客戶識別之外,系統還增加了個性化的語音問候,這進一步提升了使用者體驗。
效果是這樣的:
一旦顧客離開商店,Android應用程式將會檢測顧客購買了什麼商品,並計算消費總額,並通過Firebase雲訊息向顧客的個人App推送賬單明細。
總結
在36個小時的黑客馬拉松中,這個專案的團隊大概只睡了6個小時,期間克服了許許多多的障礙,也有一些還未解決的問題。
他們的努力也沒有白費,這個專案最後奪得了第一名。
有上百人進入了這個快速搭建的無人超市,拿起商品,然後離店,隨即完成結算並獲得賬單。整個過程中不需要收銀員、不需要排隊……
這個專案是開源的,想自己動手玩一下的話……GitHub地址在此:
https://github.com/subhan-nadeem/EZShop
∑編輯 | Gemini
本文轉載自「量子位」
演算法數學之美微信公眾號歡迎賜稿
稿件涉及數學、物理、演算法、計算機、程式設計等相關領域
稿件一經採用,我們將奉上稿酬。
投稿郵箱:math_alg@163.com
相關文章
- 亞馬遜AWS當機十小時,這次是人為原因亞馬遜
- Steam,你的敵人是亞馬遜亞馬遜
- 亞馬遜歐洲站TOP賣家36%來自中國亞馬遜
- 不僅僅是送貨無人機,亞馬遜還要用無人駕駛包攬地面無人機亞馬遜
- 怎麼去運營一個亞馬遜店鋪?亞馬遜
- 亞馬遜1300個IP地址被劫持2個小時用於竊取數字貨幣亞馬遜
- 亞馬遜erp_賣家如何選擇亞馬遜erp?亞馬遜
- 亞馬遜定價_亞馬遜erp產品定價策略亞馬遜
- Digital Commerce 360:88%的亞馬遜購物者在購物時只考慮亞馬遜Git亞馬遜
- 亞馬遜評級亞馬遜
- 亞馬遜如何趕走煩人的跟賣亞馬遜
- 亞馬遜使用機器人管理快遞員亞馬遜機器人
- 亞馬遜被曝新專利,為送貨無人機建立空中倉庫亞馬遜無人機
- 亞馬遜 Redshift 死了嗎?亞馬遜
- 亞馬遜跨境電商亞馬遜
- 亞馬遜PSE認證亞馬遜
- 亞馬遜財務怎麼做賬?積加ERP教你5個亞馬遜財務做賬技巧!亞馬遜
- 無人駕駛汽車Aurora使用亞馬遜雲科技加速Aurora Driver的開發亞馬遜
- 亞馬遜DRKG使用體驗亞馬遜
- 亞馬遜高管加入Coinbase亞馬遜
- 亞馬遜AWS入門(一):相關資源亞馬遜
- 亞馬遜無人機送貨:過程心酸操碎心,但結果令人欣慰亞馬遜無人機
- 無人配送,製造下一個獨角獸
- 無伺服器的又一個里程碑,看亞馬遜雲科技 Serverless 的創新演進伺服器亞馬遜Server
- SteamDB:亞馬遜《新世界》發售一個月 熱度已降低了45%亞馬遜
- 利用亞馬遜雲科技整個自用免費網盤亞馬遜
- 亞馬遜無貨源店群ERP系統 無限開代理 OEM貼牌亞馬遜
- 創始人上天后的亞馬遜,財報卻不太好亞馬遜
- 創始人“去意已決”,亞馬遜遊戲是喜是憂?亞馬遜遊戲
- Oracle 創始人埃裡森批評亞馬遜是偽君子Oracle亞馬遜
- 亞馬遜高管詳解無人機送貨:下單後30分鐘送貨上門亞馬遜無人機
- 亞馬遜雲科技在天津設立智慧製造數字化賦能中心亞馬遜
- “黑五”前夜的裁員:無接觸配送大趨勢為什麼都帶不動亞馬遜無人機?亞馬遜無人機
- 深度解析|阿里雲靠什麼與亞馬遜一戰阿里亞馬遜
- 全球最智慧企業排行亞馬遜排名第一亞馬遜
- 招兵買馬,亞馬遜再次補強人工智慧亞馬遜人工智慧
- 亞馬遜無貨源店群模式,能走多遠? YMX973亞馬遜模式
- 亞馬遜Alexa是如何失敗的?亞馬遜
- 亞馬遜與Visa握手言和GZB亞馬遜