夏雪婷,胡正飛,潘玲云
(南京郵電大學(xué) 自動化學(xué)院,江蘇 南京 210000)
基于OpenCV人臉檢測的室內(nèi)照明自動控制系統(tǒng)
夏雪婷,胡正飛,潘玲云
(南京郵電大學(xué) 自動化學(xué)院,江蘇 南京 210000)
目前高校教室中普遍存在長明燈、無人燈亮等現(xiàn)象。針對室內(nèi)智能照明的需要,提出了一種采用ARM處理器,集照明節(jié)能控制與圖像采集、傳輸于一體,支持信息遠程傳輸?shù)氖覂?nèi)照明自動控制系統(tǒng)。該系統(tǒng)以STM32控制器為控制核心,以C++語言進行程序設(shè)計,利用OpenCV對圖像進行處理,計算視頻圖像的Haar-like特征,并利用AdaBoost級聯(lián)分類器進行人臉檢測,識別圖像中人體個數(shù),基于VS2010開發(fā)平臺實現(xiàn)了具有人臉檢測與跟蹤功能的應(yīng)用軟件。同時將環(huán)境亮度檢測、人工控制、分區(qū)控制、延時控制、報警控制等功能加入到系統(tǒng)中,對教室照明的每組燈進行智能化細化管理。通過實驗證實了該系統(tǒng)的有效性。結(jié)果表明,該系統(tǒng)不僅很好地實現(xiàn)了自動燈光控制,同時有效地解決了無人室內(nèi)長明燈現(xiàn)象。
智能照明;人臉檢測;圖像處理;STM32;OpenCV
伴隨著各類高校的擴招,教學(xué)樓正不斷擴建。但是教室用電系統(tǒng)[1]管理不善,依然是人工管理占主導(dǎo)地位,加上高校開放型的管理模式,無人在室內(nèi)長明燈現(xiàn)象很常見,教室用電負荷不斷加大,造成資源的浪費與經(jīng)濟損失。對于南京郵電大學(xué)普通教室的照明,最少需要裝配18支40 W日光燈管,晚間照度達350 Lux以上,每天工作時間普遍達16 h,日間為11 h左右,夜間為5 h左右,全天耗電量為16×18×40=12 kwh。若以0.8元/kwh電費計算,每間教室日支出9.6元。實施智能控制的節(jié)電模式,白天從上午9時至下午5時不開燈,其節(jié)電率就至少達40%,電費節(jié)約達3.8元。南京郵電大學(xué)有2萬多名學(xué)生,至少有400間教室(其中不含公共教室),采用這種節(jié)電控制模式,每日節(jié)約電費支出1 000元左右(以僅有60%的教室開燈)??梢?,提高教室用電效率,無論對社會還是校方都大有裨益。
針對高校教室燈光管理需求,提出了低成本、多功能、實用化的解決方案。該系統(tǒng)采用ARM處理器[2]作為控制核心,集照明節(jié)能控制與圖像采集、傳輸于一體,實現(xiàn)教學(xué)樓遠程照明。同時將環(huán)境亮度檢測、人工控制、分區(qū)控制、延時控制、報警控制等功能加入到系統(tǒng)中,對教室照明的每組燈進行智能化細化管理。
系統(tǒng)以STM32控制器[3]為控制核心,由5 V穩(wěn)壓電路、過零檢測電路、攝像頭識別模塊、可見光照度傳感器模塊、照明燈驅(qū)動電路和串口調(diào)試模塊組成。室內(nèi)控制器是一個嵌入式系統(tǒng)[4],由ARM處理器、圖像采集模塊、通信模塊及擴展電路組成。利用安裝在各個教室的攝像頭采集信息,PC終端實現(xiàn)圖像信息的接收和顯示,遠程發(fā)送照明信息指令。具體的系統(tǒng)方案如圖1所示。
圖1 系統(tǒng)框圖
教室燈具布置一般采用水平均勻分布,設(shè)計照明終端時采用分組控制,根據(jù)教室內(nèi)人員分布情況控制相應(yīng)區(qū)域的照明燈具,滿足局部照度要求。采用OpenCV[5]檢測人臉,計算機終端每隔30 s獲取教室情況,判斷教室是否有人,通過ARM控制器來控制教室燈光明滅。采用On9658集成傳感器實現(xiàn)可見光照度檢測,可見光強時,教室有人不需打開燈光。
2.1 控制器硬件設(shè)計
該系統(tǒng)采用ARM內(nèi)核STM32F103作為控制核心。STM32F103可以集成多種接口,如3個UART接口、Camera接口、一個USB控制器和一個CAN控制,還具有SPI和I2C接口等。
在STM32基礎(chǔ)上,該系統(tǒng)擴展存儲器、USB電路、電源復(fù)位電路及串口等。擴展I/O口實現(xiàn)可見光照度檢測,采用On9658集成傳感器。擴展USB口實現(xiàn)電腦與攝像頭連接,室內(nèi)安裝的攝像頭采用OV7670[6],STM32F103控制器能夠良好地支持該款攝像頭,單幀畫面捕獲存儲格式為JPG。通過外加擴展芯片很方便實現(xiàn)擴展功能,適合低成本信息處理的應(yīng)用場合。硬件結(jié)構(gòu)如圖2所示。
圖2 ARM硬件結(jié)構(gòu)
2.2 光照強度檢測
On9658是一個光電集成傳感器,該器件內(nèi)置雙敏感元接收器,可見光范圍內(nèi)高度敏感,輸出電流隨照度呈線性變化。On9658內(nèi)置微弱信號CMOS放大器,輸出電流大,工作電壓范圍寬,溫度穩(wěn)定性好。
3.1 人臉檢測流程
人臉檢測[7]是指對系統(tǒng)輸入的圖片或視頻,采用一定的方法進行搜索,判斷其中是否有人存在。若是有人,將視頻圖像中各種姿態(tài)的人臉標記出來,從而定位出每個人臉的位置。采用攝像頭獲取教室內(nèi)情況,PC端軟件每隔30 s獲取一次圖像,然后將圖像進行OpenCV人臉檢測,判斷是否有人。程序流程圖如圖3所示。
圖3 人臉檢測流程圖
3.2 基于OpenCV的人臉檢測算法
基于OpenCV的人臉檢測主要完成3部分功能,即加載分類器、加載待檢測圖像以及檢測并標識。實現(xiàn)人臉檢測的流程主要包括人臉Haar-like[8]特征提取、AdaBoost[9]級聯(lián)分類器[10]生成以及人臉檢測結(jié)果輸出。
3.2.1 提取Haar-like特征
人臉特征的提取與計算是人臉檢測的關(guān)鍵。H人臉的Haar-like特征易于區(qū)分,能夠區(qū)分人臉同背景或其他目標,并且不依賴于外部條件變化,因此Haar-like特征是人臉檢測的關(guān)鍵特征。
Haar-like特征分為四類:邊緣特征、線性特征、中心特征和對角線特征,組合成特征模板。特征模板內(nèi)有白色和黑色兩種矩形,并定義該模板的特征值為白色矩形像素和減去黑色矩形像素和。在確定了特征的形式之后,Haar-like特征的數(shù)量就取決于訓(xùn)練樣本圖像矩陣的大小,特征模板在子窗口內(nèi)任意放置,一種形態(tài)稱為一種特征,然而找出所有子窗口的特征是進行弱分類訓(xùn)練的基礎(chǔ)。
3.2.2 基于AdaBoost 算法的分類器
為了高效檢測人臉圖像,可以采用基于級聯(lián)結(jié)構(gòu)的AdaBoost算法。AdaBoost是一種級聯(lián)分類器,原理是采用迭代思想實現(xiàn)分類器的加權(quán)平均,挑選最優(yōu)弱分類器。圖4為AdaBoost算法訓(xùn)練示意圖。
圖4 AdaBoost算法訓(xùn)練示意圖
AdaBoost算法訓(xùn)練的具體過程為:
(1)初始所有訓(xùn)練樣例的權(quán)重為1/N,其中N是樣例數(shù)。
(2)form=1,2,…,M
(a)訓(xùn)練弱分類器ym(),使其最小化權(quán)重誤差函數(shù)(WeightedErrorFunction):
(1)
(b)計算該弱分類器的話語權(quán)α:
(2)
(c)更新權(quán)重:
(3)
Zm是規(guī)范化因子,使所有w的和為1。
(4)
(3)得到最后的分類器。
(5)
3.2.3 部分程序代碼
staticCvHaarClassifierCascade*cascade=0;
staticCvMemStorage*storage=0;
voiddetect_and_draw(IplImage*image);
constchar*cascade_name="D:\Program
Files\OpenCV2.1\data\haarcascades\haarcascade_frontalface_alt.xml";
//人臉檢測要用到的分類器(包含絕對路徑)
int_tmain(intargc,_TCHAR*argv[ ])
{
cascade=(CvHaarClassifierCascade*)cv;
Load(cascade_name,0,0,0);
//加載人臉檢測所用的分類器
if(!cascade)
{
fprintf(stderr,"ERROR:Couldnotloadclassifiercascade ");
return-1;
}
storage=cvCreateMemStorage(0); //動態(tài)存儲結(jié)構(gòu),用來存儲人臉在圖像中的位置
cvNamedWindow("result",1);
constchar*filename="11.jpg";
//待檢測圖像(包含絕對路徑)
constchar*filename="D:\angle.jpg";
IplImage*image=cvLoadImage(filename,1);
//加載圖像
detect_and_draw(image);
//對加載的圖像進行檢測
cvWaitKey(0);
cvReleaseImage(&image);
cvDestroyWindow("result");
return0;
}
3.3 照明終端軟件設(shè)計
照明終端采用VS2010[11]開發(fā)平臺借助OpenCV2.3.1輔助開發(fā)庫,實現(xiàn)了具有人臉檢測與跟蹤功能[12]的應(yīng)用軟件。主程序包括完成光照強度、人臉檢測,根據(jù)條件判斷是否有人存在,完成開啟、關(guān)閉照明控制。終端與控制器采用中斷方式,響應(yīng)控制器查詢和控制指令。主程序設(shè)計流程如圖5所示。
圖5 主程序流程
該系統(tǒng)軟件設(shè)計采用C++[13]語言在VS2010開發(fā)平臺實現(xiàn)。該軟件利用VC++[14]中應(yīng)用程序結(jié)構(gòu)創(chuàng)建,并調(diào)用OpenCV圖像處理函數(shù)實現(xiàn)對圖像的各種操作以及存儲操作。
為證明該系統(tǒng)的有效性,利用攝像頭捕捉了教室內(nèi)1張圖像,如圖6所示。該系統(tǒng)過程除了適用于高質(zhì)量視頻外,還適用于光線變化、干擾物、部分遮擋存在的視頻圖像,均表現(xiàn)出較好的魯棒性。
圖6 人臉檢測結(jié)果
為了實現(xiàn)照明控制信息的智能化,滿足節(jié)能、高效的教學(xué)管理需要,提出了一種基于ARM處理器,支持信息遠程傳輸?shù)臒艄庾詣涌刂葡到y(tǒng)。仿真實驗結(jié)果表明,該系統(tǒng)不僅集照明節(jié)能控制與圖像采集、傳輸于一體,很好地實現(xiàn)了自動燈光控制,同時有效地解決了傳統(tǒng)照明控制方式管理落后、能源浪費等問題。
[1] 黃小慶,張軍永,朱玉生,等.基于物聯(lián)網(wǎng)的輸變電設(shè)備監(jiān)控體系研究[J].電力系統(tǒng)保護與控制,2013,41(9):137-141.
[2] 趙立輝,霍春寶.基于ARM9的遠程視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].沈陽大學(xué)學(xué)報,2009,21(3):108-110.
[3] 劉燕燕,楊幫華,丁麗娜,等.基于STM32的紅外火災(zāi)探測系統(tǒng)設(shè)計[J].計算機測量與控制,2013,21(1):51-53.
[4] 胥 靜.嵌入式系統(tǒng)設(shè)計與開發(fā)實例詳解:基于ARM的應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[5] 劉瑞禎,于仕琪.OpenCV教程基礎(chǔ)篇[M].北京:北京航空航天大學(xué)出版社,1999.
[6] 王 晗,李 翔,李忠敏,等.基于OV7670的圖像采集與顯示設(shè)計[J].中國科技信息,2013(11):90-91.
[7] 梁路宏,艾海舟,肖習(xí)攀,等.基于模板匹配與支持矢量機的人臉檢測[J].計算機學(xué)報,2002,25(1):22-29.
[8] 曹正貴,馬 文,王志鋒.基于膚色與新型Haar—Like特征的人臉檢測算法研究[J].廣東通信技術(shù),2015,35(11):27-32.
[9] 李明瑞,傅 明,曹 敦.基于膚色檢測的AdaBoost人臉檢測算法改進[J].計算機工程,2012,38(19):147-150.
[10] Chen Chao-Ho,Chen Tsong-Yi,Wang Da-Jinn,et al.A cost-effective people-counter for a crowd of moving people based on two-stage segment[J].Journal of Information Hiding and Multimedia Signal Processing,2012,3(1):12-23.
[11] 楊家臣,鄭曉濤,朱進全.基于VS2010的FPSO外輸指揮系統(tǒng)的開發(fā)[J].石油機械,2013,41(10):60-64.
[12] Badu R V,Perez P,Bouthemy P.Robust tracking with motion estimation and local kernei-based color modeling[J].Image Vision Computing,2007,25(8):1205-1216.
[13] Bradski G,Kaehler A.Learning OpenCV:computer vision in C++ with the OpenCV library[M].[s.l.]:O’Reilly Media,lnc.,2013.
[14] 向世明.VC++數(shù)字圖像與圖形處理[M].北京:電子工業(yè)出版社,2002.
Indoor Automatic Lighting Control System with OpenCV Face Detection
XIA Xue-ting,HU Zheng-fei,PAN Ling-yun
(College of Automation,Nanjing University of Posts and Telecommunications,Nanjing 210000,China)
Currently,there are ever-burning lamps,no one lighting,and other electricity wasting phenomena in colleges and universities.According to the need of indoor intelligent lighting energy conservation,an indoor lighting automatic control system with ARM processor is proposed,where energy-saving lighting control,image acquisition and transmission are set in one,supporting the remote transmission of information.It uses the STM32 controller as control center and C++ language for programming,and adopts OpenCV to proceed image processing and calculates the Haar-like feature of the video image.And the AdaBoost cascade classifier is applied for face detection to recognize the number of human body in the image.With the VS2010 development platform,the application software which has the function of face detection and tracking is realized.At the same time,the functions are added to the system,such as environmental brightness detection,manual control,partition control,time delay control,alarm control and so on,for intelligent refinement management of each group of lights in classroom.The effectiveness of the system is verified by experiments.The results show that the system not only realizes the automatic lighting control,but also effectively solves the ever-burning lamps phenomenon with no people indoor effectively.
intelligent lighting;face detection;image processing;STM32;OpenCV
2016-05-07
2016-09-08
時間:2017-03-07
國家自然科學(xué)基金資助項目(61271234)
夏雪婷(1990-),女,碩士,研究方向為計算機監(jiān)測控制技術(shù);胡正飛,碩士,副教授,研究方向為機械設(shè)計與控制。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170307.0921.022.html
TP302
A
1673-629X(2017)04-0184-04
10.3969/j.issn.1673-629X.2017.04.041