裘 超,孟憲超,常 帥
(西北工業(yè)大學 電子信息學院,陜西 西安 710072)
智能家居又稱為智能住宅,在國外常用Smart Home表示。與智能家居含義近似的有家庭自動化(Home Automation)、電子家庭(Electronic Home、E-home)、數字家園(Digital Family)、家庭網絡(Home Net/Networks for Home)、網絡家居(Network Home)、智能家庭/建筑(Intelligent Home/Building)等[1]。
智能家居系統(tǒng)利用先進的計算機技術、網絡通訊技術、綜合布線技術將與家居生活有關的各種子系統(tǒng)有機地結合在一起,通過統(tǒng)籌管理,讓家居生活更加舒適、安全。智能家居可以提供全方位的信息交換功能,幫助家庭與外部保持信息交流通暢,優(yōu)化人們的生活方式,增強家居生活的安全性,甚至為各種能源費用節(jié)約資金。
智能家居是利用先進的計算機技術、嵌入式系統(tǒng)和網絡通訊技術,將家庭中的各種設備(如照明系統(tǒng)、環(huán)境控制、安防系統(tǒng)、網絡家電)通過家庭網絡連接到一起的,自從美國在1984真正的智能建筑出現以來,國外已經有將近30年的研究歷史,而國內在這方面的研究相對較晚,從2003年才逐步應用于高端市場,而且標準不統(tǒng)一,如海信、海爾、清華大學等大家各自為營。由于智能家居系統(tǒng)具有安全、方便、高效、快捷、智能化和個性化的獨特魅力,使得智能家居的開發(fā)與建設成為21世紀科技發(fā)展的必然趨勢。隨著全球對能源和環(huán)境的要求越來越高,而智能家居在節(jié)能方面的效果優(yōu)勢非常明顯,因此具有非常廣闊的市場前景。
本項目所使用開發(fā)板為Real6410開發(fā)板,采用三星公司的ARM11內核的處理器S3C6410。開發(fā)板上還集成了123 M的DDR內存以及1 GB NandFlash,同時預留了256 k NorFlash。底板上還提供兩個四線 RS-232串口,一個USB HOST接口,一個10 M/100 M自適應以太網接口等外設[2]。
目前,各種智能家居系統(tǒng)的設計多以有線為主,但有線技術并不適用于智能家居的普及,安裝難度大以及價格昂貴的缺點限制了其發(fā)展。因此無線通信技術應用到智能家居中必將成為將來的發(fā)展趨勢和潮流。
本項目對家居設備通過Zigbee進行無線組網,把家居設備的信息和數字視頻傳輸到因特網網絡上,在因特網上設立一個“無線視頻網關”WEB服務器,可供外部訪問;將家居信息如溫度進行實時的顯示并進行后續(xù)的利用控制;同時將收集各處傳輸進來的數字視頻進行后續(xù)的處理和識別。
本項目主要完成智能家居的環(huán)境變量和視頻信號的監(jiān)控。整個系統(tǒng)包括一塊ARM11開發(fā)板,一個16位單片機,2個USB的CMOS攝像頭;一臺PC機(運行客戶端的監(jiān)控程序)根據功能的不同,整個系統(tǒng)可劃分由視頻采集模塊、數據壓縮、編碼模塊和視頻監(jiān)控PC等組成。采集模塊包括USB攝像頭;數據的壓縮編碼由ARM11處理器完成;視頻監(jiān)控PC完成視頻客戶端的功能;PC機完成對開發(fā)系統(tǒng)的程序開發(fā)、調試等。圖1為系統(tǒng)的組成結構。
圖1 系統(tǒng)組成結構Fig.1 System composition
整個智能家居系統(tǒng)的設計可分為兩大部分:
1)WEB服務器端設計;
2)客戶機終端監(jiān)控軟件的設計。
3.2.1 WEB服務器端設計
首先為ARM開發(fā)板定制一個合適的Linux內核 (內核版本:Linux 2.6.28),然后對其進行裁剪,使其具有基本內核功能,同時保留TCP/IP協(xié)議棧,串口協(xié)議以及相應的視頻編解碼模塊,使系統(tǒng)利用盡量少的硬件資源來滿足任務的處理工作。然后是開發(fā)一個運行于Linux下的WEB服務器程序,其實現的基本功能是通過USB攝像頭的圖像數據采集,完成對視頻信息的獲取、壓縮和編碼 (具體的編碼標準為當前較為流行的 H264編碼)。然后通過TCP/IP協(xié)議將數據打包發(fā)送到網絡,同時利用Socket實現服務器監(jiān)聽功能,這樣就可以接受來自客戶機的監(jiān)控請求。具體的工作內容如下:
1)USB攝像頭的驅動程序移植;
2)H264視頻編碼程序移植;
3)視頻采集和傳輸的應用程序的設計;
4)通過Zigbee獲取傳感器相關信息。
圖2為WEB服務器的工作流程,圖3為ARM通過網頁采集的視頻圖像,其IP地址為:168.192.1.1:8080,此視頻即可以通過網頁顯示,也可以通過相應基于 I386或Linux的監(jiān)控軟件進行查看[3]。
圖2 WEB服務器工作流程圖Fig.2 WEB server work flow chart
圖3 ARM通過網頁采集的視頻信息Fig.3 Video information collected through the Web
3.2.2 客戶機終端監(jiān)控軟件設計
客戶機終端監(jiān)控軟件采用MFC編寫,可實現來自WEB服務器端的實時視頻預覽、視頻錄制、視頻截圖及傳感器參數的實時顯示等功能。程序采用多線程技術:一個線程進行視頻信息的解碼和播放功能,另一個線程實現視頻錄制功能。
另外還采用了視頻信息疊加的方法,可以對環(huán)境變量進行屏幕疊加,能在錄制時完成信息的錄制和再現。圖4為終端監(jiān)控軟件。
圖4 客戶機終端監(jiān)控軟件Fig.4 Terminal monitoring software
Zigbee是IEEE 802.15.4協(xié)議的代名詞。根據這個協(xié)議規(guī)定的技術是一種短距離、低功耗的無線通信技術。IEEE-802.15.4規(guī)范是一種經濟、高效、低數據速率(<250 kbps)、工作在2.4 GHz和868/928 MHz的無線技術,用于個人區(qū)域網和對等網絡[4]。本項目使用Zigbee完成傳感器信息的傳輸。傳感器信息由一端Zigbee接收后發(fā)送至另一端Zigbee,然后傳入RS232串口中。具體傳輸模型如圖5所示。
圖5 傳感器信息通過Zigbee傳輸模型Fig.5 Zigbee transport model
DirectShow是微軟公司在ActiveMovie和Video for Windows的基礎上推出的新一代基于COM(Component Object Model)的流媒體處理的開發(fā)包。DirectShow技術對處理圖像序列或用攝像機捕獲的序列尤其有用。本項目使用VC開發(fā)基于DirectShow技術實現視頻采集。通過#pragma comment(lib, "winmm.lib")鏈接靜態(tài)庫 winmm.lib,便可以實現windows多媒體編程。
智能家居系統(tǒng)客戶機監(jiān)控軟件采用MFC編寫。其中關鍵技術包括多線程以及Socket()。
監(jiān)控軟件中包括previewVideo線程 (通過函數UINT previewVideo(LPVOID videoCtl)實現)實現視頻的預覽功能以及 recordVideo線程 (通過函數 UINT recordVideo(LPVOID videoCtl)實現)實現視頻錄制功能。打開攝像頭后通過AfxBeginThread (previewVideo,&m_video)函 數啟動 preview Video視頻預覽線程,用戶便可以通過監(jiān)控軟件預覽視頻圖像。當用戶點擊錄制視頻按鈕時,首先通過函數SuspendThread(pVideoThread->m_hThread)掛起 previewVideo視頻預覽線程,然后通過函數AfxBeginThread(recordVideo,&m_video)啟動recordVideo視頻錄制線程。當用戶點擊停止錄制按鈕時,軟件通過函數ResumeThread(pVideoThread->m_hThread)恢復previewVideo視頻預覽線程。終端監(jiān)控軟件通過previewVideo線程以及recordVideo線程便能很好的實現客戶機的視頻預覽和視頻錄制功能。線程模型如圖6所示。
圖6 線程模型Fig.6 Threading model
智能家居系統(tǒng)使用Socket()實現客戶機與服務器之間的通信。通過USB攝像頭采集數據,對數據進行獲取、壓縮和編碼后通過TCP/IP協(xié)議將數據打包發(fā)送到網絡,同時在服務器端創(chuàng)建Socket()進行監(jiān)聽,來接受客戶機的請求。當客戶機發(fā)送connect()連接請求后,服務器通過 accept()接收客戶機連接請求。然后服務器與客戶機之間通過send()函數和recv()函數實現發(fā)送、接收數據。Socket()通信模型如圖7所示。
圖7 Socket通信模型Fig.7 Socket communication model
為了減少網絡傳輸和系統(tǒng)的壓力,在視頻采集端,每采集一次圖像就對采集的數據進行一次處理。該函數設定一個圖像發(fā)生變化的閾值c_limit,然后將圖像所有像素之差與閾值c_limit進行比較,如果大于閾值c_limit,則認為圖像發(fā)生了變化,否則即認為沒有變化,則不將該次采集的圖像數據寫入JPEG文件保存,這樣可以極大地提高視頻存儲的能力,同時減少各資源的浪費。
OpenCV是Intel公司面向應用程序開發(fā)者開發(fā)的計算機視覺庫,其中包含大量的函數用來處理計算機視覺領域中常見的問題,例如運動分析和跟蹤、人臉識別、3D重建和目標識別等。
在openCV函數可編程過程中,CvSize和IpImage是兩個比較常用的結構。CvSize結構表示矩形尺寸的結構,結構中分別定義了矩形的寬度和高度。IpImage結構主要針對視覺方面處理[5]。
軟件實現中首先通過函數IpImage*cvCreateImage(cvSize(img->width,img->height), 8, 1 )為圖像分配內存,然后使用函數 cvCvtColor(img,gray,CV_BGR2GRAY )將 RGB圖像轉為灰度圖像。為了讓輸入圖像大小相同通過cvResize(gray,small_img,CV_INTER_LINEAR)對圖像進行縮放,函數cvEqualizeHist(small_img,small_img)實現灰度圖像直方圖均衡化。然后利用函數cvHaarDetectObjects(small_img,cascade, storage1,1.1, 2, CV_HAAR_DO_CANNY_PRUNING,cvSize(30,30))對圖像進行臉部檢測,最后利用函數cvGetSeqElem、cvRound、cvCircle將臉部用圓圈標示。圖8為臉部檢測效果圖。
圖8 臉部檢測效果圖Fig.8 Face detection
項目社會和經濟效益分析。
主要用途和應用范圍:1)對機要部門的監(jiān)視、控制和報警,如檔案室、文件室、金庫、博物館等;2)工廠、市場等的監(jiān)視,如工廠生產過程、市場、營業(yè)廳、展覽廳、貨場等的監(jiān)視;3)對交通運輸的監(jiān)視,如公共交通、鐵路車站、鐵路調度等的監(jiān)視;4)用于安全報警,如防盜、防火等的報警;5)在安全身產方面的應用,如煤礦等。
經濟效益:隨著人們生活水平的提高,大家對智能家居的需求越來越高,而作為中國房地產的配套產業(yè),中國的智能家居經過多年發(fā)展,已成為一個集控制、計算機、家電等多種新技術為一體的新興產業(yè)。但是,由于市場不規(guī)范、行業(yè)標準不完善,市場發(fā)展并不是很成熟,如今還處于群雄逐鹿的“戰(zhàn)國時代”。具有很大的市場潛力。
社會效益:隨著哥本哈根會議和“十二五規(guī)劃”當前,當低碳減排已成為一項國家行動,而智能家居在這方面有自己的優(yōu)勢。其不僅智能而且節(jié)能,具有較高的社會效益.。
[1]馬菁菁.Zigbee無線通信技術在智能家居中的應用研究[D].武漢:武漢理工大學,2007.
[2]華天正科技.Real6410用戶手冊[S].2010.
[3]廣州友善之臂計算機科技有限公司.基于Mini2440通過網絡瀏覽和控制CMOS或USB攝像頭[S].2009.
[4]金純.Zigbee技術基礎及案例分析[M].北京:國防工業(yè)出版社,2008.
[5]劉瑞幀,于仕琪.OpenCV教程基礎篇[M].北京:北京航空航天大學出版社,2007.
[6]韋東山.嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
[7]程仙送.基于Zigbee的無線外設控制器設計與實現 [D].武漢:武漢理工大學,2007.
[8]薛繁平.DSP網絡視頻監(jiān)控及OpenCV在DSP平臺的移植[D].廈門:廈門大學,2009.
[9]程哲,陳和平.基于OpenCV的運動目標檢測技術[J].四川兵工學報,2009(11):1-3,6.CHENG Zhe,CHEN He-ping.Detection technologyof moving target based on openCV[J].Journal of Sichuan Ordnance,2009(11):1-3,6
[10]柴樹杉 .基于OpenCV的漢字繪制研究[R].北京:計算機工程與設計,2008.