吳斌 嚴晨成 尉鵬飛
摘? ?要:本文是基于OpenCV與激光雷達的智能跟隨購物車系統(tǒng)設(shè)計與實現(xiàn),該系統(tǒng)以樹莓派為主控系統(tǒng),并搭載多種傳感器和驅(qū)動電路,通過人體特征識別技術(shù)、面部識別技術(shù)、障礙物識別技術(shù)以及動態(tài)路徑規(guī)劃、空間定位等優(yōu)化算法,使購物車具有自主導(dǎo)航、主動跟隨以及自動泊位的功能。
關(guān)鍵詞:智能購物車? 樹莓派? 自動識別? 主動跟隨? 自動泊位
中圖分類號:TN958? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2019)09(c)-0141-04
隨著中國“智慧城市3.0”[1]時代的到來,以人工智能為主要技術(shù)核心,以互聯(lián)、高效、便捷為特征,以綠色發(fā)展和數(shù)字惠民為指引的智慧城市建設(shè)正成為我國城市可持續(xù)發(fā)展、創(chuàng)新驅(qū)動和轉(zhuǎn)型發(fā)展的新方向和新實踐。與此同時,隨著中國經(jīng)濟的飛速發(fā)展與智慧城市理念漸漸深入人心,人們開始追求更加智能、便捷的生活。在很多情況下,人們需要一種能夠自動行走、跟蹤用戶的購物車來幫助他們在超市購物過程中搬運物品,使他們能夠免于運輸物品而帶來的體力勞動。
對于國內(nèi),如今大多數(shù)的智能新型購車多以人臉刷付,實現(xiàn)移動支付、自助結(jié)賬為主要功能,并且購物車使用方式仍為傳統(tǒng)的手推式,尚未出現(xiàn)既可主動跟隨顧客購物又能自主導(dǎo)航、自動泊位返回停車區(qū)域的智能購物車,在運輸物品較多或較重時會嚴重降低顧客的超市購物體驗,增加體力支出,對于行動不便人群存在一定的使用缺陷;對于國外,與之相類似的購物車僅有沃爾瑪所提出的智能購物車裝置,目前仍處于研發(fā)階段,該智能購物車裝置是在傳統(tǒng)購物車的基礎(chǔ)之上,在購物車車體的下部安裝該裝置,因此在識別方面具有一定的局限性,由于該裝置安裝在車體下部且較為龐大在簡易適用性方面具有一定的弊端,并且在顧客結(jié)束購物時無法實現(xiàn)自主導(dǎo)航、自動泊位返回購物車指定停放區(qū)域,必須在顧客或是超市相關(guān)工作人員的推行下返回至停車區(qū)域,在便捷以及超市人員成本上存在較大的弊端。
1? ?系統(tǒng)構(gòu)成
本系統(tǒng)框圖如圖1所示,該系統(tǒng)主要由驅(qū)動控制單元、障礙物檢測單元、人體識別單元、空間路徑規(guī)劃單元和微處理器五部分構(gòu)成。
2? 相關(guān)基礎(chǔ)知識與硬件開發(fā)平臺介紹
2.1 樹莓派
樹莓派3B+[2]是一個基于ARM Cortex-A53的64位微型計算機主板,配備四顆1.4GHz處理器、1GB RAM、以太網(wǎng)接口、雙頻無線局域網(wǎng)。SD/MicroSD卡用作內(nèi)存硬盤,在主板的一端有4個USB接口,可以外接鼠標、鍵盤,并具有HDMI高清視頻信號輸出接口和視頻模擬信號輸出接口,具備個人電腦的基本功能。
樹莓派3B+具有完整的計算機數(shù)據(jù)和圖像處理功能。在編程工具方面,Python是一種面向?qū)ο蠛徒忉屝缘拈_源跨平臺編程語言。樹莓派開發(fā)平臺預(yù)裝了Python2和Python3版本,本文使用Python3作為開發(fā)語言。
2.2 OpenCV
OpenCV(開源計算機視覺庫)[3]是一個跨平臺的計算機視覺庫,可在Linux,Windows,Android和Mac OS操作系統(tǒng)上運行。OpenCV擁有豐富的C++接口,同時也保留了大量的C語言接口,而且OpenCV也擁有大量的Python、Java、Matlab和Ruby接口,可以通過在線文檔訪問這些語言的API接口函數(shù)。
OpenCV為圖像處理提供了豐富的基礎(chǔ)庫,并且可以調(diào)用開源的人臉信息數(shù)據(jù)庫以及行為特征數(shù)據(jù)庫,為本系統(tǒng)的開發(fā)提供了軟件上的支持。本文將OpenCV與Python相結(jié)合對圖像進行處理,通過機器學(xué)習(xí)技術(shù)訓(xùn)練圖像視頻流中的數(shù)據(jù)信息,建立樣本數(shù)據(jù)庫,實現(xiàn)對顧客的特異性識別,并將識別到的像信息傳輸至驅(qū)動控制單元實現(xiàn)購物車對顧客的主動跟隨功能。
2.3 激光雷達
本文所使用的激光雷達是思嵐科技(SLAMTEC)公司所生產(chǎn)的二維激光雷達,型號為RPLIDAR A1。它的測量范圍為12m,角度范圍為360°,測量頻率為8000次/s,具有較精準的空間定位和測距能力。
對于購物車來說,可靠的定位性能是自主導(dǎo)航系統(tǒng)的關(guān)鍵要素。當(dāng)?shù)貓D和購物車的位置都事先未知時,定位就變得更加復(fù)雜。在這種情況下,購物車需要從未知位置開始,逐步建立空間導(dǎo)航地圖,同時使用建立的地圖更新自身的位置。這種技術(shù)稱為即時定位與地圖構(gòu)建(SLAM)[4]。
本文將SLAM技術(shù)與動態(tài)路徑規(guī)劃算法相結(jié)合,計算購物車當(dāng)前的位姿和坐標,并不斷更新實現(xiàn)購物車的自主導(dǎo)航和自動泊位的功能。
2.4 主系統(tǒng)板
主系統(tǒng)板具有微處理器模塊、驅(qū)動控制模塊、超聲波測距模塊、紅外避障模塊、按鍵、電源,原理框圖如圖3所示。
(1)驅(qū)動控制模塊。
驅(qū)動控制模塊采用TB6612FNG芯片,與傳統(tǒng)的L298N芯片相比,效率更高,體積上也大大降低,在額定范圍內(nèi),芯片基本不發(fā)熱。
微處理器中的定時器 PWM 輸出,首先設(shè)置 T/C 中斷屏蔽寄存器TIMSKx,設(shè)置為定時器溢出中斷;其次,分別設(shè)置 T/C 控制寄存器TCCRxA和TCCRxB,分別選擇PWM模式和PWM預(yù)分頻器;最后,將控制信號引腳I/0置為輸出。程序運行時,只要定時計數(shù)器溢出時,CPU 就會響應(yīng)中斷,定時器重新啟動并重新開始計數(shù)。
(2)超聲波測距模塊。
超聲波測距模塊,其探頭內(nèi)部有兩個壓電晶片和一個共振板。本文所采用的超聲波測距方法為回聲探測法[5]。超聲波測距模塊的發(fā)射端發(fā)射超聲波信號,在發(fā)射的同時開始計時,超聲波信號在空氣中傳播,當(dāng)在傳播過程中碰到障礙物面的阻擋時就會立即反射,當(dāng)超聲波測距模塊的接收端收到反射來的超聲波信號時會立即停止計時。由于超聲波信號在空氣中的傳播速度為v=340m/s,因此根據(jù)計時的時間t,就可以計算出發(fā)射點距障礙物面的距離s,即:s=v*t/2。通過測量購物車與顧客之間的距離,使購物車始終與顧客保持在安全距離范圍內(nèi)。
(3)電源設(shè)計。
為了方便使用,本系統(tǒng)采用18650鋰電池供電設(shè)計,它的大容量、長壽命、較高的安全性能和無記憶效應(yīng)使得購物車在通電運行時更加穩(wěn)定、安全、可靠。圖4顯示的是電源電路圖。
3? 處理流程
當(dāng)顧客進入超市,并開啟購物車開關(guān)時,購物車便可自動開啟圖像識別和跟隨功能。購物車的圖像傳感器將瞄準顧客。當(dāng)顧客移動時,購物車的圖像傳感器將始終跟隨并鎖定顧客以防止跟隨目標錯亂的現(xiàn)象發(fā)生。在顧客行進過程中,購物車將與顧客保持大約1m的安全距離,便于顧客移動,并且還可以防止購物車跟丟顧客。在跟隨的過程中,購物車會通過超聲波測距傳感器傳送的距離信息及時調(diào)整自身的速度直道與顧客保持1m的安全距離為止。當(dāng)購物車在跟隨的過程中通過激光雷達和紅外避障傳感器檢測到行進的路上有障礙物時,會自動啟動規(guī)避方案,調(diào)整前行的方向,繞開障礙物,并及時的重新搜索跟隨目標,重新加速跟上顧客。當(dāng)購物車檢測到顧客有大幅度的拐彎時,購物車便會及時加速,縮短與顧客的距離,并保持在0.5m左右以防止跟丟目標。
當(dāng)顧客購買完商品并付款后,按下購物車上的“返程”按鍵時,購物車便進入自主導(dǎo)航和自動泊位模式。激光雷達掃描,并傳輸購物車坐標位置信息,通過建立空間地圖,利用動態(tài)路徑規(guī)劃算法和SLAM技術(shù)實現(xiàn)自主導(dǎo)航,通過不更跟新購物車所在空間的位置信息實現(xiàn)購物車的自主行駛實現(xiàn)自動泊位功能(智能購物車實物圖如圖5所示)。
4? 基于OpenCV的圖像識別技術(shù)
為了防止購物車發(fā)生跟隨目標混亂的現(xiàn)象,購物車通過捕獲圖像傳感器中實時視頻流信息中的顧客臉部和體征信息[6]進行鎖定?;贠penCV和激光雷達的智能跟隨購物車使用OpenCV計算機視覺庫來識別顧客的面部和體征信息。利用機器學(xué)習(xí)[7]將第三方人臉特征數(shù)據(jù)庫作為訓(xùn)練樣本,采用Haar分類器對不同人的臉部信息和體征信息數(shù)據(jù)進行級聯(lián),實現(xiàn)特異性識別。圖像識別流程圖如圖6所示。
圖7是購物車經(jīng)圖像識別處理后所檢測到的人體數(shù)據(jù)信息。當(dāng)購物車特異性識別到顧客時會將其框選,并對框選部分的圖像作為樣本進行訓(xùn)練,建立該顧客的樣本數(shù)據(jù)庫。
5? 空間定位與路徑規(guī)劃
購物車通過激光雷達獲取空間信息,并利用基于粒子濾波的蒙特卡洛定位算法[8]獲取超市空間的全局定位信息。在未知的環(huán)境中,購物車利用SLAM技術(shù)進行定位和構(gòu)建環(huán)境地圖,如圖8所示。
在已知的環(huán)境中,購物車通過A*(A-Star)尋路算法[9]在靜態(tài)地圖中進行全局路徑規(guī)劃,并利用軌跡展開法和動態(tài)窗口法實現(xiàn)局部動態(tài)路徑規(guī)劃[10],繼而使購物車自主導(dǎo)航同時具備躲避障礙的功能,并可根據(jù)設(shè)定的目標自動行進并抵達購物車指定停車區(qū)域。
6? 結(jié)語
本文通過對基于OpenCV與激光雷達的智能跟隨購物車系統(tǒng)設(shè)計與實現(xiàn)進行介紹,介紹了電路設(shè)計、軟件設(shè)計、硬件平臺搭建以及相關(guān)傳感器模塊的應(yīng)用,較完整地闡述了系統(tǒng)從模塊到成品地整個過程,并通過對相關(guān)功能的測試,表現(xiàn)系統(tǒng)整體的性能較為優(yōu)良,達到了預(yù)期的設(shè)計目的。今后還需進一步完善本系統(tǒng),使其運行較長時間時具有更強更穩(wěn)定的性能,并不斷改進購物車的功能。
參考文獻
[1] 梅宏.智慧城市與信息化3.0[J].中國建設(shè)信息,2015(9):6-7.
[2] 俞文靜,莫健彬,黃嘉鏘.基于樹莓派與 OpenCV 的智能監(jiān)控跟蹤機器人系統(tǒng)設(shè)計與實現(xiàn)[J].現(xiàn)代計算機, 2017(6).
[3] 王曉,蹤琳.基于OpenCV視覺庫的嵌入式視頻處理系統(tǒng)[J].電子質(zhì)量, 2017(3):54-59.
[4] 危雙豐,龐帆,劉振彬,等.基于激光雷達的同時定位與地圖構(gòu)建方法綜述[J/OL].計算機應(yīng)用研究:1-8[2019-01-03].http://kns.cnki.net/kcms/detail/51.1196.TP.20181219.1936.001.html.
[5] 楊志江,鄭昆,耿春明,等.基于RS-485總線的多路超聲波傳感器測距系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2018,37(12):79-82.
[6] 杜慧,趙曉東.人體行走特征識別研究[J].科技風(fēng),2018(28):195-196.
[7] 高浩宇.基于機器學(xué)習(xí)的圖像識別研究與應(yīng)用[D].華中師范大學(xué),2018.
[8] 吳敬陽.基于激光雷達定位導(dǎo)航的多自主移動機器人系統(tǒng)研制[D].哈爾濱工業(yè)大學(xué),2017.
[9] 徐唐劍.A~*尋路算法的并行化設(shè)計及改進[J].現(xiàn)代計算機:專業(yè)版,2018(21):44-49.
[10]王燦,孔斌,韋虎.基于激光雷達機器人的目標人跟蹤方法研究[J].計算機應(yīng)用與軟件,2014,31(7).