須嘯海 趙林 于慧
【摘? 要】基于當(dāng)前物聯(lián)網(wǎng)技術(shù)的應(yīng)用趨勢(shì),論文研究了一種基于邊緣計(jì)算的視頻背景重建的方法,結(jié)合城市道路交通車流量實(shí)時(shí)監(jiān)測(cè)的應(yīng)用需求,通過(guò)實(shí)際的車流量視頻數(shù)據(jù)進(jìn)行算法的驗(yàn)證。同時(shí),論文基于OpenCV構(gòu)建邊緣計(jì)算機(jī)器視覺(jué)應(yīng)用引擎,將基于視頻背景重建的算法向嵌入式實(shí)時(shí)處理系統(tǒng)移植,從而探索出通用機(jī)器視覺(jué)算法在邊緣計(jì)算側(cè)實(shí)現(xiàn)功能應(yīng)用的方法,使得以模塊化、軟硬件系統(tǒng)低耦合度思想研發(fā)機(jī)器視覺(jué)應(yīng)用成為可能。
【Abstract】Based on the current application trend of internet of things technology, this paper studies a method of video background reconstruction based on edge computing. Combined with the application requirements of urban road traffic flow real-time monitoring, the paper verifies the algorithm through actual video data of traffic flow. At the same time, this paper constructs the edge computing machine vision application engine based on OpenCV, transplants the algorithm based on video background reconstruction to the embedded real-time processing system, and explores the method of realizing the functional application of general machine vision algorithm in the edge computing side, which makes it possible to study and develop machine vision applications with the idea of modularization and low coupling of software and hardware systems.
【關(guān)鍵詞】物聯(lián)網(wǎng);邊緣計(jì)算;機(jī)器視覺(jué);嵌入式系統(tǒng);OpenCV
【Keywords】internet of things; edge computing; machine vision; embedded system; OpenCV
【中圖分類號(hào)】TP391.4;TP312? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文獻(xiàn)標(biāo)志碼】A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?【文章編號(hào)】1673-1069(2021)01-0155-05
1 引言
城市交通信號(hào)燈控制是智能交通、智慧公路中一個(gè)非常重要的組成部分,目前存在的現(xiàn)象是路口的交通信號(hào)燈在固定的時(shí)間間隔進(jìn)行切換,這個(gè)時(shí)間間隔往往是管理中心根據(jù)經(jīng)過(guò)統(tǒng)計(jì)或經(jīng)驗(yàn)進(jìn)行設(shè)定,存在時(shí)間控制精度的缺陷,尤其在夜間存在交通信號(hào)燈按設(shè)定時(shí)間控制,但幾乎沒(méi)有車輛通過(guò)的現(xiàn)象,勢(shì)必造成道路資源的浪費(fèi)和造成更多的機(jī)動(dòng)車尾氣排放,為了解決這個(gè)現(xiàn)象,同時(shí),結(jié)合物聯(lián)網(wǎng)技術(shù),研究一套基于邊緣計(jì)算的機(jī)器視覺(jué)車流量計(jì)數(shù)系統(tǒng),從而智能動(dòng)態(tài)地控制交通信號(hào)燈系統(tǒng),將能有效地解決存在的問(wèn)題。本次研究中針對(duì)車流量的智能技術(shù)采用的是機(jī)器視覺(jué)背景差方法,其實(shí)現(xiàn)原理需要重建無(wú)車流的視頻背景圖像,本文就實(shí)現(xiàn)機(jī)器視覺(jué)的道路視頻背景重建的算法進(jìn)行探討,以及通過(guò)邊緣計(jì)算方法實(shí)現(xiàn)研究系統(tǒng)的移植是本次研究的主要目標(biāo),同時(shí),可以找到其他智能型算法在邊緣計(jì)算模式中的應(yīng)用模式,對(duì)物聯(lián)網(wǎng)系統(tǒng)邊緣計(jì)算終端系統(tǒng)的開發(fā)具有重要的意義。
2 研究目標(biāo)及方案
研究構(gòu)建機(jī)器視覺(jué)邊緣計(jì)算驗(yàn)證系統(tǒng),移植OpenCV機(jī)器視覺(jué)庫(kù)至邊緣計(jì)算系統(tǒng)環(huán)境,結(jié)合應(yīng)用背景重建方法,研究基于機(jī)器視覺(jué)算法重構(gòu)視頻監(jiān)控道路背景,并在邊緣計(jì)算嵌入式系統(tǒng)移植驗(yàn)證算法效果。
2.1 構(gòu)建機(jī)器視覺(jué)邊緣計(jì)算驗(yàn)證系統(tǒng)
本次研究?jī)?nèi)容為物聯(lián)網(wǎng)邊緣計(jì)算嵌入式系統(tǒng),由于研究?jī)?nèi)容涵蓋構(gòu)建一套邊緣計(jì)算系統(tǒng),涉及軟硬件,因此,采用系統(tǒng)總體設(shè)計(jì)、硬件平臺(tái)的搭建研制及軟件系統(tǒng)的開發(fā)的研發(fā)流程,如圖1所示。
由嵌入式硬件系統(tǒng)和軟件系統(tǒng)兩部分組成算法驗(yàn)證系統(tǒng),結(jié)構(gòu)設(shè)計(jì)如圖2所示。
2.1.1 功能驗(yàn)證系統(tǒng)的選型和搭建
本次研究的功能驗(yàn)證系統(tǒng)采用嵌入式處理器實(shí)現(xiàn),分為控制使能部分和邊緣計(jì)算部分,經(jīng)過(guò)前期的調(diào)研采用Freescale i.MX6Q四核心處理器能勝任對(duì)圖像處理實(shí)時(shí)算法的執(zhí)行,因此,設(shè)計(jì)的邊緣計(jì)算部分采用該處理器完成機(jī)器視覺(jué)背景重建測(cè)算法的功能,控制使能部分采用Freescale i.MX515單核心處理器,完成系統(tǒng)間數(shù)據(jù)通信、機(jī)電設(shè)備的控制,邊緣計(jì)算部分和控制使能部分采用分布式思想獨(dú)立運(yùn)行,兩部分的數(shù)據(jù)通信和控制協(xié)處理通過(guò)串行總線方式完成,采用這個(gè)思路的好處是通過(guò)執(zhí)行業(yè)務(wù)和功能的清晰劃分,避免了對(duì)軟硬件資源的搶占,實(shí)現(xiàn)了控制和特殊應(yīng)用算法的分離,大大增強(qiáng)了系統(tǒng)的擴(kuò)展性、靈活性,同時(shí),也保證了系統(tǒng)的穩(wěn)定性。功能驗(yàn)證系統(tǒng)的設(shè)計(jì)如圖3所示。
功能驗(yàn)證硬件系統(tǒng)的核心部分為邊緣計(jì)算單元和控制使能單元,其中,邊緣計(jì)算單元專門用于邊緣算法的實(shí)現(xiàn),同時(shí),與控制使能單元進(jìn)行相關(guān)數(shù)據(jù)的通信??刂剖鼓軉卧?fù)責(zé)整個(gè)嵌入式系統(tǒng)的運(yùn)行、控制、通信和邊緣計(jì)算單元協(xié)同。
2.1.2 軟件系統(tǒng)的選型和搭建
在本次研究中,邊緣計(jì)算軟件系統(tǒng)是整個(gè)應(yīng)用功能實(shí)現(xiàn)的關(guān)鍵,選擇Linux為邊緣計(jì)算終端的操作系統(tǒng)。系統(tǒng)環(huán)境的搭建包括嵌入式環(huán)境操作系統(tǒng)的搭建,涵蓋系統(tǒng)引導(dǎo)驅(qū)動(dòng)的移植、根文件系統(tǒng)的移植、操作系統(tǒng)的剪裁和移植及開發(fā)環(huán)境的建立、機(jī)電設(shè)備控制使能GPIO驅(qū)動(dòng)開發(fā)、邊緣計(jì)算單元與控制使能單元串口通信驅(qū)動(dòng)的實(shí)現(xiàn)、基于發(fā)布和訂閱模式的數(shù)據(jù)通信引擎的實(shí)現(xiàn)、OpenCV機(jī)器視覺(jué)框架的移植及邊緣計(jì)算視頻背景重建算法的實(shí)現(xiàn)。
2.2 OpenCV機(jī)器視覺(jué)庫(kù)向邊緣計(jì)算環(huán)境的移植
本次研究采用OpenCV庫(kù)完成機(jī)器視覺(jué)處理算法,OpenCV庫(kù)在圖像智能識(shí)別方面的基礎(chǔ)算法已經(jīng)成熟,目前,圖像處理和識(shí)別在嵌入式環(huán)境實(shí)現(xiàn)相關(guān)功能比較通用的做法是基于DSP微處理器完成算法的功能,DSP微處理器對(duì)于執(zhí)行機(jī)器視覺(jué)算法十分高效,并且DSP處理器的設(shè)計(jì)方支持了OpenCV在DSP中的運(yùn)行,但從成本和系統(tǒng)的可移植性方面考慮,DSP芯片不在本次研究中采用,因?yàn)楸敬窝芯康哪繕?biāo)之一就是要實(shí)現(xiàn)一個(gè)可移植、跨平臺(tái)的純粹基于軟件的機(jī)器視覺(jué)邊緣計(jì)算模式,在微處理器的選擇上也是以通用的ARM芯片來(lái)完成相應(yīng)功能,但目前對(duì)OpenCV的移植缺少ARM環(huán)境的資料,因此,本次對(duì)OpenCV機(jī)器視覺(jué)算法庫(kù)向ARM處理器的移植是技術(shù)難點(diǎn),因此,本次研究選擇OpenCV 2.4.11為機(jī)器視覺(jué)基礎(chǔ)框架,處理器選擇基于Cortex A9的Freescale i.MX 6Quad,目標(biāo)是將OpenCV 2.4.11移植到Cortex A9環(huán)境下,在移植后的機(jī)器視覺(jué)庫(kù)的基礎(chǔ)上研發(fā)相關(guān)機(jī)器視覺(jué)算法,完成邊緣計(jì)算的相關(guān)功能。
2.2.1 OpenCV在Cortex A9 ARM體系的嵌入式環(huán)境中的移植步驟
機(jī)器視覺(jué)交叉開發(fā)環(huán)境為Ubuntu 12.04,交叉編譯器版本為:(gcc version 4.6.2 20110630 (prerelease)(Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20))。
①安裝CMake二進(jìn)制方式。
②安裝CMake源碼編譯方式。
③安裝交叉編譯器。
④安裝必備的依賴庫(kù)文件。
這些依賴庫(kù)文件是保障攝像頭視頻采集功能正常的必需條件,例如,使用OpenCv實(shí)現(xiàn)視頻采集必須依賴FFmpeg庫(kù),因?yàn)镺penCV中用于操作視頻文件的基類是基于FFmpeg、圖像jpeg類型庫(kù)、圖像png類型庫(kù)、圖像tiff類型庫(kù)。
⑤生成OpenCV編譯Makefile文件。
⑥編譯OpenCV源碼。
⑦安裝OpenCV。
⑧編寫OpenCV測(cè)試應(yīng)用程序。
2.2.2 交叉編譯及測(cè)試
在交叉編譯環(huán)境進(jìn)行測(cè)試程序的編譯,未出現(xiàn)錯(cuò)誤信息且生產(chǎn)可執(zhí)行文件,查看文件屬性,“test: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped”,信息表明文件為32位ARM結(jié)構(gòu)的動(dòng)態(tài)鏈接模式的可執(zhí)行程序。
2.3 重建實(shí)時(shí)視頻道路背景
車流量監(jiān)測(cè)算法主體思路是:首先,應(yīng)用背景重建方法和基于t分布的變化檢測(cè)結(jié)合重建監(jiān)控視頻背景;其次,使用背景抑制法提取監(jiān)控的車輛目標(biāo)和使用大津法確定圖像分割的閾值,在車流監(jiān)控視頻中設(shè)置虛線框計(jì)數(shù)運(yùn)動(dòng)車流量。為保證目標(biāo)識(shí)別的效果,需要實(shí)時(shí)更新道路背景,實(shí)際應(yīng)用場(chǎng)景的道路背景如圖4a所示,道路背景中會(huì)出現(xiàn)移動(dòng)車流,研究目標(biāo)是通過(guò)背景重建算法去除背景中的車輛目標(biāo),并實(shí)時(shí)更新道路背景如圖4b所示,通過(guò)背景抑制算法識(shí)別出車輛目標(biāo)如圖4c所示,達(dá)到最終檢測(cè)車流量的目的。
3 背景重建算法的實(shí)現(xiàn)
背景模型分為兩類,即統(tǒng)計(jì)背景模型和確定背景模型。統(tǒng)計(jì)背景模型是把背景建模作為一個(gè)統(tǒng)計(jì)變量,需要把背景的每一個(gè)像素的灰度值確定出來(lái)。
背景重建可分為兩部分:
①初始背景的建立;
②背景的更新。
由于在本文中道路場(chǎng)景存在非穩(wěn)定因素,例如,雨、霧,因此,只建立初始背景模型。
3.1 建立背景模型
3.1.1 建立視頻差模型
視頻是由一幀幀的圖片組成,圖像由像素點(diǎn)矩陣組成,當(dāng)視頻中沒(méi)有物體出現(xiàn)時(shí)相鄰兩幀圖像內(nèi)容幾乎不發(fā)生變化,即圖像矩陣中的像素點(diǎn)不發(fā)生變化。但實(shí)際上視頻前后兩幀圖像在沒(méi)有物體出現(xiàn)時(shí),還是會(huì)有相應(yīng)的差別,通過(guò)分析相鄰兩幀像素值發(fā)生變化即由運(yùn)動(dòng)對(duì)象或噪聲引起的。攝像機(jī)是產(chǎn)生這種噪聲的主要來(lái)源,這類噪聲是一種各頻譜分量服從均勻分布的白噪聲,設(shè)其方差為σ。第i幀圖像表示為:
其中,f1(x,y,i)為第i幀圖像的實(shí)測(cè)值;noise(x,y,i)為隨機(jī)噪聲;f1(x,y,i)為第i幀圖像的運(yùn)算值。根據(jù)式(1)相鄰幀差值可為:
其中,noise(x,y,i)和noise(x,y,i-1)分別為當(dāng)前視頻幀和后續(xù)相鄰視頻幀數(shù)據(jù)的噪聲,其特點(diǎn)是隨機(jī)變量、彼此獨(dú)立、概率密度相同、加性高斯噪聲、呈正態(tài)分布,因此,根據(jù)概率論兩個(gè)噪聲的運(yùn)算diffnoise也呈正態(tài)分布。
3.1.2 背景重建算法原理
背景重建算法的關(guān)鍵點(diǎn)在于將背景點(diǎn)和非背景點(diǎn)準(zhǔn)確地區(qū)分開來(lái),研究一種方法判斷背景像素點(diǎn)和非背景像素點(diǎn),將視頻流數(shù)據(jù)背景像素點(diǎn)數(shù)值存儲(chǔ)下來(lái)最后統(tǒng)計(jì)平均,形成最后的重建背景圖像。
通過(guò)MATLAB對(duì)采集的視頻數(shù)據(jù)進(jìn)行正態(tài)分布檢驗(yàn),采集視頻數(shù)據(jù)呈現(xiàn)正態(tài)分布且方差未知,采用t分布對(duì)視頻數(shù)據(jù)總體均值進(jìn)行估計(jì)。因?yàn)槊繋瑘D像存在噪聲影響,如果檢測(cè)單像素點(diǎn)可能存在誤差,為了提高檢驗(yàn)的準(zhǔn)確性,應(yīng)對(duì)目標(biāo)檢測(cè)像素點(diǎn)鄰域像素點(diǎn)進(jìn)行檢測(cè)。對(duì)視頻中每一個(gè)像素點(diǎn)的變化情況可以用假設(shè)檢驗(yàn)的方法來(lái)檢測(cè),假設(shè)第I幀視頻圖像中心像素點(diǎn)K(x,y)的臨近區(qū)域?yàn)棣?,大小為N×N,若為背景像素點(diǎn),其相鄰幀差均值為0,令原假設(shè)為H0:μx=0,備擇假設(shè)為H1:μx≠0,其中μx為相鄰幀差均值。本次研究為單樣本,由于噪聲未知,對(duì)樣本隨機(jī)變量的均值使用單樣本t分布檢驗(yàn),根據(jù)t分布的定義構(gòu)造標(biāo)準(zhǔn)隨機(jī)變量t:
其中,N為選擇的鄰域維度值,顯著水平α取值范圍是10-1~10-3,根據(jù)實(shí)測(cè)調(diào)整具體值。
那么拒絕域?yàn)椋?/p>
其中,N為選擇的鄰域維度值,根據(jù)式(7),在拒絕域以外的像素點(diǎn)是背景點(diǎn),其他是非背景點(diǎn)。這樣可以將非背景點(diǎn)準(zhǔn)確地區(qū)分開來(lái),從而保留背景點(diǎn)數(shù)據(jù)。
3.2 背景重建算法實(shí)現(xiàn)
對(duì)采集的視頻幀彩色圖像按R、G、B三個(gè)通道數(shù)據(jù)進(jìn)行t分布檢測(cè),對(duì)每個(gè)通道內(nèi)的當(dāng)前像素值按檢驗(yàn)規(guī)則進(jìn)行背景點(diǎn)的保留,同時(shí),過(guò)濾掉非背景點(diǎn)數(shù)據(jù)。
根據(jù)背景重建算法的原理編碼實(shí)現(xiàn)的步驟如圖5所示。
背景重建算法實(shí)現(xiàn)步驟為:
①建立兩個(gè)二維數(shù)組,維度為圖像大小,用于存放當(dāng)前背景像素點(diǎn)計(jì)數(shù)和當(dāng)前視頻幀圖像數(shù)據(jù)之和,其中數(shù)組下標(biāo)為圖像幀對(duì)應(yīng)像素點(diǎn)的位置;
②讀取視頻的第一幀圖像為基礎(chǔ)圖像數(shù)據(jù);
③對(duì)于讀取的后續(xù)幀圖像數(shù)據(jù),對(duì)當(dāng)前幀圖像中的每個(gè)待檢像素點(diǎn)的3×3鄰域像素點(diǎn)數(shù)據(jù)進(jìn)行t分布檢測(cè),根據(jù)實(shí)驗(yàn)選擇顯著水平α為10-2,根據(jù)式(4)得臨界值為3.3554,確定置信區(qū)間為-3.3554≤t≤3.3554;
④通過(guò)t分布檢測(cè)過(guò)濾掉非背景像素點(diǎn),保留背景像素點(diǎn)數(shù)據(jù),同時(shí),按R、G、B三通道分量分別累加和計(jì)數(shù);
⑤按存儲(chǔ)R、G、B三個(gè)分量總和值和計(jì)數(shù)值求重建像素點(diǎn)的均值;
⑥用相應(yīng)點(diǎn)像素均值建立背景圖像。
根據(jù)上述算法最后實(shí)驗(yàn)獲得的重建背景效果圖如圖6所示。
根據(jù)實(shí)驗(yàn)的結(jié)果可以發(fā)現(xiàn),重建的背景隨著處理的幀數(shù)的增加質(zhì)量會(huì)越來(lái)越高,處理時(shí)間會(huì)有所增加。
4 邊緣計(jì)算系統(tǒng)的移植及測(cè)試
算法在Windows系統(tǒng)下完成功能開發(fā),再向邊緣計(jì)算嵌入式系統(tǒng)中進(jìn)行移植,由于該算法運(yùn)行在嵌入式Linux系統(tǒng)中,為了降低調(diào)試的難度,使開發(fā)的效率更高,需要在個(gè)人計(jì)算機(jī)上建立與檢測(cè)單元嵌入式系統(tǒng)相同的Linux內(nèi)核,達(dá)到移植到嵌入式系統(tǒng)中的移植效果。
4.1 移植方法及步驟
背景重建算法的移植方法和步驟如下:
①在運(yùn)行于x86體系處理器Windows系統(tǒng)中將功能實(shí)現(xiàn)。在這個(gè)步驟中將目標(biāo)實(shí)現(xiàn)功能完成,并進(jìn)行調(diào)試達(dá)到正常運(yùn)行的目標(biāo)。
②在運(yùn)行于x86體系處理器Linux系統(tǒng)中進(jìn)行編譯并運(yùn)行測(cè)試。
③將功能算法交叉編譯形成ARM體系結(jié)構(gòu)的二進(jìn)制可運(yùn)行文件。
④移植到ARM體系處理器Linux系統(tǒng)中并運(yùn)行測(cè)試。
在步驟①中,使用Visual Studio 2010+OpenCV 2.4.11編譯,測(cè)試結(jié)果如圖7所示。
4.2 使用系統(tǒng)整體驗(yàn)證
通過(guò)調(diào)試端口軟件SecureCRT測(cè)試,結(jié)果如圖8所示。
圖8中左上為控制單元調(diào)試狀態(tài)的數(shù)據(jù)輸出結(jié)果,左下為算法單元車流量的檢測(cè)結(jié)果,數(shù)據(jù)格式為通道編號(hào)和相應(yīng)通過(guò)的車輛數(shù)目,右邊為遠(yuǎn)程管理端的數(shù)據(jù)輸出,實(shí)際在有限時(shí)間內(nèi)的車流量數(shù)據(jù)如表1所示。
由表2可知,檢測(cè)結(jié)果正確率100%。
5 結(jié)語(yǔ)
本文根據(jù)目前交通領(lǐng)域存在的問(wèn)題為需求,提出一種基于邊緣計(jì)算的t分布檢驗(yàn)的視頻圖像背景重建方法,并通過(guò)依據(jù)原理到功能的實(shí)現(xiàn)并在實(shí)際的嵌入式系統(tǒng)中進(jìn)行驗(yàn)證,總結(jié)得出以下結(jié)論:
①使用基于Cortex A9 Freescale i.MX 6Quad為嵌入式處理器,在執(zhí)行較復(fù)雜的大規(guī)模矩陣運(yùn)算、機(jī)器視覺(jué)算法、嵌入式大數(shù)據(jù)分析時(shí),在實(shí)時(shí)性、準(zhǔn)確性和可靠性上均能滿足實(shí)測(cè)要求;
②將OpenCV計(jì)算機(jī)視覺(jué)庫(kù)和機(jī)器學(xué)習(xí)軟件庫(kù)應(yīng)用在物聯(lián)網(wǎng)邊緣計(jì)算領(lǐng)域可行,并且更加靈活、可移植性更強(qiáng);
③本文研究?jī)?nèi)容沒(méi)有采用常規(guī)的DSP信號(hào)處理方案,而采用通用的基于手機(jī)的處理器,并移植OpenCV機(jī)器視覺(jué)算法庫(kù),利用軟件的方法解決復(fù)雜數(shù)據(jù)處理和運(yùn)算的思路具有一定的創(chuàng)新性;
④成功構(gòu)建了一套基于物聯(lián)網(wǎng)邊緣計(jì)算的嵌入式機(jī)器視覺(jué)應(yīng)用的系統(tǒng)平臺(tái),可以非常便利地移植其他物聯(lián)網(wǎng)邊緣側(cè)應(yīng)用算法模塊,可快速地形成物聯(lián)網(wǎng)邊緣計(jì)算應(yīng)用產(chǎn)品;
⑤基于本次研究思路,可深入研究物聯(lián)網(wǎng)邊緣分布式計(jì)算的解決方法。
【參考文獻(xiàn)】
【1】章毓晉.圖像工程(上下冊(cè))——圖像處理和分析[M].北京:清華大學(xué)出版社,1999.
【2】郁梅,蔣剛毅,郁伯康.智能交通系統(tǒng)中的計(jì)算機(jī)視覺(jué)技術(shù)應(yīng)用[J].計(jì)算機(jī)工程與應(yīng)用,2001(10):101-103+121.
【3】何斌,馬天予,王運(yùn)堅(jiān),等.Visual C++數(shù)字圖像處理[M].北京:人民郵電出版社,2001.
【4】梅林,劉鋒.基于邊緣檢測(cè)與垂直投影相結(jié)合的車牌定位方法[J].甘肅科技,2009,3(25):15-17.
【5】賀曉鋒,楊玉珍,陳陽(yáng)舟.基于視頻圖像處理的車輛排隊(duì)長(zhǎng)度檢測(cè)[J].交通與計(jì)算機(jī),2006,5(24):43-46.