蘇羽康,林鵬程,郭 佳
(廈門大學(xué)嘉庚學(xué)院 信息科學(xué)與技術(shù)學(xué)院,福建 漳州 363105)
依靠互聯(lián)網(wǎng)的迅速發(fā)展,網(wǎng)上購(gòu)物已經(jīng)迅速成為人們的主要購(gòu)物方式之一。隨著網(wǎng)購(gòu)數(shù)量的增多,線下快遞站點(diǎn)也逐年增加。目前快遞站點(diǎn)的快遞柜皆由單純的儲(chǔ)物柜組成,對(duì)于快遞站點(diǎn)來說建設(shè)和后期調(diào)整的工程量大;且依照取件碼尋找快遞柜的取件流程較為繁瑣,并非最佳取件方案。
針對(duì)上述問題,已存在一些解決方案。文獻(xiàn)[1]中采用STC89C51芯片實(shí)現(xiàn)派件和取件兩種操作,用于解決校園快遞“最后100 m”問題,但該方案采用驗(yàn)證碼方式取件,與傳統(tǒng)取件方式類似,未達(dá)到智能化的目標(biāo)。文獻(xiàn)[2]通過STM32單片機(jī)及NB-IoT的應(yīng)用,設(shè)計(jì)出可解決包裝浪費(fèi)等問題的智能快遞包裹箱。在減少快遞包裝物對(duì)環(huán)境影響的同時(shí),防止用戶個(gè)人信息的泄露,但該方案未解決大量快遞的存放管理和取件派件等問題。文獻(xiàn)[3]以STM32F1系列芯片為控制核心,設(shè)計(jì)了一款智能指紋儲(chǔ)物柜,該方案實(shí)現(xiàn)了指紋識(shí)別等功能,在一些功能上實(shí)現(xiàn)了智能化。但指紋識(shí)別會(huì)讓大量客戶肢體接觸識(shí)別面板,在考慮衛(wèi)生方面問題的情況下并非最佳方案。
綜上所述,結(jié)合大量設(shè)計(jì)及實(shí)際應(yīng)用,本文研究并設(shè)計(jì)了一款基于Jetson Nano的智能快遞柜。相比現(xiàn)有快遞柜,該設(shè)計(jì)能通過手機(jī)APP引導(dǎo)取件人員到相應(yīng)快遞柜,并在完成人臉識(shí)別認(rèn)證后,取出快遞;同時(shí)在快遞站正在建設(shè)和調(diào)整時(shí),工作人員可按照預(yù)期快遞數(shù)量組合快遞柜。
系統(tǒng)結(jié)構(gòu)如圖1所示,該智能快遞柜由主單元和子單元組成,搭建一個(gè)功能完整的快遞柜需要一個(gè)主單元和若干子單元。其中主單元搭載Jetson Nano開發(fā)板和樂視TMC520三合一攝像頭、TFTLCD顯示屏。每個(gè)子單元搭載ARM Cortex-M4內(nèi)核STM32F103VET6輔助芯片,主要用于快遞貨柜指示燈和柜門的控制。
圖1 系統(tǒng)構(gòu)成框圖
主單元快遞柜搭載的Jetson Nano配置有USB接口攝像頭,在Jetson Nano下的Ubuntu系統(tǒng)中無須安裝驅(qū)動(dòng),使用方便,配置簡(jiǎn)單,容易整合,可以完成離線的圖像工作(曝光控制、幀率等);其次,除人臉識(shí)別外,Jetson Nano將實(shí)現(xiàn)與服務(wù)器進(jìn)行雙向通信的功能。
子單元快遞柜上搭載STM32F103VET6,該芯片工作效率高且穩(wěn)定、價(jià)格低廉,適合應(yīng)用于此設(shè)計(jì)中。單元間相互通信時(shí),主單元快遞柜和子單元快遞柜先進(jìn)行交互,再由子單元快遞柜上的STM32控制指示燈的開關(guān)和柜門的開合。主單元與子單元之間以及子單元與子單元之間均采用CAN總線進(jìn)行通信交互。
在建設(shè)快遞站點(diǎn)時(shí),工作人員可根據(jù)房屋內(nèi)的布局,合理拼接主單元與子單元,完成快遞柜的建設(shè)。
系統(tǒng)運(yùn)作流程如圖2所示。在本方案中用戶需要根據(jù)手機(jī)端APP指示前往快遞站點(diǎn)。用戶在該快遞柜的主單元進(jìn)行人臉識(shí)別后,快遞柜將在指定的子單元上亮起指示燈;取走快遞后,指示燈熄滅,用戶完成取件。具體運(yùn)作流程如下:
圖2 系統(tǒng)運(yùn)作流程
(1)快遞員根據(jù)用戶信息,存入快遞;
(2)Jetson Nano與服務(wù)器協(xié)同工作,取得用戶信息,并發(fā)送取件通知給用戶手機(jī)APP;
(3)用戶手機(jī)APP顯示快遞信息,用戶前往快遞站;
(4)手機(jī)APP定位功能檢測(cè)到用戶到達(dá)快遞站;
(5)用戶進(jìn)行人臉識(shí)別,在主單元上錄入快遞信息,取走快遞(本人取或代取);
(6)信息錄入結(jié)果顯示在顯示屏上;
(7)快遞信息與用戶信息成功錄入,用戶離場(chǎng);
(8)Jetson Nano刪除該用戶信息。
系統(tǒng)硬件設(shè)計(jì)主要涉及:主單元與子單元快遞柜的機(jī)械設(shè)計(jì);主單元中Jetson Nano與其攝像頭和顯示屏的搭建;子單元中STM32與指示燈的控制及其電路設(shè)計(jì)。
主單元快遞柜采用滑軌拼接的設(shè)計(jì),其機(jī)械設(shè)計(jì)外觀如圖3所示。
圖3 主單元快遞柜外觀
快遞站點(diǎn)建設(shè)時(shí),工作人員可按實(shí)際情況自定義快遞柜形狀大小,通過滑軌的方式將兩個(gè)單元進(jìn)行拼接。每個(gè)單元各有4個(gè)電氣觸點(diǎn)負(fù)責(zé)CAN總線通信與電源供給。
系統(tǒng)工作時(shí),主單元上的Jetson Nano通過CAN總線與子單元進(jìn)行通信交互,由USB接口攝像頭進(jìn)行數(shù)據(jù)采集錄入,通過網(wǎng)絡(luò)將信息數(shù)據(jù)傳輸至云端服務(wù)器。
子單元快遞柜外觀如圖4所示。子單元快遞柜與主單元一樣采用滑軌拼接的設(shè)計(jì),并搭載STM32F103VET6完成功能搭建并進(jìn)行控制。
圖4 子單元快遞柜外觀
子單元外圍電路如圖5所示。主單元與子單元采用CAN總線通信,當(dāng)子單元收到開啟信號(hào)時(shí),LED燈亮起,并打開柜門。
圖5 子單元外圍電路
系統(tǒng)中Jetson Nano操作系統(tǒng)選用Ubuntu系統(tǒng),該系統(tǒng)使用廣泛、性能穩(wěn)定,并使用Python作為主要編程語言。
人臉識(shí)別代碼結(jié)構(gòu)如圖6所示。本實(shí)例中,將人臉識(shí)別的功能應(yīng)用在Jetson Nano上。在實(shí)現(xiàn)該功能時(shí),本系統(tǒng)需要依賴Tensorflow、OpenCV等集成算法庫(kù)以及Python、C語言等程序編程語言。完成以上環(huán)境搭建后,創(chuàng)建工作空間,并在該工作空間編寫四個(gè)人臉識(shí)別代碼。
圖6 人臉識(shí)別代碼結(jié)構(gòu)
通過分別運(yùn)行文件夾下get_my_faces.py和set_other_faces.py程序獲取個(gè)人及他人人臉數(shù)據(jù)。運(yùn)行train_faces.py程序,將獲取的個(gè)人人臉和他人人臉的數(shù)據(jù)進(jìn)行模型訓(xùn)練,再運(yùn)行is_my_face.py程序進(jìn)行判斷,若為個(gè)人人臉,則輸出true,鎖舌收縮,柜門開啟,如圖7所示。當(dāng)為其他人臉則輸出false,鎖舌保持彈出狀態(tài),柜門不開啟,如圖8所示。
圖7 鎖舌收縮
圖8 鎖舌彈出
本文設(shè)計(jì)的智能快遞柜可依靠人臉識(shí)別系統(tǒng),完成取件流程,可代替輸入取件碼或掃描二維碼的傳統(tǒng)方式,更好地保護(hù)用戶個(gè)人信息,同時(shí)提高取件效率,并減少了快遞站工作人員的工作負(fù)擔(dān)。在機(jī)械設(shè)計(jì)上,快遞柜采用滑軌拼接的連接方式,讓快遞柜更加靈活,節(jié)省占用空間。
本文設(shè)計(jì)項(xiàng)目主要通過Jetson Nano完成人臉識(shí)別、數(shù)據(jù)處理,采用STM32芯片配合完成快遞柜之間的信息交互與控制。軟硬件相結(jié)合,融合度高,應(yīng)用了人工智能、電子設(shè)計(jì)、單片機(jī)等方面的知識(shí),有較大的實(shí)踐意義。