国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于視頻監(jiān)控的發(fā)射臺安防系統(tǒng)研究

2021-04-14 11:58喬晶鑫
數(shù)字傳媒研究 2021年3期
關(guān)鍵詞:開發(fā)板發(fā)射臺嵌入式

喬晶鑫

內(nèi)蒙古自治區(qū)新聞出版廣電局呼倫貝爾廣播發(fā)射中心臺 內(nèi)蒙古 呼倫貝爾市 021008

引 言

隨著人們物質(zhì)水平的不斷提高,對精神生活的追求也不斷提高。為滿足人們?nèi)找嬖鲩L的視聽娛樂等方面的需求,廣播發(fā)射站的數(shù)量也逐漸增多。對于發(fā)射站的監(jiān)管,傳統(tǒng)方法是需要人工值守,此方法不僅會浪費大量人力物力,而且會因為人的疏忽導(dǎo)致廣播意外事件的發(fā)生[1]。因此,設(shè)計一套安防系統(tǒng)來實時監(jiān)測發(fā)射站機房內(nèi)部的情況有著重大的現(xiàn)實意義。

在各種安防技術(shù)中,視頻監(jiān)控有著實時性高、操作簡單、監(jiān)控信息易于查看和保存等優(yōu)點,得到了廣泛的應(yīng)用。目前的視頻監(jiān)控方法多是使用硬盤錄像機(Digital Video Recorder, DVR) 進 行 一 天24 小時不間斷存儲視頻數(shù)據(jù),但此種方法有著價格昂貴、設(shè)備復(fù)雜的缺點[2]。而在本文發(fā)射臺監(jiān)控的任務(wù)中場景相對固定,若對發(fā)射站機房進行不間斷的錄像并存儲視頻,會包含大量的無異常冗余視頻,占用存儲空間;并且工作人員查看過往視頻時需要全部查看,過程較為繁瑣。

針對以上問題,結(jié)合發(fā)射站機房監(jiān)測任務(wù)的特點,本文提出一種利用圖像處理算法進行異物闖入監(jiān)測的發(fā)射臺安防系統(tǒng),僅當(dāng)有異物闖入和物體移動時才會進行視頻的存儲,并進行目標(biāo)跟蹤便于監(jiān)管人員查看,并且搭建嵌入式硬件平臺和移植算法,從而解決了設(shè)備復(fù)雜昂貴、存儲多余視頻的問題。

1 系統(tǒng)設(shè)計

1.1 總體框架

根據(jù)實地考察和分析,本文提出了一種基于圖像處理算法和嵌入式技術(shù)的發(fā)射臺安防系統(tǒng),該系統(tǒng)的主要功能為:第一,驅(qū)動視頻采集模塊實時監(jiān)測發(fā)射臺機房內(nèi)部狀態(tài),當(dāng)有異物闖入或物體移動時,存儲當(dāng)前視頻;第二,進行視頻中物體的跟蹤和標(biāo)記;第三,驅(qū)動顯示模塊能夠回放存儲的監(jiān)控視頻,該視頻以拍攝時間為順序、分段存儲;第四,連接外部設(shè)備,接收用戶的輸入控制。

本文提出的基于視頻監(jiān)控的發(fā)射臺安防系統(tǒng)結(jié)構(gòu)如圖1 所示,包括硬件和軟件兩個部分,在硬件部分含有高性能處理器作為整個系統(tǒng)的核心,連接高清攝像頭作為顯示模塊、連接可觸控的LCD 顯示器同時完成顯示功能和接收用戶輸入的功能、連接大容量存儲器用來存儲多個分段的監(jiān)控視頻供工作人員回溯事件。軟件部分包括嵌入式操作系統(tǒng),它是軟件程序運行的基礎(chǔ),操作系統(tǒng)內(nèi)部的驅(qū)動程序來驅(qū)動硬件的各個模塊高效工作;還包括基于OpenCV 的移動物體檢測算法和目標(biāo)跟蹤算法,屬于上層應(yīng)用程序,調(diào)用嵌入式操作系統(tǒng)的API 實現(xiàn)對硬件的管理。

圖1 基于視頻監(jiān)控的發(fā)射臺安防系統(tǒng)結(jié)構(gòu)圖

1.2 硬件平臺

1.2.1 嵌入式處理器

處理器是整個系統(tǒng)的核心,它控制其它各物理模塊,也是操作系統(tǒng)和軟件程序得以運行的基礎(chǔ)。ARM 架構(gòu)的處理器憑借精簡指令集的高效、功耗低、性價比高的優(yōu)勢,占據(jù)了大量的市場。本文中發(fā)射站安防系統(tǒng)需要一個性能強大、價格低的處理器,因此處理器選擇了NXP公司的iMX6ULL處理器。

圖3 OKMX6ULL 開發(fā)板底板實物圖

iMX6ULL 處理器基于ARM cortex-A7 架構(gòu),有著較強的性能。 運行頻率最高可達(dá)900MHz,內(nèi) 部 有128KB L2 緩存。集成了很多模塊功能豐富,例如電源管理模塊,降低了外接電源的復(fù)雜性;在連接存儲器方面,接口眾多,包括LPDDR2、DDR3、DDR3L、原始和管理的NAND 閃存、NOR 閃存、eMMC、Quad SPI 和各種其他接口;在連接外圍設(shè)備方面,可與LCD 顯示器、攝像頭傳感器等連接[3]。

本文安防系統(tǒng)將利用飛凌公司的OKMX6ULL 開發(fā)板進行開發(fā),該開發(fā)板由主板和底板兩部分組成,如圖2、圖3 所示, 接 口 豐 富, 包 括LCD、Camera 接 口,4 個USB 接 口,2個UART、2 個IIC、2 個CAN 總線接口等[4]。本系統(tǒng)直接使用OKMX6ULL 開發(fā)板所提供的接口連接視頻采集模塊、觸控顯示模塊、視頻數(shù)據(jù)存儲模塊,并在iMX6ULL 處理器中運行嵌入式操作系統(tǒng),在操作系統(tǒng)之上運行本文設(shè)計的目標(biāo)檢測和跟蹤程序。

1.2.2 視頻采集模塊

對于視頻采集模塊的選擇,本文從拍攝效果及性價比等多方面考慮,選用色彩逼真、穩(wěn)定性高的中星微301v 型號攝像頭,實物圖如圖4 所示。

圖4 攝像頭模塊

該款攝像頭為高清CMOS 攝像頭,接口類型USB2.0,圖像最大分辨率640×480,拍攝速率為30fps,抗噪能力強,還包括多種影像處理功能。通過多次實際測試,能夠拍攝出清晰的圖像畫面,并且價格適中、性價比高,符合本系統(tǒng)低成本的要求。

1.2.3 顯示模塊

顯示模塊和用戶輸入模塊集合到一個物理設(shè)備中,使這個系統(tǒng)的操作更加高效,本文選用LCD 觸控一體機作為顯示和輸入模塊。產(chǎn)品為觸想公司的12 寸LCD 顯示屏。實物圖如圖5 所示,具體參數(shù)見表1。

圖5 LCD 觸控一體機實物圖

1.3 OpenCV 和檢測算法設(shè)計

1.3.1 OpenCV 簡介

OpenCV 是一個在圖像處理領(lǐng)域常用的機器視覺集成庫,主要編程語言使C++、Python等。OpenCV 是分模塊化設(shè)計的具體來說分為多個部分,各部分之間的結(jié)構(gòu)和關(guān)系如圖6所示:

圖6 OpenCV 的模塊結(jié)構(gòu)

如上圖所示, OpenCV HAL 模塊是多硬件的支持和優(yōu)化,包括SSE、CUDA 等;其次是OpenCV 對圖像處理的核心代碼,包括core、imgproc 模塊等,內(nèi)部包含多種高級圖像處理的函數(shù),提供API 供開發(fā)人員使用;最后是一些與特定開發(fā)語言的綁定,包括對Python、Java等,還有一些示例工程和解決方案[5]。

表1 觸控一體機產(chǎn)品規(guī)格

OpenCV 已有多個版本更新,它在除了圖像處理領(lǐng)域應(yīng)用廣泛,在人臉識別、機器人、運動結(jié)構(gòu)分析等領(lǐng)域都有著廣泛的應(yīng)用。主要是它有著諸多優(yōu)點,如下:

(1)OpenCV 中有大量覆蓋計算機視覺領(lǐng)域的圖像處理相關(guān)函數(shù),并且是全部開源的,在研究過程中可以在代碼中添加自己的思路;

(2)OpenCV 視覺庫中的代碼都是經(jīng)過不斷實驗優(yōu)化后發(fā)布的,可靠性強;

(3)OpenCV 支持的運行環(huán)境較為廣泛,可以支持開發(fā)者在多種環(huán)境中完成對圖像的研發(fā)工作,跨平臺使用,可移植性強;

(4)OpenCV 提供了多種圖像處理API 接口,通用性強。

因此,本文選用OpenCV3.4.1庫來實現(xiàn)目標(biāo)檢測程序和跟蹤程序。

1.3.2 嵌入式操作系統(tǒng)

在嵌入式軟件部分,分為無操作系統(tǒng)的裸機和包含操作系統(tǒng)的軟件部分。當(dāng)任務(wù)較為簡單時,不含操作系統(tǒng)的代碼直接控制硬件器件,效率高、便于程序的編寫。但是當(dāng)任務(wù)較為復(fù)雜且對處理實時性有較高要求時,需要使用操作系統(tǒng)來完成多任務(wù)的并發(fā)的功能。目前,常用的嵌入式操作系統(tǒng)包括Linux、WinCE、VxWorks 等[6]。

由于嵌入式Linux 有著開源、成本低、可移植性強的優(yōu)點,而且應(yīng)用廣泛,本文將采用嵌入式Linux 作為操作系統(tǒng)。由圖7 可知,Linux 操作系統(tǒng)有4個組成部分,分別是內(nèi)核、系統(tǒng)調(diào)用、shell 及公共函數(shù)庫、應(yīng)用程序。

圖7 Linux 結(jié)構(gòu)圖

其中,內(nèi)核是操作系統(tǒng)關(guān)鍵的部分,主要完成操作系統(tǒng)做重要的任務(wù),包括進程管理、內(nèi)存管理、文件管理等[7]。

1.3.3 移動目標(biāo)檢測算法

根據(jù)視頻中物體背景是否變化,移動目標(biāo)檢測算法主要分為動態(tài)和靜態(tài)背景的移動目標(biāo)檢測算法。當(dāng)背景處于動態(tài)變化過程中,或者說是視頻采集模塊處于不斷移動導(dǎo)致背景在不斷改變時,此時需要的算法更強,處理器性能也需要更好[8]。

在本文任務(wù)中,發(fā)射臺機房中背景相對固定,而且攝像頭位置保持不變,因此屬于靜態(tài)背景中的移動目標(biāo)檢測算法。目前常用的算法有光流法、背景差法和幀差法。光流法算法較為復(fù)雜而且對硬件要求較高,不適合用于嵌入式系統(tǒng)中;背景差法運算速度快,但是抗干擾能力弱,容易造成誤檢。幀差法的魯棒性較強,計算高效,對處理器性能要求不高,因此本文選擇幀差法作為移動檢測算法。算法總體流程如圖8 所示。

由圖8 可知,本算法對連續(xù)兩幀圖像做差值運算,首先是獲得連續(xù)兩幀圖像的數(shù)據(jù),其次進行兩幅圖像的預(yù)處理操作,包括圖像灰度化處理、濾波降噪得到高質(zhì)量的灰度圖像,最后對兩幀圖像做差值計算得到新的圖像Mat_new,并對Mat_new 進行閾值判斷,若超過閾值則認(rèn)為有移動物體,則對Mat_new 進行一些圖像的形態(tài)學(xué)運算,開始存儲該幀圖像,用于以后工作人員查看。

主要的形態(tài)學(xué)后處理算法有腐蝕、膨脹、開運算、閉運算、形態(tài)學(xué)梯度、頂帽和黑帽等基本運算,本文采用圖像腐蝕和圖像膨脹,圖像腐蝕的計算公式如下所示:

圖8 移動目標(biāo)檢測算法流程圖

圖像膨脹的計算式為:

最后,利用C++語言和OpenCV 庫進行編寫移動目標(biāo)檢測算法,所調(diào)用的OpenCV 函數(shù)和調(diào)用順序為Video Capture、cvtColor、 absdiff、 threshold、erode、dilate。

1.3.4 目標(biāo)跟蹤算法

當(dāng)檢測到異物闖入發(fā)射臺機房中時,已經(jīng)保存了圖像,但是為了顯示的更加明顯,將使用目標(biāo)跟蹤算法對異物或移動物體進行標(biāo)記其輪廓。其算法流程如圖9 所示。

首先是邊緣檢測,本文所使用的Canny 算子進行檢測其邊緣。其主要步驟包括:圖像降噪、計算圖像的梯度,非極大值抑制和閾值篩選[9]。

通常使用高斯濾波進行降噪處理,接下來計算梯度,公式為:

梯度的大小和方向分別為:

圖9 目標(biāo)跟蹤算法流程圖

非極大值抑制和最后一步的閾值篩選的目的是使邊緣更加的準(zhǔn)確、描述更多的細(xì)節(jié)信息。圖10 為Canny 濾波處理之后的效果圖。

經(jīng)過邊緣檢測之后,接下來是進行輪廓的檢測和外接矩形的繪制。最后,利用C++語言和OpenCV 庫進行編寫移動目標(biāo)檢測算法,所調(diào)用的OpenCV 函數(shù)和調(diào)用順序為Canny、find-Contours、drawContours、boudingRect、Rectangle。

圖10 Canny 濾波效果圖

圖11 基于監(jiān)控視頻的發(fā)射臺安防系統(tǒng)的流程圖

1.4 系統(tǒng)搭建與軟件移植

在完成了硬件的選型和移動目標(biāo)檢測、目標(biāo)跟蹤算法的實現(xiàn), 本節(jié)開始基于OKMX6ULL 搭建嵌入式系統(tǒng),并進行操作系統(tǒng)的移植和算法的移植。本文所設(shè)計的基于監(jiān)控視頻的發(fā)射臺安防系統(tǒng)的流程如圖11 所示。

1.4.1 U-boot 的移植

首先移植U-boot,Bootloader 引導(dǎo)程序是處理器一上電之后執(zhí)行的第一個程序,它存儲在系統(tǒng)的ROM 中,一般來說由廠家固化好。U-boot 是屬于引導(dǎo)加載程序的一種,因為它有著很強的移植性并開源代碼,故應(yīng)用廣泛[10]。移植U-boot 的步驟如下:

(1)修改頂層Makefile,修改其中的CPU 類型和開發(fā)板類型;

(2)在configs 文件夾下新建IMX6ULL.h,配置引腳信息;

(3)修改配置文件board.cfg;

(4)運行build.sh shell 腳本文件,編譯U-boot,并把編譯后的文件燒錄到Nand Flash 中。

系統(tǒng)上電后,U-boot 會被加載到內(nèi)存的0 地址處譯碼執(zhí)行,U-boot 的功能是檢查主要硬件的功能完善性,并加載操作系統(tǒng)內(nèi)核到內(nèi)存執(zhí)行。

1.4.2 操作系統(tǒng)的裁剪與OpenCV 的移植

所以下一步就是進行操作系統(tǒng)的編譯與移植,在PC 中編譯好操作系統(tǒng)程序,燒錄到嵌入式開發(fā)板的Nand Flash 中。具體步驟如下:

(1) 用圖像界面的方式CPU 型號。運行menuconfig 依次配置NXP 類型的IMX6ULL 系列,運行內(nèi)核架構(gòu)代碼則會使用IMX6ULL 架構(gòu)所對應(yīng)的內(nèi)核程序;

(2)添加設(shè)備驅(qū)動程序。本系統(tǒng)外接的硬件包括攝像頭、LCD 觸控屏,因此在操作系統(tǒng)中為其田間設(shè)備驅(qū)動程序以控制硬件工作。

分別編寫攝像頭、LCD 觸控屏的驅(qū)動程序,并編譯成模塊,配置內(nèi)核時選擇編譯該模塊至內(nèi)核,則最終生成的操作系統(tǒng)中就包含了控制攝像頭和LCD 觸控屏的代碼;

(3)文件系統(tǒng)的移植。本文使用的是性能優(yōu)越,在嵌入式系統(tǒng)中應(yīng)用廣泛的Yaffs2 嵌入式文件系統(tǒng)。步驟為修改內(nèi)核文件中的/fs 目錄下的Makefile 文件,并通過配置Kconfig 文件配置yaffs2 文件系統(tǒng)。最后重新配置.config 文件,使內(nèi)核中包含Yaffs2 文件系統(tǒng)。

(4)移植OpenCV。首先在官網(wǎng)下載OpenCV3.4.1 源碼文件,利用cmake 進行配置并編譯,執(zhí)行./cmake.gui,按照要求配置OpenCV 源碼,其次交叉編譯生成lib 庫和一些頭文件庫,即嵌入式開發(fā)板所需要的庫。最后開發(fā)板上電運行Linux 操作系統(tǒng),把庫文件傳輸?shù)讲僮飨到y(tǒng)中的文件系統(tǒng)的根目錄中即可。

1.4.3 移植移動檢測與目標(biāo)跟蹤算法

當(dāng)開發(fā)板中正常運行Linux操作系統(tǒng)并加載OpneCV 庫之后,接下來就是移植移動檢測程序和目標(biāo)跟蹤程序。

在PC 機中通過arm-linuxgcc 交叉編譯工具鏈編譯得到可以在嵌入式Linux 中運行的程序,并在系統(tǒng)上電后通過文件傳輸工具從PC 機傳輸?shù)介_發(fā)板中,然后運行此程序,至此,整個系統(tǒng)開始運行。

攝像頭開始實時采集發(fā)射臺機房中的圖像,并利用移動目標(biāo)檢測算法和目標(biāo)跟蹤算法對異物和移動的物體進行視頻記錄保存和跟蹤檢測。管理人員可通過LCD 觸控屏進行視頻的回看和下載。

2 視頻監(jiān)控實驗

2.1 檢測和跟蹤實驗效果

攝像頭通過USB 連接開發(fā)板的USB 接口,將采集的圖像傳輸?shù)介_發(fā)板,IMX6ULL 處理器運行本文移動目表檢測算法,本節(jié)通過實驗,當(dāng)監(jiān)控畫面中出現(xiàn)移動物體時,該算法能夠進行檢測并利用外接矩形框住移動的物體,而開發(fā)板則把此時的視頻信息存儲到FLASH 存儲器中。如圖12 所示為監(jiān)控移動的人,從圖中可以看出,可以正確的框出視頻中移動的工作人員。

圖12 對移動目標(biāo)的檢測效果圖

2.2 算法性能分析

本文提出的檢測和只對移動目標(biāo)進行存儲,主要是為了減少數(shù)據(jù)的存儲,因此本節(jié)對視頻的存儲量進行計算和分析,對24 小時內(nèi)的視頻數(shù)據(jù)量大小進行記錄,并與通常的視頻存儲方式進行比較,如圖13所示。

圖13 視頻數(shù)據(jù)量大小對比

結(jié) 論

1. 本文設(shè)計的基于視頻監(jiān)控的發(fā)射臺安防系統(tǒng),通過對移動目標(biāo)進行檢測,并進行跟蹤,使用了嵌入式系統(tǒng),大大降低了開發(fā)成本。

2. 對于機房這種相對穩(wěn)定的靜態(tài)背景,本文只記錄有移動物體時的視頻數(shù)據(jù),減少了數(shù)據(jù)的存儲,便于管理人員回溯事件、回看視頻。

3. 搭建的嵌入式系統(tǒng)具有較強的通用性和可擴展性,適合二次開發(fā)和應(yīng)用于其它領(lǐng)域。

猜你喜歡
開發(fā)板發(fā)射臺嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
基于STM32H7的FDCAN通信系統(tǒng)設(shè)計與實現(xiàn)?
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
搭建基于Qt的嵌入式開發(fā)平臺
中小功率等級發(fā)射臺供電設(shè)備的維護
淺析單片機開發(fā)板的設(shè)計與制作
無線廣播電視臺發(fā)射臺低壓配電系統(tǒng)的配置和維護
ARM宣布mbed Enabled Freescale FRDM—K64F開發(fā)板通過微軟認(rèn)證
倍福 CX8091嵌入式控制器
MiniGUI在基于OMAP5912開發(fā)板上的移植
浦江县| 宜良县| 正蓝旗| 乌兰察布市| 榆社县| 保靖县| 汶川县| 洛南县| 南京市| 湘潭市| 开江县| 凤庆县| 余姚市| 崇阳县| 桂东县| 朝阳区| 佛学| 兴城市| 如东县| 磐石市| 安康市| 宜州市| 射阳县| 漾濞| 崇州市| 无锡市| 榆林市| 瓦房店市| 榆中县| 嘉兴市| 宜宾县| 文安县| 颍上县| 东源县| 贵南县| 河北省| 深州市| 乌苏市| 佛山市| 虎林市| 三穗县|