本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,尤其涉及一種行人頭部識(shí)別方法及系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)視覺技術(shù)的突飛猛進(jìn)帶動(dòng)了整個(gè)智能視頻監(jiān)控產(chǎn)業(yè)鏈的快速發(fā)展,由此孕育的巨大商機(jī)激發(fā)越來(lái)越多的企業(yè)及研究機(jī)構(gòu)投入到該行業(yè)的前沿技術(shù)研發(fā)中來(lái)。在此背景下,基于圖像處理、模式識(shí)別的行人檢測(cè)技術(shù)逐漸發(fā)展起來(lái),該項(xiàng)技術(shù)在智能視頻監(jiān)控領(lǐng)域中逐漸占據(jù)非常重要的地位。
現(xiàn)有的基于圖像處理的行人頭部識(shí)別方法一般是通過識(shí)別人的一些身體特征比如識(shí)別頭發(fā)的顏色、頭部的輪廓或者頭肩部模型等方式實(shí)現(xiàn),但是上述特征均不具有代表性;比如,有些染過的頭發(fā)的顏色并不能很好的識(shí)別,頭發(fā)的顏色也會(huì)隨著光照等因素變化,并且穿的衣服與頭發(fā)顏色接近或者戴帽子等情況下也會(huì)干擾識(shí)別,造成識(shí)別準(zhǔn)確率低;采用攝像頭提取人頭部的輪廓時(shí),頭部的輪廓會(huì)根據(jù)行人的運(yùn)動(dòng)而變化,不具有統(tǒng)一性;頭肩部模型采用的是攝像頭斜向下拍攝的方式,這樣會(huì)產(chǎn)生遮擋問題,不能準(zhǔn)確識(shí)別。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題在于提供一種行人頭部識(shí)別方法及系統(tǒng),旨在通過圖像處理的方式智能高效的識(shí)別出人頭部。
本發(fā)明提供了一種行人頭部識(shí)別方法,包括:
步驟S1,獲取深度攝像頭垂直對(duì)準(zhǔn)地面時(shí)從目標(biāo)區(qū)域采集到的深度圖像,并從所述深度圖像中提取前景圖像;
步驟S2,從所述前景圖像中提取所有頭部的潛在區(qū)域作為感興趣區(qū)域即ROI區(qū)域;
步驟S3,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,通過構(gòu)造同心圓來(lái)計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,得到每個(gè)ROI區(qū)域中的每個(gè)像素點(diǎn)的概率值,將每個(gè)ROI區(qū)域中每個(gè)像素點(diǎn)的概率值與預(yù)置的第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
進(jìn)一步地,所述步驟S1具體為:利用深度攝像頭垂直對(duì)準(zhǔn)地面,采集目標(biāo)區(qū)域的深度圖像,得到深度圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值f(x,y),將所述像素值f(x,y)和通過預(yù)先背景建模得到的坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)比較,并結(jié)合公式得到前景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值mask(x,y);
所述公式為:
其中,Tbg為背景模型和前景圖像區(qū)分閾值;
上述通過預(yù)先背景建模得到坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)的過程具體為:通過采集若干張所述目標(biāo)區(qū)域的背景圖像,并對(duì)所述若干張背景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值取均值得到;
所述坐標(biāo)為(x,y)的點(diǎn)的像素值為該點(diǎn)在目標(biāo)區(qū)域中的對(duì)應(yīng)點(diǎn)與所述深度攝像頭的相對(duì)距離。
進(jìn)一步地,所述步驟S2具體包括:
步驟S21,以所述前景圖像中的每一個(gè)像素點(diǎn)P為中心點(diǎn),根據(jù)公式計(jì)算其8鄰域中像素點(diǎn)的像素值的均值m;
所述公式為:
其中,p(k)為該鄰域內(nèi)的像素點(diǎn)的像素值;
步驟S22,若該鄰域的均值m和其中心點(diǎn)像素值p的差值的絕對(duì)值d小于預(yù)置的第二閾值Tm,則根據(jù)方差公式計(jì)算該鄰域內(nèi)的方差v;
所述方差公式為:
步驟S23,若方差v小于預(yù)置的第三閾值Tv,則判定該鄰域?qū)儆赗OI區(qū)域。
進(jìn)一步地,所述步驟S3具體包括:
步驟S31,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,構(gòu)造同心圓,所述同心圓的內(nèi)圓半徑為r,外圓半徑為n×r;
其中,R為通過統(tǒng)計(jì)得到的人頭部區(qū)域中心點(diǎn)到邊緣的平均像素點(diǎn)個(gè)數(shù),1.2≤n≤1.7;
步驟S32,對(duì)內(nèi)圓內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)圓區(qū)域中取得的像素點(diǎn)的像素值所形成的序列ArrayInner,所述序列ArrayInner的長(zhǎng)度為lengthInner,其中,像素值最大點(diǎn)的像素值為NinnerMax;并對(duì)內(nèi)外圓之間的區(qū)域內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的像素值所形成的序列ArrayOuter,所述序列ArrayOuter的長(zhǎng)度為lengthOuter,其中,像素值最小點(diǎn)的像素值為NouterMin;
上述取得的像素點(diǎn)在各自區(qū)域內(nèi)滿足均勻分布,且從內(nèi)圓區(qū)域內(nèi)取得的像素點(diǎn)的數(shù)量lengthInner與從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的數(shù)量lengthOuter相等;
步驟S33,計(jì)算在序列ArrayOuter中比NinnerMax小的點(diǎn)的數(shù)量作為Num_1,計(jì)算在序列ArrayInner中比NouterMin大的點(diǎn)的數(shù)量作為Num_2,并根據(jù)公式計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率L,并記錄概率值;
所述公式為:
L=(lengthInner+lengthOuter-Num_1-Num_2)/(lengthInner+lengthOuter);
步驟S34,增大同心圓的內(nèi)圓半徑為rnew,rnew=r+r×α,其中α代表同心圓的內(nèi)圓半徑r增大的速度,0<α<1,此時(shí),外圓半徑為n×rnew;當(dāng)rnew≦2R時(shí),令r=rnew,并重復(fù)上述步驟S32-S34來(lái)計(jì)算ROI區(qū)域中的每一個(gè)像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,并記錄概率值,以記錄的每一個(gè)像素點(diǎn)的最大概率作為該像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的最終概率;當(dāng)rnew>2R時(shí),轉(zhuǎn)至步驟S35;
步驟S35,將每個(gè)像素點(diǎn)的最終概率與所述第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
本發(fā)明還提供了一種行人頭部識(shí)別系統(tǒng),包括:
前景圖像提取模塊,用于獲取深度攝像頭垂直對(duì)準(zhǔn)地面時(shí)從目標(biāo)區(qū)域采集到的深度圖像,并從所述深度圖像中提取前景圖像;
ROI區(qū)域提取模塊,用于從所述前景圖像中提取所有頭部的潛在區(qū)域作為感興趣區(qū)域即ROI區(qū)域;
頭部識(shí)別模塊,用于通過構(gòu)造同心圓來(lái)識(shí)別人頭部區(qū)域;具體地,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,通過構(gòu)造同心圓來(lái)計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,得到每個(gè)ROI區(qū)域中的每個(gè)像素點(diǎn)的概率值,將每個(gè)ROI區(qū)域中每個(gè)像素點(diǎn)的概率值與預(yù)置的第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
進(jìn)一步地,所述前景圖像提取模塊具體用于:利用深度攝像頭垂直對(duì)準(zhǔn)地面,采集目標(biāo)區(qū)域的深度圖像,得到深度圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值f(x,y),將像素值f(x,y)和通過預(yù)先背景建模得到的坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)比較,并結(jié)合公式得到前景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值mask(x,y);
所述公式為:
其中,Tbg為背景模型和前景圖像區(qū)分閾值;
上述通過預(yù)先背景建模得到坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)的過程具體為:通過采集若干張所述目標(biāo)區(qū)域的背景圖像,并對(duì)所述若干張背景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值取均值得到;
所述坐標(biāo)為(x,y)的點(diǎn)的像素值為該點(diǎn)在目標(biāo)區(qū)域中的對(duì)應(yīng)點(diǎn)與所述深度攝像頭的相對(duì)距離。
進(jìn)一步地,所述ROI區(qū)域提取模塊具體包括:
均值計(jì)算子模塊,用于以所述前景圖像中的每一個(gè)像素點(diǎn)P為中心點(diǎn),根據(jù)公式計(jì)算其8鄰域中像素點(diǎn)的像素值的均值m;
所述公式為:
其中,p(k)為該鄰域內(nèi)的像素點(diǎn)的像素值;
方差計(jì)算子模塊,用于在該鄰域的均值m和其中心點(diǎn)像素值p的差值的絕對(duì)值d小于預(yù)置的第二閾值Tm時(shí),根據(jù)方差公式計(jì)算該鄰域內(nèi)的方差v;
所述方差公式為:
ROI區(qū)域判定子模塊,用于在方差v小于預(yù)置的第三閾值Tv時(shí),判定該鄰域?qū)儆赗OI區(qū)域。
進(jìn)一步地,所述頭部識(shí)別模塊具體包括:
同心圓構(gòu)造子模塊,用于以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,構(gòu)造同心圓,所述同心圓的內(nèi)圓半徑為r,外圓半徑為n×r;
其中,R為通過統(tǒng)計(jì)得到的人頭部區(qū)域中心點(diǎn)到邊緣的平均像素點(diǎn)個(gè)數(shù),1.2≤n≤1.7;
像素值排序子模塊,用于對(duì)內(nèi)圓內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)圓區(qū)域中取得的像素點(diǎn)的像素值所形成的序列ArrayInner,所述序列ArrayInner的長(zhǎng)度為lengthInner,其中,像素值最大點(diǎn)的像素值為NinnerMax;并對(duì)內(nèi)外圓之間的區(qū)域內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的像素值所形成的序列ArrayOuter,所述序列ArrayOuter的長(zhǎng)度為lengthOuter,其中,像素值最小點(diǎn)的像素值為NouterMin;
上述取得的像素點(diǎn)在各自區(qū)域內(nèi)滿足均勻分布,且從內(nèi)圓區(qū)域內(nèi)取得的像素點(diǎn)的數(shù)量lengthInner與從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的數(shù)量lengthOuter相等;
第一概率值確定子模塊,用于計(jì)算在序列ArrayOuter中比NinnerMax小的點(diǎn)的數(shù)量作為Num_1,計(jì)算在序列ArrayInner中比NouterMin大的點(diǎn)的數(shù)量作為Num_2,并根據(jù)公式計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率L,并記錄概率值;
所述公式為:
L=(lengthInner+lengthOuter-Num_1-Num_2)/(lengthInner+lengthOuter);
第二概率值確定子模塊,用于增大同心圓的內(nèi)圓半徑為rnew,rnew=r+r×α,其中α代表同心圓的內(nèi)圓半徑r增大的速度,0<α<1,此時(shí),外圓半徑為n×rnew;當(dāng)rnew≦2R時(shí),令r=rnew,并返回所述像素值排序子模塊來(lái)計(jì)算ROI區(qū)域中的每一個(gè)像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,并記錄概率值,以記錄的每一個(gè)像素點(diǎn)的最大概率作為該像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的最終概率;當(dāng)rnew>2R時(shí),進(jìn)入頭部識(shí)別子模塊;
頭部識(shí)別子模塊,用于將每個(gè)像素點(diǎn)的最終概率與所述第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
本發(fā)明與現(xiàn)有技術(shù)相比,有益效果在于:本發(fā)明提供的一種行人頭部識(shí)別方法及系統(tǒng),一方面,在進(jìn)行頭部識(shí)別之前,先在前景圖像中劃定ROI區(qū)域來(lái)鎖定頭部的潛在區(qū)域,有效降低了算法計(jì)算量,提高了識(shí)別速度;另一方面,結(jié)合人體中只有頭部區(qū)域有同心圓屬性的特征,利用同心圓對(duì)頭部區(qū)域進(jìn)行度量,提高了頭部識(shí)別準(zhǔn)確率;并且有效避免了由于衣服顏色、頭部顏色等對(duì)頭部識(shí)別造成的影響,提高了算法的抗干擾能力。
附圖說明
圖1是本發(fā)明實(shí)施例提供的行人頭部識(shí)別方法的流程示意圖;
圖2是本發(fā)明實(shí)施例提供的行人頭部識(shí)別系統(tǒng)的模塊示意圖;
圖3是本發(fā)明實(shí)施例提供的一種人流量統(tǒng)計(jì)方法的流程示意圖;
圖4是本發(fā)明實(shí)施例提供的一種人流量統(tǒng)計(jì)系統(tǒng)的模塊示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明的主要實(shí)現(xiàn)思想為:通過利用深度攝像頭采集目標(biāo)區(qū)域的深度圖像,并通過背景建模,來(lái)從所述深度圖像中提取出前景圖像;利用頭部區(qū)域比較平坦的特征,從所述前景圖像中提取所有頭部的潛在區(qū)域作為ROI區(qū)域,在每個(gè)ROI區(qū)域中利用頭部區(qū)域相對(duì)深度攝像機(jī)的距離(即像素值)比肩膀以及身體其它區(qū)域小的特征,通過構(gòu)造同心圓來(lái)識(shí)別出人的頭部;具體地,結(jié)合以頭部區(qū)域內(nèi)的像素點(diǎn)為圓心構(gòu)造同心圓,內(nèi)圓內(nèi)像素點(diǎn)的像素值普遍比內(nèi)外圓之間的像素點(diǎn)的像素值小的特征,以ROI區(qū)域中的每一點(diǎn)為圓心構(gòu)造同心圓,計(jì)算該點(diǎn)屬于頭部區(qū)域的概率,并將所述概率與預(yù)置的第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
下面具體介紹這種行人頭部識(shí)別方法,如圖1所示,包括:
步驟S1,獲取深度攝像頭垂直對(duì)準(zhǔn)地面時(shí)從目標(biāo)區(qū)域采集到的深度圖像,并從所述深度圖像中提取前景圖像。
具體地,本發(fā)明采集目標(biāo)區(qū)域所用的攝像頭為深度攝像頭,其成像原理是通過給目標(biāo)連續(xù)發(fā)送光脈沖,然后用傳感器接收從目標(biāo)返回的光,通過探測(cè)光脈沖的往返時(shí)間來(lái)得到目標(biāo)物距離,所以深度攝像頭所形成的圖像是一副相對(duì)距離圖像,即圖像中每個(gè)像素點(diǎn)的值是目標(biāo)距離所述深度攝像頭的相對(duì)距離。為了避免行人之間的遮擋,深度攝像頭的拍攝角度為垂直對(duì)準(zhǔn)地面,此角度能有效的減少行人之間的遮擋。
所述步驟S1具體為:利用深度攝像頭垂直對(duì)準(zhǔn)地面,采集目標(biāo)區(qū)域的深度圖像,得到深度圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值f(x,y),將像素值f(x,y)和通過預(yù)先背景建模得到的坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)比較,并結(jié)合公式得到前景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值mask(x,y)。
所述公式為:
其中,Tbg為背景模型和前景圖像區(qū)分閾值,即將mask(x,y)中屬于背景圖像的像素點(diǎn)值設(shè)定為0,mask(x,y)中像素值不為0的點(diǎn)即為前景圖像中的點(diǎn)。
具體地,上述通過預(yù)先背景建模得到坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)的過程具體為:通過采集若干張所述目標(biāo)區(qū)域的背景圖像,并對(duì)所述若干張背景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值取均值,得到正對(duì)所述目標(biāo)區(qū)域的背景模型bg(x,y),(x,y)代表圖像中的坐標(biāo);所述坐標(biāo)為(x,y)的點(diǎn)的像素值為該點(diǎn)在目標(biāo)區(qū)域中的對(duì)應(yīng)點(diǎn)與所述深度攝像頭的相對(duì)距離。
具體地,上述目標(biāo)區(qū)域?yàn)樯疃葦z像頭能采集到的范圍內(nèi)的待檢測(cè)區(qū)域,將所述目標(biāo)區(qū)域中某點(diǎn)與所述深度攝像頭的相對(duì)距離作為圖像中該點(diǎn)的像素值。
步驟S2,從所述前景圖像中提取所有頭部的潛在區(qū)域作為感興趣區(qū)域即ROI區(qū)域;
具體地,由于頭部區(qū)域比較平坦,所以在深度圖像中頭部區(qū)域的像素點(diǎn)值比較接近,即區(qū)域的方差較小,即可以通過在圖像上將像素值平坦的區(qū)域劃定為ROI區(qū)域(Region Of Interest,感興趣區(qū)域),所述ROI區(qū)域代表潛在的頭部區(qū)域,后期的頭部識(shí)別在ROI區(qū)域上進(jìn)行,ROI區(qū)域的確定降低了后期頭部判別的壓力。
所述步驟S2具體包括:
步驟S21,以所述前景圖像中的每一個(gè)像素點(diǎn)P為中心點(diǎn),根據(jù)公式計(jì)算其8鄰域中像素點(diǎn)的像素值的均值m。
具體地,所述8鄰域?yàn)橐砸粋€(gè)像素點(diǎn)為中心點(diǎn),其相鄰的8個(gè)像素點(diǎn)組成該中心點(diǎn)的8鄰域。
所述公式為:
其中,p(k)為該鄰域內(nèi)的像素點(diǎn)的像素值。
步驟S22,若該鄰域的均值m和其中心點(diǎn)像素值p的差值的絕對(duì)值d小于預(yù)置的第二閾值Tm,則根據(jù)方差公式計(jì)算該鄰域內(nèi)的方差v。
即,d=|p-m|;
所述方差公式為:
步驟S23,若方差v小于預(yù)置的第三閾值Tv,則判定該鄰域?qū)儆赗OI區(qū)域。
具體地,對(duì)前景圖像中的每一個(gè)像素點(diǎn)P進(jìn)行上述判定,即可提取前景圖像中的所有ROI區(qū)域。
步驟S3,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,通過構(gòu)造同心圓來(lái)計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,得到每個(gè)ROI區(qū)域中的每個(gè)像素點(diǎn)的概率值,將每個(gè)ROI區(qū)域中每個(gè)像素點(diǎn)的概率值與預(yù)置的第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
事實(shí)上,不論行人的姿勢(shì)如何頭部區(qū)域都是身體的最高區(qū)域,根據(jù)深度攝像頭的成像原理,頭部區(qū)域的像素值要小于身體其他區(qū)域,所以可以結(jié)合這個(gè)特征,通過在前景圖像上構(gòu)造同心圓的方式實(shí)現(xiàn)。
所述步驟S3具體包括:
步驟S31,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,構(gòu)造同心圓,所述同心圓的內(nèi)圓半徑為r,外圓半徑為n×r。
其中,R為通過統(tǒng)計(jì)得到的人頭部區(qū)域中心點(diǎn)到邊緣的平均像素點(diǎn)個(gè)數(shù),1.2≤n≤1.7。
具體地,通過統(tǒng)計(jì)得到的人頭部區(qū)域中心點(diǎn)到邊緣的平均像素點(diǎn)個(gè)數(shù)的方法為:利用深度攝像機(jī)垂直拍攝大量行人通過拍攝區(qū)域的圖像;從大量行人圖像中統(tǒng)計(jì)行人頭部區(qū)域的半徑,即統(tǒng)計(jì)頭部區(qū)域中心到邊緣的像素點(diǎn)個(gè)數(shù)(此像素點(diǎn)個(gè)數(shù)稱為頭部區(qū)域的半徑);對(duì)統(tǒng)計(jì)得到的頭部區(qū)域半徑取均值,得到平均頭部區(qū)域半徑R;以上述平均頭部區(qū)域半徑R的一半為同心圓內(nèi)圓的半徑,即內(nèi)圓半徑r為外圓的半徑為內(nèi)圓半徑的n倍,即外圓半徑為n×r;在一定范圍內(nèi),n越大,判斷標(biāo)準(zhǔn)越嚴(yán)格。
步驟S32,對(duì)內(nèi)圓內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)圓區(qū)域中取得的像素點(diǎn)的像素值所形成的序列ArrayInner,所述序列ArrayInner的長(zhǎng)度為lengthInner,其中,像素值最大點(diǎn)的像素值為NinnerMax;并對(duì)內(nèi)外圓之間的區(qū)域內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的像素值所形成的序列ArrayOuter,所述序列ArrayOuter的長(zhǎng)度為lengthOuter,其中,像素值最小點(diǎn)的像素值為NouterMin。
上述取得的像素點(diǎn)在各自區(qū)域內(nèi)滿足均勻分布,且從內(nèi)圓區(qū)域內(nèi)取得的像素點(diǎn)的數(shù)量lengthInner與從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的數(shù)量lengthOuter相等。
步驟S33,計(jì)算在序列ArrayOuter中比NinnerMax小的點(diǎn)的數(shù)量作為Num_1,計(jì)算在序列ArrayInner中比NouterMin大的點(diǎn)的數(shù)量作為Num_2,根據(jù)公式計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率L,并記錄概率值。
所述公式為:
L=(lengthInner+lengthOuter-Num_1-Num_2)/(lengthInner+lengthOuter);
若NinnerMax<NouterMin,概率直接記為1,因?yàn)镹um_1=0;
若NinnerMax>NouterMin,根據(jù)公式(lengthInner+lengthOuter-Num_1-Num_2)/(lengthInner+lengthOuter)計(jì)算概率。
下面對(duì)上述利用同心圓計(jì)算某點(diǎn)屬于頭部區(qū)域概率的方式舉兩個(gè)具體實(shí)施例說明:
實(shí)施例一,假設(shè)1、2、3、4、5為內(nèi)圓中的像素點(diǎn)值,7、8、9、10、11為外圓和內(nèi)圓之間的像素點(diǎn)值,則內(nèi)圓中的像素值最大的點(diǎn)的值為5,外圓和內(nèi)圓之間像素值最小的點(diǎn)的值為7,由于5<7,則概率為1,計(jì)算公式為(5+5-0-0)/(5+5)=1。
實(shí)施例二,假設(shè)34、56、78、100、234、500為內(nèi)圓中的像素點(diǎn)值,98、123、466、700、877、100為外圓和內(nèi)圓之間的像素點(diǎn)值,則內(nèi)圓中的像素值最大的點(diǎn)的值為500,外圓和內(nèi)圓之間像素值最小的點(diǎn)的值為98,由于500>98,則概率為(6+6-3-3)/(6+6)=0.5。
步驟S34,增大同心圓的內(nèi)圓半徑為rnew,rnew=r+r×α,其中α代表同心圓的內(nèi)圓半徑r增大的速度,0<α<1,此時(shí),外圓半徑為n×rnew;當(dāng)rnew≦2R時(shí),令r=rnew,并重復(fù)上述步驟S32-S34來(lái)計(jì)算ROI區(qū)域中的每一個(gè)像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,并記錄概率值,以記錄的每一個(gè)像素點(diǎn)的最大概率作為該像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的最終概率,由此得到一幅概率圖,概率圖中每點(diǎn)的概率值代表此點(diǎn)屬于頭部區(qū)域的程度;當(dāng)rnew>2R時(shí),轉(zhuǎn)至步驟S35;
步驟S35,將每個(gè)像素點(diǎn)的最終概率與所述第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
下面介紹一種行人頭部識(shí)別系統(tǒng),如圖2所示,包括:
前景圖像提取模塊10,用于獲取深度攝像頭垂直對(duì)準(zhǔn)地面時(shí)從目標(biāo)區(qū)域采集到的深度圖像,并從所述深度圖像中提取前景圖像。
所述前景圖像提取模塊10具體用于:利用深度攝像頭垂直對(duì)準(zhǔn)地面,采集目標(biāo)區(qū)域的深度圖像,得到深度圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值f(x,y),將像素值f(x,y)和通過預(yù)先背景建模得到的坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)比較,并結(jié)合公式得到前景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值mask(x,y)。
所述公式為:
其中,Tbg為背景模型和前景圖像區(qū)分閾值。
上述通過預(yù)先背景建模得到坐標(biāo)為(x,y)的點(diǎn)的像素值bg(x,y)的過程具體為:通過采集若干張所述目標(biāo)區(qū)域的背景圖像,并對(duì)所述若干張背景圖像中坐標(biāo)為(x,y)的點(diǎn)的像素值取均值得到。
所述坐標(biāo)為(x,y)的點(diǎn)的像素值為該點(diǎn)在目標(biāo)區(qū)域中的對(duì)應(yīng)點(diǎn)與所述深度攝像頭的相對(duì)距離。
ROI區(qū)域提取模塊11,用于從所述前景圖像中提取所有頭部的潛在區(qū)域作為感興趣區(qū)域即ROI區(qū)域。
所述ROI區(qū)域提取模塊11具體包括:
均值計(jì)算子模塊,用于以所述前景圖像中的每一個(gè)像素點(diǎn)P為中心點(diǎn),根據(jù)公式計(jì)算其8鄰域中像素點(diǎn)的像素值的均值m。
所述公式為:
其中,p(k)為該鄰域內(nèi)的像素點(diǎn)的像素值;
方差計(jì)算子模塊,用于在該鄰域的均值m和其中心點(diǎn)像素值p的差值的絕對(duì)值d小于預(yù)置的第二閾值Tm時(shí),根據(jù)方差公式計(jì)算該鄰域內(nèi)的方差v;
即,d=|p-m|;
所述方差公式為:
ROI區(qū)域判定子模塊,用于在方差v小于閾值的第三閾值Tv時(shí),判定該鄰域?qū)儆赗OI區(qū)域。
頭部識(shí)別模塊12,用于通過構(gòu)造同心圓來(lái)識(shí)別人頭部區(qū)域;具體地,以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,通過構(gòu)造同心圓來(lái)計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,得到每個(gè)ROI區(qū)域中的每個(gè)像素點(diǎn)的概率值,將每個(gè)ROI區(qū)域中每個(gè)像素點(diǎn)的概率值與預(yù)置的第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
所述頭部識(shí)別模塊12具體包括:
同心圓構(gòu)造子模塊,用于以每一個(gè)ROI區(qū)域中的每一個(gè)像素點(diǎn)為圓心,構(gòu)造同心圓,所述同心圓的內(nèi)圓半徑為r,外圓半徑為n×r。
其中,R為通過統(tǒng)計(jì)得到的人頭部區(qū)域中心點(diǎn)到邊緣的平均像素點(diǎn)個(gè)數(shù),1.2≤n≤1.7。
像素值排序子模塊,用于對(duì)內(nèi)圓內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)圓區(qū)域中取得的像素點(diǎn)的像素值所形成的序列ArrayInner,所述序列ArrayInner的長(zhǎng)度為lengthInner,其中,像素值最大點(diǎn)的像素值為NinnerMax;并對(duì)內(nèi)外圓之間的區(qū)域內(nèi)取得的像素點(diǎn)的像素值進(jìn)行排序,記錄從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的像素值所形成的序列ArrayOuter,所述序列ArrayOuter的長(zhǎng)度為lengthOuter,其中,像素值最小點(diǎn)的像素值為NouterMin。
上述取得的像素點(diǎn)在各自區(qū)域內(nèi)滿足均勻分布,且從內(nèi)圓區(qū)域內(nèi)取得的像素點(diǎn)的數(shù)量lengthInner與從內(nèi)外圓之間的區(qū)域取得的像素點(diǎn)的數(shù)量lengthOuter相等。
第一概率值確定子模塊,用于計(jì)算在序列ArrayOuter中比NinnerMax小的點(diǎn)的數(shù)量作為Num_1,計(jì)算在序列ArrayInner中比NouterMin大的點(diǎn)的數(shù)量作為Num_2,并根據(jù)公式計(jì)算當(dāng)前像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率L,并記錄概率值。
所述公式為:
L=(lengthInner+lengthOuter-Num_1-Num_2)/(lengthInner+lengthOuter);
第二概率值確定子模塊,用于增大同心圓的內(nèi)圓半徑為rnew,rnew=r+r×α,其中α代表同心圓的內(nèi)圓半徑r增大的速度,0<α<1,此時(shí),外圓半徑為n×rnew;當(dāng)rnew≦2R時(shí),令r=rnew,并返回所述像素值排序子模塊來(lái)計(jì)算ROI區(qū)域中的每一個(gè)像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的概率,并記錄概率值,以記錄的每一個(gè)像素點(diǎn)的最大概率作為該像素點(diǎn)屬于頭部區(qū)域內(nèi)的像素點(diǎn)的最終概率;當(dāng)rnew>2R時(shí),進(jìn)入頭部識(shí)別子模塊。
頭部識(shí)別子模塊,用于將每個(gè)像素點(diǎn)的最終概率與所述第一閾值比較,將低于所述第一閾值的像素點(diǎn)濾除,剩下的以區(qū)域形式存在的像素點(diǎn)即為頭部區(qū)域的點(diǎn),每個(gè)區(qū)域即為識(shí)別出的一個(gè)頭部。
通過上述行人頭部識(shí)別方法識(shí)別出行人頭部后,結(jié)合計(jì)數(shù)方法,可對(duì)商場(chǎng)、機(jī)場(chǎng)、公交車站、地鐵站等人流量密集的公共場(chǎng)所提供人流量統(tǒng)計(jì)服務(wù)。下面具體介紹一種人流量統(tǒng)計(jì)方法,所述人流量統(tǒng)計(jì)方法基于上述行人頭部識(shí)別系統(tǒng),所述人流量統(tǒng)計(jì)方法為:通過跟蹤所述行人頭部識(shí)別系統(tǒng)識(shí)別出的行人頭部區(qū)域來(lái)確定其運(yùn)動(dòng)軌跡,當(dāng)所述運(yùn)動(dòng)軌跡穿過預(yù)置區(qū)域時(shí)計(jì)數(shù),從而統(tǒng)計(jì)出目標(biāo)區(qū)域的人流量。
如圖3所示,所述人流量統(tǒng)計(jì)方法具體包括:
步驟A1,將識(shí)別出的頭部區(qū)域用矩形框包圍,所述頭部區(qū)域內(nèi)接于所述矩形框。
步驟A2,將前景圖像中前一幀圖像中的每一個(gè)頭部區(qū)域分別與后一幀圖像中的所有頭部區(qū)域進(jìn)行聯(lián)合相似性計(jì)算。
具體地,鑒于連續(xù)兩幀之間頭部區(qū)域的位置和面積不會(huì)發(fā)生劇烈變化,對(duì)頭部目標(biāo)的跟蹤,依靠計(jì)算連續(xù)兩幀間頭部矩形框?qū)蔷€的交點(diǎn)位置坐標(biāo)和頭部區(qū)域面積大小的聯(lián)合相似性確定。
計(jì)算公式為:
Passociate(d1,d2)=Aposition(d1,d2)Aarea(d1,d2);
其中,d1和d2分別代表連續(xù)兩幀圖像中的任一個(gè)頭部區(qū)域,Passociate(d1,d2)、Aposition(d1,d2)和Aarea(d1,d2)分別代表聯(lián)合相似性、位置相似性和面積相似性,其中Aposition(d1,d2)和Aarea(d1,d2)的計(jì)算公式為:
其中,(x1,y1)和(x2,y2)分別表示連續(xù)兩幀圖像中任一個(gè)頭部區(qū)域d1和d2對(duì)角線交點(diǎn)的坐標(biāo),s1和s2分別表示連續(xù)兩幀圖像中任一個(gè)頭部區(qū)域d1和d2的面積,ax、ay表示連續(xù)兩幀圖像中所有頭部區(qū)域矩形框?qū)蔷€交點(diǎn)坐標(biāo)在X軸和Y軸上的方差,as表示連續(xù)兩幀圖像中所有頭部區(qū)域面積的方差。
步驟A3,將計(jì)算出的前一幀圖像中的每一個(gè)頭部區(qū)域分別與后一幀圖像中所有頭部區(qū)域的聯(lián)合相似性的最大值與閾值比較,若大于閾值,則代表前一幀圖像中的該頭部區(qū)域與后一幀圖像中所述聯(lián)合相似性的最大值對(duì)應(yīng)的頭部區(qū)域匹配成功;若小于閾值,則代表匹配失敗,目標(biāo)丟失。
步驟A4,將每連續(xù)兩幀圖像中匹配成功的兩個(gè)頭部區(qū)域的矩形框?qū)蔷€交點(diǎn)連接起來(lái),從而確定所述頭部區(qū)域的運(yùn)動(dòng)軌跡。
步驟A5,當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡穿過預(yù)置區(qū)域時(shí)計(jì)數(shù),從而統(tǒng)計(jì)出目標(biāo)區(qū)域的人流量。
具體地,所述預(yù)置區(qū)域?yàn)樵谒銮熬皥D像的幀圖像上設(shè)置的兩條平行虛擬判定線L1和L2及與所述前景圖像的邊緣所形成的區(qū)域;當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越L1和L2時(shí),人數(shù)計(jì)數(shù)器計(jì)數(shù);更具體地,當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越虛擬判定線的次序?yàn)長(zhǎng)1和L2時(shí),出計(jì)數(shù)器計(jì)數(shù);當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越虛擬判定線的次序?yàn)長(zhǎng)2和L1時(shí),進(jìn)計(jì)數(shù)器計(jì)數(shù);采用上述方式對(duì)所有頭部區(qū)域的運(yùn)動(dòng)軌跡進(jìn)行檢測(cè)并計(jì)數(shù),并分別將出計(jì)數(shù)器和進(jìn)計(jì)數(shù)器的結(jié)果實(shí)時(shí)輸出。
其中,L1和L2的距離是一個(gè)標(biāo)準(zhǔn)成年人頭頂部區(qū)域長(zhǎng)度的兩倍,且L1和L2的中線是幀圖像的中線。
下面具體介紹一種人流量統(tǒng)計(jì)系統(tǒng),所述人流量統(tǒng)計(jì)方法基于上述行人頭部識(shí)別系統(tǒng),所述人流量統(tǒng)計(jì)系統(tǒng)用于:通過跟蹤所述行人頭部識(shí)別系統(tǒng)識(shí)別出的頭部區(qū)域來(lái)確定其運(yùn)動(dòng)軌跡,當(dāng)所述運(yùn)動(dòng)軌跡穿過預(yù)置區(qū)域時(shí)計(jì)數(shù),從而統(tǒng)計(jì)出目標(biāo)區(qū)域的人流量。
如圖4所示,所述人流量統(tǒng)計(jì)系統(tǒng)具體包括:
頭部區(qū)域框定模塊20,用于將識(shí)別出的頭部區(qū)域用矩形框包圍,所述頭部區(qū)域內(nèi)接于所述矩形框。
聯(lián)合相似性計(jì)算模塊21,用于將前景圖像中前一幀圖像中的每一個(gè)頭部區(qū)域分別與后一幀圖像中的所有頭部區(qū)域進(jìn)行聯(lián)合相似性計(jì)算。
具體地,所述聯(lián)合相似性為連續(xù)兩幀間頭部矩形框?qū)蔷€的交點(diǎn)位置坐標(biāo)和頭部區(qū)域面積大小的聯(lián)合相似性。
計(jì)算公式為:
Passociate(d1,d2)=Aposition(d1,d2)Aarea(d1,d2);
其中,d1和d2分別代表連續(xù)兩幀圖像中的任一個(gè)頭部區(qū)域,Passociate(d1,d2)、Aposition(d1,d2)和Aarea(d1,d2)分別代表聯(lián)合相似性、位置相似性和面積相似性,其中Aposition(d1,d2)和Aarea(d1,d2)的計(jì)算公式為:
其中,(x1,y1)和(x2,y2)分別表示連續(xù)兩幀圖像中任一個(gè)頭部區(qū)域d1和d2對(duì)角線交點(diǎn)的坐標(biāo),s1和s2分別表示連續(xù)兩幀圖像中任一個(gè)頭部區(qū)域d1和d2的面積,ax、ay表示連續(xù)兩幀圖像中所有頭部區(qū)域矩形框?qū)蔷€交點(diǎn)坐標(biāo)在X軸和Y軸上的方差,as表示連續(xù)兩幀圖像中所有頭部區(qū)域面積的方差。
頭部區(qū)域匹配模塊22,用于將計(jì)算出的前一幀圖像中的每一個(gè)頭部區(qū)域分別與后一幀圖像中所有頭部區(qū)域的聯(lián)合相似性的最大值與閾值比較,若大于閾值,則代表前一幀圖像中的該頭部區(qū)域與后一幀圖像中所述聯(lián)合相似性的最大值對(duì)應(yīng)的頭部區(qū)域匹配成功;若小于閾值,則代表匹配失敗,目標(biāo)丟失。
運(yùn)動(dòng)軌跡確定模塊23,用于將每連續(xù)兩幀圖像中匹配成功的兩個(gè)頭部區(qū)域的矩形框?qū)蔷€交點(diǎn)連接起來(lái),從而確定所述頭部區(qū)域的運(yùn)動(dòng)軌跡。
人流量統(tǒng)計(jì)模塊24,用于在檢測(cè)到所述運(yùn)動(dòng)軌跡穿過預(yù)置區(qū)域時(shí)計(jì)數(shù),從而統(tǒng)計(jì)出目標(biāo)區(qū)域的人流量。
具體地,所述預(yù)置區(qū)域?yàn)樵谒銮熬皥D像的幀圖像上設(shè)置的兩條平行虛擬判定線L1和L2及與所述前景圖像的邊緣所形成的區(qū)域;當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越L1和L2時(shí),人數(shù)計(jì)數(shù)器計(jì)數(shù);當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越虛擬判定線的次序?yàn)長(zhǎng)1和L2時(shí),出計(jì)數(shù)器計(jì)數(shù);當(dāng)檢測(cè)到所述運(yùn)動(dòng)軌跡連續(xù)穿越虛擬判定線的次序?yàn)長(zhǎng)2和L1時(shí),進(jìn)計(jì)數(shù)器計(jì)數(shù);并分別將出計(jì)數(shù)器和進(jìn)計(jì)數(shù)器的結(jié)果實(shí)時(shí)輸出。
其中,L1和L2的距離是一個(gè)標(biāo)準(zhǔn)成年人頭頂部區(qū)域長(zhǎng)度的兩倍,且L1和L2的中線是幀圖像的中線。
通過上述提供的人流量統(tǒng)計(jì)方法及系統(tǒng),可為機(jī)場(chǎng)、商場(chǎng)和火車站等人流量密集的地方提供人流量統(tǒng)計(jì)服務(wù)。
本發(fā)明提供的行人頭部識(shí)別方法,一方面,在進(jìn)行頭部識(shí)別之前,先在前景圖像中劃定ROI區(qū)域來(lái)鎖定頭部的潛在區(qū)域,有效降低了算法計(jì)算量,提高了識(shí)別速度;另一方面,結(jié)合人體中只有頭部區(qū)域有同心圓屬性的特征,利用同心圓對(duì)頭部區(qū)域進(jìn)行度量,提高了頭部識(shí)別準(zhǔn)確率;并且有效避免了由于衣服顏色、頭部顏色等對(duì)頭部識(shí)別造成的影響,提高了算法的抗干擾能力。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。