張 珣,薛云哲
(杭州電子科技大學(xué)現(xiàn)代電路與智能信息研究所,浙江杭州 310018)
從1852 年至今的168 年間,零售業(yè)態(tài)經(jīng)歷了百貨商店、連鎖店、大型商超、線上商店到智能新零售業(yè)態(tài)5 次變化歷程。智能新零售業(yè)態(tài)是指購(gòu)物行為依托現(xiàn)代信息技術(shù)如IOT(物聯(lián)網(wǎng))、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、混合虛擬現(xiàn)實(shí)、Big-Data(大數(shù)據(jù))、AI(人工智能)、區(qū)塊鏈等,使銷售、購(gòu)物、物流配送、在線支付等環(huán)節(jié)智能化,給人們帶來(lái)便捷的購(gòu)物體驗(yàn),從而拉動(dòng)購(gòu)物需求,提高人們的購(gòu)買力,是一種多要素、多渠道的營(yíng)銷手段,例如“海底撈”推出的智能點(diǎn)單機(jī)器人、學(xué)校和醫(yī)院等出現(xiàn)的“自動(dòng)便當(dāng)機(jī)”、杭州阿里集團(tuán)旗下的“智慧無(wú)人酒店”等。智能新零售業(yè)態(tài)正在不斷深入人們生活的方方面面。
通過(guò)參閱以往文獻(xiàn),傳統(tǒng)商鋪電能消耗和人力資源消耗分別占總成本的25%和40%[1],電力浪費(fèi)嚴(yán)重。隨著大數(shù)據(jù)與人工智能時(shí)代的到來(lái),智能零售商鋪依托深度學(xué)習(xí)網(wǎng)絡(luò),可以有效地對(duì)各大型耗電設(shè)備進(jìn)行智能自動(dòng)化調(diào)控,一方面減少了能源損耗,節(jié)省了電力能源,另一方面解放了人力,降低了人力資源成本。但目前存在的問(wèn)題是,大部分深度學(xué)習(xí)網(wǎng)絡(luò)較為復(fù)雜,難以訓(xùn)練或訓(xùn)練周期長(zhǎng),不適應(yīng)商業(yè)的快速發(fā)展,識(shí)別率也偏低,達(dá)不到預(yù)期效果。
本文基于智能組網(wǎng)[2]及深度學(xué)習(xí)網(wǎng)絡(luò)建模等思想,采用端到端的網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)有效采集與展示,輔助新零售商鋪節(jié)能節(jié)電,從而降低商家運(yùn)營(yíng)成本。該系統(tǒng)還能豐富居民的購(gòu)物體驗(yàn),使人們真正在現(xiàn)實(shí)生活中感受到高科技帶來(lái)的便捷與高效。
本文設(shè)計(jì)一個(gè)智能商鋪人流密度監(jiān)測(cè)系統(tǒng),以實(shí)現(xiàn)對(duì)商鋪內(nèi)擁擠的人群進(jìn)行智能監(jiān)測(cè)、控制等多種功能[3-7]。該智能控制系統(tǒng)總體框架如圖1 所示。
Fig.1 Overall framework of pedestrian flow density monitoring system圖1 人流密度監(jiān)測(cè)系統(tǒng)總體框架
系統(tǒng)主要由數(shù)據(jù)采集、數(shù)據(jù)接收、數(shù)據(jù)分析、數(shù)據(jù)展示等模塊組成,數(shù)據(jù)采集自智能組網(wǎng)傳感器,采集的數(shù)據(jù)經(jīng)通信層存儲(chǔ)到數(shù)據(jù)庫(kù)端;數(shù)據(jù)分析是指通過(guò)深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,從而預(yù)測(cè)出人流密度數(shù)據(jù),輔助管理人員進(jìn)行研判;數(shù)據(jù)展示是指通過(guò)可視化手段展示數(shù)據(jù),使數(shù)據(jù)更加直觀,便于分析。經(jīng)算法預(yù)測(cè)的人流量回傳到前端,生成人流密度狀態(tài),判斷是否需要對(duì)耗電設(shè)備采取節(jié)電措施,管理人員也可通過(guò)該系統(tǒng)研判是否需要采取人流密度控制措施。
其中,前端利用人流密度監(jiān)測(cè)狀態(tài)分類表格進(jìn)行預(yù)測(cè)結(jié)果展示,本文采用10 檔百分比模式進(jìn)行人流密度狀態(tài)控制,具體分類如表1 所示。
Table 1 Classification of passenger flow density monitoring表1 人流密度監(jiān)測(cè)分類
商鋪管理者可手動(dòng)設(shè)定人流量最大閾值,根據(jù)網(wǎng)絡(luò)預(yù)測(cè)出的實(shí)際人數(shù)與閾值人數(shù)比值進(jìn)行百分比轉(zhuǎn)化,得到人流密度狀態(tài),供管理者研判,進(jìn)而對(duì)用電設(shè)備進(jìn)行控制。
本文使用MySQL 數(shù)據(jù)庫(kù)存儲(chǔ)算法返回的數(shù)據(jù),根據(jù)需要設(shè)計(jì)了user、picturedata、status 3 個(gè)表格。其中,user 存儲(chǔ)管理員信息,如管理員權(quán)限、名稱與密碼等;picturedata 主要包括傳感器采集到的二進(jìn)制圖片信息,如區(qū)域標(biāo)識(shí)、圖片二進(jìn)制字段等;status 主要包括數(shù)據(jù)經(jīng)處理后生成的狀態(tài)信息,如狀態(tài)碼、狀態(tài)說(shuō)明字段等。
系統(tǒng)后臺(tái)編程語(yǔ)言使用Java,服務(wù)器使用輕量級(jí)服務(wù)器Tomcat,以便于環(huán)境搭建與參數(shù)配置。前端基于HTML5技術(shù)設(shè)計(jì)系統(tǒng)界面,利用CSS 渲染界面,以及JavaScript 語(yǔ)言進(jìn)行數(shù)據(jù)動(dòng)態(tài)展示。前后臺(tái)交換報(bào)文采用JSON 格式,前臺(tái)利用AJAX 技術(shù)進(jìn)行數(shù)據(jù)收發(fā),以提高頁(yè)面響應(yīng)速率。系統(tǒng)主要實(shí)現(xiàn)以下功能:
(1)使用Socket 網(wǎng)絡(luò)編程接收智能組網(wǎng)采集系統(tǒng)收集的實(shí)時(shí)人流密度圖片數(shù)據(jù),后臺(tái)服務(wù)端開(kāi)放端口,與客戶端建立連接。若連接建立成功,則可通過(guò)該通道把采集系統(tǒng)接收的數(shù)據(jù)按一定時(shí)間間隔發(fā)送到后臺(tái)(本文每5min 接收一次數(shù)據(jù)),之后服務(wù)端傳遞數(shù)據(jù)到后臺(tái)數(shù)據(jù)庫(kù),存儲(chǔ)于相應(yīng)字段等待處理。
(2)通過(guò)選擇區(qū)域信息,動(dòng)態(tài)獲取該區(qū)域的人流密度監(jiān)測(cè)狀態(tài)和實(shí)時(shí)人流數(shù)據(jù)進(jìn)行信息聯(lián)動(dòng)查詢。利用該方式可大幅提高頁(yè)面響應(yīng)速率,因?yàn)椴挥眉虞d全部數(shù)據(jù),只加載需要的部分即可。
(3)內(nèi)置深度學(xué)習(xí)算法進(jìn)行人流密度狀態(tài)監(jiān)測(cè),把深度學(xué)習(xí)網(wǎng)絡(luò)內(nèi)置到后臺(tái),數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)后,后端系統(tǒng)調(diào)用算法并取出數(shù)據(jù)投入訓(xùn)練。算法進(jìn)行最終的圖像人數(shù)預(yù)測(cè),將結(jié)果存儲(chǔ)于數(shù)據(jù)庫(kù),供前端展示。
(4)可視化人流密度數(shù)據(jù),利用表格和折線圖等方式直觀展示商鋪各區(qū)域人流密度狀態(tài),幫助管理人員判斷是否需要采取相應(yīng)的限流、節(jié)能措施,并對(duì)算法預(yù)測(cè)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),自動(dòng)生成4 種類型的圖表:①以小時(shí)為單位的人流密度走勢(shì)圖;②以天為單位的人流密度走勢(shì)圖;③以月為單位的人流密度走勢(shì)圖;④人流密度狀態(tài)實(shí)時(shí)圖,從而讓商鋪管理人員可以更全面地制定運(yùn)營(yíng)策略,令新零售商鋪實(shí)現(xiàn)敏捷性經(jīng)營(yíng)。
本文采用公開(kāi)數(shù)據(jù)集ShanghaiTech dataset,分為part_A_final 和part_B_final 兩個(gè)子數(shù)據(jù)集。其中,part_A_final 采用300 張圖片作為訓(xùn)練集,182 張圖片作為測(cè)試集,該部分為稠密人群數(shù)據(jù)集;part_B_final 采用400 張圖片作為訓(xùn)練集,316 張圖片作為測(cè)試集,該部分為稀疏人群數(shù)據(jù)集。數(shù)據(jù)集共有1 198 張圖片,330 165 個(gè)注釋頭。數(shù)據(jù)樣式如圖2 所示。
Fig.2 Selected public data set圖2 選用的公開(kāi)數(shù)據(jù)集
由于最終決定深度學(xué)習(xí)網(wǎng)絡(luò)模型識(shí)別準(zhǔn)確性的標(biāo)準(zhǔn)是經(jīng)算法預(yù)測(cè)的密度圖計(jì)數(shù)與實(shí)際密度圖計(jì)數(shù)的差值,而實(shí)際密度圖計(jì)數(shù)就是ground-truth 值。將數(shù)據(jù)集中標(biāo)定的人頭圖像轉(zhuǎn)化為實(shí)際密度圖的過(guò)程尤為關(guān)鍵,該過(guò)程生成的密度圖被稱為ground-truth 圖。根據(jù)文獻(xiàn)[8]中生成密度圖的方法,本文將一幅標(biāo)定人頭的圖像看作二維數(shù)值矩陣,有人頭標(biāo)記坐標(biāo)處的值置1,其他位置的值置0,利用高斯自適應(yīng)濾波核估計(jì)每個(gè)人頭(置1 處)大小,即其實(shí)際占幾個(gè)像素,并分別進(jìn)行高斯自適應(yīng)濾波處理,將結(jié)果疊加到新的對(duì)應(yīng)大小的0 矩陣上,形成最終的密度圖。
其中,高斯自適應(yīng)濾波核定義如下:
對(duì)于每個(gè)注釋頭x(i人頭中心坐標(biāo)),本文用其最近鄰k個(gè)標(biāo)注頭的矢量和表示,為自適應(yīng)的高斯濾波核。依照文獻(xiàn)[8]中提供的實(shí)驗(yàn)說(shuō)明,β=0.3 且k=3 時(shí)效果最佳。本文用該自適應(yīng)高斯濾波核作用于每個(gè)圖片的注釋頭,最終疊加生成最終的密度圖。
起初研究人員采用滑動(dòng)窗口[9]直接進(jìn)行人群探測(cè)計(jì)數(shù),但該方法通常只能提取較低層次的特征,所以在大規(guī)模人群計(jì)數(shù)場(chǎng)景下效果會(huì)明顯變差。隨著近年來(lái)對(duì)深度學(xué)習(xí)研究的不斷深入,基于密度圖并結(jié)合CNN 的深度學(xué)習(xí)網(wǎng)絡(luò)在大規(guī)模擁擠人群計(jì)數(shù)中顯示出良好效果,尤其是近年來(lái)提出的MCNN[10]網(wǎng)絡(luò)即為其中的經(jīng)典模型。該模型采用3 個(gè)深度卷積神經(jīng)網(wǎng)絡(luò),利用不同尺寸的卷積核適應(yīng)不同的人頭尺寸以提取特征,并最終合并3 個(gè)網(wǎng)絡(luò)結(jié)果生成密度圖。最近提出的Switch-CNN[11]等網(wǎng)絡(luò)都是在MCNN 網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上優(yōu)化而來(lái)的,因此本文也基于part_A_final 數(shù)據(jù)集,采用經(jīng)典的MCNN 進(jìn)行對(duì)比試驗(yàn),如表2 所示。
Table 2 Performance comparison of common deep convolution network(CNN)and MCNN表2 普通深度卷積網(wǎng)絡(luò)(CNN)與MCNN 性能對(duì)比
表2 采用普通單列的深層CNN 網(wǎng)絡(luò)與經(jīng)典MCNN 網(wǎng)絡(luò)進(jìn)行對(duì)比,并利用MAE 指標(biāo)進(jìn)行評(píng)估,發(fā)現(xiàn)單列深層的CNN 網(wǎng)絡(luò)表現(xiàn)更為出色。也即是說(shuō),MCNN 網(wǎng)絡(luò)似乎并沒(méi)有因網(wǎng)絡(luò)冗余度增加而提高識(shí)別性能,其不同尺度的卷積網(wǎng)絡(luò)在該數(shù)據(jù)集上的表現(xiàn)大致相同,另外MCNN 網(wǎng)絡(luò)相對(duì)于單列CNN 網(wǎng)絡(luò)更加復(fù)雜,且難以訓(xùn)練。本系統(tǒng)采用一種以VGG16[12]作為前端網(wǎng)絡(luò)的CSRNet[13]網(wǎng)絡(luò),采用VGG16作為前端網(wǎng)絡(luò)是由于其可以接收任意尺寸的圖片,無(wú)需縮放輸入圖片而導(dǎo)致特征丟失,并且VGG16 可以靈活拼接后端網(wǎng)絡(luò)產(chǎn)生密度圖。后端網(wǎng)絡(luò)是由多個(gè)膨脹卷積層[14-16]構(gòu)成的深度學(xué)習(xí)網(wǎng)絡(luò),膨脹卷積層可以提取更深層次的特征信息,以彌補(bǔ)VGG16 池化層帶來(lái)的分辨率下降與特征丟失的風(fēng)險(xiǎn),而且其屬于端到端的單列CNN 深度學(xué)習(xí)網(wǎng)絡(luò),易于訓(xùn)練。CSRNet 網(wǎng)絡(luò)模型框架如圖3 所示。
CSRNet 前端網(wǎng)絡(luò)VGG16 直接讀取訓(xùn)練好的權(quán)重,后端網(wǎng)絡(luò)初始化權(quán)重參數(shù),賦隨機(jī)值,把預(yù)處理后的圖片投入網(wǎng)絡(luò)進(jìn)行訓(xùn)練,利用損失函數(shù)和隨機(jī)梯度下降算法進(jìn)行權(quán)重參數(shù)的迭代優(yōu)化。大約進(jìn)行200 批次訓(xùn)練后[17],調(diào)優(yōu)參數(shù)變化趨于平穩(wěn),得到最終算法,可將權(quán)重參數(shù)存儲(chǔ)起來(lái)待之后調(diào)用。
圖片無(wú)法直接加載進(jìn)算法進(jìn)行訓(xùn)練,因此需要首先轉(zhuǎn)化為矩陣數(shù)組,此時(shí)可進(jìn)行歸一化處理以減小計(jì)算量,并保證數(shù)據(jù)不會(huì)丟失特征維度。由于前端基于VGG16 網(wǎng)絡(luò),輸出圖片大小會(huì)縮小為原圖的,所以需要進(jìn)行相應(yīng)預(yù)處理。
Fig.3 CSRNet network model framework圖3 CSRNet 網(wǎng)絡(luò)模型框架
神經(jīng)網(wǎng)絡(luò)由若干層組成,計(jì)算過(guò)程以輸入層到輸出層的順序執(zhí)行,上層輸入可作為下層輸出。具體公式為:
其中,z(l)為第l層神經(jīng)元輸出結(jié)果,W為各節(jié)點(diǎn)權(quán)重,b為修正常數(shù),a(l)、z(l)為激活函數(shù)計(jì)算中間項(xiàng),f為激活函數(shù)。
該算法的函數(shù)設(shè)為L(zhǎng)(W,b),計(jì)算公式如下:
輸出層單元i的殘差為:
第l層的第i個(gè)單元?dú)埐顬椋?/p>
計(jì)算L(W,b)對(duì)w和b的偏導(dǎo):
最終使用SGD[18](隨機(jī)梯度下降算法)對(duì)W和b更新迭代:
其中,α為學(xué)習(xí)率。
本深度學(xué)習(xí)網(wǎng)絡(luò)設(shè)計(jì)最重要的一環(huán)就是對(duì)后端網(wǎng)絡(luò)膨脹卷積層[19-20]的設(shè)計(jì),一個(gè)二維膨脹卷積定義如下:
其中,y(m,n)為卷積層的輸出,ω(i,j)是長(zhǎng)寬分別為M、N的卷積核,r為膨脹卷積的步長(zhǎng)。
前端網(wǎng)絡(luò)進(jìn)行了3 次池化[21-22],池化的優(yōu)勢(shì)是可以保證數(shù)據(jù)的不變性,并抑制過(guò)擬合的發(fā)生,但也有諸多缺點(diǎn),如圖片的空間分辨率會(huì)下降且丟失部分空間特征信息,導(dǎo)致整個(gè)網(wǎng)絡(luò)性能不佳。為解決這一問(wèn)題,后端網(wǎng)絡(luò)引入膨脹卷積的概念。膨脹卷積采用稀疏核(見(jiàn)圖4),在不改變參數(shù)量的情況下增大感受野,以提取更多維度的圖像特征信息。在膨脹卷積中,k*k 大小的卷積核在步長(zhǎng)為r 的條件下可增大到(k+(k-1)(r-1))*(k+(k-1)(r-1)),所以膨脹卷積層可以靈活獲取圖像不同尺度的特征信息,同時(shí)保證不改變圖像分辨率,從而提高深度學(xué)習(xí)網(wǎng)絡(luò)識(shí)別率。
Fig.4 3 * 3 convolution kernel圖4 3*3 的卷積核
衡量一個(gè)預(yù)測(cè)類深度學(xué)習(xí)網(wǎng)絡(luò)模型的標(biāo)準(zhǔn)通常是預(yù)測(cè)值是否擬合實(shí)際值,通俗講就是網(wǎng)絡(luò)預(yù)測(cè)是否準(zhǔn)確?;诖?,本文深度學(xué)習(xí)網(wǎng)絡(luò)模型評(píng)估采用MAE[23]作為衡量網(wǎng)絡(luò)模型質(zhì)量的標(biāo)準(zhǔn),具體定義如下:
其中,N為投入訓(xùn)練的N張圖片,分別是投入訓(xùn)練第i張圖片的實(shí)際人數(shù)和算法預(yù)測(cè)人數(shù)。
根據(jù)網(wǎng)絡(luò)輸出的人流密度預(yù)測(cè)值對(duì)人流密度進(jìn)行實(shí)時(shí)分類,采用表格、折線圖等手段在前端進(jìn)行可視化展示,讓管理者通過(guò)直觀的數(shù)據(jù)精準(zhǔn)、科學(xué)地作出決策,以調(diào)控商鋪人流密度,避免水電浪費(fèi)。如管理者可自定義人流密度閾值,當(dāng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果高于閾值前端反饋Abnormal_higher 時(shí),可以適度采取限流措施,增大電器用電功率;當(dāng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果低于閾值前端反饋Abnormal_lower 時(shí),可以適度采取節(jié)能措施,降低電器能耗。該方式既不會(huì)影響顧客體驗(yàn),又避免了不必要的浪費(fèi)。此處對(duì)part_A_final(稠密人群數(shù)據(jù)集)中的實(shí)際值與預(yù)測(cè)值進(jìn)行了對(duì)比,如圖5 所示。
Fig.5 Part_ A_ final:comparison of ground truth image and prediction result圖5 Part_A_final:ground-truth 圖片與預(yù)測(cè)結(jié)果對(duì)比
最終,CSRNet 在part_A_final與part_B_final數(shù)據(jù)集的MAE參數(shù)如表3所示。
Table 3 MAE parameter of CSRNet in part_A_final and part_B_final表3 CSRNet 在part_A_final 與part_B_final 的MAE 參 數(shù)
從表3 可以看出,CSRNet 在稠密人群數(shù)據(jù)集中的MAE為75.3,在稀疏人群數(shù)據(jù)集中的MAE 為9.65,也即是說(shuō)CSRNet 在part_A_final 中,平均每張圖片與其實(shí)際值相差75.3,在part_B_final 中,平均每張圖片與其實(shí)際值相差9.65。對(duì)比表2,其識(shí)別性能也優(yōu)于經(jīng)典的MCNN 網(wǎng)絡(luò)與CNN 網(wǎng)絡(luò),且訓(xùn)練過(guò)程更加便捷。該網(wǎng)絡(luò)具有實(shí)時(shí)性,即可實(shí)時(shí)傳入圖片數(shù)據(jù),實(shí)時(shí)更新前端狀態(tài)。此處截選幾個(gè)重要時(shí)間節(jié)點(diǎn)的人流密度狀態(tài)加以說(shuō)明,如表4 所示。
Table 4 Real time status of passenger flow density表4 人流密度實(shí)時(shí)狀態(tài)
根據(jù)前端顯示的人流密度狀態(tài),管理者可根據(jù)實(shí)際情況對(duì)耗電設(shè)備進(jìn)行調(diào)節(jié),如處于AbNormal_Lower(21%-30%)狀態(tài)時(shí)可適當(dāng)減少照明功率、降低空調(diào)風(fēng)速等,處于AbNormal_Heigher(71%-80%)狀態(tài)時(shí)可提高空調(diào)功率、增加排風(fēng)措施等,從而給顧客帶來(lái)更好的購(gòu)物體驗(yàn)。
本文根據(jù)對(duì)CSRNet 深度學(xué)習(xí)網(wǎng)絡(luò)算法、標(biāo)定數(shù)據(jù)、智能組網(wǎng)的研究,給出了新零售商鋪智能用電解決方案。搭建基于深度學(xué)習(xí)網(wǎng)絡(luò)的新零售商鋪人流密度分析系統(tǒng),以實(shí)時(shí)采集的人流圖片作為輸入特征、預(yù)測(cè)人流量作為輸出結(jié)果搭建模型,指導(dǎo)工作人員操作用電設(shè)備。該系統(tǒng)對(duì)傳統(tǒng)商鋪的機(jī)械性定時(shí)開(kāi)關(guān)電器進(jìn)行了優(yōu)化,較好地解決了大型商超用電浪費(fèi)等問(wèn)題,符合當(dāng)代新零售商鋪智能、環(huán)保的要求,具有較高的研究?jī)r(jià)值。該系統(tǒng)仍可作進(jìn)一步完善,如利用自動(dòng)控制算法及組網(wǎng)對(duì)用電設(shè)備進(jìn)行自動(dòng)調(diào)節(jié),以進(jìn)一步解放人力,形成自動(dòng)化系統(tǒng),這是今后需要重點(diǎn)研究的方向。