一種基于手形塊特征和AdaBoost分類器的手部檢測方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于基于機(jī)器學(xué)習(xí)方法的目標(biāo)檢測領(lǐng)域,具體涉及一種基于手形塊特征和 AdaBoost分類器的手部檢測方法。
【背景技術(shù)】
[0002] 手部檢測是手勢(shì)識(shí)別、手語識(shí)別及人體檢測技術(shù)中的關(guān)鍵環(huán)節(jié),同時(shí)在人機(jī)交互、 手勢(shì)識(shí)別、游戲控制等領(lǐng)域有著廣闊的前景。因?yàn)槿耸质欠莿傂晕矬w,形狀變化多端,人手 檢測是一個(gè)具有挑戰(zhàn)性的課題。經(jīng)典的特征的往往檢測效果不佳,而且檢測速度也不盡人 意,必須靠膚色檢測來限制檢測區(qū)域,從而提高檢測效率。
[0003] Haar特征結(jié)合AdaBoost分類器,是人臉檢測的一個(gè)經(jīng)典方法,效果好且速度快。 受Haar特征的啟發(fā),本發(fā)明提出一個(gè)手形塊特征,根據(jù)手部形狀特點(diǎn),設(shè)計(jì)了一種塊特征, 同樣與AdaBoost算法相結(jié)合,實(shí)現(xiàn)手部檢測快速檢測。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種基于手形塊特征和AdaBoost分類器的手部檢測方 法。
[0005] 本發(fā)明的目的是這樣實(shí)現(xiàn)的:
[0006] (1)模型訓(xùn)練:
[0007] (1. 1)手形塊特征提取
[0008] (I. I. 1)計(jì)算積分圖像:
[0009] -幅圖像i(x,y)的積分圖像ii(x,y)為處的值為原圖像左上方所有像素值的 和:
[0011] 在積分圖像上,一個(gè)矩形區(qū)域的灰度值和是積分圖像右下角灰度值減左上角灰度 值;
[0012] (I. L 2)根據(jù)積分圖像計(jì)算手形塊特征:
[0013] 手形塊特征為矩形特征,首先分為上下兩部分;上半部分又分成5個(gè)區(qū)域,用1-5 號(hào)區(qū)域來表示,下半部分只有一個(gè)區(qū)域,用6號(hào)個(gè)區(qū)域表示,每個(gè)區(qū)域?yàn)榫匦螇K;1、3、5三個(gè) 區(qū)域?qū)?yīng)手指,2、4區(qū)域?qū)?yīng)指縫,6區(qū)域?qū)?yīng)手背,從每個(gè)區(qū)域中提取4個(gè)特征:
[0014] F1= IG1-G2HG3-G2Ij2= Ig3-G4Hg5-G4Ij3= IG1-G3HG3-G5Ij4= |Gl-G6| + G3-G6 H G5-G6
[0015] 其中,G1-G6分別為手形塊特征1-6號(hào)區(qū)域的灰度和,在積分圖像中,每個(gè)區(qū)域的灰 度值之和為積分圖像右下角灰度值減左上角灰度值;
[0016] 匕與F 2表示手指與指縫的灰度差,F(xiàn) 3與F 4表示手部皮膚部分的灰度值一致性;
[0017] 手部塊特征的訓(xùn)練圖像尺度參數(shù)選擇24*24 ;在訓(xùn)練圖像中,手部塊特征內(nèi)部的6 個(gè)區(qū)域有五種參數(shù):上半部高度;1、3、5區(qū)域?qū)挾龋?、4區(qū)域的寬度;下半部高度;手形區(qū)域 在窗口中的起始點(diǎn)坐標(biāo);在模型訓(xùn)練時(shí),計(jì)算所有參數(shù)的手形區(qū)域,通過AdaBoost算法確 定最有效的手形塊參數(shù);
[0018] (1.2)模型訓(xùn)練:
[0019] 按步驟(I. 1)準(zhǔn)備好正例、反例和補(bǔ)充反例樣本,正例即只包含手部且手指方向 朝上的圖像,反例和補(bǔ)充反例都是不包含手部的圖像,正例反例大小均為24*24像素;
[0020] 計(jì)算出的特征向量用X表示,樣本的標(biāo)記用Y表示,設(shè)共有η個(gè)樣本,(X1, Y1),...... ,(Xn,Yn),其中Y1= 1,0分別表示正例樣本和反例樣本;X F {x ^ χ2,......,xp},每個(gè)樣本包 括P維特征,每個(gè)特征對(duì)應(yīng)手形區(qū)域的一種參數(shù)組合,特征號(hào)與手形塊參數(shù)的對(duì)應(yīng)關(guān)系保 存于特征映射表中;分類器訓(xùn)練按下述步驟進(jìn)行:
[0021] (I. 2. 1)根據(jù)初始化樣本權(quán)值w ;
[0022]
[0023] η為樣本數(shù),m為正例數(shù);
[0024] (1. 2. 2)歸一化權(quán)值 w ;
[0026] t為分類器層數(shù),初始值為0 ;
[0027] (1.2.3)通過閾值分類器對(duì)所有樣本分類;即XuXT,,分類結(jié)果H(X u) = 1 ;否則 H(Xu) = 0, !^為閾值;選擇誤差最小特征分類方法,加入該層強(qiáng)分類方法中;
[0028] (1. 2. 4)計(jì)算當(dāng)前層錯(cuò)誤率;錯(cuò)誤率為錯(cuò)誤樣本數(shù)除樣本總數(shù)η ;
[0029] 樣本層分類結(jié)果為:
[0030]
[0031] Η, (X)為分類方法判斷結(jié)果,α ,為組分類方法的置信度或權(quán)值;
[0032] 當(dāng)前層錯(cuò)誤樣本數(shù)為ε t,錯(cuò)誤率為錯(cuò)誤樣本數(shù)除樣本總數(shù)η :
[0036] 每個(gè)分類方法具有一個(gè)置信度或權(quán)值a t
[0039] (I. 2. 5)更新樣本權(quán)值;
[0040] 每次選出一個(gè)分類方法后,更新樣本的權(quán)值w,
[0041] .Wm= ?.
[0042] 當(dāng)樣本分類錯(cuò)誤時(shí),其權(quán)值不變;當(dāng)樣本分類正確時(shí),權(quán)值乘以一個(gè)小于1的數(shù)。
[0043] (1. 2. 6)如果當(dāng)前層錯(cuò)誤率小于該層目標(biāo)錯(cuò)誤率且所選特征數(shù)小于每層最大特征 數(shù),轉(zhuǎn)步驟(1. 2. 2);否則,執(zhí)行下一步;
[0044] (1. 2. 7)計(jì)算總錯(cuò)誤率:總錯(cuò)誤率為所有層錯(cuò)誤率乘積,:當(dāng)總錯(cuò)誤率大于目標(biāo)錯(cuò) 誤率時(shí),把所有判斷正確的反例淘汰掉,從補(bǔ)充反例集合中補(bǔ)充同樣數(shù)量的反例,t = t+1, 轉(zhuǎn)步驟(1. 2. 1);否則,訓(xùn)練結(jié)束;訓(xùn)練出的模型參數(shù)包括每層選擇出的特征號(hào)j、閾值!^和 該特征的權(quán)值α 作為分類模型保存在模型文件中,特征號(hào)與塊特征的對(duì)應(yīng)關(guān)系保存于特 征映射表中;
[0045] (2)手部檢測:
[0046] 檢測前載入分類模型和特征映射表;檢測采用常規(guī)的滑動(dòng)窗口掃描方式,對(duì)整個(gè) 圖像進(jìn)行掃描;
[0047] (2· 1)計(jì)算積分圖像;
[0048] (2. 2)米用AdaBoost算法進(jìn)行檢測;
[0049] 對(duì)每個(gè)檢測窗口按下述步驟進(jìn)行檢測,令分類器層數(shù)t為0 ;
[0050] (2. 3)對(duì)t層分類器,按特征號(hào)j計(jì)算手形塊特征X](方法見4 L 1節(jié)步驟2),根 據(jù)閾值T,判斷H ,(X);判斷其分類結(jié)果Ct;
[0051 ] (2. 4)如果(^為0,該窗口判為反例,即非人手,退出;如果C I,t = t+Ι,判斷 t是否超過模型最大層數(shù),超過則退出,該窗口判為正例,即是人手;執(zhí)行步驟(2. 1)進(jìn)入下 一層。
[0052] 本發(fā)明的有益效果在于:
[0053] 本發(fā)明提出一種新的手部檢測特征,叫作手形塊特征。該特征是一種矩形塊特征, 模擬手部的形狀而設(shè)計(jì)的,可體現(xiàn)手部形狀的特點(diǎn)。該特征形狀簡單,不同尺度的塊、塊的 不同參數(shù)會(huì)形成很高的特征維數(shù),所以采用AdaBoost算法作為分類器,從中選擇有效特 征,構(gòu)成級(jí)聯(lián)分類器,從檢測率與檢測速度兩方面提高手部檢測效果。
【附圖說明】
[0054] 圖1為手形塊特征圖;
[0055] 圖2為手形塊特征與手部的關(guān)系圖。
【具體實(shí)施方式】
[0056] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步描述:
[0057] 本發(fā)明采用機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)手部檢測。該方法的大步驟分成兩步,即:(1)模 型訓(xùn)練或者模型學(xué)習(xí);(2)手部檢測。
[0058] I. 1模型訓(xùn)練
[0059] 模型訓(xùn)練包括包括特征提取和模型訓(xùn)練兩步。
[0060] I. I. 1手形塊特征提取 [0061 ] 步驟1 :計(jì)算積分圖像
[0062] 計(jì)算積分圖像是為了加快塊特征提取的速度,一幅圖像i(x,y)的積分圖像 ii(x,y)為處的值為原圖像左上方所有像素值的和,見式(1)。
[0064] 積分圖像的計(jì)算是為了加速矩形區(qū)域中灰度值的求和運(yùn)算,在積分圖像上,一個(gè) 矩形區(qū)域的灰度值和是積分圖像右下角灰度值減左上角灰度值。
[0065] 步驟2 :根據(jù)積分圖像計(jì)算手形塊特征。
[0066] 手形塊特征為矩形特征,首先分為上下兩部分;上半部分又分成5塊,用1-5號(hào)塊 來表示,下半部分只有一塊,用6號(hào)塊表示,所以手部特征塊由六塊組成。塊特征示意圖如 圖1所示。
[0067] 其中1、3、5三個(gè)區(qū)域塊的大小可縮放調(diào)整,但保證這三個(gè)塊的大小要一致;區(qū)域 塊中2、4兩個(gè)塊的大小也可以縮放調(diào)整,調(diào)整時(shí)也要保證這兩個(gè)塊大小一致;該塊為矩形 塊,但是上下半塊的高度不一定相等。
[0068] 該特征是針對(duì)手部特點(diǎn)設(shè)置的,1、3、5三個(gè)區(qū)域?qū)?yīng)手指,2、4對(duì)應(yīng)指縫,6對(duì)應(yīng)手 背。本發(fā)明沒有設(shè)置四或五個(gè)手指是因?yàn)槭植啃螤疃嘧兦矣凶哉趽?,現(xiàn)有設(shè)置方式是為使 該特征適應(yīng)性更廣。
[0069] 從該塊中可提取4個(gè)特征:
[0070] F1= IG1-G 2MG3-G2
[0071] F2= IG3-G 4MG5-G4
[0072] F3= IG1-G 3MG3-G5
[0073] F4= IG1-G 6MG3-G6MG5-G6I ⑵
[0074] 其中,G1-G6分別為手形塊特征1-6號(hào)塊的灰度和,在積分圖像中,每塊的灰度值之 和為積分圖像右下角灰度值減左上角灰度值。
[0075] 匕與F 2表示手指與指縫的灰度差,F(xiàn)3與F4表示手部皮膚部分的灰度值一致性。 塊特征與手部圖像的關(guān)系見圖2。
[0076] 手部塊特征的訓(xùn)練圖像(即檢測窗口)尺度參數(shù)可以選擇