本發(fā)明涉及視覺目標檢測跟蹤及人機交互技術(shù)領(lǐng)域,具體涉及一種人手檢測跟蹤方法及裝置。
背景技術(shù):
人手可以作為一種人機交互的工具,應用時需要對人手進行實時檢測和跟蹤,獲取視頻中每一幀中人手的位置。具體可以采取每幀都做檢測的策略,這個策略的問題是檢測比較耗時,不能達到實時檢測的目的。而且偶爾出現(xiàn)的誤檢問題,會導致人手位置的跳動,影響后續(xù)的互動效果。
為了解決上述問題,現(xiàn)有技術(shù)中引入跟蹤的機制,通過跟蹤達到實時的效果。然而,跟蹤經(jīng)常會出現(xiàn)跟丟的問題,為了解決跟蹤丟失問題,現(xiàn)有技術(shù)中常用的方法是引入膚色信息,利用膚色雖然可以避免一些錯誤的跟蹤,但如果背景顏色與膚色相差不多時,仍然會導致跟蹤錯誤的問題。
技術(shù)實現(xiàn)要素:
本申請實施例提供一種人手檢測跟蹤方法,包括:
逐幀圖像進行人手檢測;
當在某一幀圖像中檢測到人手時,對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果;
驗證所述跟蹤結(jié)果是否有效,以對人手進行下一幀跟蹤,或者根據(jù)所述跟蹤結(jié)果對人手進行當前幀的局部檢測。
本申請實施例還提供一種人手檢測跟蹤裝置,包括:
人手檢測單元,用于逐幀圖像進行人手檢測;
位置跟蹤單元,用于當在某一幀圖像中檢測到人手時,對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果;
跟蹤結(jié)果處理單元,用于驗證所述跟蹤結(jié)果是否有效,以對人手進行下一幀跟蹤,或者根據(jù)所述跟蹤結(jié)果對人手進行當前幀的局部檢測。
本申請實施例中,通過在跟蹤時加入驗證環(huán)節(jié),可以對跟蹤結(jié)果進行實時修正,保證了快速準確的進行人手檢測。
當然實施本申請的任一產(chǎn)品或者方法必不一定需要同時達到以上所述的所有優(yōu)點。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請實施例的人手檢測跟蹤方法的一種實施例的方法流程圖;
圖2為本申請實施例進行人手檢測的不同尺度下示意圖;
圖3為本申請實施例驗證跟蹤結(jié)果的方法流程圖;
圖4為本申請實施例驗證跟蹤結(jié)果是否有效的示意圖;
圖5為本申請實施例驗根據(jù)跟蹤結(jié)果對人手進行當前幀的局部檢測方法流程圖;
圖6為本申請一實施例中塊的合并示意圖;
圖7為本申請另一實施例中塊的合并示意圖;
圖8為本申請實施例的人手檢測跟蹤裝置的結(jié)構(gòu)示意圖;
圖9為本申請一實施例的跟蹤結(jié)果處理單元的結(jié)構(gòu)示意圖;
圖10為本申請另一實施例的跟蹤結(jié)果處理單元的結(jié)構(gòu)示意圖;
圖11為本申請又一實施例的跟蹤結(jié)果處理單元的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
下面結(jié)合附圖對本申請所述的人手檢測跟蹤方法及裝置進行詳細的說明。圖1是本申請?zhí)岢龅娜耸謾z測跟蹤方法的一種實施例的方法流程圖。雖然本申請?zhí)峁┝巳缦率鰧嵤├蚋綀D所示的方法操作步驟或裝置結(jié)構(gòu),但基于常規(guī)或者無需創(chuàng)造性的勞動在所述方法或裝置中可以包括更多或者更少的操作步驟或模塊結(jié)構(gòu)。在邏輯性上不存在必要因果關(guān)系的步驟或結(jié)構(gòu)中,這些步驟的執(zhí)行順序或裝置的模塊結(jié)構(gòu)不限于本申請實施例提供的執(zhí)行順序或模塊結(jié)構(gòu)。所述的方法或模塊結(jié)構(gòu)的在實際中的裝置或終端產(chǎn)品執(zhí)行時,可以按照實施例或者附圖所示的方法或模塊結(jié)構(gòu)連接進行順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。
基于現(xiàn)有技術(shù)中對檢測到的人手進行跟蹤時經(jīng)常會出現(xiàn)跟丟的問題,本申請通過引入了跟蹤驗證機制,可以對跟蹤結(jié)果進行實時修正,保證了快速準確的進行人手檢測。具體如圖1所示,本申請的人手檢測跟蹤方法可以包括:
s101:逐幀圖像進行人手檢測;
s102:當在某一幀圖像中檢測到人手時,對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果;
s103:驗證所述跟蹤結(jié)果是否有效,以對人手進行下一幀跟蹤,或者根據(jù)所述跟蹤結(jié)果對人手進行當前幀的局部檢測。
由圖1所示的流程可知,本申請首先進行人手檢測,在檢測到人手時進行位置跟蹤,并對跟蹤結(jié)果進行有效性驗證,可以對無效跟蹤結(jié)果進行修正處理,以防止誤判,可以快速準確的進行人手檢測,減少計算量。
s101中,一般需要從第一幀圖像開始進行人手檢測,具體檢測方法可以為,遍歷每幀圖像當全圖,利用hog+svm方法在進行人手檢測,hog+svm方法為現(xiàn)有技術(shù)中常用的人體檢測方法,不再贅述。另外,本申請中,需要在不同尺度下進行人手檢測,以與幀圖像中的人手進行良好匹配,準確快速的檢測到人手,不同尺度請參見圖2所示。
人手檢測成功(即在某一幀圖像中檢測到人手)后,就可以對檢測到人手進行位置跟蹤,一實施例中,可以利用模板匹配策略對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果。
上述該跟蹤結(jié)果為初步的跟蹤結(jié)果,根據(jù)該初步的跟蹤結(jié)果還不能確定跟蹤是否有效,就需要對跟蹤結(jié)果進行驗證。
跟蹤結(jié)果一般對應幀圖像中定位塊(bolock),驗證跟蹤結(jié)果是否有效即為根據(jù)判斷該block是否為人手,如圖3所示,驗證跟蹤結(jié)果是否有效的方法包括如下步驟:
s301:將所述定位塊調(diào)整為人手訓練時確定的尺寸。分類器在分類前需要訓練,由于訓練時分類器是固定大小的,進行分類前需要將視頻中的人手塊調(diào)整為人手訓練時確定的尺寸。
s302:將尺寸調(diào)整后的所述定位塊送入分類器,判斷該定位塊是否為人手,如果該定位塊為人手,則所述跟蹤結(jié)果有效,否則所述跟蹤結(jié)果無效。
圖4為本申請實施例驗證跟蹤結(jié)果是否有效的示意圖,如圖4所示,首先需要將視頻中的人手框(定位塊s1)調(diào)整(resize)為人手訓練時確定的尺寸,得到塊s2,然后將塊s2送入分類器中,分類器可以輸出判斷結(jié)果,根據(jù)該判斷結(jié)果可以判斷塊s2是不是人手,如果塊s2為人手,則所述跟蹤結(jié)果有效,否則所述跟蹤結(jié)果無效。上述分類器可以為svm、ann、boost等,本申請不以此為限。
對于跟蹤結(jié)果為有效的情況,可以繼續(xù)下一幀的跟蹤,即重復進行圖1的s102及s103,無需進行s101進行人手檢測,相比現(xiàn)有技術(shù)中對每一幀圖像進行人手檢測,減小了工作量。
而對于跟蹤結(jié)果為有效的情況,可能是由于跟蹤結(jié)果與圖像中人手的位置及大小有所偏差,如果直接轉(zhuǎn)到s101繼續(xù)進行人手檢測,可能會造成誤判。為了解決該問題,如圖5所示,可以根據(jù)跟蹤結(jié)果對人手進行當前幀的局部檢測,具體包括:
s501:確定上述block的中心,以設定步長及設定塊尺度定義多個鄰域塊。
s502:將所述多個鄰域塊分別調(diào)整為人手訓練時確定的尺寸。分類器在分類前需要訓練,由于分類器訓練時是固定大小的,進行分類前需要將視頻中的人手塊調(diào)整為人手訓練時確定的尺寸。
s503:將調(diào)整尺寸后的所述多個鄰域塊分別送入分類器,判斷所述多個鄰域塊中為人手的鄰域塊的數(shù)量。
具體地,可以定義當前跟蹤結(jié)果的block中心為(x,y),block的框高為(w,h)。根據(jù)上述描述,該block被判不是人手,可能的原因是跟蹤結(jié)果與真實的位置有些偏差,或者人手因為拍攝距離遠近導致了人手成像時的縮放。因此,本申請采用了如下策略來解決這個問題,為了清楚的說明,下述策略中將上述設定步長設為2,鄰域塊數(shù)設為8,設定塊尺度設為(0.8w,0.8h),(w,h),(1.2w,1.2h)三個尺度,并非用于限定。
首先,在(x,y)的以步長為2的8鄰域進行人手檢測,即等待判定的8個鄰域塊中心分別為:(x-2,y-2),(x,y-2),(x+2,y-2),(x,y-2),(x,y+2),(x+2,y-2),(x+2,y),(x+2,y+2)。在設定了(0.8w,0.8h),(w,h),(1.2w,1.2h)三個尺度后,鄰域塊的個數(shù)相當于3*8=24個,塊的不同尺度是為了涵蓋縮放的影響。
完成上述操作后,可以對24鄰域塊分別進行人手判斷,首先將每個鄰域塊分別調(diào)整為人手訓練時確定的尺寸,然后將調(diào)整尺寸后的鄰域塊分別送入分類器,判斷每個鄰域塊是否為人手,最后統(tǒng)計為人手的鄰域塊的數(shù)量。該策略需要進行3*8次的resize和分類器判定操作,相對現(xiàn)有技術(shù)的每幀進行檢測操作,極大減少了計算量。
基于統(tǒng)計的為人手的鄰域塊的數(shù)量,可以進行進一步的動作,具體如下:
如果24個鄰域塊中為人手的鄰域塊的數(shù)量大于或等于2,可以將所有為人手的鄰域塊合并后作為最終跟蹤結(jié)果輸出,然后進行下一幀跟蹤,即重復進行圖1的s102及s103,無需進行s101進行人手檢測。
假設24個鄰域塊中為人手的鄰域塊的數(shù)量等于2,如圖6所示,兩個虛線框(塊601和塊602)為檢測到的塊,塊601的結(jié)果為(left1,top1,right1,bottom1),其中(left1,top1)標識了塊601的左上頂點坐標,(right1,bottom1)標識了塊601的右下頂點坐標。塊602的結(jié)果為(left2,top2,right2,bottom2),其中(left2,top2)標識了塊602的左上頂點坐標,(right2,bottom2)標識了塊602的右下頂點坐標。塊601及塊602合并得到塊603,塊603的結(jié)果為((left1+left2)/2,(top1+top2)/2,(right1+right2)/2,(bottom1+bottom2)/2),該合并后的結(jié)果(塊603)作為最終跟蹤結(jié)果輸出。
對于24個鄰域塊中為人手的鄰域塊的數(shù)量大于或等于2的情況,相當于在一個有限的區(qū)域做了人手檢測操作,輸出的是檢測的結(jié)果。
如果24個鄰域塊中為人手的鄰域塊僅有一個,將為人手的鄰域塊與s102中得到的定位塊合并后作為最終跟蹤結(jié)果輸出,然后進行下一幀跟蹤,即重復進行圖1的s102及s103,無需進行s101進行人手檢測。
假設通過分類器判斷24個鄰域塊中僅有一個鄰域塊為人手,如圖7所示,塊701為檢測到的塊,塊701的結(jié)果為(left3,top3,right3,bottom3),其中(left3,top3)標識了塊701的左上頂點坐標,(right1,bottom1)標識了塊701的右下頂點坐標。塊702為s102中得到的塊,塊702的結(jié)果為(left4,top4,right4,bottom4),其中(left4,top4)標識了塊702的左上頂點坐標,(right4,bottom4)標識了塊701的右下頂點坐標。塊701及塊702合并得到塊703,塊703的結(jié)果為((left3+left4)/2,(top3+top4)/2,(right3+right4)/2,(bottom3+bottom4)/2),該合并后的結(jié)果(塊703)作為最終跟蹤結(jié)果輸出。
對于上述24個鄰域塊中僅有一個鄰域塊為人手的情況,可以理解為,跟蹤和檢測都是有效的,只是跟蹤結(jié)果與真實位置有一點點偏差,因此做合并就可以了。
如果24個鄰域塊中不存在為人手的鄰域塊,可能原因是人手不存在了,或者人手的形態(tài)與訓練時定義的形態(tài)存在較大差異,重新逐幀圖像進行人手檢測。
本申請實施例的人手檢測跟蹤方法,通過對跟蹤結(jié)果進行有效性驗證,可以對無效跟蹤結(jié)果進行修正處理,以防止誤判,可以快速準確的進行人手檢測。通過根據(jù)跟蹤結(jié)果對人手進行當前幀的局部檢測,可以極大的減少計算量。
基于與上述人手檢測跟蹤方法相同的發(fā)明構(gòu)思,本申請?zhí)峁┮环N人手檢測跟蹤裝置,如下面實施例所述。由于該人手檢測跟蹤裝置解決問題的原理與人手檢測跟蹤方法相似,因此該人手檢測跟蹤裝置的實施可以參見虛假交易信息識別方法的實施,重復之處不再贅述。
圖8為本申請實施例的人手檢測跟蹤裝置的結(jié)構(gòu)示意圖,如圖8所示,該人手檢測跟蹤裝置包括:人手檢測單元801,位置跟蹤單元802及跟蹤結(jié)果處理單元803。
人手檢測單元801用于逐幀圖像進行人手檢測;
位置跟蹤單元802用于當在某一幀圖像中檢測到人手時,對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果;
跟蹤結(jié)果處理單元803用于驗證所述跟蹤結(jié)果是否有效,以對人手進行下一幀跟蹤,或者根據(jù)所述跟蹤結(jié)果對人手進行當前幀的局部檢測。
一實施例中,人手檢測單元801具體用于:遍歷幀圖像全圖,利用hog+svm方法在不同尺度下進行人手檢測。另外,本申請中,需要在不同尺度下進行人手檢測,以與幀圖像中的人手進行良好匹配,準確快速的檢測到人手。
一實施例中,位置跟蹤單元802具體用于:利用模板匹配策略對檢測到的人手進行位置跟蹤,得到跟蹤結(jié)果。
一實施例中,如圖9所示,跟蹤結(jié)果處理單元包括:尺寸調(diào)整模塊901及人手判斷模塊902。
尺寸調(diào)整模塊901用于將所述定位塊調(diào)整為人手訓練時確定的尺寸;分類器在分類前需要訓練,由于訓練時分類器是固定大小的,進行分類前需要將視頻中的人手塊調(diào)整為人手訓練時確定的尺寸。
人手判斷模塊902用于將尺寸調(diào)整后的所述定位塊送入分類器,判斷該定位塊是否為人手,如果該定位塊為人手,則所述跟蹤結(jié)果有效,否則所述跟蹤結(jié)果無效。
一實施例中,如果人手判斷模塊902判斷得到跟蹤結(jié)果有效,位置跟蹤單元802對人手進行下一幀跟蹤。
一實施例中,如圖10所示,跟蹤結(jié)果處理單元803還包括:信息確定模塊1001,用于確定所述定位塊的中心,以設定步長及設定塊尺度定義多個鄰域塊。尺寸調(diào)整模塊901將多個鄰域塊分別調(diào)整為人手訓練時確定的尺寸,人手判斷模塊902將調(diào)整尺寸后的所述多個鄰域塊分別送入分類器,判斷所述多個鄰域塊中為人手的鄰域塊的數(shù)量。
一實施例中,如圖11所示,跟蹤結(jié)果處理單元803還包括:合并模塊1101,用于當多個鄰域塊中為人手的鄰域塊的數(shù)量大于或等于2時,將所有為人手的鄰域塊合并后作為最終跟蹤結(jié)果輸出,然后進行下一幀跟蹤。
一實施例中,如果多個鄰域塊中為人手的鄰域塊的數(shù)量為1,合并模塊1101還用于將為人手的鄰域塊與所述定位塊合并后作為最終跟蹤結(jié)果輸出,然后進行下一幀跟蹤。
一實施例中,如果多個鄰域塊中不存在為人手的鄰域塊,需要通過人手檢測單元801重新逐幀圖像進行人手檢測。
本申請實施例的人手檢測跟蹤裝置,通過對跟蹤結(jié)果進行有效性驗證,可以對無效跟蹤結(jié)果進行修正處理,以防止誤判,可以快速準確的進行人手檢測。通過根據(jù)跟蹤結(jié)果對人手進行當前幀的局部檢測,可以極大的減少計算量。
本領(lǐng)域內(nèi)的技術(shù)人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
本發(fā)明中應用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。