本發(fā)明涉及智能設(shè)備技術(shù)領(lǐng)域,尤其涉及一種三維空間中手部定位的方法、裝置及智能設(shè)備。
背景技術(shù):
隨著虛擬現(xiàn)實(shí)技術(shù)(Virtual Reality,VR)以及增強(qiáng)現(xiàn)實(shí)技術(shù)(Augmented Reality,AR)的發(fā)展,VR和AR漸漸被公眾所熟知。VR設(shè)備與AR設(shè)備有望成為下一代人機(jī)交互界面,但是在輸入端,也就是用戶該如何在虛擬環(huán)境中發(fā)出指令和進(jìn)行操作,依然面臨許多瓶頸,例如:定位手部在三維空間中的位置。
現(xiàn)有技術(shù)中,定位手部在三維空間中的位置的主流方法是基于普通2D圖像進(jìn)行定位,具體來(lái)說(shuō):從兩個(gè)視角分別采集兩張包含手部的2D圖像,然后從第一視角的2D圖像提取二維的手部骨架(骨架由關(guān)節(jié)點(diǎn)和關(guān)節(jié)點(diǎn)之間的連接線組成),從第二視角的2D圖像中提取不同于第一視角的二維手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架,從而確定手部在三維空間中的位置。但是發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有基于普通2D圖像定位手部在三維空間中位置的方法,計(jì)算量大,魯棒性差,且容易受環(huán)境干擾。
綜上所述,現(xiàn)有基于普通2D圖像定位手部在三維空間中位置的方法,計(jì)算量大,魯棒性差,且容易受環(huán)境干擾。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種三維空間中手部定位的方法、裝置及智能設(shè)備,用以降低三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且減少手部定位受環(huán)境的干擾。
本發(fā)明實(shí)施例提供的一種三維空間中手部定位的方法,該方法包括:采集包含手部的深度圖像;從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,并基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo);根據(jù)預(yù)先確定的所述相機(jī)在空間中的位姿數(shù)據(jù)以及所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于所述相機(jī)的三維空間坐標(biāo),確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的上述方法中,采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,該方法還包括:基于所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),確定手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系;基于確定出的手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系以及預(yù)先訓(xùn)練生成的手勢(shì)模型,確定所述目標(biāo)深度圖像中所包含手部在空間中的手勢(shì)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,該方法還包括:基于預(yù)先訓(xùn)練生成的手部動(dòng)作模型以及連續(xù)多幀深度圖像中所包含手部在空間中的手勢(shì),確定采集多幀深度圖像對(duì)應(yīng)時(shí)長(zhǎng)內(nèi)手部的動(dòng)作。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,在基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)之前,該方法還包括:判斷所述目標(biāo)深度圖像中所包含的手部為左手或者右手;則所述基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),包括:在判定所述目標(biāo)深度圖像中所包含的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo);以及在判定所述目標(biāo)深度圖像中所包含的手部為右手的條件下,基于預(yù)先訓(xùn)練的右手手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,所述判斷目標(biāo)深度圖像中所包含的手部為左手或者右手,包括:在采集所述深度圖像的時(shí)刻采集包含手部的彩色圖像;根據(jù)所述包含手部的彩色圖像和/或包含手部的深度圖像,基于預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中所包含的手部為左手或者右手。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,所述從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,包括:在所述深度圖像中確定包含手部的目標(biāo)區(qū)域,從所述深度圖像中截取目標(biāo)區(qū)域的深度圖像;對(duì)所述目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,所述對(duì)所述目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像,包括:檢測(cè)所述目標(biāo)區(qū)域的深度圖像中是否存在連通域;在確定所述目標(biāo)區(qū)域的深度圖像中存在連通域的條件下,將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域,從所述目標(biāo)區(qū)域的深度圖像中截取手部連通域的目標(biāo)深度圖像,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,在確定所述目標(biāo)區(qū)域的深度圖像中存在連通域之后,將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域之前,該方法還包括:判斷所述目標(biāo)區(qū)域的深度圖像中最大的連通域是否大于預(yù)設(shè)連通域閾值,并在判定所述目標(biāo)區(qū)域的深度圖像中最大的連通域大于預(yù)設(shè)連通域閾值的條件下,執(zhí)行將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域的操作。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,所述在所述深度圖像中確定包含手部的目標(biāo)區(qū)域,包括:在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;和/或在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,在采集包含手部的深度圖像之后,從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像之前,該方法還包括:對(duì)所述包含手部的深度圖像進(jìn)行預(yù)處理,其中,所述預(yù)處理包括平滑處理和去噪處理;則所述從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,包括:從經(jīng)過(guò)預(yù)處理之后的深度圖像中截取僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,所述基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),包括:基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值;利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述方法中,在確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值之后,在利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理之前,該方法還包括:對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行優(yōu)化處理,其中,所述優(yōu)化處理包括:平滑處理和糾錯(cuò)處理;則所述利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),包括:利用反投影算法對(duì)優(yōu)化后的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的一種三維空間中手部定位的裝置,該裝置包括:采集單元,用于采集包含手部的深度圖像;處理單元,用于從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,并基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo);空間位置確定單元,用于根據(jù)預(yù)先確定的所述相機(jī)在空間中的位姿數(shù)據(jù)以及所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于所述相機(jī)的三維空間坐標(biāo),確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的上述裝置中,采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:關(guān)節(jié)點(diǎn)關(guān)系確定單元,用于基于所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),確定手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系;手勢(shì)確定單元,用于基于確定出的手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系以及預(yù)先訓(xùn)練生成的手勢(shì)模型,確定所述目標(biāo)深度圖像中所包含手部在空間中的手勢(shì)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:手部動(dòng)作確定單元,用于基于預(yù)先訓(xùn)練生成的手部動(dòng)作模型以及連續(xù)多幀深度圖像中所包含手部在空間中的手勢(shì),確定采集多幀深度圖像對(duì)應(yīng)時(shí)長(zhǎng)內(nèi)手部的動(dòng)作。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:左右手判斷單元,用于在所述處理單元基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)之前,判斷所述目標(biāo)深度圖像中所包含的手部為左手或者右手;所述處理單元基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:在所述左右手判斷單元判定所述目標(biāo)深度圖像中所包含的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo);以及在所述左右手判斷單元判定所述目標(biāo)深度圖像中所包含的手部為右手的條件下,基于預(yù)先訓(xùn)練的右手手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述左右手判斷單元,具體用于:在采集所述深度圖像的時(shí)刻采集包含手部的彩色圖像;根據(jù)所述包含手部的彩色圖像和/或包含手部的深度圖像,基于預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中所包含的手部為左手或者右手。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述處理單元從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,具體用于:在所述深度圖像中確定包含手部的目標(biāo)區(qū)域,從所述深度圖像中截取目標(biāo)區(qū)域的深度圖像;對(duì)所述目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述處理單元對(duì)所述目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像,具體用于:檢測(cè)所述目標(biāo)區(qū)域的深度圖像中是否存在連通域;在確定所述目標(biāo)區(qū)域的深度圖像中存在連通域的條件下,將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域,從所述目標(biāo)區(qū)域的深度圖像中截取手部連通域的目標(biāo)深度圖像,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:判斷單元,用于在所述處理單元確定所述目標(biāo)區(qū)域的深度圖像中存在連通域之后,將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域之前,判斷所述目標(biāo)區(qū)域的深度圖像中最大的連通域是否大于預(yù)設(shè)連通域閾值;通知單元,用于在所述判斷單元判定所述目標(biāo)區(qū)域的深度圖像中最大的連通域大于預(yù)設(shè)連通域閾值的條件下,通知所述處理單元將所述目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述處理單元在所述深度圖像中確定包含手部的目標(biāo)區(qū)域,具體用于:在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;和/或在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:第一優(yōu)化處理單元,用于在采集包含手部的深度圖像之后,從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像之前,對(duì)所述包含手部的深度圖像進(jìn)行預(yù)處理,其中,所述預(yù)處理包括平滑處理和去噪處理;則所述處理單元從所述深度圖像中截取僅包含手部的目標(biāo)深度圖像,具體用于:從經(jīng)過(guò)預(yù)處理之后的深度圖像中截取僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,所述處理單元基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及所述目標(biāo)深度圖像,確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值;利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的上述裝置中,該裝置還包括:第二優(yōu)化處理單元,用于在確定所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值之后,在利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理之前,對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行優(yōu)化處理,其中,所述優(yōu)化處理包括:平滑處理和糾錯(cuò)處理;則所述處理單元利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:利用反投影算法對(duì)優(yōu)化后的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到所述目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集所述深度圖像的相機(jī)的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供一種智能設(shè)備,所述智能設(shè)備包括本發(fā)明上述實(shí)施例提供的三維空間中手部定位的裝置。
本發(fā)明實(shí)施例提供的上述系統(tǒng)中,通過(guò)在智能設(shè)備中增加本發(fā)明實(shí)施例提供的三維空間中手部定位的裝置,使得智能設(shè)備能夠采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的一種三維空間中手部定位的方法的示意流程圖;
圖2為本發(fā)明一實(shí)施例提供的手部關(guān)節(jié)點(diǎn)的位置示意圖;
圖3為本發(fā)明一實(shí)施例提供的三維空間中手部定位的方法的具體流程的示意流程圖;
圖4為本發(fā)明另一實(shí)施例提供的三維空間中手部定位的方法的具體流程的示意流程圖;
圖5為本發(fā)明實(shí)施例提供的一種三維空間中手部定位的裝置的的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明實(shí)施例提供的一種三維空間中手部定位的方法、裝置及智能設(shè)備的具體實(shí)施方式進(jìn)行詳細(xì)地說(shuō)明。
需要說(shuō)明的是,本發(fā)明實(shí)施例中提到的手部關(guān)節(jié)點(diǎn)模型(包括左手手部關(guān)節(jié)點(diǎn)模型和右手手部關(guān)節(jié)點(diǎn)模型)、手勢(shì)模型、手部動(dòng)作模型、左右手模型以及手部檢測(cè)模型均是基于深度神經(jīng)網(wǎng)絡(luò)算法預(yù)先輸入大量樣本數(shù)據(jù)訓(xùn)練生成的,其中,基于深度神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練生成各個(gè)模型可以采用現(xiàn)有技術(shù)中的方法,此處不再贅述。
本發(fā)明實(shí)施例提供的一種三維空間中手部定位的方法,如圖1所示,該方法包括:
步驟102,采集包含手部的深度圖像。
本步驟中,采集包含手部的深度圖像,是通過(guò)安裝在智能設(shè)備上的一個(gè)或多個(gè)深度攝像頭進(jìn)行采集的,其中,智能設(shè)備包括但不限于:VR設(shè)備、AR設(shè)備、機(jī)器人、無(wú)人機(jī)以及移動(dòng)終端(例如:手機(jī)、平板電腦等)。
步驟104,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,并基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
由于深度攝像頭采集到的包含手部的深度圖像中,不但包含手部的深度圖像,還可能包含手部所在空間中其它物體的深度圖像,因此,為了減少手部定位受外部環(huán)境的干擾,本步驟中先從采集的深度圖像中截取僅包含手部的目標(biāo)深度圖像,然后基于預(yù)先訓(xùn)練生成的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
值得說(shuō)明的是,為了提高手部定位的準(zhǔn)確性,在從采集的深度圖像中截取僅包含手部的目標(biāo)深度圖像之前,該方法還包括:對(duì)包含手部的深度圖像進(jìn)行預(yù)處理,其中,預(yù)處理包括平滑處理和去噪處理,則從深度圖像中截取僅包含手部的目標(biāo)深度圖像,包括:從經(jīng)過(guò)預(yù)處理之后的深度圖像中截取僅包含手部的目標(biāo)深度圖像。其中,對(duì)深度圖像進(jìn)行平滑處理和去噪處理可以采用現(xiàn)有技術(shù)中的方法,此處不再贅述。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在從采集的深度圖像中截取僅包含手部的目標(biāo)深度圖像之前,對(duì)包含手部的深度圖像進(jìn)行預(yù)處理,預(yù)處理不僅包括平滑處理和去噪處理,還可以包括其它用于提高圖像質(zhì)量的處理,此處并不用于具體限定。
具體實(shí)施時(shí),從采集的深度圖像中截取僅包含手部的深度圖像,包括:在深度圖像中確定包含手部的目標(biāo)區(qū)域,從深度圖像中截取目標(biāo)區(qū)域的深度圖像,對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像。
值得說(shuō)明的是,本發(fā)明實(shí)施例中,在深度圖像中確定包含手部的目標(biāo)區(qū)域,目標(biāo)區(qū)域中不僅包含手部,還可能包含一部分背景,而在對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像之后,目標(biāo)深度圖像中僅包含手部的深度圖像,不包括背景部分的深度圖像。
在包含手部的深度圖像中確定包含手部的目標(biāo)區(qū)域,目標(biāo)區(qū)域可以略大于手部的大小,具體實(shí)施時(shí)可以采用以下兩種實(shí)施方式,具體來(lái)說(shuō):
實(shí)施方式一、在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
較為優(yōu)選地,本實(shí)施方式中提到的當(dāng)前幀之前采集的多幀深度圖像是與當(dāng)前幀深度圖像連續(xù)采集的,也即本實(shí)施方式中提到的當(dāng)前幀之前采集的多幀深度圖像是連續(xù)采集的多幀深度圖像,且多幀深度圖像中的最后一幀是當(dāng)前幀的前一幀。
作為較為具體的實(shí)施例,當(dāng)前幀之前采集的兩幀深度圖像為深度圖像A和深度圖像B,在深度圖像A和深度圖像B中均包含手部的條件下,可以根據(jù)深度圖像A和深度圖像B中包含手部的目標(biāo)區(qū)域所在的位置,確定深度圖像A和深度圖像B中手部的移動(dòng)速度,進(jìn)而根據(jù)手部的移動(dòng)速度以及當(dāng)前幀深度圖像與前一幀深度圖像(深度圖像A或者深度圖像B)之間的采集時(shí)刻之差,確定當(dāng)前幀深度圖像中手部可能出現(xiàn)的區(qū)域范圍,將當(dāng)前幀深度圖像中手部可能出現(xiàn)的區(qū)域范圍作為包含手部的目標(biāo)區(qū)域。
作為另一較為具體的實(shí)施例,當(dāng)前幀之前采集的三幀深度圖像為深度圖像A、深度圖像B以及深度圖像C,在深度圖像A、深度圖像B以及深度圖像C中均包含手部的條件下,可以根據(jù)深度圖像A、深度圖像B以及深度圖像C中包含手部的目標(biāo)區(qū)域所在的位置,確定深度圖像A、深度圖像B以及深度圖像C中手部的移動(dòng)速度和移動(dòng)加速度,進(jìn)而根據(jù)手部的移動(dòng)速度、移動(dòng)加速度以及當(dāng)前幀深度圖像與前一幀深度圖像(深度圖像A、深度圖像B或者深度圖像C)之間的采集時(shí)刻之差,確定當(dāng)前幀深度圖像中手部可能出現(xiàn)的區(qū)域范圍,將當(dāng)前幀深度圖像中手部可能出現(xiàn)的區(qū)域范圍作為包含手部的目標(biāo)區(qū)域。
值得說(shuō)明的是,本實(shí)施方式中提到的當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域,在采用此實(shí)施方式進(jìn)行確定包含手部的目標(biāo)區(qū)域時(shí),當(dāng)前幀之前采集的深度圖像中包含手部的圖像幀越多,則可以確定出的手部的移動(dòng)信息越多,進(jìn)而確定出的當(dāng)前幀深度圖像中手部可能出現(xiàn)的區(qū)域越準(zhǔn)確。
在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部的條件下,或者在當(dāng)前幀的前一幀深度圖像中未包含手部的條件下,不能使用實(shí)施方式一的方法確定包含手部的目標(biāo)區(qū)域,則此種情況,可以使用實(shí)施方式二確定包含手部的目標(biāo)區(qū)域。
實(shí)施方式二、在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部或者在當(dāng)前幀深度圖像中新出現(xiàn)手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
具體實(shí)施時(shí),在前一幀深度圖像中未包含手部的條件下,在當(dāng)前幀深度圖像中可能包含手部,因此,基于預(yù)先訓(xùn)練的手部檢測(cè)模型,確定當(dāng)前幀深度圖像中是否包含手部,在確定當(dāng)前幀深度圖像中包含手部的條件下,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
由于采用實(shí)施方式一的方式在當(dāng)前幀深度圖像中確定包含手部的目標(biāo)區(qū)域時(shí),至少需要當(dāng)前幀之前的兩幀深度圖像中包含手部,因此,在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部的條件下,在確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域時(shí),需要基于預(yù)先訓(xùn)練的手部檢測(cè)模型,確定當(dāng)前幀深度圖像中是否包含手部,并在確定當(dāng)前幀深度圖像中包含手部的條件下,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
當(dāng)然,值得說(shuō)明的是,具體實(shí)施時(shí),為了避免漏檢深度圖像中包含的手部,本發(fā)明其它實(shí)施例中,在深度圖像中確定包含手部的深度圖像時(shí),無(wú)論當(dāng)前幀之前采集的多幀深度圖像是否包含手部,可以僅采用實(shí)施方式二的方法,基于預(yù)先訓(xùn)練的手部檢測(cè)模型,在當(dāng)前幀深度圖像中確定包含手部的目標(biāo)區(qū)域。
較為優(yōu)選地,在深度圖像中確定包含手部的目標(biāo)區(qū)域時(shí),可以采用實(shí)施方式一與實(shí)施方式二相結(jié)合的方式進(jìn)行確定,如此以來(lái),無(wú)論是當(dāng)前幀之前多幀深度圖像中出現(xiàn)過(guò)的手部,還是當(dāng)前幀深度圖像中首次出現(xiàn)的手部均可以被確定出來(lái),從而避免漏檢,提高準(zhǔn)確性。
在當(dāng)前幀深度圖像中確定包含手部的目標(biāo)區(qū)域之后,由于目標(biāo)區(qū)域中不僅包含手部的深度圖像,還可能包含背景部分的深度圖像,因此,為了提高手部定位的準(zhǔn)確性,減少外部環(huán)境的干擾,本發(fā)明實(shí)施例還可以對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像。
具體實(shí)施時(shí),對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像,包括:檢測(cè)目標(biāo)區(qū)域的深度圖像中是否存在連通域,在確定目標(biāo)區(qū)域的深度圖像中存在連通域的條件下,將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域,從目標(biāo)區(qū)域的深度圖像中截取手部連通域的目標(biāo)深度圖像,生成僅包含手部的目標(biāo)深度圖像。
值得說(shuō)明的是,目標(biāo)區(qū)域的深度圖像為包含手部的目標(biāo)區(qū)域,該目標(biāo)區(qū)域是以手部為主,因此,在目標(biāo)區(qū)域的深度圖像中存在連通域的條件下,則將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域,然后從目標(biāo)區(qū)域的深度圖像中截取手部連通域的目標(biāo)深度圖像,生成僅包含手部的目標(biāo)深度圖像。其中,在目標(biāo)區(qū)域的深度圖像中確定連通域可以采用現(xiàn)有技術(shù)中的方法,此處不再贅述。
較為優(yōu)選地,在確定目標(biāo)區(qū)域的深度圖像中存在連通域之后,將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域之前,該方法還包括:判斷目標(biāo)區(qū)域的深度圖像中最大的連通域是否大于預(yù)設(shè)連通域閾值,并在判定目標(biāo)區(qū)域的深度圖像中最大的連通域大于預(yù)設(shè)連通域閾值的條件下,執(zhí)行將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域的操作。
具體實(shí)施時(shí),在確定目標(biāo)區(qū)域的深度圖像中存在連通域之后,為了提高確定出的手部連通域的準(zhǔn)確性,在將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域之前,還需要判斷目標(biāo)區(qū)域的深度圖像中最大的連通域是否大于預(yù)設(shè)連通域閾值,若判定目標(biāo)區(qū)域的深度圖像中最大的連通域大于預(yù)設(shè)連通域閾值,則確定目標(biāo)區(qū)域的深度圖像中最大的連通域?yàn)槭植康倪B通域,若目標(biāo)區(qū)域的深度圖像中最大的連通域小于預(yù)設(shè)連通域閾值,則確定目標(biāo)區(qū)域的深度圖像中最大的連通域不為手部的連通域。其中,預(yù)設(shè)連通域閾值可以根據(jù)手部連通域的最小值進(jìn)行設(shè)定,例如:預(yù)設(shè)連通域閾值為5000個(gè)像素。
具體實(shí)施時(shí),步驟104中基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),包括:基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值,利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
具體來(lái)說(shuō),深度圖像上的每個(gè)像素用(U,V,D)表示,其中,(U,V)代表像素坐標(biāo),(D)代表深度值,也可稱為像素值,將目標(biāo)深度圖像輸入到預(yù)先訓(xùn)練生成的手部關(guān)節(jié)點(diǎn)模型中,即可確定出目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素(U’,V’,D’),也即確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值,然后利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。其中,反投影算法可以采用現(xiàn)有技術(shù)中的方法,此處不再贅述。
值得說(shuō)明的是,本發(fā)明實(shí)施例中,手部關(guān)節(jié)點(diǎn)模型中包括23個(gè)關(guān)節(jié)點(diǎn),如圖2所示,手部選取23個(gè)關(guān)節(jié)點(diǎn)a,每個(gè)手指上包含4個(gè)關(guān)節(jié)點(diǎn)a,手心包含一個(gè)關(guān)節(jié)點(diǎn)a,手腕包含兩個(gè)關(guān)節(jié)點(diǎn)a,每個(gè)手部一共包含23個(gè)關(guān)節(jié)點(diǎn)a。當(dāng)然,在本發(fā)明其它實(shí)施例中,為了降低計(jì)算量,手部關(guān)節(jié)點(diǎn)模型中手部關(guān)節(jié)點(diǎn)的數(shù)量也可以少于23個(gè),而為了提高手部定位的準(zhǔn)確性,手部關(guān)節(jié)點(diǎn)模型中手部關(guān)節(jié)點(diǎn)的數(shù)量也可以多于23個(gè),本發(fā)明實(shí)施例中手部關(guān)節(jié)點(diǎn)模型中包括23個(gè)關(guān)節(jié)點(diǎn),并不用于具體限定。
較為優(yōu)選地,為了提高確定出的手部關(guān)節(jié)點(diǎn)像素坐標(biāo)和像素值的準(zhǔn)確性,本發(fā)明實(shí)施例在確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值之后,在利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理之前,該方法還包括:對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行優(yōu)化處理,其中,優(yōu)化處理包括:平滑處理和糾錯(cuò)處理;則利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),包括:利用反投影算法對(duì)優(yōu)化后的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
具體實(shí)施時(shí),對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行平滑處理和糾錯(cuò)處理,可以優(yōu)化和校準(zhǔn)錯(cuò)誤手部關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值,在對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行平滑處理和糾錯(cuò)處理時(shí),可以使用以下技術(shù)中的一種或多種:卡爾曼濾波器、前后幀時(shí)序限制以及手部的關(guān)節(jié)點(diǎn)限制,當(dāng)然,還可以采用現(xiàn)有技術(shù)中的其它技術(shù)進(jìn)行優(yōu)化,此處并不用于具體限定。其中,前后幀時(shí)序限制是指深度攝像頭在較高的圖像采集幀率下(例如:圖像采集幀率大于或等于每秒30幀),根據(jù)手部所有關(guān)節(jié)點(diǎn)確定的手部姿態(tài)不可能在前后幀之間發(fā)生突變,例如:前一幀右手手背朝上,下一幀不可能出現(xiàn)同一右手手背朝下,因?yàn)榍昂髱g的時(shí)間間隙非常小(圖像采集幀率大于或等于每秒30幀時(shí),采集前后幀圖像之間的時(shí)間間隙小于33毫秒)的情況下,手部的移動(dòng)與手勢(shì)的改變是一個(gè)逐漸變化的過(guò)程。而手部的關(guān)節(jié)點(diǎn)限制是指手部各關(guān)節(jié)點(diǎn)的位置不能違反手部的生理特征或者人體的骨骼限制,手部各個(gè)關(guān)節(jié)點(diǎn)不能出現(xiàn)在不可能出現(xiàn)的位置,例如:手指上的關(guān)節(jié)點(diǎn)以超大角度向后彎曲,不符合人體骨骼的限制;再例如:手指上的關(guān)節(jié)點(diǎn)近乎都處于手指可彎曲的平面上,其中某個(gè)手指關(guān)節(jié)點(diǎn)不可能嚴(yán)重偏離這個(gè)平面。
值得說(shuō)明的是,本發(fā)明實(shí)施例中,對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行優(yōu)化處理,優(yōu)化處理可以循環(huán)優(yōu)化多次,以提高確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值的準(zhǔn)確性。
較為優(yōu)選地,在基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)時(shí),為了提高計(jì)算速度,本發(fā)明實(shí)施例中,在基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)之前,該方法還包括:判斷目標(biāo)深度圖像中所包含的手部為左手或者右手;則基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),包括:在判定目標(biāo)深度圖像中所包含的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);以及在判定目標(biāo)深度圖像中所包含的手部為右手的條件下,基于預(yù)先訓(xùn)練的右手手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
具體實(shí)施時(shí),在基于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練生成手部關(guān)節(jié)點(diǎn)模型時(shí),可以將左手和右手分開訓(xùn)練,也即生成左手手部關(guān)節(jié)點(diǎn)模型和右手手部關(guān)節(jié)點(diǎn)模型。在確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)之前,可以先確定目標(biāo)深度圖像中的手部為左手或右手,在確定目標(biāo)深度圖像中手部為左手的條件下,就可以基于左手手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),而在確定目標(biāo)深度圖像中手部為右手的條件下,就可以基于右手手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
更為優(yōu)選地,若在確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)之前,先確定目標(biāo)深度圖像中的手部為左手或右手,則為了降低訓(xùn)練手部關(guān)節(jié)點(diǎn)模型的工作量,在基于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練生成手部關(guān)節(jié)點(diǎn)模型時(shí),也可以僅訓(xùn)練左手或者右手,也即僅生成左手手部關(guān)節(jié)點(diǎn)模型或者僅生成右手手部關(guān)節(jié)點(diǎn)模型。
以僅生成左手手部關(guān)節(jié)點(diǎn)模型為例,若確定目標(biāo)深度圖像中的手部為左手,則基于左手手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),若確定目標(biāo)深度圖像中的手部為右手,則根據(jù)人左右手部的鏡像原理,將包含右手的目標(biāo)深度圖像轉(zhuǎn)換為包含左手的目標(biāo)深度圖像,并基于左手手部關(guān)節(jié)點(diǎn)模型以及轉(zhuǎn)換生成的包含左手的目標(biāo)深度圖像,確定轉(zhuǎn)換生成的包含左手的目標(biāo)深度圖像中左手的手部關(guān)節(jié)點(diǎn)像素坐標(biāo)與像素值,然后再根據(jù)人左右手部的鏡像原理以及確定出的左手手部關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值,將確定出的左手的手部關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值根據(jù)手部鏡像原理對(duì)應(yīng)到右手的手部關(guān)節(jié)點(diǎn),進(jìn)而確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
具體實(shí)施時(shí),判斷目標(biāo)深度圖像中所包含的手部為左手或者右手,包括:在采集深度圖像的時(shí)刻同時(shí)采集包含手部的彩色圖像,根據(jù)包含手部的彩色圖像和/或包含手部的深度圖像,基于預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中所包含的手部為左手或者右手。
步驟106,根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本步驟中,根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù),可以確定相機(jī)在以預(yù)設(shè)位置(例如:初始位置)為原點(diǎn)的空間坐標(biāo)系中的位置與姿態(tài),根據(jù)目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于相機(jī)的三維空間坐標(biāo),可以確定手部各關(guān)節(jié)點(diǎn)在以相機(jī)為原點(diǎn)的空間坐標(biāo)系中的位置,通過(guò)轉(zhuǎn)換即可得到手部各關(guān)節(jié)點(diǎn)在以預(yù)設(shè)位置(例如:初始位置)為原點(diǎn)的空間坐標(biāo)系中的位置,也即確定出目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的方法中,采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
在確定出目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)之后,本發(fā)明實(shí)施例進(jìn)一步還可以:基于目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),確定手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系,基于確定出的手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系以及預(yù)先訓(xùn)練生成的手勢(shì)模型,確定目標(biāo)深度圖像中所包含手部在空間中的手勢(shì)。
需要說(shuō)明的是,現(xiàn)有技術(shù)中基于深度圖像確定深度圖像中包含手部手勢(shì)的方法為:采集包含手部的深度圖像,分割出僅包含手部的目標(biāo)深度圖像,然后對(duì)預(yù)先存儲(chǔ)的三維手部模型的參數(shù)進(jìn)行調(diào)整(參數(shù)調(diào)整可以使手指彎曲、手掌平移旋轉(zhuǎn)等),并生成對(duì)應(yīng)的特定手勢(shì)參考深度圖像,將特定手勢(shì)參考深度圖像與目標(biāo)深度圖像匹配,若在一定條件下匹配成功,則將此時(shí)特定手勢(shì)參考深度圖像對(duì)應(yīng)的三維手部模型的手勢(shì)認(rèn)為是該目標(biāo)深度圖像對(duì)應(yīng)時(shí)刻的手勢(shì),若沒(méi)有匹配成功,則繼續(xù)對(duì)預(yù)先存儲(chǔ)的三維手部模型進(jìn)行參數(shù)調(diào)整形成不同的特定手勢(shì)參考深度圖像,直至匹配成功。此種方案,雖然可以在深度圖像中包含手部的條件下,確定出深度圖像中的手勢(shì),但是,通常需要對(duì)預(yù)先存儲(chǔ)的三維手部模型參數(shù)進(jìn)行多次調(diào)整,并將生成的特定手勢(shì)參考深度圖像與目標(biāo)深度圖像進(jìn)行多次匹配,才能確定目標(biāo)深度圖像中的手勢(shì),計(jì)算量較大,而且手勢(shì)識(shí)別誤識(shí)別率較高。
與現(xiàn)有技術(shù)中基于深度圖像確定深度圖像中包含手部手勢(shì)的方法相比,本發(fā)明實(shí)施例中,首先確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),然后基于目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),確定手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系,基于確定出的手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系以及預(yù)先訓(xùn)練生成的手勢(shì)模型,確定目標(biāo)深度圖像中所包含手部在空間中的手勢(shì),不但計(jì)算量小,而且手勢(shì)誤識(shí)別率低。
在確定出多幀深度圖像中所包含手部在空間中的手勢(shì)之后,本發(fā)明實(shí)施例進(jìn)一步還可以:基于預(yù)先訓(xùn)練生成的手部動(dòng)作模型以及連續(xù)多幀深度圖像中所包含手部在空間中的手勢(shì),確定采集多幀深度圖像對(duì)應(yīng)時(shí)長(zhǎng)內(nèi)手部的動(dòng)作。
需要說(shuō)明的是,本發(fā)明實(shí)施例在確定出目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)之后,不僅可以確定深度圖像中所包含手部在空間中的手勢(shì),而且可以進(jìn)一步根據(jù)多幀深度圖像中包含手部在空間中的手勢(shì)變化,確定采集多幀深度圖像對(duì)應(yīng)時(shí)長(zhǎng)內(nèi)手部的動(dòng)作,無(wú)需手柄或外部輔助設(shè)備,即可確定手勢(shì)和手部的動(dòng)作,有效解決了智能設(shè)備中的人機(jī)交互輸入問(wèn)題。
下面結(jié)合圖3對(duì)本發(fā)明一實(shí)施例提供的三維空間中手部定位的方法進(jìn)行詳細(xì)說(shuō)明,本實(shí)施例中預(yù)先訓(xùn)練左手關(guān)節(jié)點(diǎn)模型和右手關(guān)節(jié)點(diǎn)模型,如圖3所示,本發(fā)明一實(shí)施例提供的三維空間中手部定位的方法的具體步驟,包括:
步驟302,采集包含手部的深度圖像;可選地,還可以同時(shí)采集包含手部的彩色圖像;
步驟304,對(duì)采集到的深度圖像進(jìn)行預(yù)處理,其中,預(yù)處理包括但不限于:去噪處理和平滑處理;
步驟306,在深度圖像中確定包含手部的目標(biāo)區(qū)域;具體來(lái)說(shuō),包括:在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;和/或在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀包含手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;
步驟308,從采集到的深度圖像中截取目標(biāo)區(qū)域的深度圖像;
步驟310,對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割,生成僅包含手部的目標(biāo)深度圖像;
步驟312,基于包含手部的深度圖像以及預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中的手部為左手或右手,若判定目標(biāo)深度圖像中的手部為左手,則執(zhí)行步驟314,若判定目標(biāo)深度圖像中的手部為右手,則執(zhí)行步驟316;當(dāng)然,需要說(shuō)明的是,若步驟302中,在采集包含手部的深度圖像的同時(shí),采集了包含手部的彩色圖像,則本步驟中,也可以基于包含手部的彩色圖像以及預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中的手部為左手或右手,當(dāng)然,步驟312為可選步驟,在本發(fā)明其它實(shí)施例中也可以不執(zhí)行此步驟;
步驟314,在判定目標(biāo)深度圖像中的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);
步驟316,在判定目標(biāo)深度圖像中的手部為右手的條件下,基于預(yù)先訓(xùn)練的右手關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);
當(dāng)然,在本發(fā)明其它實(shí)施例中,若未執(zhí)行步驟312,則步驟314和步驟316可以合并為一個(gè)步驟,具體為:基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),其中,預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型包括左手關(guān)節(jié)點(diǎn)模型和右手關(guān)節(jié)點(diǎn)模型。
步驟318,對(duì)目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)進(jìn)行優(yōu)化處理;其中,優(yōu)化處理包括但不限于:平滑處理和糾錯(cuò)處理;可選地,優(yōu)化處理可以為循環(huán)優(yōu)化處理,也即可以優(yōu)化處理多次,在優(yōu)化處理次數(shù)達(dá)到預(yù)設(shè)次數(shù)(例如:10次)或者優(yōu)化處理結(jié)果符合特定條件(例如:兩次優(yōu)化結(jié)果相似度大于95%)時(shí),停止優(yōu)化處理;
步驟320,根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
下面結(jié)合圖4對(duì)本發(fā)明另一實(shí)施例提供的三維空間中手部定位的方法進(jìn)行詳細(xì)說(shuō)明,本實(shí)施例中預(yù)先訓(xùn)練左手關(guān)節(jié)點(diǎn)模型或者右手關(guān)節(jié)點(diǎn)模型,以預(yù)先訓(xùn)練左手關(guān)節(jié)點(diǎn)模型為例,本實(shí)施例中在確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)之前,需要先確定目標(biāo)深度圖像中的手部為左手或者右手,如圖4所示,本發(fā)明另一實(shí)施例提供的三維空間中手部定位的方法的具體步驟,包括:
步驟402,采集包含手部的深度圖像;可選地,還可以同時(shí)采集包含手部的彩色圖像;
步驟404,對(duì)采集到的深度圖像進(jìn)行預(yù)處理,其中,預(yù)處理包括但不限于:去噪處理和平滑處理;
步驟406,在深度圖像中確定包含手部的目標(biāo)區(qū)域;具體來(lái)說(shuō),包括:在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;和/或在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀包含手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;
步驟408,從采集到的深度圖像中截取目標(biāo)區(qū)域的深度圖像;
步驟410,對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割,生成僅包含手部的目標(biāo)深度圖像;
步驟412,基于包含手部的深度圖像以及預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中的手部為左手或右手,若判定目標(biāo)深度圖像中的手部為左手,則執(zhí)行步驟414,若判定目標(biāo)深度圖像中的手部為右手,則執(zhí)行步驟416;當(dāng)然,需要說(shuō)明的是,若步驟402中,在采集包含手部的深度圖像的同時(shí),采集了包含手部的彩色圖像,則本步驟中,也可以基于包含手部的彩色圖像以及預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中的手部為左手或右手;
步驟414,在判定目標(biāo)深度圖像中的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);
步驟416,在判定目標(biāo)深度圖像中的手部為右手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型、人左右手部的鏡像原理以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);具體來(lái)說(shuō),在判定目標(biāo)深度圖像中的手部為右手的條件下,則根據(jù)人左右手部的鏡像原理,將包含右手的目標(biāo)深度圖像轉(zhuǎn)換為包含左手的目標(biāo)深度圖像,并基于左手手部關(guān)節(jié)點(diǎn)模型以及轉(zhuǎn)換生成的包含左手的目標(biāo)深度圖像,確定轉(zhuǎn)換生成的包含左手的目標(biāo)深度圖像中左手的手部關(guān)節(jié)點(diǎn)像素坐標(biāo)與像素值,然后再根據(jù)人左右手部的鏡像原理以及確定出的左手手部關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值,將確定出的左手的手部關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值根據(jù)手部鏡像原理對(duì)應(yīng)到右手的手部關(guān)節(jié)點(diǎn),進(jìn)而確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);
步驟418,對(duì)目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)進(jìn)行優(yōu)化處理;其中,優(yōu)化處理包括但不限于:平滑處理和糾錯(cuò)處理;可選地,優(yōu)化處理可以為循環(huán)優(yōu)化處理,也即可以優(yōu)化處理多次,在優(yōu)化處理次數(shù)達(dá)到預(yù)設(shè)次數(shù)(例如:10次)或者優(yōu)化處理結(jié)果符合特定條件(例如:兩次優(yōu)化結(jié)果相似度大于95%)時(shí),停止優(yōu)化處理;
步驟420,根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的一種三維空間中手部定位的裝置,如圖5所示,該裝置包括:采集單元502,用于采集包含手部的深度圖像;處理單元504,用于從深度圖像中截取僅包含手部的目標(biāo)深度圖像,并基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);空間位置確定單元506,用于根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的裝置中,采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:關(guān)節(jié)點(diǎn)關(guān)系確定單元508,用于基于目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),確定手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系;手勢(shì)確定單元510,用于基于確定出的手部關(guān)節(jié)點(diǎn)之間的空間距離關(guān)系以及預(yù)先訓(xùn)練生成的手勢(shì)模型,確定目標(biāo)深度圖像中所包含手部在空間中的手勢(shì)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:手部動(dòng)作確定單元512,用于基于預(yù)先訓(xùn)練生成的手部動(dòng)作模型以及連續(xù)多幀深度圖像中所包含手部在空間中的手勢(shì),確定采集多幀深度圖像對(duì)應(yīng)時(shí)長(zhǎng)內(nèi)手部的動(dòng)作。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:左右手判斷單元514,用于在處理單元504基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)之前,判斷目標(biāo)深度圖像中所包含的手部為左手或者右手;處理單元504基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:在左右手判斷單元514判定目標(biāo)深度圖像中所包含的手部為左手的條件下,基于預(yù)先訓(xùn)練的左手關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中左手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo);以及在左右手判斷單元514判定目標(biāo)深度圖像中所包含的手部為右手的條件下,基于預(yù)先訓(xùn)練的右手手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中右手手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,左右手判斷單元514,具體用于:在采集深度圖像的時(shí)刻采集包含手部的彩色圖像;根據(jù)包含手部的彩色圖像和/或包含手部的深度圖像,基于預(yù)先訓(xùn)練生成的左右手模型,判斷目標(biāo)深度圖像中所包含的手部為左手或者右手。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,處理單元504從深度圖像中截取僅包含手部的目標(biāo)深度圖像,具體用于:在深度圖像中確定包含手部的目標(biāo)區(qū)域,從深度圖像中截取目標(biāo)區(qū)域的深度圖像;對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,處理單元504對(duì)目標(biāo)區(qū)域的深度圖像進(jìn)行基于手部的語(yǔ)義分割處理,生成僅包含手部的目標(biāo)深度圖像,具體用于:檢測(cè)目標(biāo)區(qū)域的深度圖像中是否存在連通域;在確定目標(biāo)區(qū)域的深度圖像中存在連通域的條件下,將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域,從目標(biāo)區(qū)域的深度圖像中截取手部連通域的目標(biāo)深度圖像,生成僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:判斷單元516,用于在處理單元504確定目標(biāo)區(qū)域的深度圖像中存在連通域之后,將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域之前,判斷目標(biāo)區(qū)域的深度圖像中最大的連通域是否大于預(yù)設(shè)連通域閾值;通知單元518,用于在判斷單元516判定目標(biāo)區(qū)域的深度圖像中最大的連通域大于預(yù)設(shè)連通域閾值的條件下,通知處理單元504將目標(biāo)區(qū)域的深度圖像中最大的連通域確定為手部連通域。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,處理單元504在深度圖像中確定包含手部的目標(biāo)區(qū)域,具體用于:在當(dāng)前幀之前采集的多幀深度圖像中均包含手部的條件下,根據(jù)當(dāng)前幀之前采集的多幀深度圖像中包含手部的目標(biāo)區(qū)域的移動(dòng)軌跡,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域;和/或在當(dāng)前幀的前一幀深度圖像中未包含手部或者在當(dāng)前幀之前采集的多幀深度圖像中僅當(dāng)前幀的前一幀深度圖像中包含手部的條件下,基于預(yù)先訓(xùn)練的手部檢測(cè)模型以及當(dāng)前幀深度圖像,確定當(dāng)前幀深度圖像中包含手部的目標(biāo)區(qū)域。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:第一優(yōu)化處理單元520,用于在采集包含手部的深度圖像之后,從深度圖像中截取僅包含手部的目標(biāo)深度圖像之前,對(duì)包含手部的深度圖像進(jìn)行預(yù)處理,其中,預(yù)處理包括平滑處理和去噪處理;則處理單元504從深度圖像中截取僅包含手部的目標(biāo)深度圖像,具體用于:從經(jīng)過(guò)預(yù)處理之后的深度圖像中截取僅包含手部的目標(biāo)深度圖像。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,處理單元504基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值;利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
在一種可能的實(shí)施方式中,本發(fā)明實(shí)施例提供的裝置中,該裝置還包括:第二優(yōu)化處理單元522,用于在確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值之后,在利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理之前,對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行優(yōu)化處理,其中,優(yōu)化處理包括:平滑處理和糾錯(cuò)處理;則處理單元504利用反投影算法對(duì)確定出的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),具體用于:利用反投影算法對(duì)優(yōu)化后的手部各關(guān)節(jié)點(diǎn)的像素坐標(biāo)與像素值進(jìn)行處理,得到目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo)。
本發(fā)明實(shí)施例提供的三維空間中手部定位的裝置,可以集成在智能設(shè)備中,智能設(shè)備包括但不限于:VR設(shè)備、AR設(shè)備、機(jī)器人、無(wú)人機(jī)以及移動(dòng)終端(例如:手機(jī)、平板電腦等),也可以集成在與智能設(shè)備相連接的控制器中,其中,處理單元504、空間位置確定單元506、關(guān)節(jié)點(diǎn)關(guān)系確定單元508、手勢(shì)確定單元510、手部動(dòng)作確定單元512、左右手判斷單元514、判斷單元516、通知單元518、第一優(yōu)化處理單元520以及第二優(yōu)化處理單元522可以采用同一硬件或者設(shè)備,也可以采用不同的硬件或者設(shè)備,采集單元502可以采用深度攝像頭。
本發(fā)明實(shí)施例提供一種智能設(shè)備,智能設(shè)備包括本發(fā)明實(shí)施例提供的三維空間中手部定位的裝置。
本發(fā)明實(shí)施例提供的系統(tǒng)中,通過(guò)在智能設(shè)備中增加本發(fā)明實(shí)施例提供的三維空間中手部定位的裝置,使得智能設(shè)備能夠采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),與現(xiàn)有技術(shù)中基于普通2D圖像定位手部在三維空間中位置的方法,需要分別基于第一視角和第二視角的2D圖像提取二維的手部骨架,將兩個(gè)不同視角下的二維手部骨架通過(guò)雙目視覺(jué)原理建立三維手部骨架相比,本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
綜上所述,本發(fā)明實(shí)施例提供的一種三維空間中手部定位的方法、裝置及智能設(shè)備,采集包含手部的深度圖像,從深度圖像中截取僅包含手部的目標(biāo)深度圖像,基于預(yù)先訓(xùn)練的手部關(guān)節(jié)點(diǎn)模型以及目標(biāo)深度圖像,確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),進(jìn)而根據(jù)預(yù)先確定的相機(jī)在空間中的位姿數(shù)據(jù)以及目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)相對(duì)于采集深度圖像的相機(jī)的三維空間坐標(biāo),確定目標(biāo)深度圖像中手部各關(guān)節(jié)點(diǎn)在空間中的三維空間坐標(biāo),本發(fā)明實(shí)施例無(wú)需提取手部骨架以及通過(guò)雙目視覺(jué)建立三維手部骨架,降低了三維空間中手部定位的計(jì)算量,提高手部定位的魯棒性,且在手部定位時(shí),截取僅包含手部的目標(biāo)深度圖像,并基于目標(biāo)深度圖像進(jìn)行定位,減少了手部定位受環(huán)境的干擾。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。