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

圖1 系統設計結構圖
基于STM32 的物聯網門店客流監測系統的電路原理圖如圖2 所示。HLK-LD2410 人體存在雷達感應模組通過通用I/O 口連接OpenMV4 H7 Plus 攝像頭上的STM32H743IIK6處理器,STM32H743IIK6 處理器可驅動OV5640 感光元件采集畫面,STM32H743IIK6 處理器通過UART 串口連接STM32F103C8T6 單片機,STM32F103C8T6 單片機通過UART 串口連接ATK-ESP8266 WiFi 通信模塊。

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

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

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

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

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

表1 系統測試數據

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