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

基于Qt和OpenCV的無線視頻監(jiān)控系統(tǒng)

2015-10-20 02:39:18中國科學(xué)技術(shù)大學(xué)電子科學(xué)與技術(shù)系安徽合肥230027
關(guān)鍵詞:檢測系統(tǒng)

汪 洋,李 垚,黃 魯(中國科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥 230027)

基于Qt和OpenCV的無線視頻監(jiān)控系統(tǒng)

汪洋,李垚,黃魯
(中國科學(xué)技術(shù)大學(xué)電子科學(xué)與技術(shù)系,安徽合肥230027)

使用Qt結(jié)合OpenCV設(shè)計了一款基于嵌入式的無線視頻監(jiān)控系統(tǒng),該系統(tǒng)具備人臉檢測和頭像保存功能。系統(tǒng)采用C/S結(jié)構(gòu),在ARM開發(fā)板上搭建的Qt多線程Linux系統(tǒng)服務(wù)器用于采集和發(fā)送視頻;用Qt結(jié)合OpenCV制作的客戶端運行在PC上,提供監(jiān)控功能。介紹了Qt的Linux系統(tǒng)環(huán)境設(shè)置與ARM移植、V4L2視頻采集的過程以及如何用Qt多線程處理視頻數(shù)據(jù)。測試結(jié)果表明,在WiFi環(huán)境下,系統(tǒng)可進行有效的實時監(jiān)控。

無線視頻監(jiān)控;Qt;OpenCV;人臉檢測

0 引言

無線視頻監(jiān)控系統(tǒng)具有無需布線、安裝簡單、監(jiān)控點靈活的優(yōu)點。嵌入式監(jiān)控設(shè)備占用空間小、價格低。Linux操作系統(tǒng)可裁剪,適合在嵌入式設(shè)備上使用[1]。本文在ARM-Linux系統(tǒng)上利用Qt和OpenCV技術(shù),結(jié)合TCP/IP傳輸協(xié)議,開發(fā)了一款帶有圖像處理功能的低成本實時無線視頻監(jiān)控系統(tǒng),具備人臉檢測和頭像保存功能。

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

無線視頻監(jiān)控系統(tǒng)由ARM服務(wù)器、PC客戶端和無線路由器3個部分組成,如圖1所示。ARM服務(wù)器設(shè)置USB攝像頭的采集參數(shù),將采集到的畫面進行格式轉(zhuǎn)換后(YUV轉(zhuǎn)換成JPEG),通過USB無線網(wǎng)卡將視頻畫面發(fā)送出去;無線路由器為ARM服務(wù)器與遠(yuǎn)程PC客戶端提供無線網(wǎng)絡(luò);PC客戶端接收并顯示視頻,完成人臉檢測、頭像保存等處理。

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

本系統(tǒng)的服務(wù)器硬件由友善之臂Smart210開發(fā)板、EP-N8508GS無線網(wǎng)卡和USB攝像頭組成。其中,Smart210開發(fā)板采用了三星S5PV210作為主處理器;EP-N8508GS無線網(wǎng)卡支持IEEE802.11N網(wǎng)絡(luò)標(biāo)準(zhǔn),傳輸速率為150Mb/s;USB攝像頭支持V4L2協(xié)議,采集視頻格式為YUV。軟件部分主要包括內(nèi)核為3.0的Linux操作系統(tǒng)、Qt4.7、OpenCV2.4相關(guān)庫、客戶端和服務(wù)器軟件。系統(tǒng)軟件結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)軟件結(jié)構(gòu)

2 服務(wù)器實現(xiàn)

2.1Linux QT環(huán)境設(shè)置與ARM移植

本系統(tǒng)軟件編程采用C/S模式,程序在PC Ubuntu環(huán)境下用Qt 4.7編寫完成,分別用ARM、PC環(huán)境下的qmake編譯器編譯成可執(zhí)行程序。如果統(tǒng)一采用PC環(huán)境下的qmake編譯,服務(wù)器程序?qū)o法在ARM上運行。這是由于ARM與PC的開發(fā)環(huán)境不同,可使用file指令來判斷可執(zhí)行程序的運行環(huán)境。Linux ARM版本的Qt環(huán)境配置流程如圖3所示。

圖3 Linux ARM版的QT環(huán)境設(shè)置

在完成Linux ARM版本的Qt環(huán)境配置后,還需要將生成的Qt庫都加載到ARM開發(fā)板上才能在ARM上運行Qt程序,否則出現(xiàn)缺少依賴庫的錯誤。

2.2服務(wù)器軟件設(shè)計

ARM服務(wù)器軟件采用Qt編程,實現(xiàn)的功能有V4L2視頻采集、視頻格式轉(zhuǎn)換、TCP視頻傳輸。服務(wù)器的工作流程為:先啟動監(jiān)聽狀態(tài),給出當(dāng)前使用的IP地址和監(jiān)聽的隨機可用端口號提示;當(dāng)客戶端連接上時發(fā)送視頻數(shù)據(jù)。

2.2.1V4L2(Video4Linux2)視頻圖像采集

V4L2是Linux下針對免驅(qū)動USB設(shè)備的編程框架,為視頻采集設(shè)備的程序開發(fā)提供了統(tǒng)一的接口[2]。視頻采集部分基于V4L2,將其定義為一個單獨的videoDevice類,實現(xiàn)視頻設(shè)備的初始化、打開、配置、設(shè)置內(nèi)存映射、開始采集、讀取緩沖區(qū)、視頻格式轉(zhuǎn)換、更新緩沖區(qū)、結(jié)束采集、取消內(nèi)存映射、關(guān)閉、格式轉(zhuǎn)換等功能。該類還定義了專門的槽函數(shù),為后續(xù)的設(shè)備視頻采集線程提供RGB24視頻幀。

2.2.2多線程處理視頻數(shù)據(jù)

采用多線程可以提高程序的響應(yīng)速度,在Qt應(yīng)用程序中使用多線程只需子類化Qthread并且重新實現(xiàn)它的run()函數(shù)即可[3]。程序采用雙線程,一個用于單幀圖像的周期性采集并發(fā)送完成信號,另一個利用私有槽函數(shù)完成單幀圖像的發(fā)送,兩個線程在tcpServer類中進行連接,從而實現(xiàn)視頻的連續(xù)采集與傳輸。在采集視頻線程run()函數(shù)中,每隔一定時間獲取視頻幀并發(fā)送數(shù)據(jù)產(chǎn)生信號。視頻發(fā)送線程采用基于塊的傳輸協(xié)議把視頻數(shù)據(jù)作為二進制塊進行傳輸,每個數(shù)據(jù)塊包含一個大小字段及單幀視頻數(shù)據(jù)。在該線程中,將采集并經(jīng)轉(zhuǎn)化后得到的RGB24格式視頻圖像以JPG格式存入緩沖區(qū)發(fā)送;發(fā)送完成后,需要調(diào)用seek(0)函數(shù)以重新移到存儲空間的開始處,避免出錯。

2.2.3基于TCP的視頻傳輸

TCP是面向連接的通信協(xié)議,提供可靠的數(shù)據(jù)流服務(wù),從而確保視頻的有效傳輸。Qt提供的QTcpServer和QTcpSocket類,分別用于實現(xiàn)服務(wù)器和客戶端[4]。

服務(wù)器視頻傳輸程序主要由tcpServer和tcp-ClientSocket類完成。tcpServer重新實現(xiàn)了incomingConnection()函數(shù)。當(dāng)客戶端試圖連接到服務(wù)器監(jiān)聽的端口時,調(diào)用該函數(shù)來創(chuàng)建視頻采集和發(fā)送線程,并通過信號與槽將兩個線程連接起來,從而實現(xiàn)視頻幀的采集與發(fā)送。tcpClientSocket類利用connect()函數(shù)將readRead()和disconnected()信號分別與readClient()和slotDisconnected()槽連接起來,從而接收來自客戶端的數(shù)據(jù),以及當(dāng)套接字連接關(guān)閉時,刪除對象。

3 客戶端實現(xiàn)

客戶端軟件設(shè)計采用Qt與OpenCV聯(lián)合編程,Qt用于界面設(shè)計、視頻接收與顯示,OpenCV專注于對視頻圖像進行處理。客戶端實現(xiàn)的功能有:(1)登錄功能;(2)連接服務(wù)器并接收視頻;(3)彩色與灰度視頻切換顯示;(4)拍照保存、人臉檢測、頭像保存功能。為了使用OpenCV,需要在Qt工程文件中添加 OpenCV的庫文件和路徑。由于使用了網(wǎng)絡(luò)傳輸協(xié)議,需要在Qt工程文件中添加QT+=network代碼。

3.1視頻接收與彩色/灰度顯示

客戶端啟動后,填入設(shè)備名、IP地址、服務(wù)器監(jiān)聽的端口號來連接服務(wù)器。程序使用槽函數(shù)將客戶端連接到服務(wù)器,該槽函數(shù)在QTcpSocket對象上異步調(diào)用connectToHost()建立連接。當(dāng)連接建立起來并運行時,QTcpSocket對象發(fā)送connected()信號,此時會執(zhí)行sendData()槽函數(shù)將數(shù)據(jù)發(fā)給服務(wù)器;如果連接失敗,QTcpSocket對象會發(fā)送錯誤信號。只要QTcpsocket對象從服務(wù)器上接收到視頻數(shù)據(jù),就發(fā)送readReady信號,此時程序調(diào)用dataReceived()槽函數(shù)。dataReceived()槽函數(shù)實現(xiàn)了3個功能:接收視頻幀、統(tǒng)計每幀的數(shù)據(jù)量與總的幀數(shù)以及用判斷語句來選擇顯示彩色/灰度視頻。

3.2人臉檢測與頭像保存

人臉檢測使用OpenCV提供的檢測圖像中的目標(biāo)函數(shù)cvHaarDetectObjects()和"haarcascade_frontalface_alt.xml"人臉檢測分類器對視頻流中的某幅圖像進行搜索,從而確定圖像中是否含有人臉并計數(shù)人臉數(shù)量。本功能啟用后,會加載Haar檢測分類器并分配資源,在圖像格式轉(zhuǎn)換后進行人臉檢測與頭像保存。

圖4、5分別顯示了人臉檢測與頭像保存的流程。通過目標(biāo)函數(shù)調(diào)用人臉檢測分類器在視頻圖像中找到包含人臉的矩形區(qū)域,用不同的顏色標(biāo)識后返回矩形框序列[5]。頭像保存是在人臉檢測的基礎(chǔ)上用cvSetImageROI()標(biāo)識出頭像區(qū)域,之后截取保存。

圖5 頭像保存流程

4 系統(tǒng)測試

在PC上編譯服務(wù)器與客戶端程序,通過串口將服務(wù)器可執(zhí)行程序下載到ARM開發(fā)板上。在串口調(diào)試助手SecureCRT上輸入掃描和連接WiFi的指令,并進行ping測試。確認(rèn)WiFi環(huán)境可用后,在ARM上運行服務(wù)器程序,PC上運行客戶端程序,測試結(jié)果如圖6所示。

圖6 系統(tǒng)測試

5 結(jié)論

本文介紹了一種基于Qt和OpenCV的嵌入式無線視頻監(jiān)控系統(tǒng)。經(jīng)過測試,該系統(tǒng)達(dá)到了預(yù)期的效果,實現(xiàn)了無線實時監(jiān)控,其人臉檢測與頭像保存功能增強了監(jiān)控的能力,解決了常規(guī)監(jiān)控系統(tǒng)只顯示畫面不能對畫面進行處理的問題。此外,系統(tǒng)性能穩(wěn)定,成本低廉,具有廣泛的應(yīng)用前景。

[1]馬毅.基于Linux的遠(yuǎn)程視頻監(jiān)控嵌入式系統(tǒng)的設(shè)計與實現(xiàn)[D].上海:上海交通大學(xué),2001.

[2]周寶余,臧雪柏.基于QT的無線多路視頻監(jiān)控系統(tǒng)[J].吉林大學(xué)學(xué)報(工學(xué)版),2011,41(增刊):204-207.

[3]BLANCHETTE J,SUMMERFIELD M.C++GUI programming with Qt4(Second Edition)[M].NJ:Prentice Hall in association with Trolltech Press,2008.

[4]陳峰,郭爽,趙欣.基于Qt和嵌入式的視頻監(jiān)控系統(tǒng)[J].通信技術(shù),2011,44(10):109-111.

[5]BRADSKI G,KAEHLER A.Learning OpenCV:computer vision with the OpenCV library(First Edition)[M].CA:O′Reilly Media Inc,2008.

Wireless video monitoring system based on Qt and OpenCV

Wang Yang,Li Yao,Huang Lu
(Department of Electronic Science and Technology,University of Science and Technology of China,Hefei 230027,China)

An embeded wireless video monitoring system with the functions of face detecton and head portraits saving was designed by using Qt coupling with OpenCV in this paper.The system adopted C/S structure.Multi-threaded Linux system server was built with Qt on ARM development board for acquisition and transmission of video data.The client was made with Qt and OpenCV running on the PC,to provide monitoring function.And it also introduced the Linux system environment setting for Qt with Qt transplanting to ARM,the process of V4L2 video acqusition and how to do multi-threaded video data processing by using Qt.The test results show that under WiFi environment,the system carries out real-time monitoring effectively.

wireless video surveillance;Qt;OpenCV;face detection

TP391.4

A

1674-7720(2015)10-0067-03

2014-12-31)

汪洋(1991-),男,碩士研究生,主要研究方向:嵌入式系統(tǒng)、機器人。

李垚(1968-),男,副研究員,主要研究方向:電路與系統(tǒng)。

黃魯(1961-),男,副教授,主要研究方向:電路與系統(tǒng)。

猜你喜歡
檢測系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
WJ-700無人機系統(tǒng)
“幾何圖形”檢測題
“角”檢測題
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
主站蜘蛛池模板: 欧美不卡在线视频| 精品1区2区3区| 91色综合综合热五月激情| 高清久久精品亚洲日韩Av| 亚洲Av综合日韩精品久久久| 久久久波多野结衣av一区二区| 午夜精品影院| 亚洲天堂网在线观看视频| 国产网站免费看| 91色在线观看| 四虎影视无码永久免费观看| 国产91无码福利在线| 欧美成人怡春院在线激情| 国产一区二区影院| 91精品啪在线观看国产91九色| 麻豆精品在线| 99视频在线观看免费| 欧美精品啪啪一区二区三区| 久久中文字幕av不卡一区二区| 久久这里只精品热免费99| 波多野结衣第一页| 亚洲国产中文欧美在线人成大黄瓜| 久草网视频在线| 综合五月天网| 国产一级毛片在线| 99热这里只有精品在线观看| 伊人天堂网| 国产亚洲高清在线精品99| 99视频全部免费| 欧美一区二区福利视频| 极品私人尤物在线精品首页| 国产精品成人AⅤ在线一二三四 | 亚洲精品欧美日韩在线| 成人毛片免费在线观看| 国产午夜精品一区二区三区软件| 国产精品不卡永久免费| 亚洲美女一区| 夜夜操国产| 成人精品区| 国产特一级毛片| 日韩精品久久久久久久电影蜜臀| 日本精品中文字幕在线不卡| 国产一二三区视频| 免费av一区二区三区在线| 国产亚洲精久久久久久久91| 中文字幕人妻av一区二区| 97se亚洲综合| 亚洲天堂高清| 日韩精品一区二区深田咏美| 国产尤物在线播放| 日日噜噜夜夜狠狠视频| 在线日韩日本国产亚洲| 日本免费新一区视频| 欧美一区二区三区不卡免费| 在线不卡免费视频| 亚洲欧洲日产无码AV| 黄色不卡视频| 亚洲中文字幕无码mv| 亚洲欧美不卡视频| 亚洲中文字幕无码mv| 日韩精品毛片| 熟女视频91| 亚洲综合狠狠| 伊人91在线| 亚洲国产天堂在线观看| 在线观看av永久| 日本国产一区在线观看| 欧美精品在线免费| 婷婷五月在线| 成年人免费国产视频| 91福利免费| 日韩美毛片| 青草91视频免费观看| 一级毛片免费播放视频| 91国语视频| 黄色网在线| 青青热久免费精品视频6| 亚洲人成成无码网WWW| 美女毛片在线| 亚洲区视频在线观看| 无码一区二区波多野结衣播放搜索| 国产大片喷水在线在线视频|