李科煌 ,楊宇紅,孟祥鵬
(1.上海交通大學(xué) 圖像通信與信息處理研究所,上海 200240;2.上海市數(shù)字媒體處理與傳輸重點(diǎn)實(shí)驗(yàn)室,上海 200240)
近些年來,全國各大城市商業(yè)樓宇的電視廣告業(yè)務(wù)飛速發(fā)展,但是伴隨著低層次的規(guī)模擴(kuò)張,樓宇廣告公司一直缺少具有高附加值的廣告服務(wù),無法向客戶準(zhǔn)確反饋廣告的投放效果,不能就投放內(nèi)容作出合理調(diào)整。本文嘗試應(yīng)用目標(biāo)檢測技術(shù),判別在一定場景內(nèi)的人員數(shù)量以及每個(gè)個(gè)體的面部方向,從而可以統(tǒng)計(jì)出每個(gè)廣告投放設(shè)備在單位時(shí)間內(nèi)通過的人流數(shù)量與實(shí)際關(guān)注人數(shù),這一數(shù)據(jù)是廣告投放效果的重要指標(biāo),對(duì)廣告服務(wù)提供商以及客戶的市場營銷決策具有至關(guān)重要的意義。
目標(biāo)檢測與跟蹤技術(shù)是模式識(shí)別與人工智能領(lǐng)域研究的一個(gè)熱點(diǎn)問題,其在人機(jī)交互、自動(dòng)監(jiān)控、視頻檢索以及交通監(jiān)測等領(lǐng)域有著廣泛的應(yīng)用[1-2]。人臉檢測與方向推定算法的難點(diǎn)主要在于:1)人臉面部特征的差異;2)人臉姿態(tài)的變化;3)光照及陰影等環(huán)境因素的影響;4)眼鏡、頭發(fā)、口罩等物體對(duì)人臉的遮擋。
本文中的系統(tǒng),在進(jìn)行人臉檢測與方向推定,從而得到人流數(shù)量與實(shí)際關(guān)注人數(shù)的同時(shí),還實(shí)時(shí)播放標(biāo)清格式的音視頻和圖片內(nèi)容,對(duì)系統(tǒng)的體積和功耗也有一定的要求,這對(duì)系統(tǒng)硬件平臺(tái)的選擇提出了很大的挑戰(zhàn)。
本文系統(tǒng)較好地解決了如上所述的各種難題,針對(duì)各種難點(diǎn)及系統(tǒng)需求,設(shè)計(jì)并完成了系統(tǒng)設(shè)計(jì)。系統(tǒng)采用普通USB網(wǎng)絡(luò)攝像頭,通過嵌入式系統(tǒng)進(jìn)行數(shù)據(jù)采集、人臉檢測及方向推定算法處理,并通過網(wǎng)絡(luò)將數(shù)據(jù)上傳至遠(yuǎn)程計(jì)算機(jī)。該系統(tǒng)設(shè)計(jì)靈活,可以根據(jù)需求對(duì)系統(tǒng)進(jìn)行擴(kuò)展和裁減,并可方便地進(jìn)行系統(tǒng)的升級(jí)與維護(hù),具有一定的價(jià)值。
嵌入式系統(tǒng)使用的是瑞爾泰科技有限公司(ICETEK)的OMAP3530 MiniBoard(后簡稱MiniBoard)。Mini-Board具有較為完備的通用硬件接口,可以連接市場上通用的計(jì)算機(jī)設(shè)備,且支持Linux操作系統(tǒng)。該MiniBoard使用OMAP3530芯片,包含一個(gè)ARM核,一個(gè)圖形加速協(xié)處理器以及一個(gè)DSP核,功能強(qiáng)大,非常適合對(duì)圖形及運(yùn)算有一定需求的嵌入式系統(tǒng)。
本系統(tǒng)使用經(jīng)過裁減的Linux操作系統(tǒng),全面支持圖形界面,支持更豐富的外設(shè)種類及多媒體功能。
系統(tǒng)的構(gòu)成如圖1所示,系統(tǒng)分為本地與遠(yuǎn)程2個(gè)部分。本地系統(tǒng)是本文主要討論的部分,遠(yuǎn)程計(jì)算機(jī)負(fù)責(zé)收集來自各地的數(shù)據(jù),并對(duì)各本地系統(tǒng)進(jìn)行統(tǒng)一的管理維護(hù),該部分技術(shù)不在本文內(nèi)容之列。
本地系統(tǒng)有2個(gè)重要功能組成:視頻播放和觀眾檢測。加上主控單元,本地系統(tǒng)共分為3個(gè)模塊,即視頻解碼播放模塊、人臉采集檢測模塊和控制模塊。
1)視頻解碼播放模塊
該模塊根據(jù)控制模塊相應(yīng)指令,從SD,CF,F(xiàn)lash等存儲(chǔ)介質(zhì)中讀取標(biāo)清音視頻以及圖片文件,經(jīng)過OMAP3530上的C64x+DSP核解碼后實(shí)時(shí)顯示在LCD等顯示設(shè)備上。核心板的外部接口中有DVI輸出和S-Video輸出,為了充分表現(xiàn)解碼后視頻的效果,采用19~21 in的DVI液晶顯示器。
2)人臉采集檢測模塊
該模塊根據(jù)攝像頭采集的圖像信息,在ARM處理器上經(jīng)過預(yù)處理、Adaboost、SVR等算法,得到現(xiàn)場的人流及關(guān)注方向的信息,交送到控制模塊。MiniBoard上沒有攝像頭輸入接口,同時(shí)考慮到USB攝像頭的便捷性,采用具有640×480分辨力的USB攝像頭進(jìn)行圖像采集。然后使用目前高效準(zhǔn)確的Adaboost算法進(jìn)行人臉檢測,并對(duì)檢測到的人臉使用SVR算法進(jìn)行人臉朝向推定。這兩種方法通過一定的優(yōu)化,使用資源小,便于嵌入式實(shí)現(xiàn)。
3)控制模塊
該模塊負(fù)責(zé)系統(tǒng)的初始化以及總體控制工作,它根據(jù)系統(tǒng)的預(yù)設(shè)工作模式,控制人臉采集檢測與方向推定模塊和視頻解碼模塊進(jìn)行相應(yīng)的工作。同時(shí)控制模塊可以將人臉檢測和推定結(jié)果上傳給遠(yuǎn)程計(jì)算機(jī),接受遠(yuǎn)程計(jì)算機(jī)的指令。
本嵌入式系統(tǒng)的軟件需要完成幾項(xiàng)功能:在顯示器上播放存儲(chǔ)于本地的視頻內(nèi)容;攝像頭采集觀看視頻的用戶圖像,進(jìn)行人臉檢測獲得數(shù)據(jù);將拍攝到的數(shù)據(jù)以及計(jì)算結(jié)果上傳到上位控制機(jī)去??刂迫藛T和上位機(jī)可以通過交互接口觀察系統(tǒng)運(yùn)行情況。
進(jìn)行本地存儲(chǔ)視頻解碼及播放的功能交由OMAP3上的DSP完成,該部分軟件使用TI提供的H.264解碼播放程序處理。該程序占用部分ARM資源,并占用系統(tǒng)一半的內(nèi)存資源。但由于主要解碼工作由DSP完成,ARM核可以有足夠的資源完成其他工作。
ARM端在Linux系統(tǒng)啟動(dòng)并完成各模塊驅(qū)動(dòng)的加載之后,其核心的工作是進(jìn)行人臉的檢測及其朝向的推定,與此相關(guān)的是由攝像頭采集與處理,以及處理后的數(shù)據(jù)存儲(chǔ)與上傳。這也是本系統(tǒng)的核心算法部分,其具體流程圖見圖2。
人臉檢測使用近年提出的Adaboost算法進(jìn)行,該方法準(zhǔn)確率高,且效率大大優(yōu)于之前的其他算法,可以接近實(shí)時(shí)檢測。使用支持向量回歸(SVR)對(duì)檢測到的人臉進(jìn)行姿態(tài)推定,通過主分量分析(PCA)和支持向量,非常有效地減少了運(yùn)算量。
大多數(shù)Adaboost算法[3]采用Haar函數(shù)作為特征提取算法。由于Haar函數(shù)為矩陣形式,可以利用積分圖快速求取,從而能夠很大程度地提高算法的效率,這也是Adaboost相對(duì)于其他人臉識(shí)別算法的一個(gè)主要優(yōu)勢?;綡aar特征及積分圖計(jì)算示意圖見圖3。
如計(jì)算圖3所示的基本Haar特征中的第1個(gè),并規(guī)定該特征為上半部分減下半部分,則該特征的計(jì)算為S=A-B-2C+2D+E-F。再進(jìn)行零均值處理,用到被檢測區(qū)塊的像素和,可以從積分圖計(jì)算一次得到并存儲(chǔ)。之后,進(jìn)行歸一化處理,用到被檢測區(qū)塊的平方和,可以從原圖的平方積分圖計(jì)算得到并存儲(chǔ)。最后得到特征值為
式中:M為特征塊的有效面積,xij為被檢測塊的像素值。
為了減輕運(yùn)算的復(fù)雜度,同時(shí)又保證較好的效果,需要一個(gè)級(jí)聯(lián)的分類器進(jìn)行逐步淘汰。每個(gè)像素特征有其權(quán)重α,若其特征值s通過判定,則被檢測塊的累計(jì)特征值增加α,每一級(jí)分類的像素特征檢測結(jié)束后,累計(jì)特征值與閾值比較,不到閾值的被檢測塊被丟棄。即對(duì)第k級(jí)分類器
式中:Tk為累計(jì)特征值,θi為特征值si的判定條件。
在嵌入式實(shí)現(xiàn)中,這種級(jí)聯(lián)有效地減少每次淘汰非人臉位置時(shí)的運(yùn)算開銷。由于每次增加的特征數(shù)量有限,計(jì)算新特征的時(shí)間和內(nèi)存使用較少。新特征的計(jì)算結(jié)果被累計(jì)到前一次的結(jié)果上,用于當(dāng)前這一級(jí)分類器的分類。本系統(tǒng)還通過追蹤搜索,進(jìn)一步減少資源開銷。改進(jìn)后的Adaboost人臉識(shí)別算法如圖4所示。
追蹤搜索將前3級(jí)分類器合并,如果1個(gè)人臉位置能夠通過第1級(jí)判定,就直接進(jìn)行下一級(jí)判定,3次都通過的被保留。使用原始的逐級(jí)篩選就需要存儲(chǔ)第1級(jí)分類后所有未被過濾掉的人臉位置的信息(包括被檢測區(qū)塊的位置、均值、方差和當(dāng)前累計(jì)特征值)。而追蹤搜索則存儲(chǔ)3級(jí)分類后的結(jié)果。實(shí)際使用1/3降采樣并考慮一定的冗余,存儲(chǔ)的檢測塊為8 000個(gè)。對(duì)于不同大小的檢測塊,Haar特征是線性縮放的,經(jīng)縮放的Haar特征被提前計(jì)算并存儲(chǔ)。如表1所示,相比于基本算法,本系統(tǒng)內(nèi)存使用減少為42%。
表1 各部分?jǐn)?shù)據(jù)內(nèi)存需求比較 byte
給定一幅場景圖像,通過前面的Adaboost算法提取出包含人臉區(qū)域的部分?;赟VR的人臉姿態(tài)推定算法[4]則根據(jù)人臉的圖像,判斷出人臉的姿態(tài),得出人臉朝向。
先通過主分量分析(PCA),將人臉圖像(40×40)進(jìn)行預(yù)處理,為SVR做準(zhǔn)備。經(jīng)過PCA后,原始40×40=1 600維的向量降為50維。SVR利用支持向量機(jī)(SVM)對(duì)輸入的數(shù)據(jù)進(jìn)行回歸。其輸入為經(jīng)過PCA處理后的多維向量,而函數(shù)值為該人臉在某一個(gè)維度上的角度。SVR最終擬合出一條曲線,用于分類。
在SVR的訓(xùn)練過程中,采用了5種分類,即左臉、半左臉、正臉、半右臉、右臉,從而提高了對(duì)于半側(cè)臉的檢測率。訓(xùn)練后得到的支持向量是201個(gè)。在進(jìn)行方向推定時(shí),5種分類被合并成3種,即左臉、正臉、右臉,其中左臉、半左臉合并為左臉,右臉、半右臉合并為右臉。這樣在不增加計(jì)算的情況下提高了側(cè)臉的檢測率。
為了滿足系統(tǒng)需求,要對(duì)Linux系統(tǒng)進(jìn)行裁剪和驅(qū)動(dòng)調(diào)試。在內(nèi)核中支持各類USB設(shè)備,包括USB攝像頭和網(wǎng)卡,網(wǎng)絡(luò)支持DHCP,支持Linux下通用視頻接口V4L2,并為系統(tǒng)安裝網(wǎng)絡(luò)文件服務(wù)(NFS),以及JPEG圖片解壓縮程序(DJPEG)。
系統(tǒng)與遠(yuǎn)程計(jì)算機(jī)通信如圖5所示。系統(tǒng)向遠(yuǎn)程計(jì)算機(jī)傳輸?shù)臄?shù)據(jù)是USB設(shè)備采集的圖像、經(jīng)過Adaboost檢測出人臉的位置,以及經(jīng)過SVR得到的各人臉的方向推定結(jié)果。圖像采用JPEG格式節(jié)省帶寬。
本系統(tǒng)的升級(jí)是通過遠(yuǎn)程Linux服務(wù)機(jī)實(shí)現(xiàn)的,而遠(yuǎn)程控制界面則是在Windows操作系統(tǒng)下的,從而獲得較大靈活性和實(shí)用性。
首先使用一些測試圖片對(duì)人臉檢測和方向推定算法進(jìn)行了測試,如表2所示。Adaboost算法的訓(xùn)練樣本數(shù)為300,測試樣本30;SVM訓(xùn)練樣本為3 000,測試樣本為300。樣本來源包括MIT人臉數(shù)據(jù)庫,也包括自己拍攝的圖像。在PC端利用Matlab和OpenCV分別進(jìn)行訓(xùn)練及仿真測試。仿真時(shí)可以做到對(duì)640×480的監(jiān)控畫面進(jìn)行實(shí)時(shí)搜索和方向推定。
表2 Adaboost及SVM測試準(zhǔn)確率%
而后,需要在完整搭建的系統(tǒng)上進(jìn)行功能測試,先對(duì)攝像頭圖像采集、圖像預(yù)處理、人臉?biāo)惴ㄌ幚硪约皩?duì)結(jié)果信息上傳進(jìn)行分塊測試。測試通過后,進(jìn)行了系統(tǒng)整體測試。為此在實(shí)驗(yàn)室內(nèi)使用兩臺(tái)PC機(jī)作為升級(jí)服務(wù)器和遠(yuǎn)程結(jié)果查看端,將MiniBoard和PC通過路由器連接在一個(gè)局域網(wǎng)內(nèi)。MiniBoard外接21 in DVI液晶顯示器,使用USB-HUB擴(kuò)展連接USB網(wǎng)絡(luò)攝像頭(640×480分辨力)、USB網(wǎng)卡、USB鼠標(biāo)鍵盤。先為H.264視頻解碼播放程序分配資源后,啟動(dòng)程序,進(jìn)行主控、圖像采集、人臉檢測與方向推定、數(shù)據(jù)上傳。測試結(jié)果顯示,系統(tǒng)完成從采集到數(shù)據(jù)上傳的一次循環(huán)需要2~6 s,可以同時(shí)保證視頻播放的實(shí)時(shí)性。實(shí)驗(yàn)環(huán)境下,人臉檢測的正確率超過80%,方向推定的準(zhǔn)確率超過90%。
目前,該系統(tǒng)在實(shí)驗(yàn)室環(huán)境下檢測及方向推定準(zhǔn)確率較高,但是系統(tǒng)對(duì)于攝像頭設(shè)備和環(huán)境光線較敏感。考慮到在實(shí)際應(yīng)用環(huán)境中往往會(huì)因人員密度過大而出現(xiàn)人臉的遮擋現(xiàn)象,下一步的提升目標(biāo)就是在進(jìn)一步優(yōu)化算法、提升運(yùn)算速度與穩(wěn)健性的同時(shí),解決在部分遮蔽情況下的人臉識(shí)別與方向推定問題。
本系統(tǒng)可以作為一種智能視覺的廣告機(jī)原形,進(jìn)一步的開發(fā)可以使其應(yīng)用于諸如商務(wù)寫字樓等處,為廣告播放結(jié)果進(jìn)行數(shù)據(jù)統(tǒng)計(jì)和上傳。布置廣告機(jī)的地方不一定有以太網(wǎng),可以考慮諸如U盤數(shù)據(jù)拷貝、藍(lán)牙數(shù)據(jù)傳輸,或者利用GPRS將最為關(guān)鍵的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行周報(bào)或者日?qǐng)?bào),從而進(jìn)一步提升系統(tǒng)實(shí)用價(jià)值。
[1]劉曉克,孫燮華,周永霞.基于新Haar-like特征的多角度人臉檢測[J].計(jì)算機(jī)工程,2009,35(19):195-197.
[2]徐顯日,戴在平,蔡燦輝.新型人臉檢測算法在視頻監(jiān)控系統(tǒng)中的應(yīng)用[J].電視技術(shù),2008,32(4):89-90.
[3]SHAKHNAROVICH G,VIOLA P A,MOGHADDAM B.A unified learning framework for real time face detection and classification[C]//Proc.Fourth IEEE International Conference on Automatic Face and Gesture Recognition.Washington,DC:IEEE Press,2002:14-21.
[4]LI Yongmin,GONG Shaogang,LIDDELL H.Support vector regression and classification based multi-view face detection and recognition[C]//Proc.Fourth IEEE International Conference on Automatic Face and Gesture Recognition.Grenoble:IEEE Press,2000:300-305.