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

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

  關鍵詞: 無線視頻監控;Qt;OpenCV;人臉檢測

0 引言

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

1 系統結構

001.jpg


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

  本系統的服務器硬件由友善之臂Smart210開發板、EP-N8508GS無線網卡和USB攝像頭組成。其中,Smart210開發板采用了三星S5PV210作為主處理器;EP-N8508GS無線網卡支持IEEE802.11N網絡標準,傳輸速率為150 Mb/s;USB攝像頭支持V4L2協議,采集視頻格式為YUV。軟件部分主要包括內核為3.0的Linux操作系統、Qt 4.7、OpenCV 2.4相關庫、客戶端和服務器軟件。系統軟件結構如圖2所示。

002.jpg

2 服務器實現

  2.1 Linux QT環境設置與ARM移植

  本系統軟件編程采用C/S模式,程序在PC Ubuntu環境下用Qt 4.7編寫完成,分別用ARM、PC環境下的qmake編譯器編譯成可執行程序。如果統一采用PC環境下的qmake編譯,服務器程序將無法在ARM上運行。這是由于ARM與PC的開發環境不同,可使用file指令來判斷可執行程序的運行環境。Linux ARM版本的Qt環境配置流程如圖3所示。

003.jpg

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

  2.2 服務器軟件設計

  ARM服務器軟件采用Qt編程,實現的功能有V4L2視頻采集、視頻格式轉換、TCP視頻傳輸。服務器的工作流程為:先啟動監聽狀態,給出當前使用的IP地址和監聽的隨機可用端口號提示;當客戶端連接上時發送視頻數據。

  2.2.1 V4L2(Video4Linux2)視頻圖像采集

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

  2.2.2 多線程處理視頻數據

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

  2.2.3 基于TCP的視頻傳輸

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

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

3 客戶端實現

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

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

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

  3.2 人臉檢測與頭像保存

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

004.jpg

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

4 系統測試

  在PC上編譯服務器與客戶端程序,通過串口將服務器可執行程序下載到ARM開發板上。在串口調試助手SecureCRT上輸入掃描和連接WiFi的指令,并進行ping測試。確認WiFi環境可用后,在ARM上運行服務器程序,PC上運行客戶端程序,測試結果如圖6所示。

005.jpg

5 結論

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

參考文獻

  [1] 馬毅.基于Linux的遠程視頻監控嵌入式系統的設計與實現[D].上海:上海交通大學,2001.

  [2] 周寶余,臧雪柏.基于QT的無線多路視頻監控系統[J].吉林大學學報(工學版),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和嵌入式的視頻監控系統[J].通信技術,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.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一区二区黄| 亚洲精品国产精品国自产在线| 国产女精品视频网站免费| 欧美激情中文字幕乱码免费| 久久九九99视频| 亚洲欧美日韩一区二区三区在线观看| 日韩一级黄色av| 亚洲美女视频在线观看| 最新亚洲电影| 亚洲精品一区在线| 亚洲人成网站在线播| 亚洲国产欧美日韩| 亚洲国产激情| 亚洲国产日韩一区二区| 久久精品99| 亚洲电影专区| 亚洲狠狠婷婷| 91久久精品一区二区别| 亚洲乱码国产乱码精品精98午夜| 亚洲精品视频二区| 99精品福利视频| 一区二区三区www| 亚洲午夜精品久久久久久app| 夜夜嗨av一区二区三区| 一二美女精品欧洲| 国产日韩专区在线| 欧美日韩国产成人在线91| 欧美激情四色 | 国产精品久久网| 亚洲深夜福利视频| 亚洲网站在线播放| 性欧美1819sex性高清| 欧美在线不卡| 亚洲日本aⅴ片在线观看香蕉| 亚洲精选91| 亚洲私人影院在线观看| 午夜精品久久久久99热蜜桃导演| 香蕉久久夜色精品国产使用方法| 欧美在线视频免费播放| 久久香蕉国产线看观看网| 牛人盗摄一区二区三区视频| 欧美国产三区| 国产精品久久久久9999| 国产久一道中文一区| 狠狠久久婷婷| 亚洲精品之草原avav久久| 亚洲综合国产激情另类一区| 久久精品av麻豆的观看方式| 日韩香蕉视频| 午夜在线精品偷拍| 久久在精品线影院精品国产| 欧美人成在线视频| 国产精品入口麻豆原神| 在线观看三级视频欧美| aa级大片欧美| 久久国产精品99国产| 一本色道久久加勒比88综合 | 亚洲一区二区免费| 久久久久国产一区二区| 欧美精品一区二区精品网| 国产精品日日摸夜夜摸av| 在线不卡亚洲| 亚洲色诱最新| 亚洲国产婷婷香蕉久久久久久99 | 午夜综合激情| 欧美电影专区| 国产人成一区二区三区影院| 亚洲成色最大综合在线| 亚洲视频在线观看视频| 亚洲激情网址| 欧美影院午夜播放| 欧美日韩精品不卡| 韩国欧美一区| 亚洲一区三区在线观看| 亚洲蜜桃精久久久久久久| 欧美一区2区三区4区公司二百| 欧美国产日韩一区二区在线观看| 国产精品一卡二| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲麻豆av| 久久精品国产一区二区三| 欧美精品1区2区| 国产一区免费视频| 在线亚洲国产精品网站| 亚洲三级视频| 久久久久国产精品一区| 国产精品久久久久久久久久直播 | 久久久久国产精品人| 国产精品麻豆va在线播放| 亚洲国产高清高潮精品美女| 新狼窝色av性久久久久久| 亚洲天堂成人在线视频| 欧美大秀在线观看| 好吊妞**欧美| 亚洲欧美久久久| 亚洲影院在线观看| 欧美精品一区二区在线播放| 一区二区三区在线视频观看| 午夜伦欧美伦电影理论片| 亚洲欧美激情一区| 欧美视频一区二区在线观看| 亚洲狠狠丁香婷婷综合久久久| 久久激情综合网| 久久久久久成人| 国产伦一区二区三区色一情| 夜夜嗨av色一区二区不卡| 一本大道久久a久久精二百| 欧美成人一区二区三区| 激情久久五月| 亚洲第一级黄色片| 久久先锋资源| 伊人久久亚洲热| 亚洲电影网站| 美国成人直播| 在线高清一区| 亚洲人成网站精品片在线观看| 美国十次成人| 亚洲国产精品第一区二区三区| 亚洲国产综合在线| 欧美成人综合在线| 亚洲国产成人在线视频| 亚洲人成网在线播放| 欧美成人免费网站| 在线欧美福利| 亚洲乱码国产乱码精品精可以看 | 欧美日韩一区二区在线观看| 亚洲精品国产品国语在线app| 亚洲毛片播放| 欧美日韩精品系列| 99在线观看免费视频精品观看| 在线视频日韩精品| 国产精品成人va在线观看| 亚洲午夜久久久久久久久电影院| 亚洲欧洲99久久| 国产日本亚洲高清| 欧美在线免费视屏| 久久婷婷国产麻豆91天堂| 在线观看日韩www视频免费 | 久久久女女女女999久久| 激情久久久久久久| 亚洲美女电影在线| 欧美小视频在线| 亚洲在线电影| 久久久蜜桃精品| 亚洲国产一区在线| 亚洲一区尤物| 国产视频亚洲精品| 久久精品夜色噜噜亚洲aⅴ| 欧美xart系列在线观看| 日韩亚洲一区在线播放| 性娇小13――14欧美| 黑人一区二区三区四区五区| 亚洲人成久久| 国产精品红桃| 久久精品免费看| 欧美日韩亚洲网| 亚洲在线不卡| 另类图片国产| 99精品视频免费观看| 欧美一区中文字幕| 一区二区在线观看视频| 一道本一区二区| 国产视频在线一区二区| 亚洲人永久免费| 国产精品国产三级国产专播精品人| 性xx色xx综合久久久xx| 欧美高清视频| 亚洲欧美日韩精品久久久| 蜜桃久久精品乱码一区二区| 99热免费精品| 久久久综合网站| 日韩亚洲在线观看| 久久婷婷成人综合色| 一本色道久久精品| 久久综合亚州| 亚洲性av在线| 免费成年人欧美视频| 亚洲一区二区久久| 欧美成人黄色小视频| 亚洲欧美国产另类| 欧美欧美天天天天操| 亚洲欧美综合精品久久成人| 欧美大学生性色视频| 午夜日韩在线观看| 欧美日韩国产成人精品| 欧美一二三区在线观看| 欧美久久久久| 亚洲电影免费观看高清完整版在线 | 一本色道久久88综合亚洲精品ⅰ| 久久久久久香蕉网| 在线中文字幕一区| 欧美国产乱视频| 羞羞答答国产精品www一本| 欧美日韩精品免费在线观看视频| 欧美在线欧美在线| 国产精品日韩久久久久| 亚洲精品视频免费在线观看| 国产一区二区看久久| 亚洲免费小视频| 亚洲精品欧美日韩|