專利名稱::一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法,具體涉及一種通過人的輪廓圖像和人的投籃動(dòng)作數(shù)據(jù)組成的運(yùn)動(dòng)圖進(jìn)行人的投籃動(dòng)作識別的方法。
背景技術(shù):
:人體運(yùn)動(dòng)的識別技術(shù)一直都是計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),它的研究目的就是讓機(jī)器能夠識別出人的動(dòng)作,包括體態(tài)、手勢等,它也是一種全新的人與機(jī)器交互的方式,這種交互不通過標(biāo)記點(diǎn)等附著在人身上的硬件設(shè)備,只通過人自身的運(yùn)動(dòng)。在工業(yè)的應(yīng)用中有著潛在的廣泛的應(yīng)用,此外在影視、游戲這些數(shù)字娛樂產(chǎn)業(yè)中也有著巨大的前景甚至已經(jīng)加以應(yīng)用。在現(xiàn)有的較成熟的運(yùn)動(dòng)識別技術(shù)中主要依靠的是一些特種的硬件設(shè)備,如運(yùn)動(dòng)捕捉設(shè)備,但它需要在人身體上粘貼標(biāo)記點(diǎn)來記錄人的三維位置信息而識別運(yùn)動(dòng),這很影響人的交互體驗(yàn)。無標(biāo)記點(diǎn)的運(yùn)動(dòng)識別是一種良好的代替方式,它不需要給用戶附加額外的硬件設(shè)備,這種方法主要依靠攝像機(jī)獲取圖像再對二維圖像進(jìn)行分析來估計(jì)三維運(yùn)動(dòng),從二維恢復(fù)三維本質(zhì)上是多解問題,所以不可能達(dá)到百分之百的識別精度,但是在一些應(yīng)用中(如交互式游戲),它的識別精度已經(jīng)能夠滿足要求。本發(fā)明通過剔除圖像中人的陰影和環(huán)境的干擾獲得高質(zhì)量的人物輪廓,又通過有機(jī)的組織運(yùn)動(dòng)圖,在運(yùn)動(dòng)圖上使用多段擴(kuò)展和局部搜索的查找策略,實(shí)現(xiàn)了較快速的無標(biāo)記點(diǎn)的籃球運(yùn)動(dòng)識別。
發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法?;谌梭w輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法包括如下步驟1)將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)2)對于每個(gè)組的運(yùn)動(dòng)圖上的姿態(tài),將其渲染成多個(gè)視角下的二維圖像,使用機(jī)器學(xué)習(xí)的方法對每個(gè)組在各個(gè)視角上的圖像提取圖像特征向量;3)將步驟2)中的每個(gè)姿態(tài)的各個(gè)視角的二維圖像拼接成一張圖,并用步驟2)中的特征向量計(jì)算這個(gè)拼接圖像的特征值,稱為該姿態(tài)的特征值;4)拍下籃球動(dòng)作識別系統(tǒng)的場景內(nèi)在沒有人時(shí)的各個(gè)視角下圖片,稱為背景;5)在進(jìn)行動(dòng)作識別時(shí),拍下人的各個(gè)視角下的整個(gè)投籃動(dòng)作序列的圖片,稱為前景圖片;6)在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖;7)將每個(gè)視角的輪廓圖拼接起來,用步驟2)中提取出來的特征向量計(jì)算出特征值,在步驟1)所述的每個(gè)組上尋找與他特征值最相似的姿態(tài),并將與其特征值最近姿態(tài)所在的組稱為這幀圖像的擊中組。8)找出投籃動(dòng)作的每幀圖像的擊中組,投票選出擊中最多的組,稱為整個(gè)動(dòng)作的擊中組;9)找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果。所述的將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)圖步驟包括1)將用動(dòng)作捕捉設(shè)備捕獲下來的三維運(yùn)動(dòng)分成四組,第一組包括正向左手、正向雙手、左側(cè)身左手,第二組包括正向右手單手、正向雙手、右側(cè)身右手,第三組包括背向雙手、背向左手、左側(cè)身左手,第四組包括背向雙手、背向右手、右側(cè)身右手,分組原則是每一個(gè)組內(nèi)的動(dòng)作自然過渡;2)將每組內(nèi)的所有動(dòng)作的每一幀都截取下來,每一幀稱為一個(gè)姿態(tài);3)在每組內(nèi)計(jì)算任意兩個(gè)姿態(tài)間的三維距離,用一張運(yùn)動(dòng)圖來表示這些姿態(tài)和他們之間的距離,運(yùn)動(dòng)圖上的節(jié)點(diǎn)是姿態(tài),運(yùn)動(dòng)圖上的邊是它所連接的兩個(gè)節(jié)點(diǎn)所表示的姿態(tài)間的三維骨架距離,為每一個(gè)組都構(gòu)建一個(gè)運(yùn)動(dòng)圖。所述的在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖步驟包括1)對于一張輸入的由攝像機(jī)拍攝下來的圖像,計(jì)算出輸入圖像與背景圖像的差異I麵,定義背景圖像上某點(diǎn)(X,y)的顏色值為(Rba—d(x,y),G—und(x,y),B一,d(x,y)),輸入圖像上對應(yīng)點(diǎn)的顏色值為(Ri,t(x,y),G—(x,y),B—(x,y)),工di^r是一張灰度圖,它表示了輸入圖像和背景圖像對應(yīng)點(diǎn)的差異,產(chǎn)《計(jì)算的公式是s(x,y)一max(|Rbackgr。ud(x,y)—Rbackgr。ud(x,)0I,IGbackgroud(x,y)_Gbackgroud(x,y)|,|Bbackgroud(X,y)_Bbackgroud(x,y)I);Idiffer(x,y)=s(x,y)/3+s(x_l,y)/6+s(x+l,y)/6+s(x,y_l)/6+s(x,y+l)/6;2)先用一個(gè)大的閾值來將Idiff6r二值化,前景為白色,背景為黑色,然后再進(jìn)行膨脹,將會得到一些粗略的人體的團(tuán)塊,而小的噪聲已被濾去,首先找到這些團(tuán)塊中最大的那個(gè)團(tuán)塊,然后設(shè)定一個(gè)距離為閾值,將那些距離主要團(tuán)塊小于這個(gè)閾值的團(tuán)塊吸附到這個(gè)主團(tuán)塊上,最后找到這個(gè)圖像中的前景的矩形區(qū)域R是人體出現(xiàn)的區(qū)域;3)先對包圍盒里面的圖像用一個(gè)小的閾值進(jìn)行二值化,這將得到一個(gè)清晰的輪廓圖;4)在這個(gè)包圍盒的底部用一個(gè)大閾值來進(jìn)行二值化,這將剔除人的影子;5)最后再對提取出來的圖像進(jìn)行簡單的平滑降噪處理,并且將人體輪廓縮放成統(tǒng)一大小后放置在圖片正中央,得到輪廓圖。所述的找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果步驟包括1)輪廓圖像序列在擊中組的運(yùn)動(dòng)圖上將映射成一些點(diǎn),首先將那些明顯偏離群體的點(diǎn)去除,動(dòng)作圖上的點(diǎn)將形成一些序列段;2)從每個(gè)段開始向前和向后去拓展缺少的節(jié)點(diǎn),對于一個(gè)要進(jìn)行推測的節(jié)點(diǎn),以最鄰近它的幀所映射到的節(jié)點(diǎn)為中心,以設(shè)定距離為半徑的一個(gè)區(qū)域,對于這個(gè)區(qū)域的每一個(gè)點(diǎn),計(jì)算它的二維圖像與以該推測節(jié)點(diǎn)號為幀號的輪廓圖在特征值上的海明距離,找到那個(gè)距離最小的點(diǎn)就認(rèn)為是該幀匹配的節(jié)點(diǎn);3)找出運(yùn)動(dòng)圖上節(jié)點(diǎn)所形成的所有序列段,對于每段序列,用上一步所述的拓展方法,推斷出整個(gè)動(dòng)作序列所有節(jié)點(diǎn),這些節(jié)點(diǎn)組成新的序列,對于推斷出來的每一個(gè)新的序列,計(jì)算它的每個(gè)節(jié)點(diǎn)的二維圖像與原始輪廓圖相對應(yīng)幀的特征值的海明距離的和,最后挑選出這個(gè)和最小的那個(gè)序列就是我們匹配到的結(jié)果;4)對結(jié)果動(dòng)作序列進(jìn)行插值,適當(dāng)?shù)卦黾訋瑪?shù)以提高動(dòng)作的平滑連貫。本發(fā)明使用人的輪廓圖信息這一動(dòng)作的載體作為系統(tǒng)的輸入,通過動(dòng)作圖將各種預(yù)先采集的投籃動(dòng)作有機(jī)的組織起來作為數(shù)據(jù)庫支持,用通過各種簡單的機(jī)器學(xué)習(xí)方法尋找到的圖像特征作為匹配工具,將三維的動(dòng)作識別轉(zhuǎn)變成二維的圖像匹配問題.本發(fā)明主要對影響最終結(jié)果的重要因素-輪廓圖的質(zhì)量和運(yùn)動(dòng)圖的組織和查詢進(jìn)行改善來提高識別的準(zhǔn)確率.在對人的輪廓提取的時(shí)候,首先通過對前背景差值圖的大閾值濾波和形態(tài)學(xué)操作獲得圖像上人體的部分的包圍盒位置,過濾掉圖像上費(fèi)人體區(qū)域的大部分區(qū)域的噪音干擾,然后在人體包圍盒內(nèi)用較小閾值濾波得到精細(xì)人體輪廓,最后在人體區(qū)域的下部用另外一個(gè)較大閾值濾波除去人的陰影,得到質(zhì)量較高的人體輪廓圖像.在組織運(yùn)動(dòng)圖的時(shí)候,首先將預(yù)先采集的各種投籃動(dòng)作按照左右手、單雙手等大類進(jìn)行分組,然后最后投票決定在哪個(gè)組上進(jìn)行匹配,可以首先保證動(dòng)作識別不會出現(xiàn)大類上的錯(cuò)誤,在得到原始的動(dòng)作圖上匹配幀后,首先在運(yùn)動(dòng)圖上對明顯出錯(cuò)的匹配幀進(jìn)行檢測與修復(fù),克服了一部分以因?yàn)闄C(jī)器學(xué)習(xí)產(chǎn)生的誤差,然后對多個(gè)連續(xù)斷分別在運(yùn)動(dòng)圖上前后推斷,最終尋找最優(yōu)解,對匹配結(jié)果進(jìn)行了優(yōu)化,而且在運(yùn)動(dòng)圖上用一個(gè)點(diǎn)推斷另一個(gè)點(diǎn)時(shí),只在運(yùn)動(dòng)圖的一個(gè)局部范圍內(nèi)進(jìn)行,可以避免最終結(jié)果幀與幀之間的跨度過大,保證結(jié)果運(yùn)動(dòng)的序列的連貫性和平滑性。圖1(a)是用動(dòng)作捕捉設(shè)備采集投籃動(dòng)作的場景圖1(b)是用動(dòng)作捕捉設(shè)備采集到的動(dòng)作;圖2是對采集動(dòng)作的分組以及在每組中構(gòu)造的運(yùn)動(dòng)圖;圖3是系統(tǒng)運(yùn)行時(shí)采集的背景圖;圖4是系統(tǒng)運(yùn)行時(shí)實(shí)時(shí)采集的帶有人的圖片(前景圖);圖5是人的輪廓提取的過程,按照箭頭方向四幅圖依次為原始差值圖、判定包圍盒示意圖、小閾值濾波的較精細(xì)輪廓圖、除去陰影的輪廓圖6是在擊中組上對初次匹配到的節(jié)點(diǎn)進(jìn)行修復(fù)的示意圖;圖7是在對初次匹配節(jié)點(diǎn)修復(fù)后找到的幾個(gè)節(jié)點(diǎn)連續(xù)段示意圖;圖8(a)是對圖7中第1段連續(xù)區(qū)進(jìn)行拓展產(chǎn)生的節(jié)點(diǎn)序列(動(dòng)作)圖8(b)是對圖7中第2段連續(xù)區(qū)進(jìn)行拓展產(chǎn)生的節(jié)點(diǎn)序列(動(dòng)作)。具體實(shí)施例方式基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法包括如下步驟1)將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)圖;2)對于每個(gè)組的運(yùn)動(dòng)圖上的姿態(tài),將其渲染成多個(gè)視角下的二維圖像,使用機(jī)器學(xué)習(xí)的方法對每個(gè)組在各個(gè)視角上的圖像提取圖像特征向量;3)將步驟2)中的每個(gè)姿態(tài)的各個(gè)視角的二維圖像拼接成一張圖,并用步驟2)中的特征向量計(jì)算這個(gè)拼接圖像的特征值,稱為該姿態(tài)的特征值;4)拍下籃球動(dòng)作識別系統(tǒng)的場景內(nèi)在沒有人時(shí)的各個(gè)視角下圖片,稱為背景;5)在進(jìn)行動(dòng)作識別時(shí),拍下人的各個(gè)視角下的整個(gè)投籃動(dòng)作序列的圖片,稱為前景圖片;6)在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖;7)將每個(gè)視角的輪廓圖拼接起來,用步驟2)中提取出來的特征向量計(jì)算出特征值,在步驟1)所述的每個(gè)組上尋找與他特征值最相似的姿態(tài),并將與其特征值最近姿態(tài)所在的組稱為這幀圖像的擊中組。8)找出投籃動(dòng)作的每幀圖像的擊中組,投票選出擊中最多的組,稱為整個(gè)動(dòng)作的擊中組;9)找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果。所述的將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)圖步驟包括1)將用動(dòng)作捕捉設(shè)備捕獲下來的三維運(yùn)動(dòng)分成四組,第一組包括正向左手、正向雙手、左側(cè)身左手,第二組包括正向右手單手、正向雙手、右側(cè)身右手,第三組包括背向雙手、背向左手、左側(cè)身左手,第四組包括背向雙手、背向右手、右側(cè)身右手,分組原則是每一個(gè)組內(nèi)的動(dòng)作自然過渡;2)將每組內(nèi)的所有動(dòng)作的每一幀都截取下來,每一幀稱為一個(gè)姿態(tài);3)在每組內(nèi)計(jì)算任意兩個(gè)姿態(tài)間的三維距離,用一張運(yùn)動(dòng)圖來表示這些姿態(tài)和他們之間的距離,運(yùn)動(dòng)圖上的節(jié)點(diǎn)是姿態(tài),運(yùn)動(dòng)圖上的邊是它所連接的兩個(gè)節(jié)點(diǎn)所表示的姿態(tài)間的三維骨架距離,為每一個(gè)組都構(gòu)建一個(gè)運(yùn)動(dòng)圖。所述的在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖步驟包括1)對于一張輸入的由攝像機(jī)拍攝下來的圖像,計(jì)算出輸入圖像與背景圖像的差異I麵,定義背景圖像上某點(diǎn)(X,y)的顏色值為(Rba—d(x,y),G—und(x,y),B一,d(x,y)),輸入圖像上對應(yīng)點(diǎn)的顏色值為(Ri,t(x,y),G—(x,y),B—(x,y)),工di^r是一張灰度圖,它表示了輸入圖像和背景圖像對應(yīng)點(diǎn)的差異,產(chǎn)《計(jì)算的公式是s(x,y)一max(|Rbackgr。ud(x,y)—Rbackgroud(x,)0I,IGbackgroud(x,y)_Gbackgroud(x,y)|,|Bbackgroud(X,y)_Bbackgroud(x,y)I);Idiffer(x,y)=s(x,y)/3+s(x_l,y)/6+s(x+l,y)/6+s(x,y_l)/6+s(x,y+l)/6;2)先用一個(gè)大的閾值來將Idiffer二值化,前景為白色,背景為黑色,然后再進(jìn)行膨脹,將會得到一些粗略的人體的團(tuán)塊,而小的噪聲已被濾去,首先找到這些團(tuán)塊中最大的那個(gè)團(tuán)塊,然后設(shè)定一個(gè)距離為閾值,將那些距離主要團(tuán)塊小于這個(gè)閾值的團(tuán)塊吸附到這個(gè)主團(tuán)塊上,最后找到這個(gè)圖像中的前景的矩形區(qū)域R是人體出現(xiàn)的區(qū)域;3)先對包圍盒里面的圖像用一個(gè)小的閾值進(jìn)行二值化,這將得到一個(gè)清晰的輪廓圖;4)在這個(gè)包圍盒的底部用一個(gè)大閾值來進(jìn)行二值化,這將剔除人的影子;5)最后再對提取出來的圖像進(jìn)行簡單的平滑降噪處理,并且將人體輪廓縮放成統(tǒng)一大小后放置在圖片正中央,得到輪廓圖。所述的找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果步驟包括1)輪廓圖像序列在擊中組的運(yùn)動(dòng)圖上將映射成一些點(diǎn),首先將那些明顯偏離群體的點(diǎn)去除,動(dòng)作圖上的點(diǎn)將形成一些序列段;2)從每個(gè)段開始向前和向后去拓展缺少的節(jié)點(diǎn),對于一個(gè)要進(jìn)行推測的節(jié)點(diǎn),以最鄰近它的幀所映射到的節(jié)點(diǎn)為中心,以設(shè)定距離為半徑的一個(gè)區(qū)域,對于這個(gè)區(qū)域的每一個(gè)點(diǎn),計(jì)算它的二維圖像與以該推測節(jié)點(diǎn)號為幀號的輪廓圖在特征值上的海明距離,找到那個(gè)距離最小的點(diǎn)就認(rèn)為是該幀匹配的節(jié)點(diǎn);3)找出運(yùn)動(dòng)圖上節(jié)點(diǎn)所形成的所有序列段,對于每段序列,用上一步所述的拓展方法,推斷出整個(gè)動(dòng)作序列所有節(jié)點(diǎn),這些節(jié)點(diǎn)組成新的序列,對于推斷出來的每一個(gè)新的序列,計(jì)算它的每個(gè)節(jié)點(diǎn)的二維圖像與原始輪廓圖相對應(yīng)幀的特征值的海明距離的和,最后挑選出這個(gè)和最小的那個(gè)序列就是我們匹配到的結(jié)果;4)對結(jié)果動(dòng)作序列進(jìn)行插值,適當(dāng)?shù)卦黾訋瑪?shù)以提高動(dòng)作的平滑連貫。實(shí)施例基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法步驟如下1)如圖la和圖lb首先用運(yùn)動(dòng)捕捉設(shè)備采集各種投籃動(dòng)作,然后將這些動(dòng)作放入數(shù)據(jù)庫,然后按照圖2的方式(動(dòng)作的左右手與單雙手)將這些動(dòng)作分成四組,數(shù)據(jù)庫中的每個(gè)動(dòng)作一定屬于其中的一組中。最后在每一組內(nèi)構(gòu)建一張運(yùn)動(dòng)圖,構(gòu)建運(yùn)動(dòng)圖的方式是將組內(nèi)的所有動(dòng)作拆開成一幀幀的姿態(tài),表示成圖上的一個(gè)節(jié)點(diǎn),計(jì)算任意兩個(gè)姿態(tài)間的三維骨架距離,表示成連接兩個(gè)節(jié)點(diǎn)間的連線;2)對每個(gè)組內(nèi)的每個(gè)節(jié)點(diǎn)表示的姿態(tài)渲染成二維圖像,如圖2中節(jié)點(diǎn)上的圖像,使用機(jī)器學(xué)習(xí)的方法對所有的這些圖像進(jìn)行訓(xùn)練,提取圖像的特征向量,圖像的特征向量可以選擇各種通用的圖像特征,本例中選用圖像的哈爾特征,最后提取出150個(gè)圖像的哈爾特征;3)用提取出來的150個(gè)哈爾特征計(jì)算所有動(dòng)作圖節(jié)點(diǎn)的圖像的特征值,儲存在這個(gè)節(jié)點(diǎn)上;4)在我們的系統(tǒng)開始運(yùn)行時(shí),首先拍下場景中沒有人的圖片,儲存為背景,如圖3時(shí)其中一個(gè)視角下的背景圖;5)保持場景和攝像機(jī)位置不變,當(dāng)人進(jìn)入場景做出投籃動(dòng)作后拍下圖片,這是前景圖片,如圖4是其中的一幀;6)在每個(gè)視角下對每一幀前景圖片進(jìn)行如下過程的輪廓提取提取的過程如圖5,將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到輪廓圖;7)對于拍下來的一串動(dòng)作序列,他由很多幀組成,對每一幀圖像將各視角的輪廓圖拼接起來形成新的圖像,用第2步提取的哈爾特征對拼接圖像進(jìn)行計(jì)算,這樣每一幀圖像擁有一個(gè)特征值。對于每一幀圖像,分別找出每個(gè)動(dòng)作組中與其特征值最相近的那個(gè)節(jié)點(diǎn)及這個(gè)差距,找出所有組中差距最小的那個(gè)組,記下在這個(gè)組號,稱為該幀的擊中組;8)按照第7步中的方法找到每幀圖像的擊中組,統(tǒng)計(jì)每個(gè)組作為擊中組的次數(shù),選擇次數(shù)最多的那一組,稱為整個(gè)動(dòng)作序列的擊中組;9)對于每一幀圖像,在動(dòng)作的擊中組中,都找到與它特征值最相似的那個(gè)節(jié)點(diǎn),稱為該幀的匹配節(jié)點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果。如圖5所述的第6步提取人輪廓圖的步驟為1)首先計(jì)算前景圖像與背景圖像的原始差異圖Idiffer,定義背景圖像上某點(diǎn)(x,y)的顏色值為(RbaekgMUnd(X,y),Gb^fd(x,y),B^kfd(x,y)),輸入圖像上對應(yīng)點(diǎn)的顏色值為(Rinput(x,y),Ginput(x,y),Binput(x,y)),則IdiffCT的計(jì)算方式為s(x,y)=max(|Rbadtgr。ud(x,y)-Rbackgroud(X,Y)I,IGbackgroud(X,Y)-Gbackgroud(X,Y)I,IBbackgroud(X,Y)-Bbackgroud(X,)0I);工differ(x,y)=s(x,y)/3+s(x_l,y)/6+s(x+l,y)/6+s(x,y_l)/6+s(x,y+l)/6;2)然后確定圖像中人所處的大致位置,也就是計(jì)算人的包圍盒位置,先用一個(gè)較大的閾值來將IdiffCT二值化,前景為白色,背景為黑色,然后再進(jìn)行膨脹,將會得到一些較粗略的人體的團(tuán)塊,而小的噪聲已被濾去,首先找到這些團(tuán)塊中最大的那個(gè)團(tuán)塊,認(rèn)為他是人身體的主要部分,然后設(shè)定一個(gè)距離為閾值,將那些距離主要團(tuán)塊小于這個(gè)閾值的團(tuán)塊為可見,其余不可見,這樣找到的這些團(tuán)塊就被認(rèn)為是人的身體,最后找出這些團(tuán)塊的最小包圍盒就是人體的包圍盒;3)在包圍盒內(nèi)用一個(gè)較小的閾值對ldiffsr進(jìn)行濾波,而在包圍盒外全部置為黑色,這樣將得到一個(gè)較為精細(xì)的人體輪廓圖,但是人體的腳下部分通??赡軙霈F(xiàn)一片陰影區(qū)域;4)最后在人體包圍盒的下方約1/3的地方用一個(gè)較大的閾值對IdiffCT濾波,將很好的過濾掉陰影,最后得到較良好的人輪廓所述的第9步根據(jù)原始匹配點(diǎn)合成最后最終運(yùn)動(dòng)結(jié)果的步驟為1)從第8步中可以找到每幀圖像在擊中組上的一個(gè)匹配點(diǎn),這些點(diǎn)如圖6中有陰影的點(diǎn),這些點(diǎn)在運(yùn)動(dòng)圖上有些接續(xù)在一起,有些可能偏離大多數(shù)點(diǎn),那些明顯偏離群體的點(diǎn)如點(diǎn)5被認(rèn)為是匹配錯(cuò)誤的點(diǎn),首先將這些明顯偏離群體點(diǎn)去除;2)因?yàn)槿コ艘恍c(diǎn),所以要將這些點(diǎn)進(jìn)行修復(fù),例如第5幀的位置修復(fù)成為圖6中的黑色實(shí)心點(diǎn),修復(fù)的方法是先在第6幀的點(diǎn)或者第4幀的點(diǎn)周圍的一定范圍找出一些相鄰點(diǎn),然后計(jì)算第5幀輪廓圖的特征值與這些相鄰點(diǎn)的特征值哪一個(gè)最相似,那個(gè)最相似的節(jié)點(diǎn)就認(rèn)為是新的第5幀的匹配節(jié)點(diǎn)。;3)經(jīng)過錯(cuò)誤點(diǎn)修復(fù),剩下的將是斷裂的一段段序列,每一段序列組成一個(gè)連續(xù)區(qū),如圖7中的連續(xù)區(qū)1與連續(xù)區(qū)2,本方法認(rèn)為最后合成的那個(gè)動(dòng)作序列肯定包含其中的一個(gè)連續(xù)區(qū),所以這一步要以每一個(gè)連續(xù)區(qū)為基礎(chǔ)進(jìn)行推斷出整個(gè)動(dòng)作序列,這稱作多段拓展。如圖8a是基于連續(xù)區(qū)1做出的推斷,圖8b是基于連續(xù)區(qū)2做出的推斷。推斷的算法是從每個(gè)段開始向前和向后去拓展,設(shè)要進(jìn)行推測的節(jié)點(diǎn)為f,它代表第i幀動(dòng)作所匹配的節(jié)點(diǎn),設(shè)用于拓展它的父節(jié)點(diǎn)為;,t(通常是最鄰近i幀的節(jié)已知點(diǎn)),則找到動(dòng)作圖以f,M節(jié)點(diǎn)為中心,以一定距離為半徑的一個(gè)區(qū)域,對于這個(gè)區(qū)域的每一個(gè)點(diǎn),計(jì)算它的輪廓圖與第i幀的輪廓圖間在特征值上的海明距離,找到那個(gè)距離最小的點(diǎn)就認(rèn)為是第i幀應(yīng)該匹配的姿態(tài)節(jié)點(diǎn),推測這些點(diǎn)的依據(jù)是一個(gè)動(dòng)作序列的前后兩幀在動(dòng)作圖上應(yīng)該在同一塊局部區(qū)域內(nèi),這稱為局部搜索。最后對于每一種推斷結(jié)果,計(jì)算它的每個(gè)節(jié)點(diǎn)的二維圖像與原始輪廓圖相對應(yīng)幀的特征值的海明距離的和,最后挑選出和最小的那個(gè),這個(gè)序列所代表的動(dòng)作序列就是我們匹配到的結(jié)果;4)對結(jié)果動(dòng)作序列進(jìn)行插值,適當(dāng)?shù)卦黾訋瑪?shù)以提高動(dòng)作的平滑連貫。本方法已經(jīng)被實(shí)現(xiàn)為一個(gè)具體的投籃動(dòng)作識別系統(tǒng),在Windows下使用C++語言編寫實(shí)現(xiàn),本系統(tǒng)的表現(xiàn)情況的主要在于動(dòng)作的識別率,我們將系統(tǒng)對不同人的運(yùn)動(dòng)的識別情況進(jìn)行了測試,測試結(jié)果如下表<table>tableseeoriginaldocumentpage10</column></row><table>參加測試的人員為體態(tài)差異很大的兩人A和B,,每人各做46個(gè)投籃動(dòng)作,合計(jì)92個(gè)動(dòng)作.其中包含了左手、右手、雙手、側(cè)身、和部分背身的投籃動(dòng)作,按照對匹配要求的不同層次列出了三項(xiàng)統(tǒng)計(jì)數(shù)據(jù),其中第一項(xiàng)結(jié)果為匹配后的動(dòng)作與測試數(shù)據(jù)基本姿態(tài)的一致性,要求測試數(shù)據(jù)的左右手、單雙手、是否下蹲等直觀動(dòng)作特點(diǎn)完全匹配,第二項(xiàng)統(tǒng)計(jì)為具體的投籃手型的識別率,要求測試數(shù)據(jù)能夠良好的區(qū)分拋球和投球以及出手的位置,第三項(xiàng)統(tǒng)計(jì)了測試數(shù)據(jù)朝向的準(zhǔn)確率,要求能識別出正向、側(cè)身和背向。測試結(jié)果表明本系統(tǒng)對投籃動(dòng)作的識別情況良好,本系統(tǒng)對動(dòng)作的識別率已經(jīng)可以使用于交互式游戲中。權(quán)利要求一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法,其特征在于包括如下步驟1)將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)圖;2)對于每個(gè)組的運(yùn)動(dòng)圖上的姿態(tài),將其渲染成多個(gè)視角下的二維圖像,使用機(jī)器學(xué)習(xí)的方法對每個(gè)組在各個(gè)視角上的圖像提取圖像特征向量;3)將步驟2)中的每個(gè)姿態(tài)的各個(gè)視角的二維圖像拼接成一張圖,并用步驟2)中的特征向量計(jì)算這個(gè)拼接圖像的特征值,稱為該姿態(tài)的特征值;4)拍下籃球動(dòng)作識別系統(tǒng)的場景內(nèi)在沒有人時(shí)的各個(gè)視角下圖片,稱為背景;5)在進(jìn)行動(dòng)作識別時(shí),拍下人的各個(gè)視角下的整個(gè)投籃動(dòng)作序列的圖片,稱為前景圖片;6)在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖;7)將每個(gè)視角的輪廓圖拼接起來,用步驟2)中提取出來的特征向量計(jì)算出特征值,在步驟1)所述的每個(gè)組上尋找與他特征值最相似的姿態(tài),并將與其特征值最近姿態(tài)所在的組稱為這幀圖像的擊中組。8)找出投籃動(dòng)作的每幀圖像的擊中組,投票選出擊中最多的組,稱為整個(gè)動(dòng)作的擊中組;9)找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果。2.如權(quán)利要求1所述的一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法,其特征在于,所述的將預(yù)先用運(yùn)動(dòng)捕捉設(shè)備采集好的各種投籃動(dòng)作按照朝向與左右手的大類分組,然后將每個(gè)組內(nèi)的動(dòng)作拆解成獨(dú)立的三維姿態(tài),將每個(gè)組內(nèi)的姿態(tài)構(gòu)建成運(yùn)動(dòng)圖步驟包括1)將用動(dòng)作捕捉設(shè)備捕獲下來的三維運(yùn)動(dòng)分成四組,第一組包括正向左手、正向雙手、左側(cè)身左手,第二組包括正向右手單手、正向雙手、右側(cè)身右手,第三組包括背向雙手、背向左手、左側(cè)身左手,第四組包括背向雙手、背向右手、右側(cè)身右手,分組原則是每一個(gè)組內(nèi)的動(dòng)作自然過渡;2)將每組內(nèi)的所有動(dòng)作的每一幀都截取下來,每一幀稱為一個(gè)姿態(tài);3)在每組內(nèi)計(jì)算任意兩個(gè)姿態(tài)間的三維距離,用一張運(yùn)動(dòng)圖來表示這些姿態(tài)和他們之間的距離,運(yùn)動(dòng)圖上的節(jié)點(diǎn)是姿態(tài),運(yùn)動(dòng)圖上的邊是它所連接的兩個(gè)節(jié)點(diǎn)所表示的姿態(tài)間的三維骨架距離,為每一個(gè)組都構(gòu)建一個(gè)運(yùn)動(dòng)圖。3.如權(quán)利要求1所述的一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法,其特征在于,所述的在每個(gè)視角下進(jìn)行如下過程的輪廓提取將前景圖片與背景圖片比較獲得差值圖像,然后根據(jù)差值圖像確定人體所在圖像中的包圍盒位置,再在包圍盒中確定人體的精細(xì)圖像,最后除去人體的陰影干擾,得到的圖像稱為輪廓圖步驟包括1)對于一張輸入的由攝像機(jī)拍攝下來的圖像,計(jì)算出輸入圖像與背景圖像的差異工differ,定義背景圖像上某點(diǎn)(X,y)的顏色值為(Rba勿,d(x,y),(^勿,<1(x,y),#勿,<1(x,y)),輸入圖像上對應(yīng)點(diǎn)的顏色值為(Rinput(x,y),Ginput(x,y),Binput(x,y)),Idiffer是一張灰度圖,它表示了輸入圖像和背景圖像對應(yīng)點(diǎn)的差異,IdiffCT計(jì)算的公式是<formula>formulaseeoriginaldocumentpage3</formula>2)先用一個(gè)大的閾值來將IdiffCT二值化,前景為白色,背景為黑色,然后再進(jìn)行膨脹,將會得到一些粗略的人體的團(tuán)塊,而小的噪聲已被濾去,首先找到這些團(tuán)塊中最大的那個(gè)團(tuán)塊,然后設(shè)定一個(gè)距離為閾值,將那些距離主要團(tuán)塊小于這個(gè)閾值的團(tuán)塊吸附到這個(gè)主團(tuán)塊上,最后找到這個(gè)圖像中的前景的矩形區(qū)域R是人體出現(xiàn)的區(qū)域;3)先對包圍盒里面的圖像用一個(gè)小的閾值進(jìn)行二值化,這將得到一個(gè)清晰的輪廓圖;4)在這個(gè)包圍盒的底部用一個(gè)大閾值來進(jìn)行二值化,這將剔除人的影子;5)最后再對提取出來的圖像進(jìn)行簡單的平滑降噪處理,并且將人體輪廓縮放成統(tǒng)一大小后放置在圖片正中央,得到輪廓圖。4.如權(quán)利要求1所述的一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法,其特征在于,所述的找到每幀圖像在動(dòng)作擊中組上特征值最相近的姿態(tài)所在的點(diǎn),分析這些點(diǎn)之間的關(guān)系,使用多段擴(kuò)展與局部搜索的方法將這些點(diǎn)修復(fù)成在運(yùn)動(dòng)圖上連續(xù)的一段,這段序列所代表的動(dòng)作序列就是人投籃運(yùn)動(dòng)的識別結(jié)果步驟包括1)輪廓圖像序列在擊中組的運(yùn)動(dòng)圖上將映射成一些點(diǎn),首先將那些明顯偏離群體的點(diǎn)去除,動(dòng)作圖上的點(diǎn)將形成一些序列段;2)從每個(gè)段開始向前和向后去拓展缺少的節(jié)點(diǎn),對于一個(gè)要進(jìn)行推測的節(jié)點(diǎn),以最鄰近它的幀所映射到的節(jié)點(diǎn)為中心,以設(shè)定距離為半徑的一個(gè)區(qū)域,對于這個(gè)區(qū)域的每一個(gè)點(diǎn),計(jì)算它的二維圖像與以該推測節(jié)點(diǎn)號為幀號的輪廓圖在特征值上的海明距離,找到那個(gè)距離最小的點(diǎn)就認(rèn)為是該幀匹配的節(jié)點(diǎn);3)找出運(yùn)動(dòng)圖上節(jié)點(diǎn)所形成的所有序列段,對于每段序列,用上一步所述的拓展方法,推斷出整個(gè)動(dòng)作序列所有節(jié)點(diǎn),這些節(jié)點(diǎn)組成新的序列,對于推斷出來的每一個(gè)新的序列,計(jì)算它的每個(gè)節(jié)點(diǎn)的二維圖像與原始輪廓圖相對應(yīng)幀的特征值的海明距離的和,最后挑選出這個(gè)和最小的那個(gè)序列就是我們匹配到的結(jié)果;4)對結(jié)果動(dòng)作序列進(jìn)行插值,適當(dāng)?shù)卦黾訋瑪?shù)以提高動(dòng)作的平滑連貫。全文摘要本發(fā)明公開了一種基于人體輪廓圖提取與分組運(yùn)動(dòng)圖查詢的投籃動(dòng)作識別方法。方法的步驟如下預(yù)先采集投籃動(dòng)作到數(shù)據(jù)庫并按類分組,每組構(gòu)建運(yùn)動(dòng)圖,將所有動(dòng)作渲染成多視角下的二維圖像后提取關(guān)鍵特征,計(jì)算每個(gè)姿態(tài)的圖像特征值。運(yùn)行時(shí)拍下人投籃的圖片序列對其進(jìn)行精細(xì)的輪廓提取,計(jì)算輪廓圖的特征值,在數(shù)據(jù)庫中找到與其特征值最相似姿態(tài)所在組為擊中組,找到該投籃動(dòng)作所有輪廓擊中最多的組,再找到每幀輪廓圖在該組運(yùn)動(dòng)圖上與其特征值最相近的姿態(tài)所在節(jié)點(diǎn),分析這些點(diǎn)并修復(fù)成連續(xù)的一段,作為動(dòng)作識別結(jié)果。本發(fā)明能只利用圖像獲取設(shè)備快速而準(zhǔn)確地識別出投籃動(dòng)作。文檔編號G06K9/00GK101794384SQ20101012291公開日2010年8月4日申請日期2010年3月12日優(yōu)先權(quán)日2010年3月12日發(fā)明者耿衛(wèi)東,魏知曉申請人:浙江大學(xué)