本發(fā)明涉及一種基于深度攝像機(jī)的行人檢測跟蹤算法,特別涉及應(yīng)用于安防系統(tǒng)視頻監(jiān)控中行人的檢測跟蹤方法。
背景技術(shù):
隨著深度攝像機(jī)的普及,能夠?qū)崟r(shí)的同步獲取穩(wěn)定的彩色圖像覺深度圖像已經(jīng)成為現(xiàn)實(shí)。行人檢測是計(jì)算機(jī)領(lǐng)域的一個(gè)重要分支,也是智能監(jiān)控系統(tǒng)的主體,基于深度攝像機(jī)的行人檢測跟蹤方法越來越成為人們的研究重點(diǎn)。目前已經(jīng)存在很多優(yōu)秀的行人檢測算法,但大都存在一些不足,主要體現(xiàn)在:行人位置不準(zhǔn)確,檢測得到的行人框有時(shí)偏大,有時(shí)偏小;存在一定的誤檢測,不是行人的區(qū)域被誤判為行人;行人位置不穩(wěn)定,往往是由檢測器造成的;運(yùn)行速度慢,不能滿足實(shí)時(shí)性的要求。
為了克服以上技術(shù)不足,本發(fā)明提出了一種基于深度攝像機(jī)rgb-d圖像的行人檢測跟蹤。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供了一種基于深度攝像機(jī)的行人檢測跟蹤方法,其特征在于,包括步驟:
步驟101:讀取視頻流的一幀圖像,并對圖像的幀計(jì)數(shù),計(jì)數(shù)為fn,每讀取一幀fn加1,并判斷fn能否被常量整除,如果能整除則進(jìn)入步驟102,否則進(jìn)入步驟107;
步驟102:使用聚合通道特征法做行人檢測,其中選取yuv顏色通道+梯度幅值通道+梯度方向通道組合成聚合通道特征;檢測結(jié)果為一個(gè)矩形序列pr[n],其中n為檢測到的行人的個(gè)數(shù),pr[n]表示檢測結(jié)果的第n個(gè)行人的矩形位置,然后進(jìn)入步驟103;
步驟103:深度圖像去噪聲,先對rgb-d的d通道進(jìn)行腐蝕操作,腐蝕半徑為r,然后在進(jìn)行膨脹操作,膨脹半徑也為r,此操作可去除半徑小于或等于r的噪聲,并且對非噪聲區(qū)域造成最少的影響,以便于更好的從深度圖像中提取出行人的輪廓,然后進(jìn)入步驟104;
步驟104:修正行人位置,在rgb_d的d通道找到pr[n]對應(yīng)的位置,然后使用canny算子找到圖像的邊緣,也就是行人的邊緣輪廓c[n],然后找c[n]的最小外接矩形brect,brect即為修正后行人的位置,然后用brect替換pr[n],進(jìn)入步驟105;
步驟105:去除誤檢測,在深度圖像中,pr[n]默認(rèn)為行人的位置,找到pr[n]的中心點(diǎn)center,然后以center作為漫水填充的種子點(diǎn),一直向四周填充,填充的條件是相鄰像素之間的深度值之差應(yīng)當(dāng)不低于閾值ther_d;漫水區(qū)域的面積為m_area,計(jì)算m_area與pr[n]的面積比值,如果比值過大,或者過小則判定位置pr[n]為誤檢測,然后將其刪除,進(jìn)入步驟106;
步驟106:目標(biāo)匹配,目標(biāo)匹配充分利用圖像的時(shí)空信息,根據(jù)圖像的相鄰兩幀之前只存在微小的運(yùn)動(dòng)這一特性;
步驟107:目標(biāo)跟蹤,以t_list為起點(diǎn),開始對目標(biāo)進(jìn)行跟蹤,直到fn能否被所述常量整除,進(jìn)入步驟102,開始進(jìn)行行人檢測。
優(yōu)選地,步驟107的具體方法為:
步驟201:對于跟蹤目標(biāo)t_list[n],以其中心為原點(diǎn),將眼矩形放大到原來的2倍,結(jié)果產(chǎn)生矩形p_rect,進(jìn)入步驟202;
步驟202:提取跟蹤目標(biāo)t_list[n]的“指紋”f_phash,然后進(jìn)入步驟203;
步驟203:以p_rect的左上角為起點(diǎn),以t_list[n]的大小為大小,每次向右移動(dòng)t_list[n]的寬度除以10或向下移動(dòng)t_list[n]的高度除以10,得到的矩形提取指紋,并找到指紋相識度最大的矩形s_rect,然后進(jìn)入步驟204;
步驟204:s_rect即為跟蹤結(jié)果,用p_rect更新t_list[n]。
優(yōu)選地,步驟202的“指紋”的具體方法為:
步驟301:縮小圖像尺寸,將原始圖像縮放到32*32;
步驟302:簡化色彩,如果是將rgb圖像,則將其轉(zhuǎn)化為灰度圖像;
步驟303:對圖像進(jìn)行dct變換;
步驟304:縮小dct圖像,只保留左上角8*8的矩陣;
步驟305:計(jì)算8*8dct圖像的像素平均值;
步驟306:對于8*8dct圖像的每個(gè)點(diǎn)的,如果像素值大于像素平均值,則此像素點(diǎn)編碼為1,否則編碼為0;最終生成的編碼序列即為圖像的指紋。
本發(fā)明能適用于深度攝像機(jī),行人檢測的位置準(zhǔn)確穩(wěn)定,跟蹤平穩(wěn),誤檢測少,且運(yùn)行速度快,完全可以滿足實(shí)時(shí)性要求。
應(yīng)當(dāng)理解,前述大體的描述和后續(xù)詳盡的描述均為示例性說明和解釋,并不應(yīng)當(dāng)用作對本發(fā)明所要求保護(hù)內(nèi)容的限制。
附圖說明
參考隨附的附圖,本發(fā)明更多的目的、功能和優(yōu)點(diǎn)將通過本發(fā)明實(shí)施方式的如下描述得以闡明,其中:
圖1示出了根據(jù)本發(fā)明的基于深度攝像機(jī)的行人檢測跟蹤方法的流程圖;
圖2示出了根據(jù)本發(fā)明的目標(biāo)跟蹤方法流程圖;
圖3示出了根據(jù)本發(fā)明的生成指紋方法流程圖。
具體實(shí)施方式
通過參考示范性實(shí)施例,本發(fā)明的目的和功能以及用于實(shí)現(xiàn)這些目的和功能的方法將得以闡明。然而,本發(fā)明并不受限于以下所公開的示范性實(shí)施例;可以通過不同形式來對其加以實(shí)現(xiàn)。說明書的實(shí)質(zhì)僅僅是幫助相關(guān)領(lǐng)域技術(shù)人員綜合理解本發(fā)明的具體細(xì)節(jié)。
在下文中,將參考附圖描述本發(fā)明的實(shí)施例。在附圖中,相同的附圖標(biāo)記代表相同或類似的部件,或者相同或類似的步驟。
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)描述。
圖1示出了根據(jù)本發(fā)明的適基于深度攝像機(jī)的行人檢測跟蹤方法的流程圖;
步驟101:讀取視頻流的一幀圖像,并對圖像的幀計(jì)數(shù),計(jì)數(shù)為fn,每讀取一幀fn加1,并判斷fn能否被常量,即skip整除,如果能整除則進(jìn)入步驟102,否則進(jìn)入步驟107。
步驟102:本發(fā)明使用聚合通道特征法做行人檢測,其中選取yuv顏色通道+梯度幅值通道+梯度方向通道組合成聚合通道特征。檢測結(jié)果為一個(gè)矩形序列pr[n],其中n為檢測到的行人的個(gè)數(shù),pr[n]表示檢測結(jié)果的第n個(gè)行人的矩形位置。然后進(jìn)入步驟103。
步驟103:深度圖像去噪聲,先對rgb-d的d通道進(jìn)行腐蝕操作,腐蝕半徑為r,然后在進(jìn)行膨脹操作,膨脹半徑也為r,此操作可去除半徑小于或等于r的噪聲,并且對非噪聲區(qū)域造成最少的影響,以便于更好的從深度圖像中提取出行人的輪廓,然后進(jìn)入步驟104。
步驟104:修正行人位置,在rgb_d的d通道找到pr[n]對應(yīng)的位置,然后使用canny算子找到圖像的邊緣,也就是行人的邊緣輪廓c[n],然后找c[n]的最小外接矩形brect,brect即為修正后行人的位置,然后用brect替換pr[n],進(jìn)入步驟105。
步驟105:去除誤檢測,漫水填充非常適用于深度圖(rgb_d的d通道),可充分利用深度圖的最大的特征:內(nèi)部連續(xù)。在深度圖像中,pr[n]默認(rèn)為行人的位置,找到pr[n]的中心點(diǎn)center,然后以center作為漫水填充的種子點(diǎn),一直向四周填充,填充的條件是相鄰像素之間的深度值之差應(yīng)當(dāng)不低于閾值ther_d。漫水區(qū)域的面積為m_area,計(jì)算m_area與pr[n]的面積比值,如果比值過大,或者過小則判定位置pr[n]為誤檢測,然后將其刪除,進(jìn)入步驟106。
步驟106:目標(biāo)匹配,目標(biāo)匹配充分利用圖像的時(shí)空信息,根據(jù)圖像的相鄰兩幀之前只存在微小的運(yùn)動(dòng)這一特性。
令t_list[n]為跟蹤列表,pr[n]逐個(gè)比對t_list[n],如果pr[n]與t_list[n]的重合度達(dá)到80%,則進(jìn)行相似度比對,否則把pr[n]直接加入到跟蹤列表t_list[n],作為新的跟蹤目標(biāo)。
對于重合度達(dá)到80%的目標(biāo),先將圖像的rgb通道進(jìn)行灰度化處理,生成單通道的灰度圖像m_gray。從m_gray中扣取處跟蹤圖像列表tm_list[n]。同時(shí)從m_gray中扣取處行人檢測的結(jié)果prm[n]。并且將tm_list[n]和prm[n]縮放到同一大小(m_w*m_h)。
將prm[n]在點(diǎn)(x,y)及其存在的周圍(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1)的像素值,與tm_list[i]在點(diǎn)(x,y)及存在的周圍的像素值做差,如果其中的至少有一處的差值小于20,則記點(diǎn)(x,y)為相似點(diǎn)。依次計(jì)算點(diǎn)(x,y+1)…直到整幅圖像遍歷結(jié)束,得出prm[n]與tm_list[i]相似點(diǎn)最多的i,相似點(diǎn)個(gè)數(shù)為s[i],如果s[i]小于相識度匹配閾值,則把pr[n]加入到跟蹤列表。否則記為prm[n]與tm_list[i]為同一目標(biāo)。
步驟107:目標(biāo)跟蹤,以t_list為起點(diǎn),開始對目標(biāo)進(jìn)行跟蹤,直到fn能否被skip整除,進(jìn)入步驟102,開始進(jìn)行行人檢測。其詳細(xì)步驟如圖2,后面會有詳細(xì)的描述。
圖2示出了根據(jù)本發(fā)明的目標(biāo)跟蹤方法流程圖;
步驟201:對于跟蹤目標(biāo)t_list[n],以其中心為原點(diǎn),將眼矩形放大到原來的2倍,結(jié)果產(chǎn)生矩形p_rect。進(jìn)入步驟202。
步驟202:提取跟蹤目標(biāo)t_list[n]的“指紋”f_phash,“指紋”的詳細(xì)提取步驟如圖3,后面會有詳細(xì)的描述。然后進(jìn)入步驟203。
步驟203:以p_rect的左上角為起點(diǎn),以t_list[n]的大小為大小,每次向右移動(dòng)t_list[n]的寬度除以10或向下移動(dòng)t_list[n]的高度除以10,得到的矩形提取指紋,并找到指紋相識度最大的矩形s_rect,然后進(jìn)入步驟204。
步驟204:s_rect即為跟蹤結(jié)果,用p_rect更新t_list[n]。
圖3示出了根據(jù)本發(fā)明的生成指紋方法流程圖。
步驟301:縮小圖像尺寸,將原始圖像縮放到32*32。
步驟302:簡化色彩,如果是將rgb圖像,則將其轉(zhuǎn)化為灰度圖像。
步驟303:對圖像進(jìn)行dct變換。
步驟304:縮小dct圖像,只保留左上角8*8的矩陣。
步驟305:計(jì)算8*8dct圖像的像素平均值。
步驟306:對于8*8dct圖像的每個(gè)點(diǎn)的,如果像素值大于像素平均值,則此像素點(diǎn)編碼為1,否則編碼為0。最終生成的編碼序列即為圖像的指紋。
本專利能適用于深度攝像機(jī),行人檢測的位置準(zhǔn)確穩(wěn)定,跟蹤平穩(wěn),誤檢測少,且運(yùn)行速度快,完全可以滿足實(shí)時(shí)性要求。
結(jié)合這里披露的本發(fā)明的說明和實(shí)踐,本發(fā)明的其他實(shí)施例對于本領(lǐng)域技術(shù)人員都是易于想到和理解的。說明和實(shí)施例僅被認(rèn)為是示例性的,本發(fā)明的真正范圍和主旨均由權(quán)利要求所限定。