本發(fā)明涉及圖像技術(shù)處理領(lǐng)域,尤其涉及一種跟蹤指蹼位置的方法及其裝置。
背景技術(shù):
指蹼是指在掌骨頭處,掌腱膜深層的橫行纖維與其向遠端發(fā)出的四束縱行纖維之間所圍成的三個纖維間隙,是手掌、手背與手指的掌、背側(cè)之間的通道。而在虛擬戒指試戴或其他需要跟蹤用戶的手部指蹼位置信息的應(yīng)用場景中,難以通過攝像頭拍攝的圖像數(shù)據(jù)準(zhǔn)確地提取出指蹼的位置信息。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提出一種提取指蹼位置的方法,能準(zhǔn)確地從圖像數(shù)據(jù)中跟蹤到指蹼的位置信息。
第一方面,本發(fā)明實施例提供一種跟蹤指蹼位置的方法,包括:
獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;
從所述深度圖像中提取所述手部的外輪廓;
從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;
以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,獲得所述指蹼的輸出位置。
結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述從所述深度圖像中提取所述手部的外輪廓,具體為:
根據(jù)預(yù)設(shè)的手部關(guān)節(jié)點模型,從所述深度圖像中計算出所述手部的每一個關(guān)節(jié)點的深度;
取所述有關(guān)節(jié)點的深度的中值作為參考深度dref;
從所述深度圖像中提取深度在手部深度范圍[dref-δ,dref+δ]內(nèi)的區(qū)域的外輪廓;其中,δ為衡量所述手部的手背與手掌之間厚度的參數(shù)值;
從所述外輪廓中選取輪廓的質(zhì)心距離所述關(guān)節(jié)點的平均距離最近,且輪廓曲線總長度最長的外輪廓作為所述手部的外輪廓。
結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,所述以所述輪廓拐點為指蹼的當(dāng)前位置,利用所述手部的彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,獲得所述指蹼的輸出位置,具體為:
以所述輪廓拐點為指蹼的當(dāng)前位置,從所述手部的彩色圖像中提取以所述當(dāng)前位置為中心點的局部區(qū)域;
將所述當(dāng)前位置進行偏移獲得多個偏移位置,并對于每一個偏移位置,從所述手部的彩色圖像中提取以該偏移位置為中心點且與所述局部區(qū)域相同形狀的區(qū)域作為候選區(qū)域;
計算每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度;
若每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度均大于預(yù)設(shè)閾值,則將所述當(dāng)前位置作為所述指蹼的輸出位置;
若存在一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度不大于所述預(yù)設(shè)閾值時,則選取與所述局部區(qū)域的結(jié)構(gòu)偏差程度最小的候選區(qū)域所對應(yīng)的偏移位置來更新所述當(dāng)前位置,并更新所述局部區(qū)域和所述候選區(qū)域。
結(jié)合第一方面的第二種可能的實現(xiàn)方式中,在第一方面的第三種可能的實現(xiàn)方式中,對于每一個候選區(qū)域,所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度為d(P,Q),其中,P為包含所述局部區(qū)域的每一個像素點的像素值的集合,Q為包含所述候選區(qū)域的每一個像素點的像素值的集合,μP為集合P中所有像素值的均值,μQ為集合Q中所有像素值的均值,σPQ為集合P和集合Q的協(xié)方差,σP為集合P的方差,σQ為集合Q的方差,c1和c2為預(yù)設(shè)常數(shù)。
結(jié)合第一方面的第二種可能的實現(xiàn)方式中,在第一方面的第四種可能的實現(xiàn)方式中,所述當(dāng)前位置為(x,y),則所述偏移位置為(x+δx,y+δy);其中,δx∈{-1,0,1},δy∈{-1,0,1},且δx和δy不同時為0。
結(jié)合第一方面的第二種可能的實現(xiàn)方式中,在第一方面的第五種可能的實現(xiàn)方式中,在以所述輪廓拐點為指蹼的當(dāng)前位置之前,還包括:
將所述輪廓拐點的橫坐標(biāo)修訂所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的橫坐標(biāo)的中值,以及將所述輪廓拐點的縱坐標(biāo)修訂為所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的縱坐標(biāo)的中值;
對所述彩色圖像進行高斯模糊處理。
結(jié)合第一方面,在第一方面的第六種可能的實現(xiàn)方式中,在從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點之前,還包括:
對于所述外輪廓中的每一個輪廓點,將所述輪廓點的橫坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的橫坐標(biāo)的均值,以及,將所述輪廓點的縱坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的縱坐標(biāo)的均值。
相應(yīng)地,在第二方面,本發(fā)明還提供一種跟蹤指蹼位置的裝置,包括:
圖像獲取模塊,用于獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;
外輪廓提取模塊,用于從所述深度圖像中提取所述手部的外輪廓;
輪廓拐點選取模塊,用于從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;
指蹼位置確定模塊,用于以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,獲得所述指蹼的輸出位置。
結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述外輪廓提取模塊,具體包括:
關(guān)節(jié)點深度計算單元,用于根據(jù)預(yù)設(shè)的手部關(guān)節(jié)點模型,從所述深度圖像中計算出所述手部的每一個關(guān)節(jié)點的深度;
參考深度確定單元,用于取所述有關(guān)節(jié)點的深度的中值作為參考深度dref;
輪廓提取單元,用于從所述深度圖像中提取深度在手部深度范圍[dref-δ,dref+δ]內(nèi)的區(qū)域的外輪廓;其中,δ為衡量所述手部的手背與手掌之間厚度的參數(shù)值;
輪廓選取單元,用于從所述外輪廓中選取輪廓的質(zhì)心距離所述關(guān)節(jié)點的平均距離最近,且輪廓曲線總長度最長的外輪廓作為所述手部的外輪廓。
結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述指蹼位置確定模塊,具體包括:
局部區(qū)域確定單元,用于以所述輪廓拐點為指蹼的當(dāng)前位置,從所述手部的彩色圖像中提取以所述當(dāng)前位置為中心點的局部區(qū)域;
候選區(qū)域確定單元,用于將所述當(dāng)前位置進行偏移獲得多個偏移位置,并對于每一個偏移位置,從所述手部的彩色圖像中提取以該偏移位置為中心點且與所述局部區(qū)域相同形狀的區(qū)域作為候選區(qū)域;
偏差程度計算單元,用于計算每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度;
輸出位置確定單元,用于當(dāng)每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度均大于預(yù)設(shè)閾值時,將所述當(dāng)前位置作為所述指蹼的輸出位置;
當(dāng)前位置更新單元,用于當(dāng)存在一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度不大于所述預(yù)設(shè)閾值時,則選取與所述局部區(qū)域的結(jié)構(gòu)偏差程度最小的候選區(qū)域所對應(yīng)的偏移位置來更新所述當(dāng)前位置,進而更新所述局部區(qū)域和所述候選區(qū)域。
結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述指蹼位置確定模塊還包括:
輪廓拐點修訂單元,用于將所述輪廓拐點的橫坐標(biāo)修訂所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的橫坐標(biāo)的中值,以及將所述輪廓拐點的縱坐標(biāo)修訂為所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的縱坐標(biāo)的中值;
高期模糊處理單元,用于對所述彩色圖像進行高斯模糊處理。
結(jié)合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,所述跟蹤指蹼位置的裝置還包括:
輪廓點修訂模塊,用于對于所述外輪廓中的每一個輪廓點,將所述輪廓點的橫坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的橫坐標(biāo)的均值,以及,將所述輪廓點的縱坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的縱坐標(biāo)的均值。
實施本發(fā)明實施例,具有如下有益效果:
本發(fā)明實施例提供的跟蹤指蹼位置的方法和裝置,通過獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;從所述深度圖像中提取所述手部的外輪廓;從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,來獲得所述指蹼的輸出位置,從而準(zhǔn)確地從圖像數(shù)據(jù)中跟蹤到指蹼的位置信息。
附圖說明
圖1是本發(fā)明提供的跟蹤指蹼位置的方法的一個實施例的流程示意圖;
圖2是圖1提供的跟蹤指蹼位置的方法中的步驟S4的一個實施例的流程示意圖;
圖3是圖1提供的跟蹤指蹼位置的方法中的步驟S4的另一個實施例的流程示意圖;
圖4是本發(fā)明提供的跟蹤指蹼位置的裝置的一個實施例的結(jié)構(gòu)示意圖;
圖5是本發(fā)明提供的跟蹤指蹼位置的裝置的外輪廓提取模塊的一個實施例的結(jié)構(gòu)示意圖;
圖6是本發(fā)明提供的跟蹤指蹼位置的裝置的指蹼位置確定模塊的一個實施例的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參見圖1,是本發(fā)明提供的跟蹤指蹼位置的方法的一個實施例的流程示意圖,該方法包括步驟S1至S4,具體如下:
S1,獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;
S2,從所述深度圖像中提取所述手部的外輪廓;
S3,從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;
S4,以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,獲得所述指蹼的輸出位置。
需要說明的是,深度圖像是由深度攝像裝置捕獲到被拍攝物體的圖像,其所包含的每一個像素點的像素值反映的是該被拍攝物體與該像素點對應(yīng)的位置距離攝像頭之間的距離信息;彩色圖像是由普通攝像裝置捕獲到被拍攝物體的圖像,其所包含的每一個像素點的像素值反映的是該被拍攝物體與該像素點對應(yīng)的位置的外觀顏色信息。另外,手部的指蹼一般有四個,對于每一個指蹼的輸出位置的獲取都可依據(jù)上述步驟S1至步驟S4來獲取。
在通過步驟S2獲取到手部的外輪廓時,此時的外輪廓是由一群坐標(biāo)點構(gòu)成的集合,相鄰兩個坐標(biāo)點之間通過直線連接,則外輪廓由多個細短的折線相互連接成的,此時需要對外輪廓進行輕微的平滑操作,具體如下:
對于所述外輪廓中的每一個輪廓點,將所述輪廓點的橫坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的橫坐標(biāo)的均值,以及,將所述輪廓點的縱坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的縱坐標(biāo)的均值。此處的N的數(shù)值可根據(jù)實際需要進行設(shè)置。
而對于上述輪廓拐點的確定,有兩種方式:
其一,對所述外輪廓求凸包,然后選取凸包中連接相鄰指尖的直線,進而從相鄰指尖之間的輪廓點中選取距離該直線最遠的輪廓點作為輪廓拐點;
其二,將所述指尖表示為在包圍所述指尖對應(yīng)的關(guān)節(jié)點的輪廓點中距離所述指尖對應(yīng)的關(guān)節(jié)點最遠的輪廓點,然后連接相鄰指尖獲得直線,進而從所述相鄰指尖之間的輪廓點中選取距離該直線最遠的輪廓點作為輪廓拐點。
需要注意的是,通過上述操作所獲得輪廓拐點并不能直接作為指蹼的輸出位置,由于提取出來的輪廓容易受到圖像背景、手指姿態(tài)的影響以及外輪廓上的輪廓點帶有噪聲的影響,因而直接提取該輪廓拐點作為指蹼的輸出位置存在較大的歧義性,例如,輪廓拐點處于手指縫的某處位置,而并不處于指蹼處,則此時需要通過上述步驟S4對輪廓拐點進行修正,獲取指蹼的真正位置(指蹼的輸出位置)。
而對于上述步驟S2從深度圖像中提取所述手部的外輪廓,其具體實施過程為:
根據(jù)預(yù)設(shè)的手部關(guān)節(jié)點模型,從所述深度圖像中計算出所述手部的每一個關(guān)節(jié)點的深度;
取所述有關(guān)節(jié)點的深度的中值作為參考深度dref;
從所述深度圖像中提取深度在手部深度范圍[dref-δ,dref+δ]內(nèi)的區(qū)域的外輪廓;其中,δ為衡量所述手部的手背與手掌之間厚度的參數(shù)值;
從所述外輪廓中選取輪廓的質(zhì)心距離所述關(guān)節(jié)點的平均距離最近,且輪廓曲線總長度最長的外輪廓作為所述手部的外輪廓。
需要說明的是,手部關(guān)節(jié)點模型是預(yù)先利用大量的記錄有手部的深度圖像的訓(xùn)練集訓(xùn)練出來的模型,該模型包括:基于kinect的手部關(guān)節(jié)點蹤模型、多隨機森林模型等,其是基于手部的深度圖像的信息訓(xùn)練生成的,可優(yōu)選利用隨機森林算法訓(xùn)練手部關(guān)節(jié)點模型。手部關(guān)節(jié)點提供手部各關(guān)節(jié)點的大致位置,并且通過各關(guān)節(jié)點的深度可以估算出整個手部的深度范圍。另外,在少數(shù)情況下,計算到的部分關(guān)節(jié)點也可能因精度不足超出該手部的區(qū)域,或是因深度圖像噪聲導(dǎo)致關(guān)節(jié)點的深度誤差較大,因而,為了減少這些異常關(guān)節(jié)點的影響,取所述關(guān)節(jié)點的深度的中值作為參考深度,則整個手部的深度處于手部深度范圍[dref-δ,dref+δ]內(nèi),δ為衡量所述手部的手背與手掌之間厚度的參數(shù)值,則提取該范圍內(nèi)的區(qū)域的邊緣的外輪廓出來,即為該手部的外輪廓。但是由于受到噪聲或其它干擾區(qū)域的影響,提取出來的外輪廓可能會有多個,此時,從中選取輪廓的質(zhì)心距離所述關(guān)節(jié)點的平均距離最近,且輪廓曲線總長度最長的外輪廓即可。
如圖2所示,圖2是圖1提供的跟蹤指蹼位置的方法中的步驟S4的一個實施例的流程示意圖,則上述步驟S4的具體實施方式為:
S41,以所述輪廓拐點為指蹼的當(dāng)前位置,從所述手部的彩色圖像中提取以所述當(dāng)前位置為中心點的局部區(qū)域;
S42,將所述當(dāng)前位置進行偏移獲得多個偏移位置,并對于每一個偏移位置,從所述手部的彩色圖像中提取以該偏移位置為中心點且與所述局部區(qū)域相同形狀的區(qū)域作為候選區(qū)域;例如,當(dāng)所述當(dāng)前位置為(x,y)時,則所述偏移位置為(x+δx,y+δy);其中,δx∈{-1,0,1},δy∈{-1,0,1},且δx和δy不同時為0,δx和δy的設(shè)置并不限于為上述數(shù)值,可以根據(jù)實際情況進行調(diào)整。
S43,計算每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度;對于每一個候選區(qū)域,所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度為d(P,Q),其中,P為包含所述局部區(qū)域的每一個像素點的像素值的集合,Q為包含所述候選區(qū)域的每一個像素點的像素值的集合,μP為集合P中所有像素值的均值,μQ為集合Q中所有像素值的均值,σPQ為集合P和集合Q的協(xié)方差,σP為集合P的方差,σQ為集合Q的方差,c1和c2為預(yù)設(shè)常數(shù)。由于候選區(qū)域與局部區(qū)域均是從手部的彩色圖像中提取出來的,則上述該結(jié)構(gòu)偏差程度可準(zhǔn)確描述候選區(qū)域與局部區(qū)域兩者的每一個點上的顏色分布(像素值分布)情況。
S44,若每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度均大于預(yù)設(shè)閾值,則將所述當(dāng)前位置作為所述指蹼的輸出位置;
S45,若存在一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度不大于所述預(yù)設(shè)閾值時,則選取與所述局部區(qū)域的結(jié)構(gòu)偏差程度最小的候選區(qū)域所對應(yīng)的偏移位置來更新所述當(dāng)前位置,并更新所述局部區(qū)域和所述候選區(qū)域。
需要說明的是,當(dāng)局部區(qū)域處于指蹼時,該局部區(qū)域與鄰近的候選區(qū)域的顏色分布(即像素值分布)均有較大差別;當(dāng)局部區(qū)域處于指縫時,該局部區(qū)域與沿指縫方向上的鄰近的候選區(qū)域的顏色分布差別相對較小,且該局部區(qū)域與其他的候選區(qū)域的顏色分布差較大。因而,當(dāng)在比較出每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度均大于預(yù)設(shè)閾值時,即可判斷出局部區(qū)域落在指蹼上,將該局部區(qū)域的中心位置(上述當(dāng)前位置)作為指蹼的輸出位置,從而完成對指蹼的輸出位置的修正;反之,可判斷出該局部區(qū)域落在指縫上,需要繼續(xù)對該指蹼的當(dāng)前位置進行修正,且選取與該局部區(qū)域的結(jié)構(gòu)偏差程度最小的候選區(qū)域所對應(yīng)的中心位置(上述偏移位置)更新為該指蹼的當(dāng)前位置,可以確保后續(xù)更新后的指蹼的當(dāng)前位置仍處于指縫上,而不是偏移到非指縫的位置上。
如圖3所示,圖3是圖1提供的跟蹤指蹼位置的方法中的步驟S4的另一個實施例的流程示意圖;在上一個實施例的基礎(chǔ)上,即在上述步驟S41之前還包括:
S46,將所述輪廓拐點的橫坐標(biāo)修訂所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的橫坐標(biāo)的中值,以及將所述輪廓拐點的縱坐標(biāo)修訂為所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的縱坐標(biāo)的中值;
S47,對所述彩色圖像進行高斯模糊處理。此步驟可濾除噪聲對彩色圖像的影響,便于后續(xù)步驟的判斷。
上述提供的跟蹤指蹼位置的方法并不限于跟蹤人體手部,還可以跟蹤腳部或其他由模具構(gòu)造成的手部或腳部,甚至動物的手部或腳部。另外,上述提供的跟蹤指蹼位置的方法可以應(yīng)用于VR(Virtual Reality,虛擬現(xiàn)實),例如,虛擬戒指試戴,即:用戶在客戶端的攝像頭前舉起手部,該攝像頭拍攝用戶的手部,并將拍攝到的深度圖像和彩色圖像傳送到另一接收端,接收端根據(jù)以上提供的跟蹤指蹼位置的方法從深度圖像和彩色圖像中跟蹤到用戶的手部的指蹼的確切位置,然后接收端根據(jù)相鄰兩個指蹼的位置確定戒指在手指上的佩戴位置,并將戒指佩戴在所述用戶的手指的佩戴位置上的圖像返回到客戶端,并在客戶端的顯示器上顯示,從而用戶可以從顯示器中的圖像獲知其佩帶戒指的效果。
本發(fā)明實施例提供的跟蹤指蹼位置的方法,通過獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;從所述深度圖像中提取所述手部的外輪廓;從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,來獲得所述指蹼的輸出位置,從而準(zhǔn)確地從圖像數(shù)據(jù)中跟蹤到指蹼的位置信息。
相應(yīng)地,本發(fā)明還提供一種跟蹤指蹼位置的裝置能實現(xiàn)上述實施例提供的跟蹤指蹼位置的方法的全部流程,參見圖4,是本發(fā)明提供的跟蹤指蹼位置的裝置的一個實施例的結(jié)構(gòu)示意圖,該裝置具體包括:
圖像獲取模塊10,用于獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;
外輪廓提取模塊20,用于從所述深度圖像中提取所述手部的外輪廓;
輪廓拐點選取模塊30,用于從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;
指蹼位置確定模塊40,用于以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,獲得所述指蹼的輸出位置。
結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,參見圖5,是本發(fā)明提供的跟蹤指蹼位置的裝置的外輪廓提取模塊的一個實施例的結(jié)構(gòu)示意圖,所述外輪廓提取模塊20,具體包括:
關(guān)節(jié)點深度計算單元21,用于根據(jù)預(yù)設(shè)的手部關(guān)節(jié)點模型,從所述深度圖像中計算出所述手部的每一個關(guān)節(jié)點的深度;
參考深度確定單元22,用于取所述有關(guān)節(jié)點的深度的中值作為參考深度dref;
輪廓提取單元23,用于從所述深度圖像中提取深度在手部深度范圍[dref-δ,dref+δ]內(nèi)的區(qū)域的外輪廓;其中,δ為衡量所述手部的手背與手掌之間厚度的參數(shù)值;
輪廓選取單元24,用于從所述外輪廓中選取輪廓的質(zhì)心距離所述關(guān)節(jié)點的平均距離最近,且輪廓曲線總長度最長的外輪廓作為所述手部的外輪廓。
結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,參見圖6,是本發(fā)明提供的跟蹤指蹼位置的裝置的指蹼位置確定模塊的一個實施例的結(jié)構(gòu)示意圖,所述指蹼位置確定模塊40,具體包括:
局部區(qū)域確定單元41,用于以所述輪廓拐點為指蹼的當(dāng)前位置,從所述手部的彩色圖像中提取以所述當(dāng)前位置為中心點的局部區(qū)域;
候選區(qū)域確定單元42,用于將所述當(dāng)前位置進行偏移獲得多個偏移位置,并對于每一個偏移位置,從所述手部的彩色圖像中提取以該偏移位置為中心點且與所述局部區(qū)域相同形狀的區(qū)域作為候選區(qū)域;例如,當(dāng)所述當(dāng)前位置為(x,y)時,則所述偏移位置為(x+δx,y+δy);其中,δx∈{-1,0,1},δy∈{-1,0,1},且δx和δy不同時為0。
偏差程度計算單元43,用于計算每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度;對于每一個候選區(qū)域,所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度為d(P,Q),其中,P為包含所述局部區(qū)域的每一個像素點的像素值的集合,Q為包含所述候選區(qū)域的每一個像素點的像素值的集合,μP為集合P中所有像素值的均值,μQ為集合Q中所有像素值的均值,σPQ為集合P和集合Q的協(xié)方差,σP為集合P的方差,σQ為集合Q的方差,c1和c2為預(yù)設(shè)常數(shù)。
輸出位置確定單元44,用于當(dāng)每一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度均大于預(yù)設(shè)閾值時,將所述當(dāng)前位置作為所述指蹼的輸出位置;
當(dāng)前位置更新單元45,用于當(dāng)存在一個所述候選區(qū)域與所述局部區(qū)域的結(jié)構(gòu)偏差程度不大于所述預(yù)設(shè)閾值時,則選取與所述局部區(qū)域的結(jié)構(gòu)偏差程度最小的候選區(qū)域所對應(yīng)的偏移位置來更新所述當(dāng)前位置,進而更新所述局部區(qū)域和所述候選區(qū)域。
結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,參見圖6,所述指蹼位置確定模塊40還包括:
輪廓拐點修訂單元46,用于將所述輪廓拐點的橫坐標(biāo)修訂所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的橫坐標(biāo)的中值,以及將所述輪廓拐點的縱坐標(biāo)修訂為所述輪廓拐點的左側(cè)M個連續(xù)的輪廓點和右側(cè)M個連續(xù)的輪廓點的縱坐標(biāo)的中值;
高期模糊處理單元47,用于對所述彩色圖像進行高斯模糊處理。
結(jié)合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,如圖4所示,所述跟蹤指蹼位置的裝置還包括:
輪廓點修訂模塊50,用于對于所述外輪廓中的每一個輪廓點,將所述輪廓點的橫坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的橫坐標(biāo)的均值,以及,將所述輪廓點的縱坐標(biāo)修訂為所述輪廓點左側(cè)N個連續(xù)輪廓點和右側(cè)N個連續(xù)輪廓點的縱坐標(biāo)的均值。
本發(fā)明實施例提供的跟蹤指蹼位置的裝置,通過獲取記錄用戶手部的同一影像的深度圖像和彩色圖像;從所述深度圖像中提取所述手部的外輪廓;從所述外輪廓的相鄰指尖之間的輪廓點中,選取距離連接所述相鄰指尖的直線最遠的輪廓點作為輪廓拐點;以所述輪廓拐點作為指蹼的當(dāng)前位置,利用所述彩色圖像對所述指蹼的當(dāng)前位置進行迭代修正,來獲得所述指蹼的輸出位置,從而準(zhǔn)確地從圖像數(shù)據(jù)中跟蹤到指蹼的位置信息。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。