《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于Qt和OpenCV的無線視頻監(jiān)控系統(tǒng)
基于Qt和OpenCV的無線視頻監(jiān)控系統(tǒng)
2015年微型機(jī)與應(yīng)用第10期
汪 洋,李 垚,黃 魯
(中國科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥 230027)
摘要: 使用Qt結(jié)合OpenCV設(shè)計(jì)了一款基于嵌入式的無線視頻監(jiān)控系統(tǒng),該系統(tǒng)具備人臉檢測和頭像保存功能。系統(tǒng)采用C/S結(jié)構(gòu),在ARM開發(fā)板上搭建的Qt多線程Linux系統(tǒng)服務(wù)器用于采集和發(fā)送視頻;用Qt結(jié)合OpenCV制作的客戶端運(yùn)行在PC上,提供監(jiān)控功能。介紹了Qt的Linux系統(tǒng)環(huán)境設(shè)置與ARM移植、V4L2視頻采集的過程以及如何用Qt多線程處理視頻數(shù)據(jù)。測試結(jié)果表明,在WiFi環(huán)境下,系統(tǒng)可進(jìn)行有效的實(shí)時(shí)監(jiān)控。
Abstract:
Key words :

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

  關(guān)鍵詞: 無線視頻監(jiān)控;Qt;OpenCV;人臉檢測

0 引言

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

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

001.jpg


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

  本系統(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),傳輸速率為150 Mb/s;USB攝像頭支持V4L2協(xié)議,采集視頻格式為YUV。軟件部分主要包括內(nèi)核為3.0的Linux操作系統(tǒng)、Qt 4.7、OpenCV 2.4相關(guān)庫、客戶端和服務(wù)器軟件。系統(tǒng)軟件結(jié)構(gòu)如圖2所示。

002.jpg

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

  2.1 Linux 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上運(yùn)行。這是由于ARM與PC的開發(fā)環(huán)境不同,可使用file指令來判斷可執(zhí)行程序的運(yùn)行環(huán)境。Linux ARM版本的Qt環(huán)境配置流程如圖3所示。

003.jpg

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

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

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

  2.2.1 V4L2(Video4Linux2)視頻圖像采集

  V4L2是Linux下針對免驅(qū)動(dòng)USB設(shè)備的編程框架,為視頻采集設(shè)備的程序開發(fā)提供了統(tǒng)一的接口[2]。視頻采集部分基于V4L2,將其定義為一個(gè)單獨(dú)的videoDevice類,實(shí)現(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并且重新實(shí)現(xiàn)它的run()函數(shù)即可[3]。程序采用雙線程,一個(gè)用于單幀圖像的周期性采集并發(fā)送完成信號(hào),另一個(gè)利用私有槽函數(shù)完成單幀圖像的發(fā)送,兩個(gè)線程在tcpServer類中進(jìn)行連接,從而實(shí)現(xiàn)視頻的連續(xù)采集與傳輸。在采集視頻線程run()函數(shù)中,每隔一定時(shí)間獲取視頻幀并發(fā)送數(shù)據(jù)產(chǎn)生信號(hào)。視頻發(fā)送線程采用基于塊的傳輸協(xié)議把視頻數(shù)據(jù)作為二進(jìn)制塊進(jìn)行傳輸,每個(gè)數(shù)據(jù)塊包含一個(gè)大小字段及單幀視頻數(shù)據(jù)。在該線程中,將采集并經(jīng)轉(zhuǎn)化后得到的RGB24格式視頻圖像以JPG格式存入緩沖區(qū)發(fā)送;發(fā)送完成后,需要調(diào)用seek(0)函數(shù)以重新移到存儲(chǔ)空間的開始處,避免出錯(cuò)。

  2.2.3 基于TCP的視頻傳輸

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

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

3 客戶端實(shí)現(xiàn)

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

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

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

  3.2 人臉檢測與頭像保存

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

004.jpg

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

4 系統(tǒng)測試

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

005.jpg

5 結(jié)論

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

參考文獻(xiàn)

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

  [2] 周寶余,臧雪柏.基于QT的無線多路視頻監(jiān)控系統(tǒng)[J].吉林大學(xué)學(xué)報(bào)(工學(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.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看国产日韩| 亚洲一区二区av电影| 欧美午夜a级限制福利片| 可以免费看不卡的av网站| 性色av香蕉一区二区| 一本色道久久88综合亚洲精品ⅰ | 亚洲精品一级| 亚洲大黄网站| 亚洲国产mv| 亚洲第一精品福利| 久久精品成人一区二区三区蜜臀| 亚洲欧美网站| 亚洲欧洲av一区二区三区久久| 亚洲永久免费观看| 亚洲欧美大片| 性久久久久久久| 午夜欧美电影在线观看| 亚洲欧美日韩一区二区在线| 先锋a资源在线看亚洲| 午夜免费久久久久| 欧美一区二区三区在线看| 香蕉国产精品偷在线观看不卡| 午夜伦欧美伦电影理论片| 欧美伊人久久| 亚洲国产精品综合| 亚洲老司机av| 亚洲视频在线观看| 亚洲欧美日韩直播| 欧美一区二区三区的| 久久国产手机看片| 久久婷婷国产综合国色天香| 卡通动漫国产精品| 欧美激情第一页xxx| 欧美日韩国产欧| 国产精品成人观看视频免费| 国产精品青草综合久久久久99| 国产精品一区久久久| 国产亚洲精品自拍| 亚洲国产精品va在看黑人| 亚洲三级电影全部在线观看高清| 一道本一区二区| 亚洲一区免费在线观看| 欧美在线影院| 日韩午夜黄色| 亚洲欧美日本日韩| 久久久久九九九九| 欧美成人精品三级在线观看| 欧美日韩你懂的| 国产精品一级久久久| 狠久久av成人天堂| 亚洲精品社区| 亚洲一区二区av电影| 久久国产精品第一页| 亚洲精品综合在线| 亚洲永久在线| 久久免费国产精品| 欧美久久电影| 国产精品一二三四| 亚洲国产精品一区二区第四页av | 亚洲图片在区色| 欧美在线观看视频| 欧美jizzhd精品欧美喷水| 国产精品黄色| 极品日韩av| 亚洲无线一线二线三线区别av| 亚洲第一级黄色片| 亚洲制服av| 麻豆av一区二区三区| 欧美四级在线| 激情久久久久久| 一区二区三区 在线观看视频| 欧美有码在线视频| 亚洲调教视频在线观看| 老司机精品导航| 国产精品美女视频网站| 精品动漫av| 亚洲午夜成aⅴ人片| 亚洲欧洲偷拍精品| 欧美一区三区三区高中清蜜桃 | 国产人成精品一区二区三| 亚洲高清视频的网址| 亚洲欧美在线一区二区| 一级成人国产| 免费国产一区二区| 国产欧美亚洲一区| 亚洲精品一区二区在线观看| 久久成人av少妇免费| 亚洲专区一区| 欧美承认网站| 国产亚洲欧美一区| 99精品欧美一区| 亚洲激情视频在线播放| 久久岛国电影| 欧美亚州一区二区三区| 91久久精品美女高潮| 欧美亚洲在线| 午夜精品久久久久久久久久久久久 | 亚洲一区二区三区四区五区午夜| 亚洲理论在线| 六十路精品视频| 国产一区自拍视频| 亚洲摸下面视频| 亚洲欧美日本伦理| 欧美日一区二区三区在线观看国产免| 影视先锋久久| 亚洲福利电影| 久久久久久9999| 国产偷久久久精品专区| 亚洲一区二区在线视频| 亚洲一区二区免费在线| 欧美伦理影院| 亚洲国产小视频在线观看| 亚洲欧洲日韩在线| 欧美a级大片| 在线日韩av片| 亚洲激情成人在线| 美女视频网站黄色亚洲| 欧美成在线观看| 久久五月激情| 国产综合精品| 久久www成人_看片免费不卡| 久久国产精品久久久久久久久久| 国产精品捆绑调教| 亚洲视频精品在线| 亚洲一区二区三区四区视频| 欧美日韩一区综合| 99精品国产福利在线观看免费 | 亚洲乱码国产乱码精品精天堂| 美日韩精品免费| 在线免费观看日本欧美| 久久成人精品| 免费中文字幕日韩欧美| 亚洲国产精品久久久久秋霞不卡 | 美女精品网站| 亚洲国产99精品国自产| 亚洲精品少妇30p| 欧美国产日韩在线观看| 亚洲激情在线观看视频免费| 一本到12不卡视频在线dvd| 欧美日韩在线不卡一区| 亚洲午夜一区二区三区| 香蕉乱码成人久久天堂爱免费 | 欧美精品一区二区久久婷婷| 亚洲欧洲日本在线| 宅男噜噜噜66一区二区| 国产精品电影观看| 亚洲在线观看视频网站| 久久人人爽国产| 亚洲国产精品va| 国产精品99久久久久久久久久久久| 欧美视频一区在线观看| 亚洲资源av| 久久久水蜜桃av免费网站| 亚洲风情在线资源站| 亚洲调教视频在线观看| 国产欧美日韩综合| 亚洲激情综合| 欧美天堂亚洲电影院在线观看 | 欧美大片在线看免费观看| 99国产精品一区| 欧美在线啊v| 在线观看中文字幕不卡| 亚洲视频网站在线观看| 国产亚洲精品一区二区| 亚洲精品国产视频| 国产精品久久久久久久久久直播| 久久高清国产| 欧美色精品天天在线观看视频| 亚洲女同精品视频| 夜夜精品视频一区二区| 久久先锋影音av| 99re6热只有精品免费观看| 欧美在线亚洲在线| 亚洲高清二区| 欧美亚洲专区| 亚洲人成啪啪网站| 午夜综合激情| 亚洲人成人一区二区三区| 欧美亚洲三区| 亚洲欧洲精品一区二区精品久久久| 亚洲欧美国产高清| 伊人久久大香线| 午夜精品久久久久影视| 亚洲高清资源| 午夜综合激情| 亚洲欧洲视频在线| 欧美一区亚洲一区| 亚洲人成在线免费观看| 欧美一区二区三区啪啪 | 亚洲国产午夜| 久久精品国产96久久久香蕉| 亚洲精品三级| 美国十次成人| 亚洲欧美激情四射在线日| 欧美精品乱码久久久久久按摩| 欧美一区二区三区在线看| 国产精品高清网站| 亚洲精品视频一区| 黑人操亚洲美女惩罚| 亚洲欧美在线一区|