鐘澤偉,李 祺,黃定航,曾穎瑄,周歡歡,鄧 超,2
(1.武漢科技大學(xué) 汽車與交通工程學(xué)院,湖北 武漢 430065;2“.運(yùn)輸車輛檢測、診斷與維修技術(shù)”交通行業(yè)重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250357)
隨著物流行業(yè)的高速發(fā)展,物流活動(dòng)正逐漸滲透進(jìn)每個(gè)人的日常生活中,對于大學(xué)生而言,與物流活動(dòng)的直接交互即寄件、取件行為。對于待取件人員而言,很容易出現(xiàn)取件過程擁擠、排隊(duì)時(shí)間長等問題,進(jìn)而降低取件點(diǎn)出件的效率,人流量預(yù)測有助于他們提前計(jì)劃和安排時(shí)間,避開人流高峰期前往取件。如果在取件活動(dòng)里基于數(shù)據(jù)挖掘,利用嵌入式設(shè)備識別人流量數(shù)據(jù),就得到不同時(shí)段的人流量數(shù)據(jù),在管理取件站點(diǎn)、提高取件效率等方面都有著不可忽略的意義。
Zhu,等在計(jì)算機(jī)視覺和模式檢測大會(huì)上提出了用來體現(xiàn)圖像局部方差信息的梯度方向直方圖HOG,同時(shí)使用支持向量機(jī)器(Support Vector Machines,SVM)來對人流進(jìn)行特征分類。Dollár,等將標(biāo)準(zhǔn)的boosting算法和局部通道特征結(jié)合起來做人流檢測。Felzenszwalb,等提出了一種通過利用優(yōu)先知識來設(shè)計(jì)用于多尺度形變對象檢測的模型DPM,該模型的通用性相較于Zhu等人的所設(shè)計(jì)的模型有所提升。Benenson,等利用積分通道特征ICF來實(shí)現(xiàn)人流檢測,并對能影響檢測效果的多重因子進(jìn)行了詳盡的研究和討論。Prioletti,等一開始使用基于Haar的級聯(lián)分類器和基于HOG的濾波器等設(shè)備,在實(shí)際應(yīng)用中通過生成可能存在人流的靶點(diǎn)區(qū),從而進(jìn)一步確認(rèn)靶點(diǎn)區(qū)中是否存在人流。Zeng,等通過反向傳播的原理制作出多階段分類器,通過先分別保存再整體作為下一階段的參考材料。Benenson,等提出了一種名為Katamari的方法,此方法運(yùn)用決策森林,并且聯(lián)合了其他許多方法進(jìn)行人流預(yù)測。Nam,等提出一種將人流的兩個(gè)特征,即顏色和梯度特征分別做去相關(guān)處理的理論,通過這種方法可以增強(qiáng)分類器的類型甄別能力。Liu,等通過線性核函數(shù)同樣增加了其提取特征的應(yīng)用能力。Baek,等級聯(lián)了一個(gè)附帶核支持向量器AKSVM作為特征分類器,并通過深度學(xué)習(xí)算法對AKSVM進(jìn)行一定的升級優(yōu)化。
本設(shè)計(jì)是對嵌入式設(shè)備處理與分析信息的應(yīng)用。在嵌入式設(shè)備的Linux開發(fā)領(lǐng)域,將Linux系統(tǒng)科學(xué)的安裝在硬件設(shè)備上是實(shí)現(xiàn)運(yùn)用嵌入式設(shè)備來解決現(xiàn)實(shí)問題的基礎(chǔ)。本設(shè)計(jì)研究在S5PV210處理器上應(yīng)用基于Linux的程序來進(jìn)行信息處理,提高公共區(qū)域取件的效率。
整個(gè)終端系統(tǒng)可以視為由四個(gè)部分組成:中央處理器單元、網(wǎng)絡(luò)數(shù)據(jù)傳輸單元、信息采集單元和電源管理單元。中央處理器單元是整個(gè)系統(tǒng)的核心,負(fù)責(zé)處理來自數(shù)據(jù)傳輸單元的數(shù)據(jù)和統(tǒng)籌規(guī)劃各個(gè)單元的工作;網(wǎng)絡(luò)數(shù)據(jù)傳輸單元負(fù)責(zé)將終端系統(tǒng)的數(shù)據(jù)上傳至服務(wù)器;信息采集單元負(fù)責(zé)采集需要的開始拍攝的信號和獲取到的圖像數(shù)據(jù)信息;電源管理單元負(fù)責(zé)整個(gè)系統(tǒng)不同部分供電的平穩(wěn)。本系統(tǒng)的軟件結(jié)構(gòu)主要有嵌入式Linux操作系統(tǒng)、人或物識別應(yīng)用程序和紅外人流量計(jì)數(shù)應(yīng)用程序。圖1為該系統(tǒng)整體框架設(shè)計(jì)圖。
圖1 系統(tǒng)整體框架
本系統(tǒng)中央處理單元選擇了Samsung公司的S5PV210處理器。S5PV210是一款32位處理器,具有低功耗的特點(diǎn),它集成了ARM Cortex-A8核心,實(shí)現(xiàn)了ARM V7A架構(gòu),數(shù)據(jù)傳輸速度最高可達(dá)400Mps,該處理器運(yùn)行穩(wěn)定時(shí)主頻可達(dá)1GHz、具有MMU功能、64位內(nèi)部總線架構(gòu)、4個(gè)USB接口、4路HS-MMC/SD/SDIO接口等。同時(shí)其內(nèi)部集成MFC視頻編碼解碼器,支持多格式編解碼包含MPEG-4/H.264編碼,且Cortex-A8處理器應(yīng)用NEON信號處理擴(kuò)展指令集提高了G.264和MP3等媒體編碼效率。Android系統(tǒng)通過SD/TF卡燒寫到手持式終端,UART口負(fù)責(zé)系統(tǒng)調(diào)試,USB HOST負(fù)責(zé)與PC端通信,復(fù)位電路負(fù)責(zé)系統(tǒng)的重啟。
在本終端中的網(wǎng)絡(luò)數(shù)據(jù)傳輸單元,4G無線通訊模塊選用的是ZTE ME3760-V2 4G模塊,ZTE ME3760-V2是基于MiniPCI-E接口的LTE模塊,是中興自主研發(fā)的芯片,經(jīng)過了3C型號核準(zhǔn)認(rèn)證,支持LTE雙模多頻和SIM卡業(yè)務(wù),支持IPv4、IPv6協(xié)議和高速USB2.0接口,支持短信、數(shù)據(jù)、電話功能支持最大150Mbps的理論上下行數(shù)據(jù)傳輸速率。WIFI模塊采用Redpine Signals公司的RS-9110-N-11-02,該模塊支持IEEE802.11b/g/e/i標(biāo)準(zhǔn)以及IEEE802.11n,工作頻段2.4GHz,工作電壓介于3.1V到3.6V之間,處理器采用SDIO接口與該WIFI模塊進(jìn)行通信。
信息采集單元采集圖像數(shù)據(jù)是通過Basler acA1920-155uc工業(yè)相機(jī)完成,該攝像頭配有Sony IMX174 CMOS感光芯片,每秒164幀圖像,230萬像素分辨率,SP5V210處理器通過IC總線訪問與修改Basler acA1920-155u內(nèi)部寄存器來控制攝像頭功能。紅外檢測電路選用E18-D80NK紅外模塊,當(dāng)檢測到有人通過的時(shí)候,觸發(fā)一個(gè)高電平,通過模塊內(nèi)部自帶的放大電路放大接收的信號,并將其傳輸?shù)絾纹瑱C(jī)進(jìn)行處理,從而觸發(fā)圖像收集的功能。紅外模塊使用UART口與處理器進(jìn)行通信,最終完成數(shù)據(jù)的采集并顯示到Android UI上。
首先使用以下命令來安裝攝像頭標(biāo)定功能包:
然后將制作紙質(zhì)標(biāo)定靶備用,然后繼續(xù)開始標(biāo)定攝像頭:
打開終端輸入以下命令啟動(dòng)工業(yè)相機(jī):
然后輸入以下命令啟動(dòng)標(biāo)定程序:
標(biāo)定程序啟動(dòng)完畢后,將打印好的標(biāo)定靶放在工業(yè)相機(jī)視野范圍中。為了提高標(biāo)定工作的嚴(yán)謹(jǐn)性和準(zhǔn)確性,需要使標(biāo)定靶放置在工業(yè)相機(jī)攝像圖畫中的所有區(qū)域,通過上下左右前后傾斜移動(dòng)等操作,直到“CALIBRATE”按鈕變色,表示標(biāo)定程序的參數(shù)采集結(jié)束。參數(shù)計(jì)算結(jié)束后界面恢復(fù),點(diǎn)擊“SAVE”按鈕保存標(biāo)定參數(shù)。最后點(diǎn)擊“CMMIT”按鈕,提交數(shù)據(jù)并退出程序,然后從標(biāo)定結(jié)果的壓縮文件中解壓出標(biāo)定結(jié)果文件,復(fù)制并重命名就可以使用了。
本終端的電源管理單元選取了對鋰電池具有充電功能的電源芯片,并配備了合理的LDO穩(wěn)壓芯片進(jìn)行電壓變換,且根據(jù)模塊需求提高供電電流。在電源管理模塊中,同一供電電壓不同模塊之間使用磁珠隔離,同時(shí)使用濾波電容來提高電源的穩(wěn)定性。電源選型上,采用了兩塊TI公司生產(chǎn)的鋰電池專用電源管理芯片BQ24032,BQ24032芯片充電安全性高、充電速度快且充電電流可調(diào)節(jié),并能保證充電的同時(shí)系統(tǒng)工作的穩(wěn)定性。
本系統(tǒng)的圖像識別方法采用YOLO算法原理,YOLO算法的提出者沒有考慮繼續(xù)優(yōu)化兩階段算法,而是創(chuàng)造性的提出“一步法”,實(shí)現(xiàn)了對待檢測圖像數(shù)據(jù)中所有目標(biāo)對象的框架和類型預(yù)測,而且推理速率有了大幅度提升,完全可以滿足實(shí)際生產(chǎn)生活中實(shí)時(shí)對象檢測的需要。YOLO算法創(chuàng)造性地提出了將輸入圖片進(jìn)行M*M的網(wǎng)格化,由圖像中目標(biāo)對象核心位置的網(wǎng)格邊框來負(fù)責(zé)該對象的預(yù)測結(jié)果輸出。它只需要掃描一遍,就可以將位置預(yù)測和種類分辨結(jié)合到一個(gè)CNN網(wǎng)絡(luò),從而獲取到圖片中所有對象的位置和種類信息。綜上所述,YOLO預(yù)測算法進(jìn)行目標(biāo)檢測的過程中,是具有相對較快的檢測速率和檢測精度的。而且該算法不僅可以很好地應(yīng)用于人流等活體對象,還可以應(yīng)用在如書畫作品、桁架、儲(chǔ)物筐等無生命物體。
YOLO算法通過損失函數(shù)成功做到了把這應(yīng)用問題轉(zhuǎn)化為數(shù)學(xué)問題,直接輸入圖像信息就能判斷出每個(gè)網(wǎng)格單元附近是否有某個(gè)對象,然后預(yù)測出具體的邊框位置。關(guān)于損失函數(shù),需要了解三個(gè):錨框、置信度和對象條件類型概率。在預(yù)測的結(jié)果中,每個(gè)網(wǎng)格對應(yīng)邊框的輸出結(jié)果有三種:框架的核心點(diǎn)坐標(biāo)(x,y)和框架的高和寬數(shù)據(jù)(h,w);一個(gè)是置信度;最后一個(gè)是一組取值[0,1]的條件概率。
在預(yù)先練習(xí)的過程中得到一個(gè)準(zhǔn)確框架集之中,首先通過統(tǒng)計(jì)得出的一些頻率較高的邊框樣式,即錨框。YOLO的解決辦法是將形狀用寬和高兩個(gè)維度數(shù)字表示。YOLO采用k-means算法,通過聚類練習(xí)集中所有練習(xí)圖像的準(zhǔn)確框架,得到具有一定代表性的形狀的寬高數(shù)據(jù)。在有了可以數(shù)學(xué)化的錨框后,如何在應(yīng)用中加入錨框的先驗(yàn)經(jīng)驗(yàn)?zāi)?,這一解決方法是讓一個(gè)網(wǎng)格預(yù)測多個(gè)邊框,然后每個(gè)邊框負(fù)責(zé)輸出不同的形狀。以錨框?yàn)槔?,我們的一個(gè)網(wǎng)格會(huì)輸出三個(gè)參數(shù)相同的邊框,第一個(gè)邊框負(fù)責(zé)輸出形狀與錨框一類似的框架,其他兩個(gè)邊框同理。然后求出網(wǎng)格中每個(gè)錨框與準(zhǔn)確框架的IOU(交并比),交并比最高的錨框?qū)?yīng)的邊框就負(fù)責(zé)預(yù)測該對應(yīng)的準(zhǔn)確對象,以此提高預(yù)測結(jié)果的準(zhǔn)確度。
如何使模型的邊框與其負(fù)責(zé)預(yù)測的錨框?qū)?yīng)。YOLO的解決方法是將預(yù)測的寬和高數(shù)據(jù)分別與錨框的寬和高數(shù)據(jù)對比,這樣無論一開始邊框輸出的寬高尺寸如何,經(jīng)過轉(zhuǎn)化后都與錨框的寬和高相關(guān)。關(guān)系公式如下:
其中,和為錨框的高和寬,和為邊框直接預(yù)測的高和寬,和為轉(zhuǎn)換后預(yù)測的實(shí)際高和寬。
以上是相對值,轉(zhuǎn)換成最終輸出的絕對值,還需要一個(gè)轉(zhuǎn)換公式:
其中,()是sigmoid函數(shù),和分別為網(wǎng)格左上角相對于檢測樣本圖像的位置數(shù)據(jù)。
對象條件類型概率其實(shí)是一個(gè)數(shù)組,數(shù)組的內(nèi)容是一群概率,數(shù)組中有多少個(gè)數(shù)值表明圖像數(shù)據(jù)中的檢測對象類型數(shù)量。
在YOLO中,會(huì)把一張圖像劃分為M*M個(gè)網(wǎng)格,每個(gè)網(wǎng)格會(huì)對應(yīng)固定數(shù)量的錨框,假設(shè)存在B個(gè)錨框,又因?yàn)槊總€(gè)邊框內(nèi)有四個(gè)位置參數(shù),一個(gè)置信度,C個(gè)類別概率,可計(jì)算輸出維數(shù)為:M*M*[B*5+C)]。
基于YOLO v3算法,采用darknet53預(yù)訓(xùn)練權(quán)重,在此基礎(chǔ)上針對取件點(diǎn)如菜鳥驛站等取件環(huán)境下的圖像訓(xùn)練集進(jìn)行訓(xùn)練,得到權(quán)重文件。在訓(xùn)練過程中可分為3個(gè)步驟:
(1)根據(jù)損失(Loss)函數(shù)計(jì)算預(yù)測框的誤差。YOLO的損失由四部分組成:預(yù)測的中心坐標(biāo)損失、預(yù)測邊界框的寬高損失、預(yù)測的類別損失、預(yù)測的置信度損失。預(yù)測的中心坐標(biāo)損失公式為:
預(yù)測邊框的寬高損失公式為:
損失類別損失公式為:
(2)由誤差計(jì)算卷積核中每個(gè)權(quán)重的梯度。
(3)根據(jù)優(yōu)化算法更新權(quán)重,生成權(quán)重文件。
系統(tǒng)工作流程圖如圖2所示。
圖2 系統(tǒng)工作流程圖
系統(tǒng)開機(jī)工作后,會(huì)首先運(yùn)行引導(dǎo)加載程序,進(jìn)行硬件設(shè)備的初始化并引導(dǎo)加載Linux內(nèi)核,隨后加載設(shè)備驅(qū)動(dòng)程序(包括攝像頭驅(qū)動(dòng)、紅外驅(qū)動(dòng)、4G模塊驅(qū)動(dòng)、Nand F1ash驅(qū)動(dòng)等)。當(dāng)紅外設(shè)備檢測到人員到來,輸出高電壓信號時(shí),通過$cheese指令打開視頻采集設(shè)備文件,開始發(fā)送采集信號,讀取視頻緩存數(shù)據(jù),可以根據(jù)需求進(jìn)行數(shù)據(jù)的處理。
首先,將某取件點(diǎn)營業(yè)時(shí)間中的人流圖片保存于darknet文件夾下的data文件中。然后在Ubuntu環(huán)境中,按下Ctrl+Alt+T組合快捷鍵打開終端,編譯Makefile文件,轉(zhuǎn)到darknet目錄,在darknet調(diào)用cfg目錄下YOLO v3程序,然后采用訓(xùn)練好的權(quán)重參數(shù),識別需要預(yù)測的對象圖像x.jpg,輸入以下命令:
得到結(jié)果如圖3所示。
圖3 識別效果
隨后發(fā)送采集停止信號,釋放內(nèi)存映射,關(guān)閉視頻設(shè)備,Basler acA1920-155uc采集到的圖像信息通過IC總線與SP5V210處理器通信,處理器通過內(nèi)部集成的MFC多格式編碼器將圖像信息進(jìn)行H.264編碼壓縮,視頻圖像再基于USB無線網(wǎng)卡構(gòu)建的WLAN網(wǎng)絡(luò)和實(shí)時(shí)傳輸協(xié)議RTP發(fā)送給視頻監(jiān)控PC客戶端,由客戶端進(jìn)行解碼和數(shù)據(jù)處理(人、物的識別統(tǒng)計(jì)),再將得到的數(shù)據(jù)顯示到目標(biāo)的Android UI上。
本設(shè)計(jì)主要采用工業(yè)相機(jī)和S5PV210處理器,在Ubuntu環(huán)境下利用基于深度學(xué)習(xí)YOLOv3算法,在特定的快遞取件點(diǎn)場景下收集圖像數(shù)據(jù),將其制成訓(xùn)練集并生成權(quán)重文件,對取件點(diǎn)一天中人流量進(jìn)行統(tǒng)計(jì),并依據(jù)此結(jié)果指導(dǎo)取件行為,解決當(dāng)下取件點(diǎn)高峰期人流擁擠、取件難、排隊(duì)久的問題。實(shí)驗(yàn)結(jié)果表明在測試集的1 000個(gè)圖像樣本中可以獲得92%以上的準(zhǔn)確率,快速識別出快遞取件點(diǎn)的具體人流量信息,證明了基于YOLOv3的人流統(tǒng)計(jì)方法的有效性。同時(shí),根據(jù)得到的實(shí)驗(yàn)數(shù)據(jù),對有快速取件需求的人提供了實(shí)用的取件引導(dǎo)方案。