Amazon Go 從推出到現(xiàn)在已過去四個月,這期間,國內(nèi)不少傳統(tǒng)零售商和創(chuàng)業(yè)者受到影響,開始試水搭建無人零售商店。但由于對技術(shù)和工程細節(jié)不熟悉,往往無從下手。
無人零售除了應(yīng)用到計算機視覺等 AI 技術(shù)外,還涉及到大規(guī)模的傳感器和智能設(shè)備,是一個復(fù)雜且龐大的項目。雷鋒網(wǎng)了解到,雖然已經(jīng)有人分享了對無人零售商店的原理解讀,但大多只講述了粗略的實現(xiàn)方式,沒有深入到細節(jié)。
為此,無人零售商店創(chuàng)業(yè)者陳維龍(微信:daoyuan3),通過講述基于 Amazon Go 原理為主的無人零售商店項目來幫大家解答疑問。
一、無人零售的核心問題
陳維龍?zhí)岬?,要打?/font> Amazon Go 這樣的無人零售商店最核心的是要解決“什么商品被誰怎么處理了”這個問題,需要處理的因素有5個:人、人的位置、商品、商品的位置、動作。
動作主要是通過商品與手或貨架的狀態(tài)來識別的,例如手進入或退出貨架的手勢、物品在手的狀態(tài)識別拿取或放回商品。
商品識別主要是通過初始狀態(tài)的選擇,中間狀態(tài)通過購物清單核對來縮小識別范圍,降低難度,同時通過雇員保證初始狀態(tài)不被破壞。
位置主要通過手機定位、傳感器定位和圖片定位,利用人體姿態(tài)識別可以很好的將動作定位到人。
Amazon Go 的便利性來自將商品核對和收銀權(quán)利從收銀員下發(fā)給每個顧客的每次購物行為中。收銀員的工作對顧客而言是集中式串行處理——所有顧客都要到一個指定地方一次性確認購物行為,需要等待收銀員的空閑。
而 Amazon Go 對顧客而言是分布式并行處理——顧客每次購物行為都會在發(fā)生地被系統(tǒng)處理、記錄,且每個用戶都不占用系統(tǒng)時間。
二、“怎么處理”如何定義和表示?
陳維龍舉了個非形象動的例子:對于超市而言,商品存在兩種狀態(tài)——賣掉或沒賣掉;對貨架而言,商品的狀態(tài)是在或不在;對顧客而言,商品的狀態(tài)是買或不買;對人的手而言,商品的狀態(tài)是在手或不在手,進一步簡化成拿起或放回。
它們的關(guān)系鏈如下表:
如果顧客想買商品,必須經(jīng)歷商品拿起、在手的狀態(tài),相對應(yīng)的,貨架上的商品不在架。
同理,顧客不買商品,必須經(jīng)歷商品放回、不在手狀態(tài),相對應(yīng)的,貨架上的商品在架。
還有一種情況,顧客不買商品,不經(jīng)歷拿起放回等階段,這種情況不用處理,因為什么都沒有發(fā)生。
那么如何表示或測量這兩種狀態(tài)呢?用相機和傳感器都可以表示該狀態(tài)。
1.相機如何處理
“在手進入貨架拿取商品前和拿取商品后,對手拍攝 1 組圖片,記為第一圖片和第二圖片,對貨架拍攝 1 組圖片,記為第三圖片和第四圖片。比較第一圖片和第二圖片的差異,此時需要利用到 CV 算法識別出膚色找到手,從而知道第一和第二圖片手勢的差異,識別握姿和舒展姿態(tài),根據(jù)兩個姿態(tài)在第一第二圖片出現(xiàn)的順序可以判斷拿取還是放回。例如,第一圖片是握姿,第二圖片是舒展,即放回;第一圖片是舒展,第二圖片是握姿,即拿取。”陳維龍對相機的處理流程做了個非常細致的闡述。
隨后他繼續(xù)解釋到:利用膚色找到手后,再識別第一第二圖片手邊緣的色差識別商品是否在手,根據(jù)前后順序可以判斷拿取或放回。例如,第一圖片手邊緣色差較淺,表示沒有商品,第二圖片手邊緣色差較深,表示有商品,即商品在手且是拿取過程。放回同理。
利用第三第四圖片,對貨架進行處理,同樣可以判斷拿取或放回。例如第四圖片比第三圖片多了一個或多個商品,那么就是放回;如果第四圖片比第三圖片少一個或多個商品就是拿取。
2.傳感器如何處理
對重力傳感器來說,商品被拿取,商品減少,重量減少;商品被放回,商品增加,重量增加。所以重量數(shù)值變化可以表示拿取或放回。
對于紅外來說,在特定地方,商品被放回,紅外會被遮擋,商品被拿取,紅外不會被遮擋??梢酝ㄟ^紅外遮擋狀態(tài)表示拿取或放回。
三、如何有效識別商品?
商品的識別應(yīng)該是難度最大的關(guān)鍵點之一。
一般來說超市商品品類 1000 種到 10 萬種不等,在真實且可能被破壞的環(huán)境下要識別如此多類商品幾乎不可能。
陳維龍指出,在初始狀態(tài),特定品類的商品被放在特定位置,由相機和傳感器偵測。對相機和傳感器而言,它們只需優(yōu)先識別少數(shù)且特定的商品類及數(shù)量。這個相對而言是簡單的。即使圖片無法識別,也可以根據(jù)重量識別和篩查。在品類擺放的時候可以選擇易區(qū)分的品類擺放一起,所有被拿取的商品記錄在顧客的購物清單里。
困難在中間狀態(tài)。由于顧客放回會破壞初始狀態(tài),導(dǎo)致識別難度急劇上升。因為顧客可能放回任意商品,所以商品的識別范圍又擴大到無法解決的情況。
先討論放回后的最終狀態(tài),一般分成 2 種:放回正確或錯誤。
對于放回正確,識別難度在初始狀態(tài)的水平。
對于放回錯誤,存在 3 種情況:放回錯誤但可識別;放回錯誤無法識別;放回錯誤且識別錯誤。
放回錯誤但可識別的情況是因為商品本身易通過圖像和重量識別,此種情況較少。大多數(shù)情況是放回錯誤且無法識別或識別錯誤。放回錯誤且無法識別的情況可以給用戶發(fā)送消息,讓用戶確認。識別錯誤的情況只能提高算法精度,同時調(diào)整判斷極限值,將部分識別錯誤的情況向無法識別裝換,同時及時通知雇員來整理回到初始狀態(tài)。
一般而言拿取商品后放回的情況較多,且不放回正確的位置情況也不少,其中放回錯誤且無法識別或識別錯誤又占大多數(shù),放回錯誤但可識別是少數(shù)??偟膩碚f無法識別和誤判比例不容忽視,甚至導(dǎo)致整個系統(tǒng)無法工作。
剛才說到,由于顧客放回商品,導(dǎo)致識別范圍擴大到所有商品,這是可以部分解決的。因為商品的每次放回都是基于顧客的前 N 次拿取,他放回的商品必須是之前拿取的商品,所以優(yōu)先識別顧客的購物清單即可,在這種情況下,識別難度又回到初始狀態(tài)相當(dāng)?shù)乃健?/span>
陳維龍總結(jié)到:
在初始狀態(tài)(拿取),商品的識別范圍是特定的少數(shù)種類,大概不超過 5 種,通過圖片和重量篩查是比較容易識別的。通過前期品類選擇和擺放,可以使初始狀態(tài)更加容易識別。在中間狀態(tài)(放回),通過索引顧客購物清單,可以將識別范圍縮小到清單上特定的商品,識別難度較初始狀態(tài)不會急劇增加,在可處理范圍內(nèi)。在最終狀態(tài),由于放回識別的不準(zhǔn)確性,導(dǎo)致最終狀態(tài)偏離初始狀態(tài),每次放回都會導(dǎo)致偏離初始狀態(tài),最終導(dǎo)致崩潰。但是因為放回識別難度不是很大,這種偏離出現(xiàn)較少,或者可以接受,不會導(dǎo)致長期偏離最后崩潰的情況。再加上及時通知雇員前來整理,可以糾正偏差。
四、如何知道動作發(fā)起者的身份?
將商品記錄到動作的發(fā)起者身上是一件較為復(fù)雜的工程。
陳維龍介紹到,識別人大體通過 2 種方式:身體特征或附帶物,例如人臉和手機。人臉識別的精度在室內(nèi)還在可接受范圍,幾乎可以當(dāng)做唯一標(biāo)識。手機也是一個人的唯一標(biāo)識,通過判斷是誰的手機從而判斷顧客是誰。
“被誰”里面隱含了一個因素:位置。要證實商品被誰拿走或小張被小陳打了,前提是商品和顧客的位置要匹配。
五、如何匹配顧客 ID 與商品 ID?
要匹配顧客和商品的 ID,首先要確定人和商品的定位。
關(guān)于人的定位,可以用到追蹤系統(tǒng)。手機的 GPS、wifi、藍牙也可以提供較準(zhǔn)確豐富的位置信息。
關(guān)于商品的定位,紅外、重量感應(yīng)、相機、商品和貨架初始的問題都是已知的,可以推測出來。例如,通過隔板,將同類商品分在不同的網(wǎng)格種,每個網(wǎng)格對應(yīng)不同的紅外或重量感應(yīng)器,可以知道被拿取或放回商品的位置。
通過人和商品的位置匹配,連接了“什么商品”“被誰”兩個因素。
因為成本和技術(shù)問題,位置精度是一個很大的問題,再加上這個定位人和商品位置的方案本身的缺陷,顧客和商品的匹配誤差較大。例如,顧客 A 站在商品 A 前,顧客 B 站在商品 B 前,顧客 A 伸手去拿商品 B,這種情況系統(tǒng)是無法準(zhǔn)確判斷的。當(dāng)然可以由顧客確認,但是這僅僅是無力的補救措施。
之前有人提到過 Amazon Go 可能利用多角度的完整的人體姿態(tài)識別來定位匹配人—動作—商品的關(guān)系。這種方法的關(guān)鍵是攝像頭需要很好的視野和足夠的攝像頭。從宣傳視頻來看, Amazon Go 的貨架設(shè)計使得最低層和中間層是無法獲取足夠好的視野,可能的解決方式是依靠對面貨架和天花板的攝像頭。Amazon Go 的貨架構(gòu)造非常重要,只要再提供一份貨架結(jié)構(gòu)圖或者實物圖就可以進一步推測實施方案。貨架結(jié)構(gòu)包括是否每層都有設(shè)想頭,承載商品的承重面的形狀及尺寸,特殊開口和螺絲位置等。
總結(jié)
通過上述方法,難度沒有憑空想象的難,但是工程量不小。即使動作和商品識別能達到 100%,因為定位方案和精度問題,導(dǎo)致整體的識別存在一定的誤差,而使整個方案無法使用,或者只能部分依靠顧客協(xié)助實現(xiàn)。所以 Amazon Go 以及未來的其他無人零售店還只能在小部分范圍內(nèi)對特定人群使用,例如信用度較高的會員。
陳維龍將無人收銀分成三個階段:商品和顧客行為數(shù)據(jù)統(tǒng)計階段、識別正常購物的無人收銀階段、識別作弊的無人收銀階段。
第一階段比較容易實現(xiàn),因為僅僅是統(tǒng)計,顧客不會存在作弊情況,而且統(tǒng)計誤差范圍相對于無人收銀較大。
第二階段是顧客不作弊的情況下,100% 記錄顧客和商品數(shù)據(jù),達到無人收銀的效果。目前 Amazon Go 處于這個階段。這個階段的明顯特征是建立在高素質(zhì)會員人群中。
第三階段是識別任意作弊行為,并且準(zhǔn)確統(tǒng)計。這個階段超市或零售行業(yè)所以的作弊行為都能被識破、杜絕,不僅可以實現(xiàn)無人收銀,還徹底解決了盜損問題。
由于成本和技術(shù)問題,陳維龍認為達到第二階段,往第三階段靠近就可以了。例如識別正常購物和行為,特殊情況直接標(biāo)記人工收銀即可。在此基礎(chǔ)上,擴大正常購物和行為的范圍,縮小特殊情況的范圍,使之對顧客更友好,更智能。