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

基于CamShift跟蹤算法的塔吊監(jiān)控系統(tǒng)設(shè)計(jì)*

2013-12-29 10:33:02張自嘉王慧敏
電子器件 2013年6期
關(guān)鍵詞:系統(tǒng)

王 旭,張自嘉,王慧敏

(南京信息工程大學(xué)信息與控制學(xué)院,南京210044)

塔吊是現(xiàn)代建筑必不可少的吊運(yùn)工具,但是由于塔吊吊臂較長(zhǎng),作業(yè)距離遠(yuǎn),工地情況復(fù)雜,駕駛員作業(yè)過(guò)程中會(huì)出現(xiàn)不少視覺(jué)盲區(qū),導(dǎo)致運(yùn)行效率不高,而且安全事故頻發(fā)。目前工地上主要通過(guò)地面指揮人員使用對(duì)講機(jī)和信號(hào)旗手進(jìn)行指揮,這種單一的人工模式并沒(méi)有很好地解決塔吊作業(yè)中視覺(jué)盲區(qū)問(wèn)題,有時(shí)甚至因?yàn)橹笓]人員表達(dá)不準(zhǔn)確而導(dǎo)致操作失誤,造成嚴(yán)重的后果。相關(guān)文獻(xiàn)介紹了當(dāng)前工地上使用的一些視頻監(jiān)控設(shè)備,它們主要是基于PC機(jī)平臺(tái),而且是供遠(yuǎn)程安監(jiān)人員對(duì)工地實(shí)時(shí)監(jiān)測(cè),相對(duì)于本來(lái)就很狹小的駕駛室來(lái)說(shuō),PC機(jī)體積較大,安裝使用起來(lái)很不方便。因此,設(shè)計(jì)了針對(duì)駕駛員使用的便攜式監(jiān)控設(shè)備,相比現(xiàn)有的視頻監(jiān)控系統(tǒng),該系統(tǒng)還加入了CamShift跟蹤算法,實(shí)現(xiàn)了對(duì)吊鉤的實(shí)時(shí)跟蹤,很大程度上減輕了駕駛員的視覺(jué)疲勞,對(duì)駕駛員的操作有一定的輔助作用。

1 系統(tǒng)總體設(shè)計(jì)

本論文要設(shè)計(jì)的是一個(gè)具有實(shí)時(shí)跟蹤功能的無(wú)線視頻傳輸系統(tǒng)。系統(tǒng)的整體結(jié)構(gòu)框圖如圖1所示[1],該系統(tǒng)由視頻采集終端、無(wú)線網(wǎng)絡(luò)設(shè)備、以及視頻接收終端組成。視頻采集終端將USB攝像頭采集到的實(shí)時(shí)視頻數(shù)據(jù)傳輸?shù)街骺卦O(shè)備的視頻管理模塊中,對(duì)獲取的視頻數(shù)據(jù)使用CamShift跟蹤算法并調(diào)用OpenCV庫(kù)函數(shù)實(shí)現(xiàn)對(duì)吊鉤的實(shí)時(shí)動(dòng)態(tài)跟蹤,然后對(duì)大量的視頻數(shù)據(jù)采用H.264編碼方式進(jìn)行壓縮編碼處理,最后通過(guò)WIFI無(wú)線模塊把數(shù)據(jù)信息和控制信號(hào)發(fā)送到無(wú)線網(wǎng)絡(luò)設(shè)備。視頻接收終端通過(guò)WIFI無(wú)線模塊訪問(wèn)網(wǎng)絡(luò)設(shè)備,將獲取的視頻數(shù)據(jù)信息進(jìn)行解壓縮處理,恢復(fù)出原始的視頻數(shù)據(jù)信息,最終將視頻圖像顯示在LCD上,實(shí)現(xiàn)駕駛員對(duì)塔吊的實(shí)時(shí)監(jiān)控[2]。

圖1 系統(tǒng)結(jié)構(gòu)框圖

2 系統(tǒng)硬件設(shè)計(jì)

該系統(tǒng)硬件主要由兩部分組成,視頻采集終端和視頻接收終端。采集終端負(fù)責(zé)視頻數(shù)據(jù)的實(shí)時(shí)采集、跟蹤算法處理、壓縮編碼以及無(wú)線傳輸功能。接收終端負(fù)責(zé)視頻數(shù)據(jù)的無(wú)線接收、解壓縮以及實(shí)時(shí)顯示的功能。下面分別介紹這兩部分的硬件。

采集終端的硬件結(jié)構(gòu)框圖如圖2所示,其核心部分由S3C6410微處理器和256M的DRAM、1GB的NAND Flash以及多種外設(shè)接口(如USB接口、SDIO接口、以太網(wǎng)接口等)組成的最小系統(tǒng)。USB攝像頭與主控設(shè)備的USB HOST接口相連接,攝像頭采用OmniVision公司的OV9650芯片,它支持的最大分辨率為1 300×1 028,可以輸出 GRB(4 ∶2 ∶2)、YUV(4 ∶2 ∶2)和YCbCr(4∶2∶2)3種視頻格式,這3種格式均符合CCIR601和CCIR656標(biāo)準(zhǔn)。WIFI無(wú)線模塊采用Marvell公司低成本、低功耗的88W8686芯片[3],它通過(guò)SDIO接口與主控設(shè)備相連,遵循IEEE 802.11g標(biāo)準(zhǔn),而且兼容802.11b協(xié)議標(biāo)準(zhǔn),工作在2.4GHz頻段,最高傳輸速率可達(dá)54 Mbit/s。

圖2 采集終端結(jié)構(gòu)框圖

上述所說(shuō)的采集終端安裝在塔吊駕駛室前方的吊臂上,整個(gè)設(shè)備采用防護(hù)罩遮擋,避免惡劣天氣影響,攝像頭向下安裝,對(duì)準(zhǔn)吊鉤,實(shí)時(shí)采集吊臂下方工地的視頻數(shù)據(jù)。

接收終端的硬件結(jié)構(gòu)圖框圖如圖3所示,它與視頻采集終端相比,減少了USB攝像頭模塊,添加了LCD液晶顯示模塊以及SD存儲(chǔ)模塊。LCD液晶顯示模塊用來(lái)顯示無(wú)線網(wǎng)絡(luò)傳輸過(guò)來(lái)的實(shí)時(shí)視頻圖像,而SD存儲(chǔ)卡用于視頻數(shù)據(jù)信息的存儲(chǔ),便于以后對(duì)視頻的回顯需求。該接收終端體積小巧而且操作簡(jiǎn)單,便于駕駛員在駕駛室中進(jìn)行實(shí)時(shí)監(jiān)控。

圖3 接收終端結(jié)構(gòu)框圖

3 系統(tǒng)軟件設(shè)計(jì)

3.1 軟件環(huán)境介紹

Linux操作系統(tǒng)以其靈活性和高效性著稱。它具有開(kāi)放的源代碼,用戶可以根據(jù)自己的需求進(jìn)行修改重新編譯,同時(shí)支持多任務(wù)、多用戶的功能,而且具有眾多的硬件支持特性,是一個(gè)跨平臺(tái)的系統(tǒng)。該監(jiān)控系統(tǒng)的軟件設(shè)計(jì)采用目標(biāo)機(jī)和PC機(jī)相互結(jié)合的方式,掛載根文件系統(tǒng),使得在PC機(jī)平臺(tái)上可以直接操作目標(biāo)機(jī)。

PC 機(jī)選擇在 ubuntu9.10 環(huán)境下運(yùn)行[4],armlinux-gcc交叉編譯工具鏈選用4.5.1版本,開(kāi)發(fā)板使用linux2.6.38內(nèi)核,同時(shí)本系統(tǒng)選擇移植的計(jì)算機(jī)視覺(jué)庫(kù)為OpenCV2.2.0版本,對(duì)于OpenCV2.0之后的版本,必須使用CMake創(chuàng)建Makefile文件,所以選用CMake 2.8.9的版本。完成上述幾個(gè)平臺(tái)環(huán)境的搭建之后就可以進(jìn)行OpenCV2.2.0庫(kù)的移植了。

3.2 移植OpenCV2.2.0到Tiny6410開(kāi)發(fā)板

OpenCV計(jì)算機(jī)視覺(jué)庫(kù)的移植對(duì)實(shí)現(xiàn)實(shí)時(shí)跟蹤功能起到至關(guān)重要的作用。但是OpenCV在移植到開(kāi)發(fā)板的過(guò)程中會(huì)碰到編譯出錯(cuò),下面就介紹下OpenCV的移植過(guò)程以及如何解決這些編譯錯(cuò)誤:

首先將opencv2.2.0源碼解壓到/work/tools目錄下,并在該目錄下建立opencv-source文件夾,在該文件夾下建一個(gè)list目錄用來(lái)存放編譯生成的文件,在/work/tools/opencv2.2.0目錄下運(yùn)行cmakegui,然后進(jìn)行下面的環(huán)境配置:

然后進(jìn)入下一頁(yè)配置:

再進(jìn)入下一頁(yè)配置:

然后Finish完成基本配置。

接著修改默認(rèn)配置選項(xiàng),默認(rèn)安裝目錄為/usr/local,但是對(duì)于交叉編譯的庫(kù)來(lái)說(shuō)此路徑并不合適,所以要把CMAKE_INSTALL_PREFIX變量改為/work/tools/install/,另外去掉WITH_TIFF選項(xiàng),因?yàn)闆](méi)有安裝支持TIFF的圖像。點(diǎn)擊Generate就生成了Makefile文件。最后進(jìn)入到/work/tools/opencvarm目錄下運(yùn)行make編譯命令,在opencv編譯時(shí)發(fā)現(xiàn)如下幾個(gè)錯(cuò)誤:

(1)編譯錯(cuò)誤1:

OpenCV-2.2.0/modules/ml/src/gbt.cpp:474:error:'expl'was not declared in this scope;因?yàn)榇a中并沒(méi)有聲明“expl”,所以修改 gbt.cpp,注釋掉//#if ANDROID和//#endlf,然后重新編譯。

(2)編譯錯(cuò)誤2:

Linking CXX executable../../bin/opencv_createsamples;修改/work/tools/opencv-arm/目錄下 CMake-Cache.txt文件,XE_LINKER_FLAGS選項(xiàng)為空,現(xiàn)在加上-lpthread-lrt,因?yàn)閏make不認(rèn)識(shí)所定義的arm-linux系統(tǒng)標(biāo)記,所以要加上庫(kù)pthread和rt的鏈接選項(xiàng),然后重新編譯。

(3)編譯錯(cuò)誤3:

注釋掉//#define ARM_NO_SIFT,然后重新編譯成功。

運(yùn)行make install,把opencv生成的頭文件和庫(kù)文件復(fù)制到交叉編譯器中,測(cè)試下arm-linux-g++-lcv-lcxcore-lhighgui-lpthread-lrt-o CamShift CamShift.c,生成二進(jìn)制文件。然后復(fù)制/opt/arm/lib下的庫(kù)文件到S3C6410開(kāi)發(fā)板的/lib/目錄下。由于S3C6410開(kāi)發(fā)板的linux不支持OpenCV自己的Highgui文件,所以不能在目標(biāo)板上使用cvName-Widow(),cvWaitKey(),cvShowImage()等顯示函數(shù),但是可以利用OpenCV里面的cvLoad()等函數(shù)。正因?yàn)槿绱?,選擇安裝支持OpenCV的GTK就會(huì)很復(fù)雜,所以我們選擇用Qt界面來(lái)顯示。最后復(fù)制CamShift執(zhí)行文件到開(kāi)發(fā)板中,結(jié)果執(zhí)行正常,可以在開(kāi)發(fā)板實(shí)現(xiàn)實(shí)時(shí)跟蹤,說(shuō)明OpenCV2.2.0移植成功了。

3.3 CamShift跟蹤算法實(shí)現(xiàn)

駕駛員長(zhǎng)時(shí)間在監(jiān)控視頻中尋找吊鉤的位置,判斷吊鉤距離作業(yè)面高度,難免會(huì)產(chǎn)生視覺(jué)疲勞,造成判斷失誤,所以系統(tǒng)引入了CamShift跟蹤算法,實(shí)時(shí)跟蹤吊鉤位置。CamShift是OpenCV中運(yùn)動(dòng)物體的動(dòng)態(tài)跟蹤算法[5],它將Mean-Shift算法擴(kuò)展到連續(xù)的圖像序列,利用吊鉤鮮明的黃顏色特征信息進(jìn)行追蹤,并對(duì)視頻所有的圖像幀做Mean-Shift運(yùn)算,把上一幀的搜索窗口作為下一次計(jì)算的初始值,如此迭代下去,即可實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤。該算法的流程圖如圖4所示,它的實(shí)現(xiàn)主要有如下3個(gè)部分:

第1步為Back Projection計(jì)算,因?yàn)镽GB顏色空間對(duì)光照變化較為敏感,為了減少這種影響,調(diào)用cvCvtColor()函數(shù)將獲得的圖像從RGB空間轉(zhuǎn)換到HSV空間,然后調(diào)用cvCreateHist()函數(shù)計(jì)算其中的H分量的直方圖,即可得到顏色概率查找表,最后通過(guò)調(diào)用cvCalcBackProject()函數(shù)將圖像中每個(gè)像素的值用其顏色出現(xiàn)的概率對(duì)替換,得到顏色概率分布圖。為后面的匹配跟蹤提供了線索。

第2步為Mean Shift算法,它是利用概率密度的梯度爬升來(lái)尋找局部最優(yōu),通過(guò)1階矩除以0階矩來(lái)計(jì)算質(zhì)心,用計(jì)算出的質(zhì)心作為下一步的中心,然后向中心一直迭代,直到窗口的位置不再變化。通過(guò)調(diào)用OpenCV中cvMeanShift()函數(shù)實(shí)現(xiàn)上述過(guò)程的迭代。

第3步為CamShift算法[6],它的算法思想主要由如下5個(gè)步驟完成:①確定初始化目標(biāo)大小和位置以及搜索區(qū)域;②計(jì)算出目標(biāo)的H分量直方圖;③通過(guò)直方圖計(jì)算出圖像的反向投影圖;④運(yùn)行Mean Shift;⑤以上一步搜索窗口的中心位置以及計(jì)算出新的窗口大小為參數(shù),進(jìn)入到下一幀的目標(biāo)跟蹤。以上算法的實(shí)現(xiàn)通過(guò)調(diào)用cvCamShift()函數(shù)完成。

圖4 CamShift算法流程圖

3.4 基于TCP/IP協(xié)議的視頻傳輸

該USB攝像頭采用 V4L2的框架[7],V4L2的Video設(shè)備在用戶空間通過(guò)調(diào)用各種ioctl()函數(shù)來(lái)實(shí)現(xiàn)對(duì)攝像頭的設(shè)置,然后將采集的視頻數(shù)據(jù)進(jìn)行H.264壓縮編碼,將壓縮后的視頻數(shù)據(jù)經(jīng)過(guò)WIFI模塊發(fā)送到無(wú)線網(wǎng)絡(luò)設(shè)備,然后采集終端的WIFI模塊通過(guò)訪問(wèn)該無(wú)線網(wǎng)絡(luò)設(shè)備來(lái)獲得視頻數(shù)據(jù),再經(jīng)過(guò)H.264解壓縮之后就可以恢復(fù)出原始視頻數(shù)據(jù)。

該無(wú)線模塊的實(shí)時(shí)視頻傳輸是基于TCP/IP協(xié)議[8],協(xié)議采用了層級(jí)結(jié)構(gòu),分別是網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層,每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。它主要是完成對(duì)遠(yuǎn)程客戶端的連接以及取消連接的功能,并根據(jù)遠(yuǎn)程客戶端的請(qǐng)求,將所需數(shù)據(jù)信息傳輸?shù)竭h(yuǎn)程客戶端。在Linux下基于TCP的HTTP協(xié)議的數(shù)據(jù)傳輸流程如圖5所示。該數(shù)據(jù)傳輸?shù)木唧w步驟如下:首先要服務(wù)器創(chuàng)建socket()套接字函數(shù),調(diào)用bind()函數(shù)指定本地地址后監(jiān)聽(tīng)并等待瀏覽器的請(qǐng)求,然后瀏覽器向服務(wù)器發(fā)送連接請(qǐng)求,這時(shí)候建立套接字的連接函數(shù)Accept()和Connet(),接著通過(guò)write()和read()函數(shù)實(shí)現(xiàn)數(shù)據(jù)的寫(xiě)入和讀出功能,最后關(guān)閉套接字函數(shù)close()。

圖5 TCP協(xié)議的流程圖

4 上位機(jī)測(cè)試

Qt是一個(gè)跨平臺(tái)的C++圖形用戶界面應(yīng)用程序框架。它主要應(yīng)用于嵌入式Linux系統(tǒng)的PAD或者智能手機(jī)平臺(tái)。本系統(tǒng)接收終端的上位機(jī)軟件就采用Qt開(kāi)發(fā),選擇的開(kāi)發(fā)環(huán)境是QtE-4.7.0版本。為了能夠讓視頻窗口和按鍵窗口在程序上顯示,編寫(xiě)應(yīng)用框架類QWidget,接著通過(guò)QPainter類將接收過(guò)來(lái)的視頻數(shù)據(jù)不斷寫(xiě)入,讓視頻實(shí)時(shí)顯示。最后按照信號(hào)與槽的機(jī)制編寫(xiě)控制按鍵,控制視頻的打開(kāi)、CamShift跟蹤、保存、停止、退出等按鍵功能,駕駛員通過(guò)選擇上位機(jī)界面上的按鈕來(lái)查看工地實(shí)時(shí)場(chǎng)景。實(shí)驗(yàn)?zāi)M測(cè)試跟蹤吊鉤如圖6所示。

圖6 吊鉤跟蹤視頻截圖

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

本文提出了基于CamShift跟蹤算法的塔吊無(wú)線視頻監(jiān)控系統(tǒng)。主要從視頻采集、CamShift跟蹤算法以及視頻無(wú)線傳輸?shù)确矫骊U述了系統(tǒng)設(shè)計(jì)思路。該系統(tǒng)的優(yōu)點(diǎn)在于接收終端的便攜式設(shè)計(jì)相對(duì)于體積龐大的PC機(jī)來(lái)說(shuō)使用起來(lái)十分方便,同時(shí)價(jià)格優(yōu)勢(shì)也相當(dāng)明顯,為整個(gè)系統(tǒng)的設(shè)計(jì)節(jié)省了很大成本。在顯示效果方面,視頻傳輸穩(wěn)定可靠,實(shí)時(shí)跟蹤準(zhǔn)確,有效地解決了駕駛員的視覺(jué)盲區(qū)以及視覺(jué)疲勞問(wèn)題,對(duì)操控塔吊起了很大的輔助作用,不但提高了作業(yè)的安全性,同時(shí)也提高了作業(yè)效率。

[1]曹理發(fā),尹勇,劉恒輝.基于ARM和DSP的視頻監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2009,32(1):213-217

[2]李文江,王紅飛,侯玉峰.基于S3C6410的嵌入式膠帶運(yùn)輸機(jī)監(jiān)控系統(tǒng)[J].儀表技術(shù)與傳感器,2010(12):74-79

[3]蔣昌茂,劉洪林.基于WIFI的無(wú)線IP攝像頭的設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2010,21:55-57

[4]郭巧云,許雪梅,李岸.基于ARMll的無(wú)線視頻監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(8):1786-1791

[5]伍友龍,朱志勇.基于CamShift與Kalman的目標(biāo)跟蹤算法.[J]微計(jì)算機(jī)信息,2010,26(3):23-25

[6]冀治航,陳家新,黎蔚.基于空間直方圖的CamShift目標(biāo)跟蹤算法.[J]微電子學(xué)與計(jì)算機(jī),2009,7(26):194-197

[7]王剛,毛劍飛,田青.基于ARMll的無(wú)線視頻監(jiān)控系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20:18-22

[8]何鵬舉.基于Web服務(wù)的無(wú)線網(wǎng)絡(luò)節(jié)點(diǎn)傳感器研究[J].傳感技術(shù)學(xué)報(bào),2009,22(11):1634-1638

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開(kāi)發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 亚洲欧美日韩中文字幕在线一区| 欧美午夜视频在线| 午夜日韩久久影院| 久久伊伊香蕉综合精品| 亚洲av日韩综合一区尤物| 91综合色区亚洲熟妇p| 东京热一区二区三区无码视频| 米奇精品一区二区三区| 国产黄色片在线看| 色综合五月婷婷| 欧美在线中文字幕| 国产免费怡红院视频| 丝袜无码一区二区三区| 午夜日b视频| 亚洲一区无码在线| 99爱视频精品免视看| 日日摸夜夜爽无码| 自拍欧美亚洲| 69精品在线观看| 亚洲日韩第九十九页| 国产全黄a一级毛片| 在线观看免费黄色网址| 欧美高清国产| 亚洲男人在线| 欧美区在线播放| 亚洲欧美人成电影在线观看| 欧美日韩成人| 无码中文字幕加勒比高清| 在线视频亚洲欧美| 91视频精品| 久久综合结合久久狠狠狠97色| 成人午夜天| AV片亚洲国产男人的天堂| 久久人搡人人玩人妻精品 | 国产91色| 毛片免费高清免费| 99精品热视频这里只有精品7| 日韩一区二区在线电影| 91久久精品日日躁夜夜躁欧美| 亚洲最黄视频| 国产裸舞福利在线视频合集| 在线观看无码av五月花| 四虎AV麻豆| 国产在线小视频| 亚洲狼网站狼狼鲁亚洲下载| 亚洲精品第五页| 2021亚洲精品不卡a| 亚洲人成网线在线播放va| 日韩在线影院| 欧美成人亚洲综合精品欧美激情| 精品自拍视频在线观看| 国产成人久视频免费| 国内精品久久久久久久久久影视 | 99在线视频免费| 亚洲天堂视频在线观看| 日本爱爱精品一区二区| 国产黄网永久免费| 国产噜噜噜| 国产97色在线| 中文字幕久久波多野结衣| 国产真实乱子伦视频播放| 嫩草在线视频| 91亚瑟视频| 成人看片欧美一区二区| 中文字幕调教一区二区视频| 久久特级毛片| 色偷偷男人的天堂亚洲av| 久久美女精品| 国产成人亚洲综合A∨在线播放| 成人亚洲视频| 欧美成人综合视频| 99久久亚洲综合精品TS| 亚洲国产精品成人久久综合影院| 久久一日本道色综合久久| 欧美三级视频网站| 免费不卡在线观看av| 久久久久人妻一区精品色奶水| 精品无码国产一区二区三区AV| 97超碰精品成人国产| a级毛片免费播放| 99热这里只有精品在线观看| 国产乱人伦AV在线A|