999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OpenCV的ARM嵌入式網絡視頻監控系統

2013-08-16 01:08:02梁艷
網絡安全與數據管理 2013年9期
關鍵詞:嵌入式系統

梁艷

(廣西師范大學 電子工程學院,廣西 桂林 541004)

近年來,公共場所的安全防范問題得到了越來越多的關注,一些視頻監控系統也日益重要起來。嵌入式系統的硬件集成化程度高,軟件采用實時多任務操作系統和相應的應用軟件,軟硬件均可裁減。隨著大規模集成電路的發展,ARM處理器的速度也越來越快,以ARM處理器為核心的嵌入式平臺在視頻監控方面具有很大的優勢[1]。本文詳細描述了在ARM-Linux嵌入式系統中移植OpenCV的方法,并在此基礎上運用Surendra算法設計了一個結合監控和運動目標跟蹤功能的網絡視頻監控系統。

1 OpenCV簡介

OpenCV是由Intel公司發起并參與開發且在近年來迅速普及的計算機視覺研究工具,是一個跨平臺的計算機視覺庫[2]。OpenCV可以在 Windows、Linux以及 Android等系統上運行,Intel公司免費開放該函數庫的源代碼。OpenCV提供了非常豐富的幀提取函數和視覺處理算法,開發者可以在其視頻開發項目中直接調用進行算法移植并添加自己編寫的程序,即可完成復雜龐大的開發任務,達到事半功倍的效果[3]。

2 系統硬件構架

系統基于客戶端/服務器的模式運行。服務器采用Mini2440開發板,該開發板基于ARM9內核,安裝了Linux-2.6.32 內 核 的 Linux 操 作 系 統 , 微 處 理 器 采 用Samsung S3C2440,采用專業的CPU內核電源芯片和復位芯片以保證系統的穩定性,最高主頻為533 MHz。客戶端為普通PC,在PC上安裝Fedora11操作系統和OpenCV函數庫,客戶端通過網絡同時接收來自多個服務器的視頻數據[4-5]。整個系統的硬件結構如圖1所示。

圖1 系統硬件結構圖

3 移植OpenCV函數庫

最終的目標是要在ARM嵌入式平臺上實現系統監控和跟蹤功能,故需要交叉編譯在ARM-Linux平臺上移植OpenCV函數庫[6]。移植過程如下:

(1)獲取OpenCV源代碼后解壓,在當前目錄下輸入如下命令:./configure

(2)設置環境變量:export PKG_CONFIG

_PATH=$PKG_CONFIG_PATH:/usr/local/opencv/lib/pkgconfig。編譯OpenCV源代碼自帶的例程,測試OpenCV函數庫移植是否成功。因為在移植OpenCV函數庫時沒有添加對gtk的支持,故在編譯例程drawing.c時要去掉與顯示相關的函數。使用命令:arm-linux-gcc drawing.c-o drawing′pkg-config--cflags opencv′′pkg-config--libs opencv′,生成可執行文件 drawing。

(3)在OpenCV安裝路徑/usr/local/opencv下,把 lib文件夾里的庫文件拷貝到ARM-Linux平臺的文件系統里。運行可執行文件drawing,如果在ARM-Linux平臺上成功執行,則表示OpenCV函數庫移植成功。

4 嵌入Surendra算法

網絡視頻監控系統是通過攝像頭獲取圖像,對獲取到的圖像進行處理確定運動目標,若發生異常情況,系統會自動發出警告并啟動錄像功能進行錄制保存。運動目標檢測是該系統的核心,是實現運動目標識別和跟蹤的基礎。對比各種運動目標檢測算法,同時根據系統處理器的運算能力,本文選用Surendra背景更新算法作為運動目標的檢測算法[7]。

Surendra算法能夠自適應地獲取背景圖像,其基本思想是通過當前幀幀差圖像找到物體的運動區域,保持該區域內的背景不變,用當前幀更新非運動區域的背景,經過迭代運算后就可以提取出背景圖像,實現自動更新[8]。Surendra算法步驟如下:

(1)將第一幀圖像 I0作為背景 B0。

(2)求當前幀圖像與前一幀圖像的幀差并轉化為二值化圖像,即:

其中,Ii和 Ii-1分別代表當前幀和前一幀圖像,|Ii-Ii-1|為兩幀圖像求幀差分,T為選取的二值化閾值,Di(x,y)為差分的二值圖像在坐標(x,y)處的灰度值。

(3)由二值圖像Di更新背景圖像 Bi,即:

其中,Bi(x,y)為坐標(x,y)處的背景圖像,?為更新速度系數。

運動目標的檢測就是在當前幀圖像中提取運動目標,而一般情況下前景的運動目標與背景的灰度值有很大的差異,但運動物體本身的灰度值差異一般不會很大。因此背景差分二值圖像為:

其中,Ii為當前幀圖像,Bi為背景圖像。差分二值圖像的灰度值為255的像素點可視為前景的運動目標點。通過比較這些點的個數變化是否在一定的閾值內可以判斷是否有運動物體進入監控區域。

在圖像處理中,不同類型的圖像內部結構不同,需要根據圖像的結構采用不同的方法將圖像數據讀入內存[9]。OpenCV的API函數cvCaptureFromCAM可以將圖像數據從攝像頭中加載進來,圖像結構類型使用IplImage結構體來表示。cvCaptureFromCA的函數原型為:CvCapture*cvCaptureFromC AM(int index),它返回值為一個指向CvCapture結構體的指針,然后通過調用API函數cvQueryFrame(CvCapture*capture)返回得到一個指向IplImage結構體的指針,采集進來的圖像信息就保存在IplImage結 構 體 中 。 IplImage結 構 體 的 width、height、widthStep成員分別指示了圖像的寬像素數、高像素數、排列圖像的行大小,指針參數imageData指向了實際的圖像數據。圖像數據可以看作一個二維矩陣,相應的處理可以看作對一個二維矩陣的處理,對圖像進行嵌入Surendra算法開發主要就是對imageData指向的數據進行操作[10]。在實際開發中,為了減輕處理器的運算壓力,嵌入Surendra算法是以當前幀的前4幀圖像作為背景圖像,即Ii和Ii-4分別代表當前幀和前一幀圖像,然后依據Surendra算法原理對兩幀圖像求幀差分并進行二值化,最終檢測出運動物體。

5 客戶端/服務器設計

系統軟件設計采用客戶端/服務器的模式結合Linux多線程的編程方法,使整個系統能夠流暢地實現多用戶的接入和切換。每個作為服務器的ARM嵌入式平臺上外接一個USB攝像頭,分布于監控點上的多個服務器通過網絡連接到作為客戶端的PC上,由此構成了整個網絡監控系統[11]。在系統中使用IP地址作為服務器的編號,用來區分來自于不同監控點上傳送來的視頻信息。

系統軟件由兩部分組成,分別是基于ARM嵌入式平臺上的服務器端和基于PC上的客戶端[12]。服務器端需要完成3個基本任務,即圖像獲取、圖像處理和處理后圖像數據的網絡發送。在軟件設計上,使用3個線程實現這3個任務,在線程之間采用互斥鎖的機制對關鍵數據進行保護和實現線程之間的同步,以保證系統的平穩、流暢運行。圖像獲取線程與圖像處理線程之間、圖像處理線程與圖像發送線程之間共同維護了兩個緩沖區img1和img2,圖像數據基于流水線的模式由USB攝像頭采集進來經處理后再通過TCP/IP網絡發送出去[13-14]。服務器端的運行機制如圖2所示。

圖2 服務器端運行機制

可看到緩沖區img1和img2分別有兩個線程擁有權限對其進行操作,如果兩個線程同時對數據進行讀寫,就會出現競爭現象,進而破壞數據的完整性。針對這種情況,采用了Linux互斥鎖的機制,控制程序在對緩沖區進行讀寫操作時永遠只會響應一個線程的操作請求,如在圖像獲取線程與圖像處理線程之間采用如下處理:

運用這樣的方法就可以對數據在特定時間進行保護,同時也可以實現線程之間的同步,非常有利于系統的流暢運行。圖像獲取線程每秒從USB攝像頭中采集30幀的數據。為了提高處理速度,選擇灰度圖像處理,大大減少了ARM處理器的工作量,提高了系統的運行效率。

相對于服務器端,客戶端在實現上簡單很多。客戶端構建在PC上,只需要完成圖像數據的網絡接收和圖像顯示兩個基本任務。它們由兩個線程來實現,兩個線程之間共同維護一個緩沖區,也是采用互斥鎖的機制對數據在特定時間進行保護。用戶通過IP地址作為編號識別不同的服務器端,在計算機上可以對關心的區域進行實時的遠程監控和跟蹤。

本系統成功地將OpenCV函數庫移植到ARM-Linux嵌入式系統中,并基于OpenCV函數庫和Surendra算法開發與實現了一個嵌入式網絡視頻監控系統。在系統運行的過程中,每秒從USB攝像頭中采集30幀的圖像數據,每4幀圖像之間進行一次算法處理,即相當于每間隔0.13 s進行一次Surendra算法處理。這樣不但減輕了處理器的運算壓力,同時也能滿足系統對視頻連續性與運動物體檢測的要求。

[1]陳艷華,侯安華,劉盼盼.基于ARM的嵌入式系統開發與實例[M].北京:人民郵電出版社,2008.

[2]Intel Corporation.OpenCV reference manual[S/OL].(2001)[2001].http://www.intel.com.

[3]劉瑞幀,于士琪.OpenCV教程——基礎篇[M].北京:北京航空航天大學出版社,2007.

[4]周香珍,芮筱亭,張順.基于DSP的運動目標跟蹤系統的實現[J].微計算機信息,2008(23):189-191.

[5]汪愛麗,劉孟洪.基于ARM的嵌入式網絡監控系統構建[J].微處理機,2009(5):59-60.

[6]尹俊超,劉直芳.基于OpenCV的運動目標檢測與跟蹤[J].計算機工程與設計,2011,32(8):2817-2820.

[7]汪成亮,賈亮亮.一種基于改進Surendra背景更新算法的運動目標檢測 [J].世界科技研究與發展,2012,34(2):272-275.

[8]徐方明,盧官明.基于改進surendra背景更新算法的運動目標檢測算法[J].山西電子技術,2009(5):39-40,71.

[9]阮秋琦.數字圖像處理學 [M].北京:電子工業學院,2007.

[10]賈永紅,張謙.數字圖像處理實習教程[M].武漢:武漢大學出版社,2012.

[11]唐人財,劉連浩.基于嵌入式Linux遠程圖像監控系統的設計[J].計算機與現代化,2010(11):31-34,38.

[12]諶洪茂,徐猛華.基于嵌入式遠程監控系統的設計[J].計算機與現代化,2004(2):86-88.

[13]方曉翠,周淵平,王小紅.嵌入式遠程視頻監控系統的設計[J].通信技術,2011,44(10):105-108.

[14]王秀芳,張昆,桑圣潔.基于ARM的圖像監控系統的開發[J].科學技術與工程,2011,11(14):3313-3317,3321.

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 欧美有码在线观看| 麻豆AV网站免费进入| 久久精品电影| 亚洲色图另类| 日韩中文字幕亚洲无线码| 亚洲欧美日韩综合二区三区| 香蕉99国内自产自拍视频| 久久青草免费91线频观看不卡| 国产一区二区免费播放| 黄色三级网站免费| 在线观看av永久| 黄色网页在线观看| 中文字幕 日韩 欧美| 国产精品无码AⅤ在线观看播放| 亚洲码在线中文在线观看| 午夜视频日本| 国产在线一区二区视频| 欧美一区二区人人喊爽| 人妻精品全国免费视频| 亚洲娇小与黑人巨大交| 日本在线国产| 国产欧美日韩视频怡春院| 日韩视频免费| 国产精品区网红主播在线观看| 欧美国产日韩在线观看| 丁香亚洲综合五月天婷婷| 中文字幕永久在线看| 欧美在线视频a| 欧美成人午夜视频免看| 一区二区三区成人| 99热这里只有精品在线观看| 日韩乱码免费一区二区三区| 久久99精品久久久久纯品| 91小视频版在线观看www| 欧美久久网| 亚洲成在线观看 | 毛片在线播放a| 成人一级免费视频| 免费看黄片一区二区三区| 国产色爱av资源综合区| AV不卡无码免费一区二区三区| 亚卅精品无码久久毛片乌克兰| 自慰高潮喷白浆在线观看| 成人午夜网址| 国产精品19p| 久久伊伊香蕉综合精品| 午夜日韩久久影院| 成人免费网站在线观看| 制服丝袜亚洲| 91午夜福利在线观看| 亚洲伊人久久精品影院| 伊人久久大线影院首页| 亚洲日韩国产精品综合在线观看| 91久久偷偷做嫩草影院免费看 | 亚洲浓毛av| 色婷婷视频在线| Jizz国产色系免费| 久久亚洲精少妇毛片午夜无码| 欧洲日本亚洲中文字幕| 人妖无码第一页| www精品久久| 日韩精品无码免费一区二区三区 | 久久综合伊人77777| 免费大黄网站在线观看| 国产精品蜜臀| 亚洲一级毛片在线观播放| 国产在线第二页| 91亚洲影院| 999国产精品| 国产精品欧美激情| 成人免费一级片| 五月婷婷综合网| 国产成人亚洲无码淙合青草| 国产91色| 粗大猛烈进出高潮视频无码| a毛片在线播放| 国产综合色在线视频播放线视| 丁香六月综合网| 91成人在线观看视频| 操国产美女| 5555国产在线观看| 九色综合伊人久久富二代|