專利名稱:模擬雷達掃描的人臉檢測方法
技術(shù)領(lǐng)域:
本發(fā)明屬于應(yīng)用軟件的界面設(shè)計領(lǐng)域,尤其涉及一種能夠從屏幕窗口中搜索任意
目標的用戶界面。
背景技術(shù):
人臉識別作為一種常用的生物識別方式,具有簡便、用戶接受性良好、非接觸、非 侵擾、安全衛(wèi)生等優(yōu)點,被廣泛應(yīng)用于安全驗證、監(jiān)控、身份認證、電子商務(wù)信息系統(tǒng)、安全 設(shè)施、追捕犯罪嫌疑人和反恐等眾多領(lǐng)域。
常見的人臉識別應(yīng)用模式如下 1 :N驗證快速提取目標的人臉數(shù)據(jù),與系統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)進行比對,快速找到 相似度較高的人員。 1 :l驗證用固定目標的數(shù)據(jù)與系統(tǒng)數(shù)據(jù)庫中的固定數(shù)據(jù)比對,當相似度達到某 一個域值時比對成功,身份確認。
監(jiān)視在一定范圍內(nèi)發(fā)現(xiàn)人臉,與背景分割,并實現(xiàn)連續(xù)跟蹤。 目前的人臉識別產(chǎn)品多為攝像頭直接采集圖像信息然后投射到顯示屏上,依靠用 戶通過接近調(diào)整來把自己的信息反映到設(shè)備里面去,與普通的視頻監(jiān)控是一樣的效果,設(shè) 備處于被動接收信息狀態(tài),且不能讓用戶實時了解檢測的狀態(tài)。因此需要提供更智能化和 人性化的界面,讓設(shè)備主動獲取用戶的信息,用戶實時了解自己的狀態(tài)并相應(yīng)調(diào)整,從而與 設(shè)備產(chǎn)生互動,改善用戶體驗。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種模擬雷達掃描的人臉檢測方法,本方法調(diào) 用基本圖形繪制方法對檢測界面采用雷達掃描和垂直掃描相結(jié)合的形式形象、直觀地表現(xiàn) 了整個目標檢測的過程,為用戶提供一個很好的使用感受。
為實現(xiàn)上述目的,提供了一種模擬雷達掃描的人臉檢測方法,包括步驟
創(chuàng)建用于顯示界面的窗體區(qū)域;
創(chuàng)建雷達掃描對象;
創(chuàng)建垂直掃描對象; 在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像;
調(diào)整垂直掃描對象所在區(qū)域。 進一步地,所述繪制掃描圖像步驟包括當沒有檢測到任何人臉目標時,調(diào)用雷達 掃描對象進行扇掃;當窗體中檢測到人臉目標時,停止扇掃并調(diào)用垂直掃描對象進行垂直 方向上的掃描。 進一步地,該方法還包括初始化步驟,所述初始化步驟包括 創(chuàng)建查詢表; 創(chuàng)建基本圖形繪制方法。
所述查詢表包括一個正弦函數(shù)查詢表和一個余弦函數(shù)查詢表。 所述基本圖形繪制方法包括點繪制、直線繪制、矩形繪制、圓繪制、圓弧繪制、扇 形區(qū)域繪制和透明算法。 進一步地,所述創(chuàng)建雷達掃描對象時,調(diào)用基本圖形繪制方法繪制出一個圓和在 該圓內(nèi)同圓心同半徑的扇形區(qū)域。 進一步地,所述創(chuàng)建垂直掃描對象時,調(diào)用基本圖形繪制方法繪制一個矩形框和 在矩形框內(nèi)由多條直線組成的漸變區(qū)域。 進一步地,所述垂直掃描對象繪制的矩形框的中心和人臉目標中心重合,且所述 矩形框外接于人臉目標。 進一步地,所述漸變區(qū)域由透明算法處理形成。 進一步地,所述調(diào)整垂直掃描對象所在區(qū)域時,垂直掃描對象繪制的矩形框隨著 人臉目標的移動而移動。 —種模擬雷達掃描的人臉檢測系統(tǒng),包括
窗體區(qū)域創(chuàng)建模塊,創(chuàng)建用于顯示界面的窗體區(qū)域;
雷達掃描對象創(chuàng)建模塊,創(chuàng)建雷達掃描對象;
垂直掃描對象創(chuàng)建模塊,創(chuàng)建垂直掃描對象; 調(diào)用模塊,在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像;
調(diào)整模塊,調(diào)整垂直掃描對象所在區(qū)域。 利用本發(fā)明所提供的方法開發(fā)出了一種的人臉目標檢測界面,調(diào)用基本圖形繪制 方法對檢測界面采用雷達掃描和垂直掃描相結(jié)合的形式形象、直觀地表現(xiàn)了整個目標檢測 的過程,為用戶提供一個很好的使用感受。使應(yīng)用于該檢測方法的設(shè)備處于主動接收信息 狀態(tài),讓用戶實時了解檢測的狀態(tài)。更加人性化和智能化,使用戶實時了解自己的狀態(tài)并相 應(yīng)調(diào)整,從而與設(shè)備產(chǎn)生互動,改善用戶體驗。
圖1是本發(fā)明的方法流程圖; 圖2是本發(fā)明雷達掃描圖像的示意圖; 圖3是本發(fā)明矩形掃描圖像的示意圖。
具體實施例方式
所有的界面程序設(shè)計都是在一個窗體中繪制需要的圖形。窗體可以看做是顯示
器,繪制的圖形可以是各種形狀或圖片,繪制的單位為像素。本實施方式為了通用性及可移
植性,因此需要全部重新搭建所有的功能模塊。
如圖l,示出本發(fā)明的方法的具體實施步驟,包括 第零步創(chuàng)建查詢表,包括一個正弦函數(shù)查詢表和一個余弦函數(shù)查詢表。
圖形繪制時常常會運用到各種三角函數(shù),尤其是正余弦函數(shù),因此C語言運行庫 一般會提供一個math.h的庫函數(shù)接口。但是,三角函數(shù)為浮點運算,在浮點處理器上能夠 很好的支持這種運算。而定點處理器只能模擬浮點運算,這會極大增加定點處理器的運算 量。因此,使用定點處理器實現(xiàn)三角函數(shù)運算效率很低,一般的解決方法是創(chuàng)建函數(shù)的查詢表,表結(jié)構(gòu)越大,查詢的精度也就越高。 將查詢表實現(xiàn)為一個一維數(shù)組,當查詢的精度為單位一度時,數(shù)組大小需要為 360項。因為正余弦函數(shù)具有周期性,sin(t) =-sin(360-t), sin(t+180) =_sin(t), sin(t+90) = sin(90-t),因此90項數(shù)值即可表示全部角度。 查詢時,輸入的角度值就是數(shù)組的索引值,得到的數(shù)組項即是此三角函數(shù)運算結(jié) 果的放大后的值。 本實施例中,利用運行庫建立這個查詢表。 創(chuàng)建基本圖形繪制方法,包括點繪制、直線繪制、矩形繪制、圓繪制、圓弧繪制、扇
形區(qū)域繪制和透明算法函數(shù)。
本實施例中,透明算法實現(xiàn) 當兩個圖片重疊時,仍然可以看到重疊部分被遮擋的部分,這就是透明的效果。透 明算法的實現(xiàn)方法的原理是將每個像素的RGB分量進行混合
R = Rl*Alpha+R2*(l_Alpha)
G = Gl*Alpha+G2*(l_Alpha)
B = Bl*Alpha+B2*(l-Alpha) 其中(R1, Gl, Bl)表示圖像1中的像素的紅、綠、藍顏色分量,(R2, G2, B2)表示圖 像2中的像素的紅、綠、藍顏色分量,Alpha為透明度,當Alpha為1時,顯示圖像1中的像 素,當Alpha為0時,顯示圖像2中的像素。當0 < Alpha < 1時,能夠同時顯示圖像1和 圖像2中的像素,實現(xiàn)透明效果。 為使透明算法在定點處理器和浮點處理器上通用,需要將透明算法定點化,將其 修改為 R= (Rl*Alpha+R2*(256_Alpha)) >>8
G= (Gl*Alpha+G2*(256_Alpha)) >>8
B= (Bl*Alpha+B2*(256_Alpha)) >>8 [OO54]其中Alpha的取值范圍是
。
函數(shù)接口設(shè)計如下 Void MixColor(Color colorl,Color color2,uintl6_t alpha) 其中colorl代表圖像1中像素點的顏色值;color2代表圖像2中的像素點的顏
色值;alpha代表透明度。
點繪制 本實施例中,點繪制為修改內(nèi)存中既定位置的值,在內(nèi)存中的數(shù)組中對計算出的 索弓I的對應(yīng)位置進行賦值,其余位置調(diào)用透明算法重新賦值。
直線繪制 直線的繪制方法有多種算法,其最經(jīng)典的實現(xiàn)為DDA算法和Bresenham算法,在本 實施中,只需要畫出垂直直線和水平直線兩種。函數(shù)接口如下 void glDrawHorLine(Color color,uint8_t size,Coord*pointl,Coord*point2, uintl6_t Alpha) void glDrawVerLine(Color color,uint8_t size,Coord*pointl,Coord*point2, uintl6_t Alpha)
其中Color代表直線的顏色值;Size代表直線的寬度;Pointl代表直線的起始 點坐標值;Point 2代表直線終止點坐標值;Alpha代表直線的透明度。內(nèi)部實現(xiàn)時,直線繪 制實際上是在一系列計算得到的坐標上繪制點。
矩形繪制 矩形框的繪制方法是實現(xiàn)兩條垂直直線和兩條水平直線。本實施例中,函數(shù)接口 如下 void glDrawRect(Rect*prect,Color color, uint 8_t size, uintl6_t Alpha)
其中Prect代表矩形框的坐標點;Color代表矩形框的顏色值;Size代表矩形框 直線的寬度;Alpha代表矩形框直線的透明度。
圓繪制 圓繪制的方法主要是利用第零步產(chǎn)生的查詢表計算所有的坐標點,并畫出此點。 函數(shù)接口如下 void glDrawCircle(Coord*point, uintl6_t radius, Colorcolor, uintl6_t alpha) 其中Point代表圓點坐標值;Radius代表圓的半徑長度;Color代表圓的圓弧顏 色;Alpha代表圓的圓弧透明度。
圓弧繪制 圓弧的繪制與圓類似,同樣利用產(chǎn)生的查詢表計算圓弧的坐標點并進行繪制。同 時,圓弧的顏色需要從起始角度開始漸變。本實施例中,實現(xiàn)一個角度為64度漸變的圓弧。
實現(xiàn)顏色漸變時,圓弧起始點(xl, yl)和原點(x0, y0)之間的連線Ll,圓弧上任 意一點(x2, y2)與圓弧原點(x0, y0)之間的連線L2, Ll和L2之間形成的夾角為A度時, 點(x2,y2)得透明度為4A。因此,圓弧起始點的透明度為0,而終止點的透明度為64X4 = 256。函數(shù)接口如下 Void glDrawArc(Coord*point,uintl6_t radius, uintl6_tangleStart,uintl6_ t clockwise, Color color) 其中Point代表圓弧的同心圓的坐標值;Radius代表圓弧的同心圓的半徑長度; angleStart代表圓弧的起始角度值,取值范圍為
第一步創(chuàng)建用于顯示界面的窗體區(qū)域。使第二步、第三步中顯示的圖像在該窗體 區(qū)域中顯示。 本實施例中,建立一窗體區(qū)域的對象,對該對象添加長、寬、色彩等窗體屬性,并添 加方法使窗體能夠被拖拽,且能調(diào)用雷達掃描對象和垂直掃描對象,為雷達掃描對象和垂 直掃描對象提供顯示區(qū)域。該窗體區(qū)域可被封裝為控件進行調(diào)用。
第二步調(diào)用基本圖形繪制方法,生成各種基本圖形以創(chuàng)建雷達掃描對象。
實現(xiàn)雷達效果時,需要畫出一個圓,代表雷達搜索的范圍;一個在該圓內(nèi)同圓心同 半徑的扇形區(qū)域,并使該扇形區(qū)域以圓心為軸進行轉(zhuǎn)動,代表雷達波向四周發(fā)射時呈扇形 掃描。為了使界面效果更佳,在圓的圓心處以畫直線的方式畫出一個十字架,并十字架上分 別標注刻度,比喻為一個瞄準鏡。
雷達掃描對象封裝的接口如下
Typedef struct—RadarScaner
Int St??; Int Angle ;
Int (InitRadar氺)(Coord pointer, int radius, int st印,
Color color); Int(RadarStart氺)(void); }RadarScaner ; 其中 St印代表每次調(diào)用控件雷達掃描的轉(zhuǎn)動的角度,
Angle代表當前雷達波發(fā)射的方向的角度。 InitRadar函數(shù)接口的功能是初始化雷達掃描控件,主要實現(xiàn)第零步的查詢表,并 初始化雷達掃描轉(zhuǎn)動的速度和雷達發(fā)射初始角度。
RadarStart函數(shù)接口的功能是實現(xiàn)繪制雷達。
RadarStart函數(shù)接口的實現(xiàn)過程 繪制圓點為pointer,半徑為radius的圓。即調(diào)用第 一 步中的接口 glDrawCircle(pointer, radius,color,0) 繪制經(jīng)過pointer的十字架,繪制十字架上的代表刻度的直線,即調(diào)用第一步中 的直線繪制接口函數(shù)。 繪制起始角度為Angle的顏色漸變扇區(qū)區(qū)域。即第一步中的扇形區(qū)域繪制接口函 數(shù),注意當St印< 0時,扇形漸變方向為逆時針,St印> 0時,扇形漸變方向為順時針。
函數(shù)每調(diào)用一次,Angle增加St印度,當Angle >= 360或Angle < 0度時,Angle 恢復(fù)為O度。 如圖2所示的雷達掃描示意圖,當窗體中沒有檢測到任何人臉目標時,通過調(diào)用 雷達掃描對象,繪制雷達狀形式的掃描圖像,表示正在搜索目標。每次調(diào)用雷達掃描對象 時,扇形區(qū)域發(fā)生St印角度的轉(zhuǎn)動。當周期性連續(xù)調(diào)用雷達掃描對象時,雷達波就不停的 轉(zhuǎn)動。調(diào)整雷達掃描對象中的St印參數(shù),可以控制雷達轉(zhuǎn)動的速度。
第三步調(diào)用基本圖形繪制方法,生成各種基本圖形創(chuàng)建垂直掃描對象。 實現(xiàn)垂直掃描的效果時,調(diào)用基本圖形繪制方法中的直線繪制方法繪制一個矩
形,代表人臉目標的大小,矩形框的中心和人臉目標中心重合,且外接于人臉目標。本實施
例中,人臉目標移動時,矩形框跟隨人臉目標移動,人臉目標由于調(diào)整與鏡頭的距離而變大
或變小時,矩形框跟隨人臉目標相應(yīng)變大或變小,始終保持外接與人臉目標的狀態(tài)。 再在矩形框內(nèi)繪制一個由多條直線組成的漸變區(qū)域,本實施例中,矩形框為
128X128px,在此矩形框中的垂直方向上,以0. 5Hz的頻率逐像素地平行于矩形框的底邊
繪制16條直線。起始直線的透明度為0,即為完全不透明的直線,終止直線的透明度為256,
即完全透明的直線,每條直線相差4個透明度。這些直線形成的漸變區(qū)域垂直方向上為16
個像素,占整個矩形區(qū)域的16/128 = 1/8,形成了垂直掃描的效果。 垂直掃描對象封裝的接口如下 } 其中,St印表示垂直掃描的速度,verticalPosition表示當前垂直掃描線與矩形 頂部的距離;VerticalStart函數(shù)接口的功能是實現(xiàn)繪制垂直掃描。 如圖3所示,創(chuàng)建垂直掃描對象來象征正在進行人臉檢測。每次調(diào)用垂直掃描對 象時,矩形框中的直線發(fā)生移動,實現(xiàn)垂直掃描的效果。 在其他實施例中,本實施例中的第一步、第二步和第三步的順序可以進行顛倒和 調(diào)換。 第四步在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像,象征 目標搜索和人臉檢測的過程。 在窗體區(qū)域中,當沒有檢測到任何人臉目標時,調(diào)用雷達掃描對象進行扇掃,表示 正在搜索目標;當窗體中檢測到人臉目標時,停止調(diào)用雷達掃描對象扇掃,并調(diào)用垂直掃描 對象進行垂直方向上的掃描,表示進行人臉檢測的過程。
第五步調(diào)整垂直掃描對象所在區(qū)域。 垂直掃描對象繪制的矩形框隨著人臉目標的移動而移動,由于垂直掃描對象繪制
的矩形框外接與人臉目標,當人臉目標移動時,外接與人臉目標的矩形框也跟著人臉目標
移動,表示對人臉目標進行跟蹤性的檢測,不會因人臉目標移動造成待檢測目標的丟失。
—種模擬雷達掃描的人臉檢測系統(tǒng),包括 窗體區(qū)域創(chuàng)建模塊,創(chuàng)建用于顯示界面的窗體區(qū)域; 雷達掃描對象創(chuàng)建模塊,創(chuàng)建雷達掃描對象; 垂直掃描對象創(chuàng)建模塊,創(chuàng)建垂直掃描對象; 調(diào)用模塊,在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像;
調(diào)整模塊,調(diào)整垂直掃描對象所在區(qū)域。 顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精
Typedef struct—VerticalScaner
Int St??;
Int vertical Position ; Int(VerticalStar詢(Rec,Rect);神和范圍。這樣,倘若對本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范 圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
一種模擬雷達掃描的人臉檢測方法,其特征在于,包括創(chuàng)建用于顯示界面的窗體區(qū)域;創(chuàng)建雷達掃描對象;創(chuàng)建垂直掃描對象;在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像;調(diào)整垂直掃描對象所在區(qū)域。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,其中所述繪制掃描圖像步驟包括當沒有 檢測到任何人臉目標時,調(diào)用雷達掃描對象進行扇掃;當窗體中檢測到人臉目標時,停止扇 掃并調(diào)用垂直掃描對象進行垂直方向上的掃描。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括初始化步驟,所述初始化步 驟包括創(chuàng)建查詢表; 創(chuàng)建基本圖形繪制方法。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述查詢表包括一個正弦函數(shù)查詢表和 一個余弦函數(shù)查詢表。
5. 根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述基本圖形繪制方法包括點繪 制、直線繪制、矩形繪制、圓繪制、圓弧繪制、扇形區(qū)域繪制和透明算法。
6. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述創(chuàng)建雷達掃描對象時,調(diào)用基本圖形 繪制方法繪制出一個圓和在該圓內(nèi)同圓心同半徑的扇形區(qū)域。
7. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述創(chuàng)建垂直掃描對象時,調(diào)用基本圖形 繪制方法繪制一個矩形框和在矩形框內(nèi)由多條直線組成的漸變區(qū)域。
8. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述垂直掃描對象繪制的矩形框的中心 和人臉目標中心重合,且所述矩形框外接于人臉目標。
9. 根據(jù)權(quán)利要求7或8所述的方法,其特征在于,所述漸變區(qū)域由透明算法處理形成。
10. 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述調(diào)整垂直掃描對象所在區(qū)域時,垂 直掃描對象繪制的矩形框隨著人臉目標的移動而移動。
11. 一種模擬雷達掃描的人臉檢測系統(tǒng),其特征在于,包括 窗體區(qū)域創(chuàng)建模塊,創(chuàng)建用于顯示界面的窗體區(qū)域; 雷達掃描對象創(chuàng)建模塊,創(chuàng)建雷達掃描對象; 垂直掃描對象創(chuàng)建模塊,創(chuàng)建垂直掃描對象;調(diào)用模塊,在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像; 調(diào)整模塊,調(diào)整垂直掃描對象所在區(qū)域。
全文摘要
本發(fā)明提供了一種模擬雷達掃描的人臉檢測方法,包括步驟創(chuàng)建用于顯示界面的窗體區(qū)域;創(chuàng)建雷達掃描對象;創(chuàng)建垂直掃描對象;在窗體區(qū)域中調(diào)用雷達掃描對象和垂直掃描對象以繪制掃描圖像;調(diào)整垂直掃描對象所在區(qū)域。當沒有檢測到任何人臉目標時,調(diào)用雷達掃描對象進行扇掃;當窗體中檢測到人臉目標時,停止扇掃并調(diào)用垂直掃描對象進行垂直方向上的掃描。利用本發(fā)明所提供的方法能夠開發(fā)出一種新的人臉目標檢測界面,其能夠形象、直觀地說明整個目標檢測的過程,為用戶提供一個很好的使用感受。
文檔編號G06F9/44GK101706721SQ20091024279
公開日2010年5月12日 申請日期2009年12月21日 優(yōu)先權(quán)日2009年12月21日
發(fā)明者熊中柱, 金友芝 申請人:漢王科技股份有限公司