基于機(jī)器視覺(jué)室內(nèi)定位的智能購(gòu)物車(chē)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
當(dāng)前,大多超市由于存在商品導(dǎo)購(gòu)技術(shù)落后、購(gòu)物車(chē)需要手推等問(wèn)題,降低了用戶的購(gòu)物體驗(yàn)。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,線上交易營(yíng)銷(xiāo)方式的沖擊導(dǎo)致實(shí)體銷(xiāo)售企業(yè)的發(fā)展更加艱難,迫切需要通過(guò)提供更好的購(gòu)物環(huán)境來(lái)吸引消費(fèi)者。由于技術(shù)的限制,現(xiàn)有的智能購(gòu)物車(chē)存在識(shí)別精度不高、復(fù)雜環(huán)境出錯(cuò)率較大和成本較高等問(wèn)題 [1],不能在市場(chǎng)中廣泛推廣應(yīng)用。因此,提供更加便捷智能的自動(dòng)跟隨購(gòu)物車(chē)代替人工導(dǎo)購(gòu)模式,將成為現(xiàn)階段各大商店提高用戶消費(fèi)體驗(yàn)、吸引顧客愉快購(gòu)物的重要技術(shù)手段。
本文針對(duì)目前實(shí)體超市行業(yè)存在的問(wèn)題,設(shè)計(jì)了一種新型智能購(gòu)物車(chē)。該購(gòu)物車(chē)采用了成本較低、識(shí)別精度較高的室內(nèi)機(jī)器視覺(jué)識(shí)別技術(shù),配合使用 AprilTag 標(biāo)志能在環(huán)境復(fù)雜的超市內(nèi)完成智能導(dǎo)購(gòu)以及自動(dòng)跟隨。方便用戶選用自動(dòng)跟隨模式 [2] 后在解放雙手的同時(shí)帶給用戶和超市極大的便利,節(jié)約人力資源及時(shí)間成本,大大提高了實(shí)體銷(xiāo)售行業(yè)的競(jìng)爭(zhēng)力。
1 系統(tǒng)總體結(jié)構(gòu)
如圖 1 所示,STM32 作為各模塊通信的橋梁,是購(gòu)物車(chē)系統(tǒng)的運(yùn)行中樞。WiFi 模塊 ESP8266[3] 將購(gòu)物車(chē)的數(shù)據(jù)上傳和下載到云端服務(wù)器,顧客手機(jī)的 APP 連接云端服務(wù)器后便可實(shí)現(xiàn)購(gòu)物車(chē)與手機(jī)的通信。顯示器作為顧客與購(gòu)物車(chē)交互的一種方式,在完成手機(jī) APP 已有功能的同時(shí),還能避免用戶暫時(shí)無(wú)法使用手機(jī)而無(wú)法啟動(dòng)購(gòu)物車(chē)的情況出現(xiàn)。視覺(jué)模塊 OpenMV 用于識(shí)別 AprilTag 標(biāo)志,獲得 ID 和 3D 數(shù)據(jù)完成室內(nèi)定位和跟隨 [4],電機(jī)驅(qū)動(dòng)模塊用來(lái)控制減速電機(jī)完成車(chē)體運(yùn)動(dòng) [5]。
圖 1 系統(tǒng)結(jié)構(gòu)
2 功能與設(shè)計(jì)
本文所設(shè)計(jì)的購(gòu)物車(chē)共有 2 個(gè)模式,分別為跟隨模式和導(dǎo)購(gòu)模式。在跟隨模式下,顧客只需在背部佩帶 AprilTag 標(biāo)簽,購(gòu)物車(chē)便能實(shí)時(shí)跟隨顧客,解放顧客的雙手。導(dǎo)購(gòu)模式需要在超市地板上鋪設(shè)導(dǎo)航地圖,顧客通過(guò)手機(jī) APP 選擇自己需要的商品,購(gòu)物車(chē)引導(dǎo)顧客走到商品處,方便顧客尋找商品。兩種模式均通過(guò)識(shí)別 AprilTag 標(biāo)志讀取 AprilTag 的3D 數(shù)據(jù)和 ID。
2.1 跟隨模式設(shè)計(jì)
購(gòu)物車(chē)的跟隨模式基于 AprilTag 的 3D 定位 [6] 技術(shù)實(shí)現(xiàn)。通過(guò) OpenMV[7] 讀取 AprilTag 的 3D 數(shù)據(jù)定位顧客與購(gòu)物車(chē)的空間位置。
如圖 2 所示, 通過(guò) OpenMV 尋找 AprilTag 函數(shù)就能得到 AprilTag 相對(duì)于 OpenMV 空間上的 6 個(gè) 3D 數(shù)據(jù), 分別是 3 個(gè)旋轉(zhuǎn)量 Rx,Ry,Rz 和 3 個(gè)坐標(biāo) Tx,Ty,Tz,用于用戶跟蹤。
2019年 / 第6期 物聯(lián)網(wǎng)技術(shù) 77
圖 2 AprilTag 輸出的 3D 數(shù)據(jù)
跟隨模式流程如圖 3 所示,顧客通過(guò)手機(jī)或顯示器選擇跟隨模式,此時(shí)購(gòu)物車(chē)啟動(dòng)跟隨模式,并等待顧客輸入領(lǐng)取的 AprilTagID。顧客輸入完畢后,購(gòu)物車(chē)首先識(shí)別顧客背上的 ApilTagID 號(hào)是否為要跟隨的 ID 號(hào),以避免跟錯(cuò)。如果是,則讀取 3D 數(shù)據(jù),使用 Rx,Ry,Rz 調(diào)整購(gòu)物車(chē)轉(zhuǎn)向,使購(gòu)物車(chē)朝向顧客 ;使用 Tx,Ty,Tz 調(diào)整顧客與購(gòu)物車(chē)的距離, 使顧客與購(gòu)物車(chē)的相對(duì)位置保持不變,實(shí)現(xiàn)智能跟隨。將上述數(shù)據(jù)作為測(cè)量值與經(jīng)過(guò)試驗(yàn)測(cè)得的設(shè)定角度、距離值作為設(shè)定值代入 PID 算法 [8],經(jīng) PID 算法使輸出值在遇到較大偏差時(shí)及時(shí)進(jìn)行調(diào)整,若偏差較小則根據(jù)累計(jì)誤差使跟隨變得更加平緩,將 PID 輸出值轉(zhuǎn)換成電機(jī)驅(qū)動(dòng)數(shù)據(jù),主控板根據(jù)電機(jī)驅(qū)動(dòng)數(shù)據(jù)驅(qū)動(dòng)電機(jī),保持顧客與購(gòu)物車(chē)的相對(duì)距離不變。
2.2 導(dǎo)購(gòu)模式設(shè)計(jì)
購(gòu)物車(chē)導(dǎo)購(gòu)模式是基于循跡 [9] 以及識(shí)別 AprilTag 的 ID實(shí)現(xiàn)的。
AprilTag 與 QRCode 均通過(guò)在一個(gè)矩陣空間中的黑色和白色方塊進(jìn)行信息表示,但由于組成 QRCode 的像素比AprilTag 多,所以 QRCode 可以存儲(chǔ)上百個(gè)字節(jié)的數(shù)據(jù),一般用來(lái)存儲(chǔ)網(wǎng)站的地址數(shù)據(jù) ;AprilTag 存儲(chǔ)的數(shù)據(jù)一般用于識(shí)別 AprilTag 的 ID。也正是如此,識(shí)別 AprilTag 的準(zhǔn)確度和抗干擾能力要比 QRCode 高很多,AprilTag 中的TAG36H10 有 2 319 個(gè) ID,即使是大型超市,AprilTag 也有能力進(jìn)行室內(nèi)定位標(biāo)記。圖 4 所示為 10 個(gè) AprilTag 及其ID 號(hào)
圖 4 AprilTag 圖
導(dǎo)購(gòu)模式需要在超市鋪設(shè)導(dǎo)航地圖。超市地圖如圖 5 所示。在超市地面上的每個(gè)轉(zhuǎn)彎口和每個(gè)貨架旁都放置一個(gè)AprilTag 標(biāo)志,當(dāng)購(gòu)物車(chē)行駛到某個(gè) AprilTag 標(biāo)志時(shí),讀取其 ID,從而獲悉購(gòu)物車(chē)所處位置,并根據(jù)路徑數(shù)組得到此處的 AprilTag 轉(zhuǎn)向指令。將相鄰兩個(gè) AprilTag 標(biāo)志用黑線連接, 給購(gòu)物車(chē)循跡,引導(dǎo)購(gòu)物車(chē)到下一個(gè) AprilTag 標(biāo)志處。
當(dāng)顧客通過(guò)手機(jī) APP 或顯示器選擇了導(dǎo)購(gòu)模式并輸入想要買(mǎi)的商品后,購(gòu)物車(chē)的主控板就能接收到商品信息。一個(gè)商品信息對(duì)應(yīng)一個(gè)路徑數(shù)組,路徑數(shù)組的每一個(gè)位對(duì)應(yīng)一個(gè) AprilTagID,每一位值指示到達(dá)對(duì)應(yīng) AprilTag 時(shí)的轉(zhuǎn)向或停止指令。購(gòu)物車(chē)在導(dǎo)購(gòu)時(shí),執(zhí)行黑線循跡程序,同時(shí)判斷是否檢測(cè)到 AprilTag。當(dāng)檢測(cè)到 AprilTag 并獲得 AprilTagID后,就從路徑數(shù)組中獲得對(duì)應(yīng) AprilTagID 的轉(zhuǎn)向指令,根據(jù)轉(zhuǎn)向指令驅(qū)動(dòng)電機(jī)轉(zhuǎn)向,如果轉(zhuǎn)向指令為左轉(zhuǎn),則購(gòu)物車(chē)左轉(zhuǎn) ;如果轉(zhuǎn)向指令為右轉(zhuǎn),則購(gòu)物車(chē)右轉(zhuǎn)。當(dāng)檢測(cè)到停止指令時(shí),購(gòu)物車(chē)便到達(dá)了指定地點(diǎn)并停止。至此,購(gòu)物車(chē)就完成了一段路徑的行走。導(dǎo)購(gòu)流程如圖 6 所示。
3 購(gòu)物車(chē)軟件設(shè)計(jì)
購(gòu)物車(chē)的交互方式如圖 7 所示,主要由兩種方式操控。一種是手機(jī) APP[10] 控制,APP 主界面如圖 8 所示 ;另一種是由購(gòu)物車(chē)上的顯示器控制,顯示器界面如圖 9 所示。
顧客可以使用手機(jī)連接超市的 WiFi,進(jìn)入 APP 后便能對(duì)購(gòu)物車(chē)下達(dá)指令。也可以使用購(gòu)物車(chē)上的顯示器,選擇顯示器上的其中一種模式來(lái)操控購(gòu)物車(chē)。
3.1 手機(jī) APP 設(shè)計(jì)
手機(jī) APP 在 Android Studio 環(huán)境中開(kāi)發(fā),將云服務(wù)器和WiFi 模塊作為中樞進(jìn)行數(shù)據(jù)的發(fā)送和接收,主要實(shí)現(xiàn)的功能包括跟隨模式或?qū)з?gòu)模式選擇、商品搜索、商品瀏覽等。
(1)手機(jī) APP 的主界面包括智能跟隨模式界面和智能導(dǎo)購(gòu)模式界面,用戶只需根據(jù)需求或喜好點(diǎn)擊相應(yīng)的模式即可。若選擇智能導(dǎo)購(gòu)模式,則界面會(huì)出現(xiàn)輸入框,用戶在輸入框中輸入想購(gòu)買(mǎi)的商品并搜索,或點(diǎn)擊底部按鈕切換界面。
(2)無(wú)論選擇哪種模式,用戶都可以切換至商品界面,在該界面中,用戶可以在搜索框中輸入自己想了解或者購(gòu)買(mǎi)的商品,也可以瀏覽該界面下的商品。
3.2 顯示器界面設(shè)計(jì)
顯示器為智能購(gòu)物車(chē)上的控制面板,用戶使用交互界面可方便快捷地操作購(gòu)物車(chē),對(duì)購(gòu)物車(chē)提出對(duì)應(yīng)的任務(wù)要求。
(1)用戶只需點(diǎn)擊相應(yīng)圖標(biāo)即可選擇智能跟隨模式或智能導(dǎo)購(gòu)模式。
(2)顯示器交互界面顯示當(dāng)前購(gòu)物車(chē)所在區(qū)域、所購(gòu)買(mǎi)商品總價(jià)以及商店的商品推送,以增強(qiáng)用戶的消費(fèi)體驗(yàn)。
4 結(jié) 語(yǔ)
隨著物聯(lián)網(wǎng)的迅速發(fā)展,萬(wàn)物聯(lián)網(wǎng)是未來(lái)的必然趨勢(shì),無(wú)人超市等新型超市的出現(xiàn)也說(shuō)明了這一點(diǎn)。本文設(shè)計(jì)的集跟隨、導(dǎo)購(gòu)于一身的智能購(gòu)物車(chē),最大程度解決了顧客尋找商品不便的問(wèn)題,同時(shí)還解決了孕婦、老人等手腳不方便的顧客難以攜帶商品等問(wèn)題。與其他智能購(gòu)物車(chē)相比,本文設(shè)計(jì)的購(gòu)物車(chē)在室內(nèi)定位方面擁有成本低、精度高、適用范圍廣等優(yōu)點(diǎn)。綜上所述,本購(gòu)物車(chē)具有較高的實(shí)用價(jià)值以及較廣闊的市場(chǎng)前景。