楊茗峰,雷以軒,何金蓬
(東南大學(xué) 成賢學(xué)院,江蘇南京,210088)
門店的客流情況直接影響其經(jīng)營情況,掌握門店的客流情況可以幫助店主合理規(guī)劃門店雇員的人數(shù)和工作時(shí)間,從而有效降低門店的運(yùn)營成本,這關(guān)系到門店的生存與發(fā)展。近年來,客流統(tǒng)計(jì)系統(tǒng)的開發(fā)已經(jīng)成為一個(gè)熱點(diǎn)方向,通過對現(xiàn)有的客流統(tǒng)計(jì)系統(tǒng)進(jìn)行調(diào)查,實(shí)現(xiàn)方案主要集中于入口機(jī)械欄桿裝置和紅外線客流量計(jì)數(shù)器,前者的設(shè)備成本高且對使用場地有一定的限制,后者在面對兩名及以上顧客并排進(jìn)店等場景時(shí)的監(jiān)測正確率很低。目前市場上基于機(jī)器視覺算法的客流量計(jì)數(shù)器的產(chǎn)品相對較少,本設(shè)計(jì)在具有運(yùn)行功耗低、成本較低和安裝方便的同時(shí)還可接入互聯(lián)網(wǎng),因此具有廣闊的應(yīng)用空間。
基于STM32 的物聯(lián)網(wǎng)門店客流監(jiān)測系統(tǒng)的整體方案設(shè)計(jì)結(jié)構(gòu)如圖1 所示。當(dāng)雷達(dá)感應(yīng)模組監(jiān)測到有人進(jìn)店時(shí),喚醒智能攝像頭進(jìn)行人臉識別,從而得到每次顧客進(jìn)入時(shí)的客流數(shù)據(jù),并將客流數(shù)據(jù)發(fā)送至STM32 單片機(jī),STM32 單片機(jī)控制WiFi 通信模塊將客流數(shù)據(jù)經(jīng)無線局域網(wǎng)發(fā)送至云服務(wù)器,用戶使用手機(jī)App 訪問云服務(wù)器即可以曲線圖的形式更為直觀地查看門店客流數(shù)據(jù)。

圖1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖
基于STM32 的物聯(lián)網(wǎng)門店客流監(jiān)測系統(tǒng)的電路原理圖如圖2 所示。HLK-LD2410 人體存在雷達(dá)感應(yīng)模組通過通用I/O 口連接OpenMV4 H7 Plus 攝像頭上的STM32H743IIK6處理器,STM32H743IIK6 處理器可驅(qū)動(dòng)OV5640 感光元件采集畫面,STM32H743IIK6 處理器通過UART 串口連接STM32F103C8T6 單片機(jī),STM32F103C8T6 單片機(jī)通過UART 串口連接ATK-ESP8266 WiFi 通信模塊。

圖2 電路原理圖
2.2.1 HLK-LD2410 人體存在雷達(dá)感應(yīng)模組
HLK-LD2410 是一款高靈敏度的24GHz 人體存在雷達(dá)感應(yīng)模組,利用FMCW 調(diào)頻連續(xù)波,對設(shè)定空間內(nèi)的人體目標(biāo)進(jìn)行探測,結(jié)合雷達(dá)信號處理、精確人體感應(yīng)算法,實(shí)現(xiàn)了高靈敏度的人體存在狀態(tài)感應(yīng),其主要應(yīng)用在室內(nèi)場景,最遠(yuǎn)感應(yīng)距離可達(dá)6 米,通過配置工具可配置感應(yīng)距離范圍、不同區(qū)間的感應(yīng)靈敏度和無人延時(shí)時(shí)間等,以達(dá)到更好的人體感應(yīng)效果。在本系統(tǒng)中,當(dāng)HLK-LD2410 人體存在雷達(dá)感應(yīng)模組監(jiān)測到有人進(jìn)店時(shí),將信號通過通用I/O 口發(fā)送至OpenMV4 H7 Plus 攝像頭上的STM32H743IIK6 處理器,隨后喚醒板載的OV5640 感光元件開始采集畫面,如此設(shè)計(jì)可以有效降低系統(tǒng)運(yùn)行的總體功耗,延長感光元件的使用壽命。
2.2.2 OpenMV4 H7 Plus 攝像頭
OpenMV4H7 Plus 是一個(gè)非常易用和低價(jià)的機(jī)器視覺開發(fā)組件,是一款由STM32H743IIK6 處理器和OV5640 感光元件組成的單片機(jī)攝像頭,底層使用C 語言編程,其內(nèi)置了MicroPython 解釋器,開發(fā)者可以在嵌入式上直接使用MicroPython 語言編程,Python 的高級數(shù)據(jù)結(jié)構(gòu)幫助開發(fā)者可以很容易地在機(jī)器視覺算法中處理復(fù)雜的輸出。在本系統(tǒng)中,當(dāng)OpenMV4 H7 Plus 攝像頭上的STM32H743IIK6處理器收到HLK-LD2410 人體存在雷達(dá)感應(yīng)模組通過通用I/O 口發(fā)送的信號后,喚醒板載的OV5640 感光元件開始采集畫面,隨后STM32H743IIK6 處理器開始分析畫面并計(jì)算客流數(shù)據(jù),最后通過UART 串口將分析得到的客流數(shù)據(jù)發(fā)送至STM32F103C8T6 單片機(jī)。
2.2.3 ATK-ESP8266 WiFi 通信模塊
ATK-ESP8266 是一款采用串口與MCU(或其他串口設(shè)備)通信,內(nèi)置TCP/IP 協(xié)議棧,能夠?qū)崿F(xiàn)串口與WiFi 之間的轉(zhuǎn)換的WiFi通信模塊,模塊支持串口轉(zhuǎn)WiFi STA、串口轉(zhuǎn)AP 和WiFi STA+WiFi AP 的模式,從而快速構(gòu)建串口-WiFi 數(shù)據(jù)傳輸方案。在本系統(tǒng)中,STM32F103C8T6 單片機(jī)通過UART 串口連接ATKESP8266 WiFi通信模塊,使用MQTT 協(xié)議接入阿里云服務(wù)器,通過上傳特定的報(bào)文實(shí)現(xiàn)向阿里云服務(wù)器上傳當(dāng)前客流數(shù)據(jù)。
系統(tǒng)運(yùn)行流程如圖3 所示。系統(tǒng)開啟后,首先進(jìn)行初始化操作,完成基于Haar 特征的Cascade 分類器機(jī)器視覺算法和UART 串口的初始化,為后續(xù)調(diào)用機(jī)器視覺算法和UART 串口相關(guān)函數(shù)做準(zhǔn)備。初始化完成后,HLKLD2410 人體存在雷達(dá)感應(yīng)模組始終保持工作狀態(tài),當(dāng)其監(jiān)測到有人進(jìn)店時(shí),將信號通過通用I/O 口發(fā)送至OpenMV4 H7 Plus 攝像頭上的STM32H743IIK6 處理器,程序經(jīng)過50ms 的延時(shí)確定當(dāng)前有人進(jìn)店后,喚醒OV5640 感光元件開始采集畫面,采集的畫面分辨率為VGA:640×480,在保證畫面細(xì)節(jié)允許進(jìn)行人臉識別的同時(shí)提高了畫面采集的幀率,當(dāng)顧客走出監(jiān)測范圍后,關(guān)閉OV5640 感光元件結(jié)束畫面采集。

圖3 系統(tǒng)運(yùn)行流程圖
采集畫面的同時(shí),STM32H743IIK6 處理器通過加載“frontalface”人臉Haar 模型對采集到的每一幀畫面進(jìn)行人臉識別,每幀畫面中的人臉數(shù)量即為此畫面中的顧客人數(shù),取單次顧客進(jìn)店過程中采集到的所有畫面顧客人數(shù)的最大值作為本次進(jìn)店的顧客人數(shù),并累加至當(dāng)日總客流量,便完成了單次顧客進(jìn)店的客流監(jiān)測。隨后,STM32H743IIK6 處理器將當(dāng)前客流數(shù)據(jù)加密打包后通過UART 串口發(fā)送至STM32F103C8T6 單片機(jī),STM32F103C8T6 單片機(jī)觸發(fā)UART 串口中斷并進(jìn)入中斷服務(wù)程序,程序?qū)⒔邮盏降臄?shù)據(jù)解析后得到當(dāng)前客流數(shù)據(jù)。最后,STM32F103C8T6 單片機(jī)通過UART 串口連接ATKESP8266 WiFi 通信模塊,根據(jù)MQTT 協(xié)議將相關(guān)數(shù)據(jù)打包后發(fā)送至阿里云服務(wù)器,待成功收到阿里云服務(wù)器返回的報(bào)文后進(jìn)入下一輪客流監(jiān)測。
OpenMV4 H7 Plus 攝像頭主要完成客流監(jiān)測的功能,程序在其STM32H743IIK6 處理器上運(yùn)行。基于Haar 特征的Cascade 分類器是由Paul Viola 和Michael Jone 在其論文論文“使用簡單特征的增強(qiáng)級聯(lián)進(jìn)行快速對象檢測(Rapid Object Detection using a Boosted Cascade of Simple Features)”于2001 年提出的一種有效的物品檢測方法,是一種機(jī)器學(xué)習(xí)方法,其通過許多正負(fù)樣例中訓(xùn)練得到cascade 方程,然后將其應(yīng)用于其他圖片。
實(shí)現(xiàn)人臉識別的關(guān)鍵程序如圖4 所示。第一行程序加載了“frontalface”人臉Haar 模型,為第三行程序的正確運(yùn)行做準(zhǔn)備,其中,將stages 值設(shè)置得小可以加快匹配速度,但會(huì)降低匹配的準(zhǔn)確率,本系統(tǒng)設(shè)置的stages 值為25。第二行程序控制感光元件拍攝了一張照片,并將拍攝的照片存入輔助幀緩沖存儲區(qū),返回給img 對象,圖像存儲在該存儲區(qū)域的底部,剩下的任何內(nèi)存都可供幀緩沖區(qū)堆棧使用,OpenMV4 H7 Plus 攝像頭的固件使用它來保存用于圖像處理算法的大型臨時(shí)數(shù)據(jù)結(jié)構(gòu)。第三行程序?qū)Φ诙谐绦蚺臄z的照片進(jìn)行了分析并在其中尋找人臉,其中,scale 值可以縮放被匹配特征的大小,而threshold 值越大,匹配速度越快,匹配的準(zhǔn)確率也會(huì)下降,本系統(tǒng)設(shè)置的scale 值為1.35,threshold 值為0.75。第四行程序?qū)⒌谌谐绦蛟谂臄z的照片中尋找到的人臉的數(shù)量賦值給face_add,便得到了單張照片中的顧客人數(shù),通過取單次顧客進(jìn)店過程中采集到的所有畫面顧客人數(shù)的最大值便得到了本次進(jìn)店的顧客人數(shù)。

圖4 關(guān)鍵程序示例
在物聯(lián)網(wǎng)架構(gòu)中,物聯(lián)網(wǎng)云平臺屬于中間部分,起著承上啟下的作用,本文選用阿里云生活物聯(lián)網(wǎng)平臺,其是一款針對智能生活領(lǐng)域的物聯(lián)網(wǎng)云平臺,是在阿里云IaaS 和PaaS 層云產(chǎn)品的基礎(chǔ)上,搭建的一套公有云平臺,開發(fā)門檻較低,其原理圖如圖5 所示。MQTT(消息隊(duì)列遙測傳輸)是ISO標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的消息協(xié)議,是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議,運(yùn)用MQTT 協(xié)議,設(shè)備可以很方便地連接到物聯(lián)網(wǎng)云服務(wù),管理設(shè)備并處理數(shù)據(jù),最后應(yīng)用到各種業(yè)務(wù)場景。

圖5 阿里云生活物聯(lián)網(wǎng)平臺原理圖
系統(tǒng)使用平臺頒發(fā)的唯一設(shè)備證書(ProductKey、DeviceName、DeviceSecret)接入阿里云生活物聯(lián)網(wǎng)平臺后,通過MQTT 協(xié)議向平臺發(fā)送含有當(dāng)前客流信息的報(bào)文,平臺收到報(bào)文后進(jìn)行解析,將數(shù)據(jù)值匹配功能名稱的標(biāo)識符,從而匹配相應(yīng)的功能名稱。阿里云生活物聯(lián)網(wǎng)平臺提供了公版免開發(fā)App“云智能”,其可以通過阿里云生活物理網(wǎng)平臺進(jìn)行開發(fā)、調(diào)試和管理,在平臺中產(chǎn)品的人機(jī)交互頁面,打開“使用公版App 控制產(chǎn)品”的控制開關(guān),即可很方便地設(shè)計(jì)產(chǎn)品的面板界面。阿里云生活物聯(lián)網(wǎng)平臺通過HTTPS 或MQTT 協(xié)議向云智能App 發(fā)送客流數(shù)據(jù),用戶在云智能App 中可以以曲線圖的形式查看每小時(shí)、日、周、月的客流數(shù)據(jù)變化情況,用戶界面如圖6 所示。

圖6 云智能App 示例
完成了系統(tǒng)的軟件硬件設(shè)計(jì)和各部分的單獨(dú)測試后,需要通過對整體系統(tǒng)的大量測試來測試客流數(shù)據(jù)的準(zhǔn)確性,以驗(yàn)證系統(tǒng)能否投入實(shí)際應(yīng)用。基于STM32 的物聯(lián)網(wǎng)門店客流監(jiān)測系統(tǒng)的實(shí)物如圖7所示,將設(shè)備固定在距離地面約1.7米高、距離門店門口約3 米遠(yuǎn)處,攝像頭正面朝向門店入口,開啟電源后等待設(shè)備自動(dòng)接入門店WLAN(無線局域網(wǎng)),云智能App 顯示設(shè)備在線后開始測試。測試通過改變每次進(jìn)店的顧客人數(shù)(從1 人逐步增加至5 人),每種顧客人數(shù)的測試次數(shù)為100 次,將系統(tǒng)分析得到的客流數(shù)據(jù)與實(shí)際的客流數(shù)據(jù)進(jìn)行對比,從而得出不同進(jìn)店顧客人數(shù)情況下的客流監(jiān)測正確率,測試數(shù)據(jù)如表1 所示。

表1 系統(tǒng)測試數(shù)據(jù)

圖7 系統(tǒng)實(shí)物圖
對表1 的測試數(shù)據(jù)進(jìn)行分析可以得出,本系統(tǒng)在單次進(jìn)店顧客人數(shù)為1-2 人時(shí)能夠保證97%以上的監(jiān)測正確率;在單次進(jìn)店顧客人數(shù)增加至3-4 人時(shí)監(jiān)測正確率有所下降,但仍保持在90%以上;在單次進(jìn)店顧客人數(shù)增加至5 人時(shí)監(jiān)測正確率有較大幅度下降;考慮在實(shí)際應(yīng)用中單次進(jìn)店顧客人數(shù)為6 人及以上的情況很少,故在測試中未涉及。綜合測試數(shù)據(jù),本系統(tǒng)在單次進(jìn)店顧客人數(shù)為1-4 人時(shí)能夠保證較高的監(jiān)測正確率,符合實(shí)際應(yīng)用場景的需求。
基于STM32 的物聯(lián)網(wǎng)門店客流監(jiān)測系統(tǒng)將HLKLD2410 人體存在雷達(dá)感應(yīng)模組和OpenMV4 H7 Plus 攝像頭結(jié)合起來,配合機(jī)器視覺算法實(shí)現(xiàn)了客流數(shù)據(jù)的監(jiān)測,配合ATK-ESP8266 WiFi 通信模塊實(shí)現(xiàn)了物聯(lián)網(wǎng),云智能App為用戶提供了直觀的客流數(shù)據(jù)展現(xiàn)形式。本系統(tǒng)相較于入口機(jī)械欄桿裝置具有成本較低、安裝方便的優(yōu)勢,相較于紅外線客流量計(jì)數(shù)器顯著提高了客流監(jiān)測的正確率,并且運(yùn)行功耗低、使用壽命長,具有一定的實(shí)用價(jià)值,為投入商用提供了基本保證。