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