華文網

打造一家像Amazon Go的無人零售店,需解決哪些核心問題?

雷鋒網按:Amazon Go 從推出到現在已過去四個月,這期間,國內不少傳統零售商和創業者受到影響,

開始試水搭建無人零售商店。但由於對技術和工程細節不熟悉,往往無從下手。

無人零售除了應用到電腦視覺等 AI 技術外,還涉及到大規模的感測器和智慧設備,是一個複雜且龐大的項目。雷鋒網瞭解到,雖然已經有人分享了對無人零售商店的原理解讀,但大多只講述了粗略的實現方式,沒有深入到細節。

一、無人零售的核心問題

陳維龍提到,

要打造 Amazon Go 這樣的無人零售商店最核心的是要解決“什麼商品被誰怎麼處理了”這個問題,需要處理的因素有5個:人、人的位置、商品、商品的位置、動作。

動作主要是通過商品與手或貨架的狀態來識別的,例如手進入或退出貨架的手勢、物品在手的狀態識別拿取或放回商品。

商品識別主要是通過初始狀態的選擇,中間狀態通過購物清單核對來縮小識別範圍,降低難度,

同時通過雇員保證初始狀態不被破壞。

位置主要通過手機定位、感測器定位和圖片定位,利用人體姿態識別可以很好的將動作定位到人。

Amazon Go 的便利性來自將商品核對和收銀權利從收銀員下發給每個顧客的每次購物行為中。收銀員的工作對顧客而言是集中式連續處理——所有顧客都要到一個指定地方一次性確認購物行為,需要等待收銀員的空閒。

而 Amazon Go 對顧客而言是分散式並行處理——顧客每次購物行為都會在發生地被系統處理、記錄,

且每個使用者都不佔用系統時間。

二、“怎麼處理”如何定義和表示?

陳維龍舉了個非形象動的例子:對於超市而言,商品存在兩種狀態——賣掉或沒賣掉;對貨架而言,商品的狀態是在或不在;對顧客而言,商品的狀態是買或不買;對人的手而言,商品的狀態是在手或不在手,進一步簡化成拿起或放回。

它們的關係鏈如下表:

如果顧客想買商品,必須經歷商品拿起、在手的狀態,相對應的,貨架上的商品不在架。

同理,顧客不買商品,必須經歷商品放回、不在手狀態,相對應的,貨架上的商品在架。

還有一種情況,顧客不買商品,不經歷拿起放回等階段,這種情況不用處理,因為什麼都沒有發生。

那麼如何表示或測量這兩種狀態呢?用相機和感測器都可以表示該狀態。

1.相機如何處理

“在手進入貨架拿取商品前和拿取商品後,

對手拍攝 1 組圖片,記為第一圖片和第二圖片,對貨架拍攝 1 組圖片,記為第三圖片和第四圖片。比較第一圖片和第二圖片的差異,此時需要利用到 CV 演算法識別出膚色找到手,從而知道第一和第二圖片手勢的差異,識別握姿和舒展姿態,根據兩個姿態在第一第二圖片出現的順序可以判斷拿取還是放回。例如,第一圖片是握姿,第二圖片是舒展,即放回;第一圖片是舒展,第二圖片是握姿,即拿取。”陳維龍對相機的處理流程做了個非常細緻的闡述。

隨後他繼續解釋到:利用膚色找到手後,再識別第一第二圖片手邊緣的色差識別商品是否在手,根據前後順序可以判斷拿取或放回。例如,第一圖片手邊緣色差較淺,表示沒有商品,第二圖片手邊緣色差較深,表示有商品,即商品在手且是拿取過程。放回同理。

利用第三第四圖片,對貨架進行處理,同樣可以判斷拿取或放回。例如第四圖片比第三圖片多了一個或多個商品,那麼就是放回;如果第四圖片比第三圖片少一個或多個商品就是拿取。

2.感測器如何處理

對重力感測器來說,商品被拿取,商品減少,重量減少;商品被放回,商品增加,重量增加。所以重量數值變化可以表示拿取或放回。

對於紅外來說,在特定地方,商品被放回,紅外會被遮擋,商品被拿取,紅外不會被遮擋。可以通過紅外遮擋狀態表示拿取或放回。

三、如何有效識別商品?

商品的識別應該是難度最大的關鍵點之一。

一般來說超市商品品類 1000 種到 10 萬種不等,在真實且可能被破壞的環境下要識別如此多類商品幾乎不可能。

陳維龍指出,在初始狀態,特定品類的商品被放在特定位置,由相機和感測器偵測。對相機和感測器而言,它們只需優先識別少數且特定的商品類及數量。這個相對而言是簡單的。即使圖片無法識別,也可以根據重量識別和篩查。在品類擺放的時候可以選擇易區分的品類擺放一起,所有被拿取的商品記錄在顧客的購物清單裡。

困難在中間狀態。由於顧客放回會破壞初始狀態,導致識別難度急劇上升。因為顧客可能放回任意商品,所以商品的識別範圍又擴大到無法解決的情況。

先討論放回後的最終狀態,一般分成 2 種:放回正確或錯誤。

對於放回正確,識別難度在初始狀態的水準。

對於放回錯誤,存在 3 種情況:放回錯誤但可識別;放回錯誤無法識別;放回錯誤且識別錯誤。

放回錯誤但可識別的情況是因為商品本身易通過圖像和重量識別,此種情況較少。大多數情況是放回錯誤且無法識別或識別錯誤。放回錯誤且無法識別的情況可以給使用者發送消息,讓使用者確認。識別錯誤的情況只能提高演算法精度,同時調整判斷極限值,將部分識別錯誤的情況向無法識別裝換,同時及時通知雇員來整理回到初始狀態。

一般而言拿取商品後放回的情況較多,且不放回正確的位置情況也不少,其中放回錯誤且無法識別或識別錯誤又占大多數,放回錯誤但可識別是少數。總的來說無法識別和誤判比例不容忽視,甚至導致整個系統無法工作。

剛才說到,由於顧客放回商品,導致識別範圍擴大到所有商品,這是可以部分解決的。因為商品的每次放回都是基於顧客的前 N 次拿取,他放回的商品必須是之前拿取的商品,所以優先識別顧客的購物清單即可,在這種情況下,識別難度又回到初始狀態相當的水準。

陳維龍總結到:

在初始狀態(拿取),商品的識別範圍是特定的少數種類,大概不超過 5 種,通過圖片和重量篩查是比較容易識別的。通過前期品類選擇和擺放,可以使初始狀態更加容易識別。在中間狀態(放回),通過索引顧客購物清單,可以將識別範圍縮小到清單上特定的商品,識別難度較初始狀態不會急劇增加,在可處理範圍內。在最終狀態,由於放回識別的不準確性,導致最終狀態偏離初始狀態,每次放回都會導致偏離初始狀態,最終導致崩潰。但是因為放回識別難度不是很大,這種偏離出現較少,或者可以接受,不會導致長期偏離最後崩潰的情況。再加上及時通知雇員前來整理,可以糾正偏差。

四、如何知道動作發起者的身份?

將商品記錄到動作的發起者身上是一件較為複雜的工程。

陳維龍介紹到,識別人大體通過 2 種方式:身體特徵或附帶物,例如人臉和手機。人臉識別的精度在室內還在可接受範圍,幾乎可以當做唯一標識。手機也是一個人的唯一標識,通過判斷是誰的手機從而判斷顧客是誰。

“被誰”裡面隱含了一個因素:位置。要證實商品被誰拿走或小張被小陳打了,前提是商品和顧客的位置要匹配。

五、如何匹配顧客 ID 與商品 ID?

要匹配顧客和商品的 ID,首先要確定人和商品的定位。

關於人的定位,可以用到追蹤系統。手機的 GPS、wifi、藍牙也可以提供較準確豐富的位置資訊。

關於商品的定位,紅外、重量感應、相機、商品和貨架初始的問題都是已知的,可以推測出來。例如,通過隔板,將同類商品分在不同的網格種,每個網格對應不同的紅外或重量感應器,可以知道被拿取或放回商品的位置。

通過人和商品的位置匹配,連接了“什麼商品”“被誰”兩個因素。

因為成本和技術問題,位置精度是一個很大的問題,再加上這個定位人和商品位置的方案本身的缺陷,顧客和商品的匹配誤差較大。例如,顧客 A 站在商品 A 前,顧客 B 站在商品 B 前,顧客 A 伸手去拿商品 B,這種情況系統是無法準確判斷的。當然可以由顧客確認,但是這僅僅是無力的補救措施。

之前有人提到過 Amazon Go 可能利用多角度的完整的人體姿態識別來定位匹配人—動作—商品的關係。這種方法的關鍵是攝像頭需要很好的視野和足夠的攝像頭。從宣傳視頻來看, Amazon Go 的貨架設計使得最低層和中間層是無法獲取足夠好的視野,可能的解決方式是依靠對面貨架和天花板的攝像頭。Amazon Go 的貨架構造非常重要,只要再提供一份貨架結構圖或者實物圖就可以進一步推測實施方案。貨架結構包括是否每層都有設想頭,承載商品的承重面的形狀及尺寸,特殊開口和螺絲位置等。

總結

通過上述方法,難度沒有憑空想像的難,但是工程量不小。即使動作和商品識別能達到 100%,因為定位方案和精度問題,導致整體的識別存在一定的誤差,而使整個方案無法使用,或者只能部分依靠顧客協助實現。所以 Amazon Go 以及未來的其他無人零售店還只能在小部分範圍內對特定人群使用,例如信用度較高的會員。

陳維龍將無人收銀分成三個階段:商品和顧客行為資料統計階段、識別正常購物的無人收銀階段、識別作弊的無人收銀階段。

第一階段比較容易實現,因為僅僅是統計,顧客不會存在作弊情況,而且統計誤差範圍相對于無人收銀較大。

第二階段是顧客不作弊的情況下,100% 記錄顧客和商品資料,達到無人收銀的效果。目前 Amazon Go 處於這個階段。這個階段的明顯特徵是建立在高素質會員人群中。

第三階段是識別任意作弊行為,並且準確統計。這個階段超市或零售行業所以的作弊行為都能被識破、杜絕,不僅可以實現無人收銀,還徹底解決了盜損問題。

由於成本和技術問題,陳維龍認為達到第二階段,往第三階段靠近就可以了。例如識別正常購物和行為,特殊情況直接標記人工收銀即可。在此基礎上,擴大正常購物和行為的範圍,縮小特殊情況的範圍,使之對顧客更友好,更智能。

即放回;第一圖片是舒展,第二圖片是握姿,即拿取。”陳維龍對相機的處理流程做了個非常細緻的闡述。

隨後他繼續解釋到:利用膚色找到手後,再識別第一第二圖片手邊緣的色差識別商品是否在手,根據前後順序可以判斷拿取或放回。例如,第一圖片手邊緣色差較淺,表示沒有商品,第二圖片手邊緣色差較深,表示有商品,即商品在手且是拿取過程。放回同理。

利用第三第四圖片,對貨架進行處理,同樣可以判斷拿取或放回。例如第四圖片比第三圖片多了一個或多個商品,那麼就是放回;如果第四圖片比第三圖片少一個或多個商品就是拿取。

2.感測器如何處理

對重力感測器來說,商品被拿取,商品減少,重量減少;商品被放回,商品增加,重量增加。所以重量數值變化可以表示拿取或放回。

對於紅外來說,在特定地方,商品被放回,紅外會被遮擋,商品被拿取,紅外不會被遮擋。可以通過紅外遮擋狀態表示拿取或放回。

三、如何有效識別商品?

商品的識別應該是難度最大的關鍵點之一。

一般來說超市商品品類 1000 種到 10 萬種不等,在真實且可能被破壞的環境下要識別如此多類商品幾乎不可能。

陳維龍指出,在初始狀態,特定品類的商品被放在特定位置,由相機和感測器偵測。對相機和感測器而言,它們只需優先識別少數且特定的商品類及數量。這個相對而言是簡單的。即使圖片無法識別,也可以根據重量識別和篩查。在品類擺放的時候可以選擇易區分的品類擺放一起,所有被拿取的商品記錄在顧客的購物清單裡。

困難在中間狀態。由於顧客放回會破壞初始狀態,導致識別難度急劇上升。因為顧客可能放回任意商品,所以商品的識別範圍又擴大到無法解決的情況。

先討論放回後的最終狀態,一般分成 2 種:放回正確或錯誤。

對於放回正確,識別難度在初始狀態的水準。

對於放回錯誤,存在 3 種情況:放回錯誤但可識別;放回錯誤無法識別;放回錯誤且識別錯誤。

放回錯誤但可識別的情況是因為商品本身易通過圖像和重量識別,此種情況較少。大多數情況是放回錯誤且無法識別或識別錯誤。放回錯誤且無法識別的情況可以給使用者發送消息,讓使用者確認。識別錯誤的情況只能提高演算法精度,同時調整判斷極限值,將部分識別錯誤的情況向無法識別裝換,同時及時通知雇員來整理回到初始狀態。

一般而言拿取商品後放回的情況較多,且不放回正確的位置情況也不少,其中放回錯誤且無法識別或識別錯誤又占大多數,放回錯誤但可識別是少數。總的來說無法識別和誤判比例不容忽視,甚至導致整個系統無法工作。

剛才說到,由於顧客放回商品,導致識別範圍擴大到所有商品,這是可以部分解決的。因為商品的每次放回都是基於顧客的前 N 次拿取,他放回的商品必須是之前拿取的商品,所以優先識別顧客的購物清單即可,在這種情況下,識別難度又回到初始狀態相當的水準。

陳維龍總結到:

在初始狀態(拿取),商品的識別範圍是特定的少數種類,大概不超過 5 種,通過圖片和重量篩查是比較容易識別的。通過前期品類選擇和擺放,可以使初始狀態更加容易識別。在中間狀態(放回),通過索引顧客購物清單,可以將識別範圍縮小到清單上特定的商品,識別難度較初始狀態不會急劇增加,在可處理範圍內。在最終狀態,由於放回識別的不準確性,導致最終狀態偏離初始狀態,每次放回都會導致偏離初始狀態,最終導致崩潰。但是因為放回識別難度不是很大,這種偏離出現較少,或者可以接受,不會導致長期偏離最後崩潰的情況。再加上及時通知雇員前來整理,可以糾正偏差。

四、如何知道動作發起者的身份?

將商品記錄到動作的發起者身上是一件較為複雜的工程。

陳維龍介紹到,識別人大體通過 2 種方式:身體特徵或附帶物,例如人臉和手機。人臉識別的精度在室內還在可接受範圍,幾乎可以當做唯一標識。手機也是一個人的唯一標識,通過判斷是誰的手機從而判斷顧客是誰。

“被誰”裡面隱含了一個因素:位置。要證實商品被誰拿走或小張被小陳打了,前提是商品和顧客的位置要匹配。

五、如何匹配顧客 ID 與商品 ID?

要匹配顧客和商品的 ID,首先要確定人和商品的定位。

關於人的定位,可以用到追蹤系統。手機的 GPS、wifi、藍牙也可以提供較準確豐富的位置資訊。

關於商品的定位,紅外、重量感應、相機、商品和貨架初始的問題都是已知的,可以推測出來。例如,通過隔板,將同類商品分在不同的網格種,每個網格對應不同的紅外或重量感應器,可以知道被拿取或放回商品的位置。

通過人和商品的位置匹配,連接了“什麼商品”“被誰”兩個因素。

因為成本和技術問題,位置精度是一個很大的問題,再加上這個定位人和商品位置的方案本身的缺陷,顧客和商品的匹配誤差較大。例如,顧客 A 站在商品 A 前,顧客 B 站在商品 B 前,顧客 A 伸手去拿商品 B,這種情況系統是無法準確判斷的。當然可以由顧客確認,但是這僅僅是無力的補救措施。

之前有人提到過 Amazon Go 可能利用多角度的完整的人體姿態識別來定位匹配人—動作—商品的關係。這種方法的關鍵是攝像頭需要很好的視野和足夠的攝像頭。從宣傳視頻來看, Amazon Go 的貨架設計使得最低層和中間層是無法獲取足夠好的視野,可能的解決方式是依靠對面貨架和天花板的攝像頭。Amazon Go 的貨架構造非常重要,只要再提供一份貨架結構圖或者實物圖就可以進一步推測實施方案。貨架結構包括是否每層都有設想頭,承載商品的承重面的形狀及尺寸,特殊開口和螺絲位置等。

總結

通過上述方法,難度沒有憑空想像的難,但是工程量不小。即使動作和商品識別能達到 100%,因為定位方案和精度問題,導致整體的識別存在一定的誤差,而使整個方案無法使用,或者只能部分依靠顧客協助實現。所以 Amazon Go 以及未來的其他無人零售店還只能在小部分範圍內對特定人群使用,例如信用度較高的會員。

陳維龍將無人收銀分成三個階段:商品和顧客行為資料統計階段、識別正常購物的無人收銀階段、識別作弊的無人收銀階段。

第一階段比較容易實現,因為僅僅是統計,顧客不會存在作弊情況,而且統計誤差範圍相對于無人收銀較大。

第二階段是顧客不作弊的情況下,100% 記錄顧客和商品資料,達到無人收銀的效果。目前 Amazon Go 處於這個階段。這個階段的明顯特徵是建立在高素質會員人群中。

第三階段是識別任意作弊行為,並且準確統計。這個階段超市或零售行業所以的作弊行為都能被識破、杜絕,不僅可以實現無人收銀,還徹底解決了盜損問題。

由於成本和技術問題,陳維龍認為達到第二階段,往第三階段靠近就可以了。例如識別正常購物和行為,特殊情況直接標記人工收銀即可。在此基礎上,擴大正常購物和行為的範圍,縮小特殊情況的範圍,使之對顧客更友好,更智能。