蘇羽康,林鵬程,郭 佳
(廈門大學(xué)嘉庚學(xué)院 信息科學(xué)與技術(shù)學(xué)院,福建 漳州 363105)
依靠互聯(lián)網(wǎng)的迅速發(fā)展,網(wǎng)上購物已經(jīng)迅速成為人們的主要購物方式之一。隨著網(wǎng)購數(shù)量的增多,線下快遞站點也逐年增加。目前快遞站點的快遞柜皆由單純的儲物柜組成,對于快遞站點來說建設(shè)和后期調(diào)整的工程量大;且依照取件碼尋找快遞柜的取件流程較為繁瑣,并非最佳取件方案。
針對上述問題,已存在一些解決方案。文獻(xiàn)[1]中采用STC89C51芯片實現(xiàn)派件和取件兩種操作,用于解決校園快遞“最后100 m”問題,但該方案采用驗證碼方式取件,與傳統(tǒng)取件方式類似,未達(dá)到智能化的目標(biāo)。文獻(xiàn)[2]通過STM32單片機及NB-IoT的應(yīng)用,設(shè)計出可解決包裝浪費等問題的智能快遞包裹箱。在減少快遞包裝物對環(huán)境影響的同時,防止用戶個人信息的泄露,但該方案未解決大量快遞的存放管理和取件派件等問題。文獻(xiàn)[3]以STM32F1系列芯片為控制核心,設(shè)計了一款智能指紋儲物柜,該方案實現(xiàn)了指紋識別等功能,在一些功能上實現(xiàn)了智能化。但指紋識別會讓大量客戶肢體接觸識別面板,在考慮衛(wèi)生方面問題的情況下并非最佳方案。
綜上所述,結(jié)合大量設(shè)計及實際應(yīng)用,本文研究并設(shè)計了一款基于Jetson Nano的智能快遞柜。相比現(xiàn)有快遞柜,該設(shè)計能通過手機APP引導(dǎo)取件人員到相應(yīng)快遞柜,并在完成人臉識別認(rèn)證后,取出快遞;同時在快遞站正在建設(shè)和調(diào)整時,工作人員可按照預(yù)期快遞數(shù)量組合快遞柜。
系統(tǒng)結(jié)構(gòu)如圖1所示,該智能快遞柜由主單元和子單元組成,搭建一個功能完整的快遞柜需要一個主單元和若干子單元。其中主單元搭載Jetson Nano開發(fā)板和樂視TMC520三合一攝像頭、TFTLCD顯示屏。每個子單元搭載ARM Cortex-M4內(nèi)核STM32F103VET6輔助芯片,主要用于快遞貨柜指示燈和柜門的控制。

圖1 系統(tǒng)構(gòu)成框圖
主單元快遞柜搭載的Jetson Nano配置有USB接口攝像頭,在Jetson Nano下的Ubuntu系統(tǒng)中無須安裝驅(qū)動,使用方便,配置簡單,容易整合,可以完成離線的圖像工作(曝光控制、幀率等);其次,除人臉識別外,Jetson Nano將實現(xiàn)與服務(wù)器進(jìn)行雙向通信的功能。
子單元快遞柜上搭載STM32F103VET6,該芯片工作效率高且穩(wěn)定、價格低廉,適合應(yīng)用于此設(shè)計中。單元間相互通信時,主單元快遞柜和子單元快遞柜先進(jìn)行交互,再由子單元快遞柜上的STM32控制指示燈的開關(guān)和柜門的開合。主單元與子單元之間以及子單元與子單元之間均采用CAN總線進(jìn)行通信交互。
在建設(shè)快遞站點時,工作人員可根據(jù)房屋內(nèi)的布局,合理拼接主單元與子單元,完成快遞柜的建設(shè)。
系統(tǒng)運作流程如圖2所示。在本方案中用戶需要根據(jù)手機端APP指示前往快遞站點。用戶在該快遞柜的主單元進(jìn)行人臉識別后,快遞柜將在指定的子單元上亮起指示燈;取走快遞后,指示燈熄滅,用戶完成取件。具體運作流程如下:

圖2 系統(tǒng)運作流程
(1)快遞員根據(jù)用戶信息,存入快遞;
(2)Jetson Nano與服務(wù)器協(xié)同工作,取得用戶信息,并發(fā)送取件通知給用戶手機APP;
(3)用戶手機APP顯示快遞信息,用戶前往快遞站;
(4)手機APP定位功能檢測到用戶到達(dá)快遞站;
(5)用戶進(jìn)行人臉識別,在主單元上錄入快遞信息,取走快遞(本人取或代取);
(6)信息錄入結(jié)果顯示在顯示屏上;
(7)快遞信息與用戶信息成功錄入,用戶離場;
(8)Jetson Nano刪除該用戶信息。
系統(tǒng)硬件設(shè)計主要涉及:主單元與子單元快遞柜的機械設(shè)計;主單元中Jetson Nano與其攝像頭和顯示屏的搭建;子單元中STM32與指示燈的控制及其電路設(shè)計。
主單元快遞柜采用滑軌拼接的設(shè)計,其機械設(shè)計外觀如圖3所示。

圖3 主單元快遞柜外觀
快遞站點建設(shè)時,工作人員可按實際情況自定義快遞柜形狀大小,通過滑軌的方式將兩個單元進(jìn)行拼接。每個單元各有4個電氣觸點負(fù)責(zé)CAN總線通信與電源供給。
系統(tǒng)工作時,主單元上的Jetson Nano通過CAN總線與子單元進(jìn)行通信交互,由USB接口攝像頭進(jìn)行數(shù)據(jù)采集錄入,通過網(wǎng)絡(luò)將信息數(shù)據(jù)傳輸至云端服務(wù)器。
子單元快遞柜外觀如圖4所示。子單元快遞柜與主單元一樣采用滑軌拼接的設(shè)計,并搭載STM32F103VET6完成功能搭建并進(jìn)行控制。

圖4 子單元快遞柜外觀
子單元外圍電路如圖5所示。主單元與子單元采用CAN總線通信,當(dāng)子單元收到開啟信號時,LED燈亮起,并打開柜門。

圖5 子單元外圍電路
系統(tǒng)中Jetson Nano操作系統(tǒng)選用Ubuntu系統(tǒng),該系統(tǒng)使用廣泛、性能穩(wěn)定,并使用Python作為主要編程語言。
人臉識別代碼結(jié)構(gòu)如圖6所示。本實例中,將人臉識別的功能應(yīng)用在Jetson Nano上。在實現(xiàn)該功能時,本系統(tǒng)需要依賴Tensorflow、OpenCV等集成算法庫以及Python、C語言等程序編程語言。完成以上環(huán)境搭建后,創(chuàng)建工作空間,并在該工作空間編寫四個人臉識別代碼。

圖6 人臉識別代碼結(jié)構(gòu)
通過分別運行文件夾下get_my_faces.py和set_other_faces.py程序獲取個人及他人人臉數(shù)據(jù)。運行train_faces.py程序,將獲取的個人人臉和他人人臉的數(shù)據(jù)進(jìn)行模型訓(xùn)練,再運行is_my_face.py程序進(jìn)行判斷,若為個人人臉,則輸出true,鎖舌收縮,柜門開啟,如圖7所示。當(dāng)為其他人臉則輸出false,鎖舌保持彈出狀態(tài),柜門不開啟,如圖8所示。

圖7 鎖舌收縮

圖8 鎖舌彈出
本文設(shè)計的智能快遞柜可依靠人臉識別系統(tǒng),完成取件流程,可代替輸入取件碼或掃描二維碼的傳統(tǒng)方式,更好地保護(hù)用戶個人信息,同時提高取件效率,并減少了快遞站工作人員的工作負(fù)擔(dān)。在機械設(shè)計上,快遞柜采用滑軌拼接的連接方式,讓快遞柜更加靈活,節(jié)省占用空間。
本文設(shè)計項目主要通過Jetson Nano完成人臉識別、數(shù)據(jù)處理,采用STM32芯片配合完成快遞柜之間的信息交互與控制。軟硬件相結(jié)合,融合度高,應(yīng)用了人工智能、電子設(shè)計、單片機等方面的知識,有較大的實踐意義。