0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-11-02 08:58 ? 次閱讀

1 引言

近年來(lái),隨著計(jì)算機(jī)技術(shù)、光電技術(shù)、數(shù)字圖像處理技術(shù)、嵌入式技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷發(fā)展,高度集成的數(shù)字化、網(wǎng)絡(luò)化、智能化的數(shù)字視頻技術(shù)已經(jīng)了取代傳統(tǒng)的模擬視頻監(jiān)控技術(shù)。目前,世界各國(guó)對(duì)視頻監(jiān)控的需求與應(yīng)用不斷擴(kuò)大,推動(dòng)著全球視頻監(jiān)控市場(chǎng)迅速的發(fā)展。根據(jù)市場(chǎng)調(diào)查公司IMSResearch的預(yù)測(cè),全球視頻監(jiān)控市場(chǎng)將從2008年的115億美元增加至2015年的377億美元,年復(fù)合增長(zhǎng)率達(dá)到20.4%.在這一市場(chǎng)中,監(jiān)控?cái)z像頭、服務(wù)器、編碼器以及軟件是視頻監(jiān)控系統(tǒng)的主角。

本文提出一種基于ARM+Linux嵌入式平臺(tái)的的智能視頻監(jiān)控系統(tǒng),充分利用開源操作系統(tǒng)和開源免費(fèi)軟件MJPG_Streamer的特點(diǎn),實(shí)現(xiàn)了在線實(shí)時(shí)監(jiān)控。同時(shí)提出了一種目標(biāo)檢測(cè)算法,該算法在后臺(tái)運(yùn)行,實(shí)現(xiàn)了智能控制,能夠?qū)θ肭帜繕?biāo)進(jìn)行語(yǔ)音報(bào)警。該監(jiān)控適合針對(duì)一些特定場(chǎng)合的監(jiān)控。

2 系統(tǒng)硬件平臺(tái)

視頻監(jiān)控系統(tǒng)以S3C2440處理器為核心,外圍器件有Flash、SDRAM、以太網(wǎng)卡DM9000、聲卡UDA1341以及CMOS接口攝像頭OV9650,在Linux環(huán)境下對(duì)攝像頭采集到的原始圖像幀進(jìn)行處理以及壓縮,通過(guò)網(wǎng)絡(luò)協(xié)議傳輸?shù)絇C上位機(jī)進(jìn)行顯示。系統(tǒng)硬件平臺(tái)結(jié)構(gòu)如圖1所示。

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

3 構(gòu)建ARM+Liunx嵌入式平臺(tái)

在系統(tǒng)硬件平臺(tái)上構(gòu)建嵌入式Liunx系統(tǒng),需要引導(dǎo)程序BootLoader和Linux源碼,本系統(tǒng)需要移植bootloader源碼,然后用Jtag接口將其燒寫到Flash中,從Flash中啟動(dòng),引導(dǎo)在PC機(jī)上交叉編譯后的Linux鏡像及根文件系統(tǒng),之后啟動(dòng)Linux系統(tǒng)。

3.1 網(wǎng)卡和聲卡驅(qū)動(dòng)移植

由于在Linux內(nèi)核中提供了以太網(wǎng)卡DM9000設(shè)備驅(qū)動(dòng)功能層主要的數(shù)據(jù)結(jié)構(gòu)和函數(shù),所以在實(shí)際移植網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序時(shí),要完成的工作就是根據(jù)實(shí)際以太網(wǎng)卡DM9000參數(shù)修改相應(yīng)的內(nèi)核代碼。同樣,在Linux內(nèi)核源碼中的標(biāo)準(zhǔn)音頻編程模型已經(jīng)包含一套完整的內(nèi)核驅(qū)動(dòng)程序模塊,為各種各樣的聲卡提供了統(tǒng)一并且簡(jiǎn)單易用的編程接口,如open()、read()、ioctl(()等函數(shù),所以在聲卡UDA1341移植過(guò)程中對(duì)內(nèi)核源碼做簡(jiǎn)單修改即可。

3.2 語(yǔ)音播放功能的實(shí)現(xiàn)

完成了聲卡驅(qū)動(dòng)移植后,為了方便對(duì)音頻文件的播放,停止等操作進(jìn)行控制,還需要移植專業(yè)的高精度解碼器Madplay.Madplay是一個(gè)根據(jù)MAD算法寫的MP3播放器,解碼效果相當(dāng)出色,而且支持命令行,特別適合于在嵌入式系統(tǒng)使用。移植過(guò)程中分別編譯zlib庫(kù)、libid3tag庫(kù)和libmad庫(kù),最后編譯madplay源碼并且把編譯出來(lái)的madplay下載到系統(tǒng)中即可,之后就可以對(duì)錄制好的音頻文件進(jìn)行播放。

嵌入式平臺(tái)構(gòu)建完成后,先后用命令ifcongfig和madplay進(jìn)行網(wǎng)卡和語(yǔ)音模塊測(cè)試,從圖2可以看出Linux系統(tǒng)啟動(dòng)成功,網(wǎng)卡和聲卡驅(qū)動(dòng)配置成功了,并且可以使用Madplay播放器播放錄制的音頻文件。

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

4 MJPG_Streamer功能的實(shí)現(xiàn)

MJPG_Streamer是一款免費(fèi)的視頻流服務(wù)器軟件,采用的是V4L2視頻設(shè)備開發(fā)框架,它能夠?qū)臄z像頭采集到的圖像以JPEG格式通過(guò)TCP/IP網(wǎng)絡(luò)協(xié)議傳輸?shù)缴衔粰C(jī)進(jìn)行顯示。

4.1 MJPG_Streamer移植

在MJPG_Streamer源碼目錄中,把所有Makefile文件的CC=gcc改為CC=arm-linux-gcc,然后進(jìn)行編譯,生成的主要組件及功能如下:

input_uvc.so組件:主要完成了攝像頭圖像的抓取,同時(shí)將原始YUV 格式圖像轉(zhuǎn)換和壓縮為JPEG格式圖像。

input_control.so組件:主要完成對(duì)支持調(diào)整方向攝像頭的轉(zhuǎn)動(dòng)方向的控制。例如云臺(tái)控制器,云臺(tái)控制是為了實(shí)現(xiàn)多角度監(jiān)控的功能。

output_http.so組件:這是一個(gè)功能完整的WEB服務(wù)器,它將壓縮后的JPEG 圖像以HTTP視頻數(shù)據(jù)服務(wù)流形式輸出。

output_file.so組件:這個(gè)組件的功能是將壓縮后的JPEG圖像存儲(chǔ)到特定的文件夾下,用來(lái)抓拍和存儲(chǔ)網(wǎng)絡(luò)攝像機(jī)監(jiān)控中的靜態(tài)圖像。

4.2 目標(biāo)檢測(cè)算法的研究

基于幀間差分法對(duì)光照變化干擾不敏感,提取前景目標(biāo)容易產(chǎn)生“空洞”的現(xiàn)象,而背景減法對(duì)光照變化較敏感的現(xiàn)象,本文提出了一種結(jié)合三幀差分算法和背景減法的目標(biāo)檢測(cè)算法。經(jīng)過(guò)與目前常用的算法相比,例如混合高斯模型和改進(jìn)的混合高斯模型,本文的算法不僅降低了運(yùn)算的復(fù)雜度,適合在ARM 平臺(tái)運(yùn)行,同時(shí)又可以達(dá)到準(zhǔn)確檢測(cè)的效果。算法實(shí)現(xiàn)流程如下:

(1)建立背景模型,提取前景目標(biāo)先把采集到的彩色圖像利用式(1)轉(zhuǎn)為灰度圖,取前n幀圖像,對(duì)每個(gè)位置像素的像素值求均值作為背景像素,表示為式(2)。利用當(dāng)前幀減去背景幀得到包含前景的圖像,根據(jù)閾值Th對(duì)圖像進(jìn)行二值化處理得到T(x,y),如式(3)、(4)所示。

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

式中,Th代表閾值,T(x,y)代表二值化后圖像。

考慮到攝像頭固定,背景像素灰度值變化比較緩慢,而前景目標(biāo)像素灰度值變化相對(duì)較快。為了讓背景模型適應(yīng)光照緩慢的變化,需要對(duì)背景模型進(jìn)行實(shí)時(shí)更新。其中a為背景更新率,取值范圍是(0,1)。

Bn+1(x,y)=(1-a)Bn(x,y)+apn(x,y) (5)在差分圖像S(x,y)中大量存在的是具有較高灰度值的前景像素和具有較低灰度值的背景像素。

所以,提出一種閾值根據(jù)當(dāng)前差分幀S(x,y)自動(dòng)更新的方法。

求出當(dāng)前差分幀S(x,y)圖像灰度的最大值和最小值,求得二者均值T.利用均值將圖像分為目標(biāo)和背景兩部分,利用式(6)求出兩部分均值k1和k2,最后由式(7)得到閾值Th.

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

(2)利用三幀差分算法提取目標(biāo)選取連續(xù)三幀圖像Dk-1(x,y),Dk(x,y)和Dk+1(x,y),進(jìn)行兩兩差分得到D1(x,y)和D2(x,y),二值化處理后,二者進(jìn)行與運(yùn)算,提取前景目標(biāo)。

(3)前景目標(biāo)融合將背景減法的前景圖像T(x,y)和三幀差分算法得到圖像D(x,y)進(jìn)行或運(yùn)算,該運(yùn)算利用了背景減法的優(yōu)點(diǎn),避免了單獨(dú)利用三幀差法帶來(lái)的空洞現(xiàn)象。同時(shí)發(fā)揮三幀差法對(duì)動(dòng)態(tài)背景變化適應(yīng)性強(qiáng)的特點(diǎn)。

(4)前景目標(biāo)形態(tài)學(xué)處理由于融合后的圖像Q(x,y)中存在著噪聲點(diǎn)和一些空洞,有必要對(duì)圖像進(jìn)行中值濾波,然后交替的應(yīng)用開運(yùn)算和閉運(yùn)算,起到既去毛刺又填充的雙濾波目的。

根據(jù)本文的算法,采用靜止的攝像頭采集視頻序列。圖3所示為在Visual C++2005平臺(tái)上的仿真結(jié)果。根據(jù)結(jié)果可得,本文算法能完整的提取運(yùn)動(dòng)目標(biāo),有效的消除空洞,檢測(cè)結(jié)果準(zhǔn)確。

(4)前景目標(biāo)形態(tài)學(xué)處理由于融合后的圖像Q(x,y)中存在著噪聲點(diǎn)和一些空洞,有必要對(duì)圖像進(jìn)行中值濾波,然后交替的應(yīng)用開運(yùn)算和閉運(yùn)算,起到既去毛刺又填充的雙濾波目的。

根據(jù)本文的算法,采用靜止的攝像頭采集視頻序列。圖3所示為在Visual C++2005平臺(tái)上的仿真結(jié)果。根據(jù)結(jié)果可得,本文算法能完整的提取運(yùn)動(dòng)目標(biāo),有效的消除空洞,檢測(cè)結(jié)果準(zhǔn)確。此時(shí)系統(tǒng)可以快速的檢測(cè)到入侵物體,同時(shí)用Madplay播放錄制好的音頻文件進(jìn)行語(yǔ)音報(bào)警。智能監(jiān)控實(shí)現(xiàn)流程如圖4所示。

應(yīng)用開源軟件MJPG_Streamer實(shí)現(xiàn)數(shù)字化的視頻監(jiān)控系統(tǒng)設(shè)計(jì)

4.4 監(jiān)控平臺(tái)測(cè)試

在Linux平臺(tái)輸入以下命令,啟動(dòng)監(jiān)控系統(tǒng)。在PC上位可以通過(guò)MJPG_Streamer軟件自帶的圖形界面進(jìn)行顯示,也可以通過(guò)網(wǎng)頁(yè)瀏覽器進(jìn)行頁(yè)面顯示。經(jīng)試驗(yàn),當(dāng)有物體進(jìn)入場(chǎng)景時(shí),能夠快速的進(jìn)行語(yǔ)音報(bào)警。當(dāng)平臺(tái)測(cè)試完畢后,把MJPG_Streamer設(shè)置為在Linux啟動(dòng)后自動(dòng)運(yùn)行。見(jiàn)圖5.

5 結(jié)束語(yǔ)

本文設(shè)計(jì)的基于軟件MJPG_Streamer視頻監(jiān)控系統(tǒng),具有實(shí)時(shí)性好,遠(yuǎn)程監(jiān)控,上位機(jī)簡(jiǎn)易,開發(fā)周期短,易于實(shí)現(xiàn)的特點(diǎn)。系統(tǒng)實(shí)現(xiàn)了語(yǔ)音報(bào)警的功能,充分利用了ARM 平臺(tái)的特性,不需要設(shè)計(jì)額外的語(yǔ)音模塊電路。系統(tǒng)的目標(biāo)檢測(cè)功能已完成,下一個(gè)研究方向是利用軟件MJPG_Streamer對(duì)云臺(tái)控制的支持,實(shí)現(xiàn)模式識(shí)別和跟蹤算法,使系統(tǒng)的功能更強(qiáng)大,應(yīng)用范圍更廣。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 以太網(wǎng)
    +關(guān)注

    關(guān)注

    40

    文章

    5449

    瀏覽量

    172174
  • 視頻監(jiān)控
    +關(guān)注

    關(guān)注

    17

    文章

    1711

    瀏覽量

    65078
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7523

    瀏覽量

    88315
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【OK210試用體驗(yàn)】進(jìn)階篇(1)視頻圖像采集之MJPG-streamer編譯(Ubuntu系統(tǒng)下)

    下編譯一、嵌入式視頻圖像開源庫(kù) 在嵌入式系統(tǒng)中,常用的視頻圖像處理開源系統(tǒng)有:luvcview、
    發(fā)表于 09-06 00:29

    【OK210試用體驗(yàn)】進(jìn)階篇(2)視頻圖像采集之MJPG-streamer編譯(arm移植)

    本帖最后由 gjianw217 于 2015-9-20 21:03 編輯 上一篇(【OK210試用體驗(yàn)】進(jìn)階篇(1)視頻圖像采集之MJPG-streamer編譯(Ubuntu系統(tǒng)下))進(jìn)行了
    發(fā)表于 09-20 20:49

    怎樣在樹莓派上安裝使用mjpg-streamer

    mjpg-streamer是一個(gè)遠(yuǎn)程攝像頭軟件,樹莓派很多應(yīng)用都需要用到它。這里向大家介紹如何讓樹莓派使用mjpg-streamer獲取u***攝像頭視頻。一、下載
    發(fā)表于 01-11 16:52

    韋東山第三期視頻監(jiān)控mjpg_streamer實(shí)驗(yàn)的注意事項(xiàng)--最終能看到結(jié)果

    本文摘錄于本文博客:http://blog.csdn.net/chengdong1314/article/details/50402408這是原來(lái)視頻給出的步驟:講解mjpg-streamer
    發(fā)表于 11-13 23:43

    【EVB-T335開發(fā)板試用體驗(yàn)】【結(jié)項(xiàng)帖】移植mjpg-streamer實(shí)現(xiàn)監(jiān)控(上)

    解什么是mjpg-streamer,首先我們先來(lái)了解一下以下概念:在嵌入式系統(tǒng)中,常用的視頻圖像處理開源系統(tǒng)有:luvcview、chees
    發(fā)表于 05-01 10:11

    【BPI-M64試用體驗(yàn)】MJPG-streamer移植實(shí)現(xiàn)簡(jiǎn)單監(jiān)控

    Input_screen.so(5)在源碼目錄下有start.sh,這個(gè)腳本里有一些MJPG-streamer的使用方法及說(shuō)明,可以執(zhí)行start.sh腳本運(yùn)行視頻服務(wù)器,首先注釋掉所有行,然后添加以下幾行:export
    發(fā)表于 06-22 17:39

    Dragonboard410c Android USB Camera使用:mjpg-streamer 在ubuntu16.04安裝與使用(二)

    指令mjpg-streamer還有很多開啟指令,具體的指令請(qǐng)看start.sh腳本,這個(gè)腳本里面包含了一些基本指令,例如打開的視頻設(shè)備號(hào),和圖像是否保存等。也可以直接輸入幫助命令查看./mjpg-streamer –help或者
    發(fā)表于 09-28 11:51

    迅為-iMX6ULL開發(fā)板-移植mjpg-streamer實(shí)現(xiàn)遠(yuǎn)程監(jiān)控

    本章節(jié)使用的資料已經(jīng)放到了開發(fā)板網(wǎng)盤資料中,路徑為:11_Linux 系統(tǒng)開發(fā)進(jìn)階\97_章節(jié)使用資料。本章節(jié)介紹移植 MJPG 庫(kù)和 mjpg-streamer 服務(wù)器到迅為 i.MX6ULL
    發(fā)表于 11-02 14:16

    數(shù)字化監(jiān)控系統(tǒng)的特點(diǎn)及功能

    ,無(wú)時(shí)空限制?!  ?b class='flag-5'>數(shù)字化:監(jiān)控圖像,控制及報(bào)警信息數(shù)字化后進(jìn)入計(jì)算機(jī),可以充分利用高科技手段進(jìn)行系統(tǒng)管理和圖像處理?!  魪V域:可以
    發(fā)表于 12-11 14:10

    【米爾MYS-8MMX開發(fā)板免費(fèi)試用】+ 使用mjpg-streamer和UVC攝像頭搭建網(wǎng)絡(luò)攝像頭

    開源項(xiàng)目:https://sourceforge.net/projects/mjpg-streamer/目前項(xiàng)目已經(jīng)遷移到github,這個(gè)版本增加了樹莓派的支持:https://github.com
    發(fā)表于 09-07 18:49

    mjpg-streamer網(wǎng)絡(luò)監(jiān)控軟件簡(jiǎn)析

    mjpg-streamer是一個(gè)開源的網(wǎng)絡(luò)監(jiān)控軟件
    發(fā)表于 12-15 07:08

    rk3288視頻服務(wù)器MJPG_Streamer移植簡(jiǎn)析

    1、firefly-rk3288視頻服務(wù)器MJPG_Streamer移植MJPG_Streamer 是一個(gè)開源的輕量級(jí)的視頻傳輸服務(wù)器應(yīng)用項(xiàng)
    發(fā)表于 04-08 16:33

    【米爾-STM32MP135開發(fā)板-入門級(jí)MPU試用】基于mjpg\\-streamer實(shí)時(shí)監(jiān)控

    CFLAGS += -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/home/bruceou/application/mjpg_streamer
    發(fā)表于 09-12 23:02

    開源視頻服務(wù)器軟件MJPG-streamer研究

    針對(duì)嵌入式設(shè)備在進(jìn)行多媒體數(shù)據(jù)處理時(shí)存在的資源限制問(wèn)題,采用了一種開源視頻服務(wù)器軟件MJPG-streamer完成多媒體數(shù)據(jù)的處理及存儲(chǔ),基于該軟件
    發(fā)表于 04-05 16:20 ?88次下載
    <b class='flag-5'>開源</b><b class='flag-5'>視頻</b>服務(wù)器<b class='flag-5'>軟件</b><b class='flag-5'>MJPG-streamer</b>研究

    詳解視頻服務(wù)器軟件MJPG-streamer

    MJPG-streamer是一個(gè)輕量級(jí)的視頻服務(wù)器軟件。一個(gè)可以從單一輸入組件獲取圖像并傳輸?shù)蕉鄠€(gè)輸出組件的命令行應(yīng)用程序。 該軟件可應(yīng)用在基于IP協(xié)議的網(wǎng)絡(luò)中,從網(wǎng)絡(luò)攝像機(jī)中獲取并傳
    發(fā)表于 10-24 15:14 ?0次下載
    詳解<b class='flag-5'>視頻</b>服務(wù)器<b class='flag-5'>軟件</b><b class='flag-5'>MJPG-streamer</b>