吳祿慎,吳益根
(南昌大學(xué)機(jī)電工程學(xué)院,江西南昌 330031)
?
基于ARM9的自適應(yīng)背景差法智能遠(yuǎn)程視頻監(jiān)控系統(tǒng)
吳祿慎,吳益根
(南昌大學(xué)機(jī)電工程學(xué)院,江西南昌 330031)
介紹了一種基于S3C2440微處理器的高性能、低成本的智能遠(yuǎn)程視頻監(jiān)控系統(tǒng)。從系統(tǒng)整體出發(fā)闡述系統(tǒng)的功能原理、部分軟硬件模塊的設(shè)計(jì)方案;研究了運(yùn)動(dòng)目標(biāo)檢測(cè)相關(guān)的算法,并提出一種自適應(yīng)背景差法完成入侵檢測(cè)。GPRS報(bào)警后,通過(guò)局域網(wǎng)傳輸使得網(wǎng)內(nèi)計(jì)算機(jī)可以實(shí)時(shí)獲得視頻數(shù)據(jù),從而達(dá)到遠(yuǎn)程智能監(jiān)控的目的。通過(guò)測(cè)試,系統(tǒng)小巧靈活,布線方便,可靠性高,與傳統(tǒng)的視頻監(jiān)控系統(tǒng)相比成本低廉。
智能遠(yuǎn)程視頻監(jiān)控系統(tǒng);ARM9;入侵檢測(cè);背景差法
智能視頻監(jiān)控系統(tǒng)應(yīng)用領(lǐng)域很多,比如交通管理部門車輛流量和違章監(jiān)控,銀行部門的安防監(jiān)控,居民樓宇小區(qū)間的安全監(jiān)控等[1]。傳統(tǒng)的視頻監(jiān)控系統(tǒng)往往比較復(fù)雜,人們?cè)絹?lái)越傾向于成本低廉、系統(tǒng)簡(jiǎn)單的高性能小型智能化視頻監(jiān)控系統(tǒng)[2]。微電子技術(shù)的發(fā)展使得處理器的性能得到不斷提高,網(wǎng)絡(luò)多媒體技術(shù)的快速發(fā)展也促進(jìn)了嵌入式實(shí)時(shí)操作系統(tǒng)的不斷完善,基于嵌入式技術(shù)的智能視頻監(jiān)控系統(tǒng)成為視頻監(jiān)控的主要發(fā)展方向[3-5]。
進(jìn)行運(yùn)動(dòng)目標(biāo)監(jiān)測(cè)時(shí),攝像頭處于靜止?fàn)顟B(tài),圖像中的背景環(huán)境一般不改變,常用的檢測(cè)算法有:光流法、相鄰幀差法和背景差法[6]。背景差法通過(guò)當(dāng)前視頻幀與背景參考幀做差分,然后對(duì)差分圖像進(jìn)行二值化處理,從而得到運(yùn)動(dòng)目標(biāo)。實(shí)際應(yīng)用中,監(jiān)控環(huán)境往往會(huì)發(fā)生改化,如光照強(qiáng)度變化,背景物體改變等。此時(shí),背景模型需要不斷更新,本文提出自適應(yīng)背景差算法以解決這一問(wèn)題。
自適應(yīng)背景差法智能視頻監(jiān)控系統(tǒng)硬件主要包括視頻采集模塊、數(shù)據(jù)處理與控制模塊。其中視頻采集模塊由通用攝像頭模塊完成,數(shù)據(jù)處理與控制模塊采用ARM9芯片S3C2440A,外接64 M的SDRAM、256 M的NAND Flash、USB攝像頭、以太網(wǎng)接口以及電源和復(fù)位等相關(guān)外圍電路組成。系統(tǒng)硬件總體系統(tǒng)設(shè)計(jì)的原理框圖如圖1所示。
圖1 硬件系統(tǒng)原理框圖
S3C2440A處理器是一款基于ARM920T內(nèi)核的16/32位嵌入式處理器,主頻最高可達(dá)400 MHz,接口完善,適合應(yīng)用于對(duì)功率和成本比較敏感的嵌入式系統(tǒng),詳細(xì)資料參見文獻(xiàn)[7]。
Nand Flash存儲(chǔ)模塊選K9F2G08U0A 256M×8bits的高性能存儲(chǔ)芯片,掉電后信息不丟失,用于存儲(chǔ)啟動(dòng)代碼Boorloader、Linux內(nèi)核、文件系統(tǒng)、應(yīng)用程序、環(huán)境變量和系統(tǒng)配置文件等。內(nèi)存系統(tǒng)采用的是存儲(chǔ)容量為64M×16Bits的SDRAM芯片K4S561632C-TC75。SDRAM掉電數(shù)據(jù)丟失,但是存儲(chǔ)速度高于Flash存儲(chǔ)器,主要程序的運(yùn)行空間、數(shù)據(jù)和堆棧區(qū)的存儲(chǔ)。 由于S3C2440是32位的,外部總線也是32位,為了發(fā)揮處理器的性能,選用2片芯片并聯(lián)構(gòu)成系統(tǒng)的內(nèi)存系統(tǒng)。
系統(tǒng)網(wǎng)絡(luò)接口選擇芯片DM9000E 100M芯片,它是一款成本低廉的高集成度單芯片以太網(wǎng)MAC控制器,含有通用接口、10M/100M物理層和16KB的自帶內(nèi)存。DM9000E用CMD引腳來(lái)區(qū)分地址信號(hào)和數(shù)據(jù)信號(hào),如果CMD為低電平,則訪問(wèn)DM9000E內(nèi)部寄存器;反之,CMD為高電平是進(jìn)行數(shù)據(jù)讀寫;顯示模塊選擇4.3英寸的LCD作為人機(jī)交互和顯示平臺(tái)。
2.1 總體架構(gòu)
系統(tǒng)軟件總體架構(gòu)包括硬件層和軟件層,硬件層主要是低層驅(qū)動(dòng)程序等;軟件層主要有Bootloader引導(dǎo)程序、系統(tǒng)內(nèi)核和用戶程序等。智能視頻監(jiān)控系統(tǒng)的軟件總體架構(gòu)如圖2所示。
圖2 軟件系統(tǒng)總體架構(gòu)
目前,嵌入式操作系統(tǒng)選擇很多,比如Linux、VxWorks、uC/OS-II、WinCE等。軟件控制核心之所以選擇Linux操作系統(tǒng),是因?yàn)榻?jīng)過(guò)十余年的發(fā)展,Linux系統(tǒng)的開源性、高度定制性、網(wǎng)絡(luò)親和性以及實(shí)時(shí)性使得它在眾多嵌入式系統(tǒng)之中脫穎而出,占據(jù)了極大的市場(chǎng)份額。另外,系統(tǒng)支持多平臺(tái)硬件,運(yùn)行可靠和穩(wěn)定性高等也是本文考慮的原因。
2.2 系統(tǒng)軟件環(huán)境的搭建
2.2.1 交叉編譯環(huán)境的建立
在PC機(jī)上裁剪和定制嵌入式軟件系統(tǒng)時(shí)需要搭建一個(gè)交叉編譯環(huán)境,要編譯出能在ARM平臺(tái)上運(yùn)行的程序,需要使用交叉編譯工具,本文使用的是arm-linux-gcc3.4.5版本。通過(guò)網(wǎng)絡(luò)下載壓縮包,然后進(jìn)入目錄解壓縮,再增加環(huán)境變量即可使用。
執(zhí)行以上命令之后,交叉編譯工具鏈安裝完成。
2.2.2 Bootloader和內(nèi)核的移植
嵌入式系統(tǒng)的軟件主要分為:引導(dǎo)加載程序、操作系統(tǒng)內(nèi)核、根文件系統(tǒng)和應(yīng)用程序。系統(tǒng)的引導(dǎo)程序采用U-Boot,在系統(tǒng)上電后開始執(zhí)行,主要作用是初始化軟、硬件資源,將系統(tǒng)帶到合適的狀態(tài),以便把操作系統(tǒng)內(nèi)核從Flash上拷貝到內(nèi)存中做好準(zhǔn)備,并傳遞啟動(dòng)參數(shù)。最后跳到操作系統(tǒng)入口地址,啟動(dòng)內(nèi)核。
具體移植過(guò)程是根據(jù)目標(biāo)板的資源對(duì)U-boot源碼做修改,建立針對(duì)目標(biāo)板的配置。配置完成后,執(zhí)行“make all”命令編譯生成U-boot.bin文件。編譯成功后將生成的文件燒寫入Flash,啟動(dòng)后在串口工具中可以看到加載信息。
系統(tǒng)采用的內(nèi)核版本是Linux2.6.25.8,將內(nèi)核源碼解壓后修改的Makefile文件和配置文件,再使用“make menuconfig”命令進(jìn)入配置菜單,選擇需要的選項(xiàng),配置完成后保存退出。最后執(zhí)行“make zImage”命令,編譯成功后在/arch/arm/boot目錄下生成的內(nèi)核鏡像文件“zImage”,成功地完成了系統(tǒng)內(nèi)核的移植。
2.2.3 構(gòu)建Linux根文件系統(tǒng)
要在目標(biāo)板上建立交互的開發(fā)環(huán)境,除了U-boot引導(dǎo)程序和Linux內(nèi)核,還需要根文件系統(tǒng),根文件里面含有Linux系統(tǒng)運(yùn)行所必需的應(yīng)用程序、庫(kù)等。
獲取Busybox源碼解壓后執(zhí)行命令“#make menuconfig”進(jìn)入配置菜單進(jìn)行配置。選擇需要的選項(xiàng)保存,退出配置界面,使用命令:“#make;#make install”,編譯成功后在busybox源碼目錄下生成名為“_install”的目錄。
在工作目錄下新建一個(gè)目錄,取名為“root_2.6.25.8”,將剛剛編譯出來(lái)的Busybox源碼目錄下的的“bin”,“sbin”,“user”,“l(fā)inuxrc”目錄復(fù)制到新建的目錄下,然后再新建“dev”,“etc”,“l(fā)ib”,“mnt”,“opt”,“proc”,“root”等目錄。
2.3 應(yīng)用程序架構(gòu)
2.3.1 視頻數(shù)據(jù)采集編程
Linux依靠幀緩沖將采集到的視頻圖像進(jìn)行顯示,幀緩沖區(qū)域可以設(shè)置成系統(tǒng)內(nèi)存,通常攝像頭將采集到的視頻數(shù)據(jù)直接寫入幀緩沖區(qū)。Linux可以像訪問(wèn)普通文件一樣對(duì)視頻設(shè)備進(jìn)行操作,因?yàn)閮?nèi)核對(duì)硬件的操作都是映射到對(duì)相應(yīng)設(shè)備文件的訪問(wèn)。視頻設(shè)備操作流程為:
(1)開啟視頻設(shè)備
fd=open(“/dev/vidoe0”,O_RDWR)
fd為返回的設(shè)備文件描述符。
(2)獲取設(shè)備信息,查看設(shè)備功能
ioctl(fd,VIDIOCGCAP,&capability)
capability保存獲取的設(shè)備信息。
(3)獲取圖像信息
ioctl(fd,VIDIOCGCAP,&gpicture)
picture保存獲取的圖像信息。
(4)獲取內(nèi)存映射數(shù)據(jù)
pic_data=(unsigned char *)mmap(0,buf_size,PORT_READ | PORT_WRITE,MAP_SHARED,fd,0)
buf_size是緩沖區(qū)大小,pic_data為緩沖區(qū)的首地址。
(5)捕獲視頻數(shù)據(jù)
ioctl(fd,VIDIOCMCAP-TURE,&grab_buf)
視頻數(shù)據(jù)存放到pic_data緩沖區(qū)。
(6)調(diào)用接口,等待一幀圖像采集完成
ioctl(fd,VIDIOCSYNC,&grab_buf)
視頻數(shù)據(jù)采集完成后進(jìn)行視頻數(shù)據(jù)的算法處理和壓縮傳輸,最后關(guān)閉視頻設(shè)備,調(diào)用函數(shù)接口close(fd)。
2.3.2 軟件流程
應(yīng)用程序框架主要由父進(jìn)程和子進(jìn)程兩部分組成,父進(jìn)程進(jìn)行入侵算法檢測(cè)和遠(yuǎn)程短信報(bào)警;子進(jìn)程通過(guò)多線程技術(shù)完成視頻數(shù)據(jù)的采集、壓縮和傳輸。軟件流程框圖如圖3所示。
圖3 軟件流程框圖
父進(jìn)程中首先打開視頻設(shè)備文件,然后攝像頭開始采集,系統(tǒng)分配緩沖區(qū)存儲(chǔ)視頻數(shù)據(jù);再進(jìn)行入侵檢測(cè),當(dāng)檢測(cè)到有入侵時(shí),打開GPRS模塊設(shè)備,發(fā)送報(bào)警短信;最后關(guān)閉設(shè)備文件,釋放內(nèi)存空間,新建子進(jìn)程。
子進(jìn)程中壓縮線程進(jìn)行數(shù)據(jù)壓縮時(shí),為防止其他線程的訪問(wèn),將壓縮線程上鎖,在解鎖該線程之前,只有該線程訪問(wèn)共享資源。發(fā)送線程接收到壓縮線程的通知,上鎖發(fā)送線程,并將視頻數(shù)據(jù)發(fā)送出去,然后解鎖發(fā)送線程。
進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè)的算法主要有光流法、幀差法和背景差法。光流法不需要背景模型就能夠?qū)崿F(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的檢測(cè)和跟蹤,但運(yùn)算量較大,對(duì)噪聲的抗干擾性差;幀差法[8]將視頻圖像序列的相鄰兩幀或三幀像素灰度值做差分,然后與設(shè)定的閾值比較來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo),能夠?qū)崿F(xiàn)實(shí)時(shí)的運(yùn)動(dòng)檢測(cè),但分割出的運(yùn)動(dòng)目標(biāo)不完整,目標(biāo)邊界部分容易擴(kuò)大;背景差法通過(guò)當(dāng)前視頻幀與預(yù)先選取的背景參考幀做差分,然后差分圖像與選定的閾值作比較,得到二值圖像后檢測(cè)運(yùn)動(dòng)目標(biāo),是一種簡(jiǎn)單有效的算法法。實(shí)際應(yīng)用中,背景環(huán)境往往會(huì)發(fā)生變化,所以背景模型須隨著環(huán)境的改變而不斷更新。
3.1 基于背景差法運(yùn)動(dòng)檢測(cè)
背景差法是視頻圖像運(yùn)動(dòng)目標(biāo)檢測(cè)最常用的算法,該算法目標(biāo)位置定位準(zhǔn)確,算法運(yùn)算速度快;但算法對(duì)背景環(huán)境的改變較為敏感,需要背景模型不斷更新。背景差法的運(yùn)動(dòng)目標(biāo)檢測(cè)算法的方法是,先利用初始圖像幀得到背景模型,再將當(dāng)前圖像幀與背景模型做差求得運(yùn)動(dòng)目標(biāo)[9]。算法基本框圖如圖4所示。
圖4 背景差算法原理框圖
設(shè)當(dāng)前幀為In(x,y),背景模型為Bn(x,y),差分圖像為Dn(x,y),差分閾值為Thresh,該算法公式為
(1)
當(dāng)背景環(huán)境發(fā)生變化時(shí),背景模型需要實(shí)時(shí)更新以保證目標(biāo)提取的準(zhǔn)確性。背景模型的更新算法公式為
Bn+1(x,y)=(1-α)·Bn(x,y)+α·In(x,y)
(2)
式中:Bn+1(x,y)為實(shí)時(shí)更新的背景模型,當(dāng)前圖像序列為第n幀;Bn(x,y)為更新前的背景摸型;Bn+1(x,y)為更新后的背景模型;α為更新系數(shù),決定當(dāng)前圖像幀對(duì)背景模型作用的大小及更新速率。
將式(1)中的二值圖Dn(x,y)預(yù)處理后得到運(yùn)動(dòng)目標(biāo)集合,記為{Gk,k=1,2,…,k},算法關(guān)鍵在于更新速率α的選取。
3.2 自適應(yīng)背景差法運(yùn)動(dòng)檢測(cè)
背景模型的提取和更新是背景差法的關(guān)鍵,背景模型的更新能否有效地表示背景環(huán)境的變化決定了算法的好壞。在傳統(tǒng)的背景差分算法基礎(chǔ)上,提出新的建立背景模型的算法,再進(jìn)行高斯濾波,形態(tài)學(xué)處理等去除噪聲,降低運(yùn)動(dòng)背景給檢測(cè)帶來(lái)的困難。
自適應(yīng)背景更新可以解決環(huán)境變化造成的影響,但是當(dāng)目標(biāo)移動(dòng)時(shí),后面容易出現(xiàn)尾影現(xiàn)象,造成運(yùn)動(dòng)目標(biāo)提取的困難。為此將一幀圖像分成幾個(gè)區(qū)域,每個(gè)區(qū)域用不同的系數(shù)α進(jìn)行更新。尾影的形成是由于目標(biāo)區(qū)域經(jīng)過(guò)時(shí)參與了背景更新,如果不讓目標(biāo)區(qū)域參與更新或更新速率非常慢,就可以解決尾影問(wèn)題。
設(shè)幀間差分二值圖像計(jì)算公式為
(3)
式(3)得到的幀間差分二值圖像預(yù)處理后得到一個(gè)不連通的運(yùn)動(dòng)目標(biāo)集合,記為:{Hk,k=1,2,…,k}。
對(duì)背景差分和幀間差分同時(shí)檢測(cè)出來(lái)的前景區(qū)域進(jìn)行背景更新,其他區(qū)域按原速率進(jìn)行更新,人為設(shè)定為0.1,如式(4)所示。
(4)
式(4)中,如果目標(biāo)屬于前面檢測(cè)出來(lái)的運(yùn)動(dòng)目標(biāo)集合Gk和HK就不進(jìn)行更新,否則按默認(rèn)速率進(jìn)行更新。如此保證背景模型可以感受環(huán)境的變化而做出改變,使得運(yùn)動(dòng)目標(biāo)的檢測(cè)更加準(zhǔn)確。
在傳統(tǒng)背景差運(yùn)動(dòng)目標(biāo)檢測(cè)算法的基礎(chǔ)上,增加背景模型的自適應(yīng)更新,使背景模型隨著環(huán)境等因素的變化而不斷改變,這就是本文提出的自適應(yīng)背景差檢測(cè)算法。
系統(tǒng)基于自適應(yīng)背景差法完成入侵檢測(cè),利用嵌入式相關(guān)技術(shù)設(shè)計(jì)并實(shí)現(xiàn)智能視頻監(jiān)控系統(tǒng)。將系統(tǒng)軟件移植到移動(dòng)客戶端,監(jiān)控端完成監(jiān)控報(bào)警入侵,客戶可實(shí)時(shí)遠(yuǎn)端進(jìn)行監(jiān)控。整個(gè)系統(tǒng)的總體框圖如圖5所示。
圖5 系統(tǒng)總體框圖
利用本文算法對(duì)大量采集到的視頻圖像序列進(jìn)行處理,在實(shí)驗(yàn)中總結(jié)合適的閾值Thresh和更新速率。測(cè)試結(jié)果如圖6、圖7、圖8所示。
從圖中可以看出,系統(tǒng)成功地檢測(cè)出運(yùn)動(dòng)目標(biāo),并且沒有尾影的出現(xiàn),目標(biāo)區(qū)域也沒有膨脹;同時(shí)對(duì)于背景的提取和更新也提出了一種新的解決思路。系統(tǒng)成功檢測(cè)出入侵目標(biāo)后,再通過(guò)GPRS模塊報(bào)警,使得網(wǎng)內(nèi)計(jì)算機(jī)可以實(shí)時(shí)觀察采集到的視頻數(shù)據(jù),完成遠(yuǎn)程智能監(jiān)控。
圖6 原始視頻幀
圖7 算法處理
圖8 測(cè)試結(jié)果
系統(tǒng)以S3C2440為硬件平臺(tái),在此平臺(tái)上移植Linux操作系統(tǒng),描述了嵌入式系統(tǒng)開發(fā)的流程、嵌入式系統(tǒng)軟硬件開發(fā)環(huán)境的搭建步驟和相關(guān)軟件資源的移植方法;由于室內(nèi)光照、背景等環(huán)境變化的影響,采用自適應(yīng)背景差法實(shí)現(xiàn)入侵報(bào)警,對(duì)系統(tǒng)的智能化有很大的提高。提出的自適應(yīng)背景差運(yùn)動(dòng)目標(biāo)提取算法,按照幀間差分和背景差分實(shí)時(shí)更新背景模型,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的準(zhǔn)確完整提取。經(jīng)過(guò)測(cè)試,系統(tǒng)軟硬件運(yùn)行穩(wěn)定、實(shí)時(shí)性強(qiáng)。
[1] 候宏錄,李寧鳥,劉迪迪,等.智能視頻監(jiān)控中運(yùn)動(dòng)目標(biāo)檢測(cè)的研究.計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(2):49-52.
[2] 趙春媛,李萌,韓會(huì)山,等.基于ARM9的無(wú)線視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).計(jì)算機(jī)工程與設(shè)計(jì),2012,33(2):529-534.
[3] 高鵬,鄭超,任岐鳴,等.ARM和ZigBee的智能家居監(jiān)控網(wǎng)絡(luò)設(shè)計(jì).計(jì)算機(jī)測(cè)量與控制,2014,22(10):3205-3209.
[4] 喬和,馮澤中.基于DSP和ARM9的電能質(zhì)量在線監(jiān)測(cè)儀的設(shè)計(jì).儀表技術(shù)與傳感器,2011(2):28-31.
[5] 劉升,馬進(jìn).S3C2440平臺(tái)上的視頻監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn).計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(7):240-243.
[6] 盧章平,孔德飛,李小蕾,等.背景差分與三幀差分結(jié)合的運(yùn)動(dòng)目標(biāo)檢測(cè)算法.計(jì)算機(jī)測(cè)量與控制,2013,21(12):3315-3318.
[7] Samsung Electronics Co Ltd.S3C2440A 32-BIT CMOS MICROCONTROLLER USER'S MANUAL,Revision 1[EB/OL].[2011-06-01]. http: ∥www.Keil.com/dd /docs /datashts /samsung /s3c2440_um. pdf.
[8] 丁磊,宮寧生.基于改進(jìn)的三幀差分法運(yùn)動(dòng)目標(biāo)檢測(cè).電視技術(shù),2013,37(1):151-153.
Adaptive Background Intelligent Remoting Video-monitor System Based on ARM9
WU Lu-shen,WU Yi-gen
(College of Electromechanical Engineering,Nanchang University, Nanchang 330031,China)
With the application of video surveillance system more widely,S3C2440 microprocessor-based high performance and lowcost intelligent remote video monitoring system was introduced.From the system as a whole on the functional principle of the system,the design of hardware and software modules section was introduced. The related moving object detection algorithm was studied and an adaptive background subtraction was put forward to complete intrusion detection. After GPRS alarm,LAN transmission network can get real-time video data,so as to achieve the purpose of remote intelligent surveillance. Through testing,the system is compact and flexible,and has high reliability and low cost relative to traditional video surveillance systems.
intelligent remote video surveillance system ;ARM9;intrusion detection;background subtraction
國(guó)家自然科學(xué)基金項(xiàng)目(51065021,51365037)
2015-01-23 收修改稿日期:2015-06-09
TP391
A
1002-1841(2015)11-0081-04
吳祿慎(1953—),教授,博士生導(dǎo)師,研究方向?yàn)槟嫦蚬こ碳肮鈾C(jī)電一體化,虛擬現(xiàn)實(shí)技術(shù)。E-mail: wulushen@163.com 吳益根(1990—),碩士研究生,研究方向?yàn)楣鈾C(jī)電一體化與反求工程。E-mail:953059203@qq.com