WO2018049801A1 - 基于深度图的启发式手指检测方法 - Google Patents

基于深度图的启发式手指检测方法 Download PDF

Info

Publication number
WO2018049801A1
WO2018049801A1 PCT/CN2017/077065 CN2017077065W WO2018049801A1 WO 2018049801 A1 WO2018049801 A1 WO 2018049801A1 CN 2017077065 W CN2017077065 W CN 2017077065W WO 2018049801 A1 WO2018049801 A1 WO 2018049801A1
Authority
WO
WIPO (PCT)
Prior art keywords
point
distance
hand
value
fingertip
Prior art date
Application number
PCT/CN2017/077065
Other languages
English (en)
French (fr)
Inventor
唐小军
赵骥伯
Original Assignee
京东方科技集团股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 京东方科技集团股份有限公司 filed Critical 京东方科技集团股份有限公司
Priority to US15/553,710 priority Critical patent/US10311295B2/en
Priority to EP17754245.3A priority patent/EP3514724B1/en
Publication of WO2018049801A1 publication Critical patent/WO2018049801A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/529Depth or shape recovery from texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/543Depth or shape recovery from line drawings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Definitions

  • calculating a plurality of extreme points having a maximum 3D geodesic distance from the center point in the hand-connected domain further includes:
  • S301 Construct a distance matrix of the same size as the hand-connected domain, the distance matrix having an element corresponding to the pixels of the hand-linked domain;
  • updating the distance matrix in step S304 further includes:
  • the maximum is 100000 millimeters.
  • detecting the fingertip and finger region from the plurality of calculated extreme points further comprises:
  • the stepwise detection of the 3D geodesic distance between the surrounding point of the fingertip candidate point P and the fingertip candidate point P from the inside to the outside of the fingertip candidate point P further includes:
  • the step reference value is 3 mm.
  • detecting the fingertip from the plurality of calculated extreme points further comprises: comparing the length of the finger point set with a third threshold Th3; if the length of the finger point set is greater than or equal to the third threshold Th3, determining The fingertip candidate point P is a real fingertip; and if the length of the finger point set is less than the third threshold Th3, it is determined that the fingertip candidate point P is a non-authentic fingertip.
  • a finger detection device includes: a hand-connected domain acquiring unit configured to receive a depth map of the user and obtain a hand-connected domain from the depth map; and a center point determining unit configured to calculate a center of the hand-connected domain a point; a far point calculation unit configured to calculate a plurality of extreme points having a maximum distance of a 3D geodesic distance from the center point in the hand communication domain; a finger detection unit configured to calculate from a plurality of points The fingertip and the finger area are detected in a very far point; and the output unit is configured to output the fingertip position and the finger area.
  • a finger detection device includes a memory configured to store computer readable instructions and data, and a processor coupled to the memory, configured to execute the computer readable instructions to perform any of the method.
  • the heuristic detection method proposed by the present disclosure has higher fingertip detection accuracy ratio and stronger noise robustness.
  • the above-described embodiments of the present disclosure use a depth map to detect a finger, and effectively remove the interference of the background image by extracting the hand-connected domain; and using the 3D ground line distance to detect the far-distance point of the connected domain, which has a very good image noise and gesture change.
  • Good robustness use the far point of the Unicom domain as a candidate point of the fingertip, detect the finger point set, and judge with the maximum width and the minimum length of the finger Whether the candidate point is a real fingertip can determine the true fingertip and finger area more quickly and accurately.
  • the technique of the present disclosure achieves a higher detection accuracy rate and a detection speed of 300 frames/second.
  • FIG. 6 is a flow chart of a method of calculating a very far point of a hand-connected domain, in accordance with one embodiment of the present invention.
  • Figure 9 is a schematic illustration of a fingertip of a finger in accordance with one embodiment of the present invention.
  • Fig. 10 schematically shows a schematic diagram of a detection result according to an embodiment of the present invention.
  • FIG. 11 is a block diagram showing the structure of a finger detecting apparatus according to an embodiment of the present invention.
  • FIG. 12 illustrates an example computing device that can be utilized to implement one or more embodiments.
  • FIG. 2 is a flow chart of a method of obtaining a hand-connected domain in accordance with one embodiment of the present invention.
  • the depth map is a two-dimensional image I, which is different from the intensity of the red, green and blue components of the points in the image acquired by ordinary RGB cameras.
  • the depth camera acquires the distance depth value I(x, y) of each point in the image from the camera.
  • the left diagram in Fig. 3 shows an example diagram of the original depth image taken by the depth camera.
  • a depth map generally contains multiple connectivity domains.
  • the communication domain where the hand is located is usually a communication domain with a small depth value. Therefore, all the connected domains can be detected by the image growth method, and then the connected communication domain with the smallest depth is selected as the hand-linked domain, and the hand-linked domain point set can be recorded as S H .
  • step S102 determines whether the depth value I(x, y) of the current anchor point is greater than zero, that is, whether the point is a null point. If the depth value I(x, y) is greater than zero, then go to step S103, otherwise, go to step S111. At step S103, it is judged whether or not the flag F(x, y) of the anchor point is equal to zero. If the flag F(x, y) is equal to 0, the process proceeds to step S104, otherwise to step S111.
  • step S104 After the completion of the step S104, it proceeds to a step S105 to determine the complete point set of the newly found communication domain S(N).
  • step S105 an empty queue Q of a first in first out (FIFO) type is initialized, and then an initial point (i.e., coordinate point (x, y)) is added to Q. Then it proceeds to step S106.
  • step S106 it is judged whether or not the queue Q is empty. If it is empty, it indicates that the complete point set of the connected domain S(N) has been determined, and the process goes to step S111, otherwise proceeds to step S107.
  • step S107 the current coordinate point (x 0 , y 0 ) is taken out from Q.
  • Steps S108-S110 are sequentially performed for each of the neighborhood points. After the detection of all the four neighborhood points is completed, the process returns to step S106 to continue to determine whether the queue Q is empty. By taking such image growth, steps S106-S110 are iteratively performed until the queue Q is empty. The queue Q is empty indicating that the complete point set of the connected domain S(N) has been determined, and then jumps to step S111 to continue searching for the next connected domain. Alternatively, after determining the connection domain S(N), the upper, lower, left, and right boundaries of the communication domain S(N) may be detected by the way.
  • the method may further comprise determining a minimum depth or an average depth of the connected domain S(N) as the depth of the connected domain S(N).
  • the step S111 actually moves the anchor points in order from left to right and from top to bottom. It is then determined in step S112 whether y is equal to the image height H. If y is not equal to the image height H, return to step S102 to continue searching for and determining the next connected domain. Otherwise, if y is equal to the image height H, indicating that all the pixel points have been processed, it proceeds to step S113. In step S113, it is determined whether the total number N of the connected domains is greater than zero.
  • step S114 the connected communication domain having the smallest depth in the N connected domains is selected as the hand connected domain S H .
  • the minimum depth of the connected domain S(N) is the depth of the connected domain S(N)
  • the hand-connected domain S H can be determined more accurately because the hand is generally closest to the camera and has the smallest depth in the depth map. Non-null points have the highest probability on the hand-connected domain. If N is not greater than 0 in step S113, it indicates that the connected field is not detected, the captured depth map is a blank image, and it is not necessary to perform finger detection, and the method is exited in step S115.
  • the calculated center point (x c , y c ) may be located at a null point in the depth image (the null point may be, for example, a point of depth 0 in the depth map of the user) ).
  • the null point may be, for example, a point of depth 0 in the depth map of the user.
  • calculating the center point of the hand-connected domain may further include step S203: if the calculated center point is not on the hand-connected domain, adjust the position of the center point so that the center point is located in the hand-connected On the domain.
  • FIG. 5 is a schematic illustration of the center point of the hand-linked domain calculated in accordance with one embodiment of the present invention. As shown in Figure 5, the center point of the hand-connected domain is shown at the white point.
  • the method of calculating the extreme far points of the hand-connected domain includes three phases: initializing the distance matrix, updating the distance matrix, and selecting a very far point from the distance matrix.
  • calculating a plurality of extreme points having a maximum value of the 3D geodesic distance from the center point in the hand-linked field includes steps S301-S307.
  • the steps S301-S302 belong to the first stage: the initialization distance matrix
  • the steps S303-S304 belong to the second stage: the update distance matrix
  • the step S305 belongs to the third stage: the extreme point is selected according to the distance matrix.
  • a FIFO queue is established, the initial far point is added to the FIFO queue, and the following operations are performed for the FIFO queue iteration until no pixels in the FIFO queue need to be processed:
  • the domain point (x 1 , y 1 ) calculates a three-dimensional distance d between the neighborhood point (x 1 , y 1 ) and the current pixel point (x 0 , y 0 ), if the neighborhood point (x 1 , y 1 ) the distance value is greater than the sum of the distance value of the current pixel point (x 0 , y 0 ) and the three-dimensional distance d, and the distance value of the neighborhood point (x 1 , y 1 ) is set to the current pixel
  • the distance value of the point (x 0 , y 0 ) is the sum of the three-dimensional distance d, and the neighborhood point (x 1 , y 1 ) is added to the FIFO queue.
  • a neighborhood point with a negative value is not processed because it does not belong to a pixel on the hand-linked domain.
  • the distance value of the neighborhood point (x 1 , y 1 ) and the distance value of the current pixel point (x 0 , y 0 ) can be compared first. If the distance value of the neighborhood point (x 1 , y 1 ) is smaller than the distance value of the current pixel point (x 0 , y 0 ), then it is not necessary to calculate the three-dimensional distance d and update the neighborhood point.
  • Fig. 7 schematically illustrates the extreme point of the hand-connected domain in accordance with one embodiment of the present invention.
  • the first picture shows the initial extreme point, the center point.
  • the second to seventh figures show the first to sixth extreme points that are sequentially detected.
  • step S405 If the finger point set width is smaller than the second threshold Th 2 , proceeding to step S405, increasing the predetermined distance threshold by one step and returning to step S403 to continue to check the surrounding point of the fingertip candidate point P and the fingertip candidate point 3D geodesic distance of P.
  • the step reference value is 3 mm. If the finger point set width is not smaller than the second threshold Th 2 in step S404, it proceeds to step S406. In step S406, it is judged whether or not there is still an unprocessed fingertip candidate point P. If there are still unprocessed fingertip candidate points P, then return to step S402 to select the next unprocessed fingertip candidate point P to repeat the iterative process. If there is no unprocessed fingertip candidate point P, the iterative process is exited in step S407.
  • stepwise detecting the 3D geodesic distance between the surrounding point of the fingertip candidate point P and the fingertip candidate point P from the inside to the outside from the fingertip candidate point P further includes the following steps. First, a distance matrix D of the same size as the hand-linked domain S H is constructed, and the distance matrix D has elements one-to-one corresponding to the pixels of the hand-connected domain S H .
  • a FIFO queue is established, and the coordinates (x P , y P ) of the fingertip candidate point P are added to the FIFO queue, and the following operations are performed for the FIFO queue iteration until no pixel points in the FIFO queue need to be processed: Extracting the current pixel point (x 0 , y 0 ) from the FIFO queue, for the current pixel point (x 0 , y 0 ), up, down, left, right, top left, top right, bottom left, bottom right 8 neighbors Each of the neighborhood points (x 1 , y 1 ) in the domain point calculates a three-dimensional distance d between the neighborhood (x 1 , y 1 ) point and the current pixel point (x 0 , y 0 ), if the neighbor The distance value of the domain point (x 1 , y 1 ) is greater than the sum of the distance value of the current pixel point and the three-dimensional distance d, that is, D(x 1 , y 1 )
  • the neighborhood point with a negative distance value does not need to be processed because it does not belong to the pixel point on the hand-connected domain, and of course does not belong to the finger area.
  • the distance value of the neighborhood point (x 1 , y 1 ) and the distance value of the current pixel point (x 0 , y 0 ) can be compared first. If the distance value of the neighborhood point (x 1 , y 1 ) is smaller than the distance value of the current pixel point (x 0 , y 0 ), then it is not necessary to calculate the three-dimensional distance d and update the neighborhood point.
  • the distance value of the surrounding points of the fingertip candidate point P in the updated distance matrix can be detected stepwise from the inside to the outside from the fingertip candidate point P. That is, the updated distance matrix enables determination of a finger point set or finger area based on the distance threshold.
  • the candidate point P in order to determine whether a fingertip is true fingertip finger we set a minimum length Th 3. If the length of the finger set at the time of stopping growth reaches Th 3 or more, it is judged that the candidate point is a true "fingertip", and the "fingertip" coordinate (x P , y P ) is recorded, otherwise the fingertip candidate point P is judged as "non-fingertip”".
  • Fig. 9 schematically shows, in the upper and lower portions, respectively, a finger detecting process of a real fingertip point and a finger detecting process of a false fingertip point according to an embodiment of the present invention.
  • the point matrix is detected from the point P using the recalculated distance matrix D, and the point set whose distance value to the point P is smaller than a certain predetermined distance threshold is regarded as a finger point set.
  • the distance threshold is gradually increased, and each time the step dt is increased, the finger area is gradually increased.
  • the distance threshold is increased from left to right, the newly added finger pixels are indicated by white.
  • the shape of the finger set is checked, and when the finger set width exceeds the finger width upper limit Th 2 , the growth process is stopped.
  • Fig. 10 schematically shows a schematic diagram of an example of a detection result according to an embodiment of the present invention.
  • Computing device 1200 can be configured to execute specific instructions and/or functions corresponding to software and/or hardware modules implemented on a computer readable medium.
  • the instructions and/or functions may be performed/operated by a manufactured product (eg, one or more computing devices 1200 and/or processor 1210) to implement the techniques described herein.
  • a manufactured product eg, one or more computing devices 1200 and/or processor 1210
  • Such techniques include, but are not limited to, the example processes described herein.
  • a computer readable medium can be configured to store or provide instructions for implementing the various techniques described above when accessed by one or more devices described herein.
  • first threshold and “second threshold” do not necessarily mean that the first threshold is generated, received, or processed in time before the second threshold. In fact, these phrases are only used to identify different thresholds.
  • any reference signs placed in parentheses shall not be construed as limiting the claim.
  • the word “comprising” or “comprises” or “comprises” or “comprising” does not exclude the presence of the elements or steps in the
  • the word “a” or “an” or “an” a device or system that lists several devices In the claims, one or more of these devices can be embodied in the same hardware item.
  • the mere fact that certain measures are recited in mutually different dependent claims does not indicate that

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本公开提供一种基于深度图的启发式手指检测方法。所述方法包括:从用户的深度图中获取手联通域;计算手联通域的中心点;计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;从计算的多个极远点中检测手指指尖和手指区域;和输出指尖位置及手指区域。所述方法通过3D测地线距离来计算和检测用户的手指指尖,而不用提取手区域的边界轮廓,提高了手势检测的鲁棒性,降低了检测错误率。该方法具有手指检测正确率高,计算速度快的优点。

Description

基于深度图的启发式手指检测方法
相关申请
本申请要求2016年9月14日提交、申请号为201610823569.7的中国专利申请的优先权,该申请的全部内容通过引用并入本文。
技术领域
本公开涉及智能人机交互和手势识别技术,更具体而言,本公开涉及一种基于深度图的启发式手指检测方法、检测设备以及计算机可读存储介质。
背景技术
随着人机交互技术的快速发展,人机交互的手段越来越多,从最开始通过键盘和鼠标实现人与计算机设备之间的人机交互,然后演变到使用手写板、触摸屏,乃至发展到采用手势来实现人机交互。人机交互的方式朝着越来越直观、越来越简便的方向发展,而且这些方式变得越来越符合人的自然习惯。
在许多智能设备系统中,例如在AR(增强现实)眼镜、VR(虚拟现实)头显、智能电视等中,都有自动检测手指动作的需求,利用手指动作来实现与设备的交互。在这些交互中,通常使用普通的RGB摄像头来采集图像并检测手指动作。但是这种方法容易受到背景图像的干扰,导致检测准确度不高。近年来随着深度摄像头的逐渐普及,越来越多的研究机构和公司开始使用深度图来检测手指动作,使用深度图的方法的检测正确率比基于RGB摄像头的方法高。
现有的基于深度图的手指检测方法通常采用轮廓曲率极大值检测指尖。该方法首先提取手区域的边界轮廓,然后逐点计算轮廓点的曲率,选择曲率极大指点作为指尖候选点。但是,在背景图像较为复杂的条件,这种方法仍然有相当大的检测错误率。
发明内容
为了解决或缓解上述现有技术中的至少一个缺陷,期望提供一种新的手指检测技术,该技术能够实现更高的检测正确率和更快的检测速度。
根据一个方面,提供了一种手指检测方法,包括:从用户的深度图中获取手联通域;计算手联通域的中心点;计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;从计算的多个极远点中检测手指指尖和手指区域;和输出指尖位置及手指区域。
在一个实施例中,从用户的深度图中获取手联通域进一步包括:用图像生长的方法检测用户的深度图中所有的联通域;和从检测到的联通域中选择深度最小的联通域作为手联通域。
在一个实施例中,从用户的深度图中获取手联通域进一步包括:确定检测到的联通域中每一个联通域的最小深度作为所述联通域的深度。
在一个实施例中,所述图像生长方法进一步包括:对于每一个联通域,执行如下步骤:
建立一个FIFO队列,并选择所述联通域中的一个像素点作为初始像素点放入所述FIFO队列中;
针对所述FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
取出所述FIFO队列中的当前像素点;
比较所述当前像素点的深度以及它的4个相邻像素点中没有加入任何联通域的每一个相邻像素点的深度;和
如果相邻像素点与所述当前像素点之间的深度差小于第一阈值Th1,则将所述相邻像素点添加到所述联通域中以及所述FIFO队列中;以及
输出所述联通域。
在一个实施例中,所述图像生长方法进一步包括:对于每一个联通域,检测所述联通域的上、下、左、右边界。
在一个实施例中,所述第一阈值Th1取值范围参考值为10-15毫米。
在一个实施例中,计算手联通域的中心点进一步包括:计算所述手联通域中所有像素点的X坐标的平均值作为中心点的X坐标;和计 算所述手联通域中所有像素点的Y坐标的平均值作为中心点的Y坐标。
在一个实施例中,计算手联通域的中心点进一步包括:如果所述计算得到的中心点不在所述手联通域上,则适当调整所述中心点的位置以便所述中心点位于所述手联通域上。
在一个实施例中,如果所述计算得到的中心点为所述深度图像中的空值点,则所述计算得到的中心点不在所述手联通域上,其中所述空值点为用户的深度图中深度为0的点。
在一个实施例中,计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点进一步包括:
S301:构造一个与手联通域同样大小的距离矩阵,该距离矩阵具有与手联通域的像素一一对应的元素;
S302:对于与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算;
S303:将所述中心点作为初始极远点,
S304:将初始极远点在距离矩阵中的对应距离值设置为0,用手联通域中每一个像素点与所述初始极远点和计算出的所有极远点的3D测地线距离中的最小值来更新所述距离矩阵;
S305:确定已更新距离矩阵中距离值最大的点作为计算出的极远点,并将计算出的极远点作为新的初始极远点;。
重复执行步骤S304-S305,计算出5-9个极远点。
在一个实施例中,步骤S304中更新所述距离矩阵进一步包括:
建立一个FIFO队列,将初始极远点添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
从所述FIFO队列中取出当前像素点,对于该当前像素点8个邻域点中的每一个邻域点,计算邻域点与该当前像素点之间的三维距离d,如果该邻域点的距离值大于该当前像素点的距离值与所述三维距离d之和,则将该邻域点的距离值设置为该当前像素点的距离值与所述三维距离d之和,并将该邻域点添加到FIFO队列中。
在一个实施例中,所述最大值为100000毫米。
在一个实施例中,从计算的多个极远点中检测手指指尖和手指区域进一步包括:
将所述多个极远点确定为多个指尖候选点P;以及
对于每一个指尖候选点P,执行如下迭代过程:
从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离,如果所述3D测地线距离小于预定距离阈值,则将所述邻域点加入手指点集;
如果手指点集宽度小于第二阈值Th2,将所述预定距离阈值增加一个步长,否则,判断是否仍有未处理的指尖候选点P;和
如果还有未处理的指尖候选点P,则选择下一个未处理的指尖候选点P重复所述迭代过程,如果没有未处理的指尖候选点P,退出所述迭代过程。
在一个实施例中,从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离进一步包括:
构造一个与手联通域同样大小的距离矩阵,该距离矩阵具有与手联通域的像素一一对应的元素;
对于与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算;
将与所述指尖候选点P对应的距离值设置为0;
建立一个FIFO队列,将指尖候选点P添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
从所述FIFO队列中取出当前像素点,对于该当前像素点8个邻域点中的每一个邻域点,计算邻域点与该当前像素点之间的三维距离d,如果该邻域点的距离值大于该当前像素点的距离值与所述三维距离d之和,则将该邻域点的距离值设置为该当前像素点的距离值与所述三维距离d之和,并将该邻域点添加到FIFO队列中;和
从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点在更新的距离矩阵中的距离值。
在一个实施例中,所述第二阈值Th2参考值为35mm。
在一个实施例中,所述步长参考值为3mm。
在一个实施例中,从计算的多个极远点中检测手指指尖进一步包括:比较手指点集的长度与第三阈值Th3;如果手指点集的长度大于或等于第三阈值Th3,则确定所述指尖候选点P为真实的指尖;以及如果手指点集的长度小于第三阈值Th3,则确定所述指尖候选点P为非真实的指尖。
在一个实施例中,所述第三阈值Th3参考值为40mm。
根据另一个方面,提供了一种手指检测设备。该手指检测设备包括:手联通域获取单元,被配置用于接收用户的深度图并从所述深度图中获取手联通域;中心点确定单元,被配置用于计算所述手联通域的中心点;极远点计算单元,被配置用于计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;手指检测单元,被配置用于从计算的多个极远点中检测手指指尖和手指区域;和输出单元,被配置用于输出指尖位置及手指区域。
根据另一个方面,提供了一种计算机可读存储介质,其上存储了计算机可读指令,所述指令在被计算设备执行时导致计算设备执行如上所述的任何一种方法。
根据另一个方面,提供了一种手指检测设备。该手指检测设备包括:存储器,被配置用来存储计算机可读指令和数据;以及耦合到所述存储器的处理器,被配置用来执行所述计算机可读指令从而执行如上所述的任何一种方法。
本公开的实施例可以实现如下有益效果中的至少一个有益效果和/或其它有益效果:
相对于传统的采用轮廓曲率极大值检测指尖的方法,本公开提出的启发式检测方法指尖检测准确率比更高,对噪声的鲁棒性更强。
具体而言,本公开的上述实施例使用深度图来检测手指,通过提取手联通域有效去除背景图像的干扰;使用3D地测线距离检测联通域极远点,对图像噪声和手势变化具有很好的鲁棒性;将联通域极远点作为指尖的候选点,检测手指点集,并用手指最大宽度和最小长度判 断候选点是否是真实指尖,能够更快速、准确地确定真实的手指指尖和手指区域。通过以上方式达到了准确和快速检测手指的效果,大幅度提高了手指检测对噪声的鲁棒性。本公开的技术达到更高的检测正确率,并且检测速度达到300帧/秒。
附图说明
为了更清楚地说明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。应当意识到,下面描述中的附图仅仅涉及一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,所述其它的附图也在本发明的范围内。
图1为根据本发明一个实施例的手指检测方法的流程图。
图2为根据本发明一个实施例的获取手联通域的方法的流程图。
图3为根据本发明一个实施例的深度图以及手联通域的示意图。
图4为根据本发明一个实施例计算手联通域的中心点的方法的流程图。
图5为根据本发明一个实施例的手联通域的中心点的示意图。
图6为根据本发明一个实施例的计算手联通域的极远点的方法的流程图。
图7为根据本发明一个实施例的手联通域的极远点的示意图。
图8为根据本发明一个实施例的检测手指指尖和手指区域的方法的流程图。
图9为根据本发明一个实施例的手指指尖的示意图。
图10示意性示出了根据本发明一个实施例的检测结果的示意图。
图11为根据本发明一个实施例的手指检测设备的结构示意图。
图12图示了可以被用于实现一个或多个实施例的示例计算设备。
具体实施方式
为了能够更清楚地理解一些实施例的目的、技术方案和优点,下面结合附图和具体实施方式对这些实施例作进一步详细描述。
图1为根据本发明一个实施例的手指检测方法的流程图。所述手指检测方法是一种基于深度图的启发式手指检测方法,该方法通过分析深度摄像头拍摄到的深度图,采用启发式方法来检测手指。该方法通过获取手联通域、计算联通域中心点、计算联通域极远点、检测手指指尖和输出指尖位置及手指区域共五个步骤检测手指指尖位置和手指点集合。本文所使用的术语“联通域”是指深度图中相互联通的非空值像素点构成的集合,其中相邻像素点的深度值差异比较小。相互联通是指该像素点集合中任意两个像素点能够直接连接或者能够通过集合中的其它像素点连接。
如图1所示,所述手指检测方法包括如下五个步骤。首先在步骤S1,从用户的深度图中获取手联通域。然后在步骤S2,计算所述手联通域的中心点。然后在步骤S3,计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点。接着在步骤S4,从计算的多个极远点中检测手指指尖和手指区域。最后在步骤S5,输出指尖位置及手指区域。该方法具有手指检测正确率高,计算速度快的优点。
下面,参照图2-10具体解释上述手指检测方法的各个步骤的示例实现方式。
图2为根据本发明一个实施例的获取手联通域的方法的流程图。在获取手联通域之前,首先需要使用深度摄像机拍摄用户的深度图,拍摄的深度图是一种二维图像I,与普通RGB摄像机获取图像中各点的红色、绿色和蓝色分量强度不同,深度摄像机获取图像中各点距离摄像机的距离深度值I(x,y)。图3中左图示出了深度摄像机拍摄的原始深度图像的一个示例图。
深度图中一般包含多个联通域。在手势操作场景中,由于在手势操作时手通常会在最前面,距离摄像机的距离最近,因此手所在的联通域通常是深度值较小的联通域。因此,可以用图像生长的方法检测所有的联通域,然后选择深度最小的联通域作为手联通域,手联通域点集合可以记为SH
下面,结合图2来介绍一种获取手联通域的示例方法。如图2所示,可以通过如下过程来检测深度图像中的所有联通域以及手联通域SH。首先,对于输入的二维深度图像I,确定图像宽度W,高度H。然 后在步骤S101执行初始化,包括将已确定的联通域总数N设为初始值0,将标记矩阵F(x,y)中的每一个元素的值初始化为0,表明目前图像中的任何一个像素点均没有加入任何联通域。同时指定一个指示联通域搜寻进度的锚点,将该锚点的坐标x和y均设为初始值0,即图像左上角的像素点。也就是说,这种方式将从图像的左上角开始搜寻联通域。此时,可以在深度图像中按照从左到右,从上到下的顺序来执行搜寻。但是在其它实施例中,也可以从其它位置开始搜寻联通域,例如可以从右上角、左下角、右下角等位置按照不同的搜寻顺序开始搜寻联通域。本发明不局限于任何特定的搜寻位置和搜寻顺序。
在执行完初始化之后,进行到步骤S102,判断当前锚点的深度值I(x,y)是否大于零,即,判断该点是否是空值点。如果深度值I(x,y)大于零,则进行到步骤S103,否则,跳转到步骤S111。在步骤S103,判断锚点的标记F(x,y)是否等于0。如果标记F(x,y)等于0,则进入步骤S104,否则跳转到步骤S111。
如果当前锚点(x,y)的深度值I(x,y)大于零,并且该点的标记F(x,y)等于0,表明找到了一个新的联通域S。因此,在步骤S104,联通域总数N增加1,设新增加的联通域为S(N),将所述当前锚点(x,y)加入联通域S(N),同时将该点标记F(x,y)设为1,表明该像素点(x,y)已经被加入一个联通域S(N)。在这个实施例中,所述当前锚点(x,y)作为检测该新联通域S(N)的初始点。需要指出的是,尽管在这个实施例中所述方法将联通域的最上面一行像素点中最左边一个像素点作为检测联通域S(N)初始点,但是本领域技术人员能够理解,如下检测联通域S(N)的过程可以适用于将联通域中任何一个像素点作为初始点的情形。
在完成步骤S104之后,进行到步骤S105,以便确定新找到的联通 域S(N)的完整点集。在步骤S105中,先初始化一个先入先出(FIFO)类型的空队列Q,然后将初始点(即,坐标点(x,y))加到Q中。然后进入步骤S106。在步骤S106,判断队列Q是否为空,如果为空,则表明已确定这个联通域S(N)的完整点集,跳转到步骤S111,否则进行到步骤S107。在步骤S107中,从Q中取出当前的坐标点(x0,y0)。然后进行到步骤S108,检查坐标点(x0,y0)的上、下、左、右4个邻域,获得4个邻域中深度大于0且标记等于0的所有邻域点(x1,y1)。然后在步骤S109中比较所有获得的邻域点(x1,y1)的深度I(x1,y1)与像素点(x0,y0)的深度I(x0,y0)。然后进入步骤S110,如果深度值I(x1,y1)与I(x0,y0)的差值小于阈值Th1,那么将该邻域点(x1,y1)加入队列Q和联通域S(N)。同时将该点标记F(x1,y1)设为1。在一个实施例中,所述阈值Th1取值范围参考值为10-50mm。此外,本领域技术人员能够理解,在步骤S108-S110中既可以一次处理4个邻域点,即同时对4个邻域点依次执行步骤S108-S110,也可以一次处理一个邻域点,即依次对每一个邻域点执行步骤S108-S110。在4个邻域点都检测完毕后,返回步骤S106,继续判断队列Q是否为空。通过采取这种图像生长的方式,迭代执行步骤S106-S110,直到队列Q为空。队列Q为空表明已经确定了联通域S(N)的完整点集,然后跳转到步骤S111,继续搜寻下一个联通域。可选地,在确定联通域S(N)之后,可以顺便检测该联通域S(N)的上、下、左、右边界。例如,在检测完联通域S(N)的所有像素点集合之后,检测联通域中最上、最下、最左、最右端的像素点坐标,分别作为联通域S(N)的上、下、左、右边界。在一个实施例中,所述方法还可以包括确定该联通域S(N)的最小深度或者平均深度作为该联通域S(N)的深度。
在步骤S111,将锚点x坐标增加1,即x=x+1。如果x等于图像宽度W,那么表明需要换行,因而将x重置为0并且将y增加1。所述步骤S111实际上是按照从左到右,从上到下的顺序移动锚点。然后在步骤S112判断y是否等于图像高度H。如果y不等于图像高度H,返回步骤S102,继续寻找并确定下一个联通域。否则,如果y等于图像高度H,表明所有像素点已经被处理完,进行到步骤S113。在步骤S113,判断联通域总数N是否大于0。如果N大于0,则表明检测到了N个联通域,进行到步骤S114。在步骤S114中选择N个联通域中深度最小的联通域作为手联通域SH。当以该联通域S(N)的最小深度最为该联通域S(N)的深度时,能够更准确地确定手联通域SH,因为手一般会距离摄像机最近,深度图中具有最小深度的非空值点在手联通域上的概率最高。如果在步骤S113中N不大于0,则表明没有检测到联通域,拍摄到的深度图是空白图像,无需进行是手指检测,在步骤S115退出该方法。
图3中右图示出了获得的手联通域SH的一个示例图。如图所示,通常检测得到的手联通域SH不仅包含手指和手掌,还包括手臂部分。后续步骤将以该手联通域SH为基础检测手指。在一些实施例中,为了方便表示联通域S(N),可以将联通域S(N)表示为一个矩阵,该矩阵需要涵盖手联通域的所有像素点。在该矩阵中,与手联通域的像素点对应的元素的深度为该对应像素点的深度值,其它元素的深度值可以设置为0。例如,所述矩阵可以如图3中右图所示,涵盖了比手联通域更大的范围,其中例如手区域(即浅色区域)中每个点的深度为对应像素点的深度值,而手以外的区域(即黑色或深色区域)中每个点的深度为0。当然了,也可以通过手联通域的上、下、左、右四个边界来确定所述矩阵,这样所确定的矩阵更小,对所述手联通域进行处理所需的运算量更小,所以处理速度更快。
图4为根据本发明一个实施例计算手联通域的中心点的方法的流程图。如图4所示,计算手联通域的中心点包括如下步骤:
在步骤S201,计算所述手联通域SH中所有像素点的X坐标的平均值作为中心点的X坐标xc。需要指出的是,这里的手联通域SH是指 原始确定的手联通域,而不是指前面提到的用来表示手联通域的矩阵。
在步骤S202,计算所述手联通域中所有像素点的Y坐标的平均值作为中心点的Y坐标yc。同样地,这里的手联通域SH是指原始确定的手联通域,而不是指前面提到的用来表示手联通域的矩阵。
上述过程可以表示为:
Figure PCTCN2017077065-appb-000001
考虑到深度图像中可能存在噪声,计算得到的中心点(xc,yc)可能位于深度图像中的空值点上(所述空值点例如可以是用户的深度图中深度为0的点)。当出现这种情况时,需要从上、下、左、右方向适当调整xc和yc,使中心点位于手联通域SH上。因此,计算手联通域的中心点还可以包括步骤S203:如果所述计算得到的中心点不在所述手联通域上,则适当调整所述中心点的位置以便所述中心点位于所述手联通域上。在一个示例实现方式中,所述调整步骤可以包括:先检查计算中心点上方1像素点是否在手联通域上,如果在手联通域上则将中心点调整到上方1像素点处并结束操作;否则继续检查下方1像素点、左方1像素点、右方1像素点,直到找到手联通域上的点。如果上、下、左、右方向1像素处的点全部都不在手联通域上,则继续寻找2像素处的点。依此类推,直到找到手联通域上的点为止。
图5示意性示出了根据本发明一个实施例计算出的手联通域的中心点。如图5所示,手联通域的中心点在白色点处示出。
图6为根据本发明一个实施例的计算手联通域的极远点的方法的流程图。在这个实施例中,所述极远点基于3D测地线距离来计算。空间中两点之间的“3D测地线距离”是指联通域上连接两点的最短曲线长度,曲线上的点必须全部都在该联通域上。与指示两点之间直线距离(直线上的点可以不在联通域上)的普通欧氏距离相比,采用3D测地线距离的方案对手势变化的鲁棒性更高,可以检测出更为稳定的极远点。从附图所示的手联通域可以清楚地看出,两个相邻手指指尖的“欧氏距离”比较小,但是“3D测地线距离”却比较大。如果使用“欧氏距离”构成距离矩阵的话,指尖不一定是距离极大值点,而使用“3D 测地线距离”构成距离矩阵的话,指尖总是距离极大值点。因此,用“3D测地线距离”构成距离矩阵,并检测距离极大值点作为指尖候选点,具有更高的鲁棒性。
在一些实施例中,计算手联通域的极远点的方法包括三个阶段:初始化距离矩阵、更新距离矩阵以及根据距离矩阵选择极远点。
如图6所示,计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点包括步骤S301-S307。其中,步骤S301-S302属于第一阶段:初始化距离矩阵,步骤S303-S304属于第二阶段:更新距离矩阵,步骤S305属于第三阶段:根据距离矩阵选择极远点。
首先在步骤S301,构造一个与手联通域同样大小的距离矩阵D,该距离矩阵具有与手联通域的像素一一对应的元素D(x,y)。然后可以在步骤S302中初始化距离矩阵。对于与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算。所述最大值可以是任何对于人类手掌来说不可能达到的极远距离值,在一个实施例中,所述最大值可以是100000mm。可以将所述负数设置为-1。
接下来,需要对该距离矩阵进行更新以得到一个极远点。在此之前,需要设置一个初始极远点以便启动距离矩阵的更新。在步骤S303,将所述中心点作为初始极远点。然后在在步骤S304,将初始极远点在距离矩阵中的对应距离值设置为0,用手联通域中每一个像素点与所述初始极远点和已经计算出的所有极远点的3D测地线距离中的最小值来更新所述距离矩阵。
在一个实施例中,步骤S304中更新所述距离矩阵的步骤进一步包括如下步骤:
建立一个FIFO队列,将初始极远点添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
从所述FIFO队列中取出当前像素点(x0,y0),对于该当前像素点的上、下、左、右、左上、右上、左下、右下8个邻域点中的每一个邻域点(x1,y1),计算邻域点(x1,y1)与该当前像素点(x0,y0)之间的三维距离d, 如果该邻域点(x1,y1)的距离值大于该当前像素点(x0,y0)的距离值与所述三维距离d之和,则将该邻域点(x1,y1)的距离值设置为该当前像素点(x0,y0)的距离值与所述三维距离d之和,并将该邻域点(x1,y1)添加到FIFO队列中。在这个过程中,距离值为负值的邻域点是不需要处理的,因为它并不属于手联通域上的像素点。另外,作为一种更快捷的运算方式,可以先比较邻域点(x1,y1)的距离值与当前像素点(x0,y0)的距离值。如果邻域点(x1,y1)的距离值小于当前像素点(x0,y0)的距离值,那么就不需要再计算所述三维距离d和更新该邻域点了。
在完成包含上述迭代过程的矩阵更新步骤之后,进行到步骤S305。在步骤S305,确定已更新距离矩阵中距离值最大的点作为计算出的极远点,并将计算出的极远点作为新的初始极远点。需要指出的是,每次更新之后,距离矩阵中的距离值D(x,y)即为手联通域中各点到中心点以及已经计算的极远点的3D测地距离中的最小值,找到距离矩阵中距离值最大的点作为新的极远点。
在步骤S306,判断计算的极远点的数目是否满足要求,即除了中心点之外是否得到K个极远点。在一个实施例中,K的范围为5-9。如果数目满足要求,则在步骤S307中结束所述计算,所计算出的这些极远点即为手指指尖的候选点。如果数目不满足要求,则返回步骤S304,重复执行步骤S304-S305,计算出除了中心点之外的5-9个极远点。
图7示意性示出了根据本发明一个实施例的手联通域的极远点。第一幅图示出了初始极远点,即中心点。第二到第七幅图示出了依次检测到的第一到第六个极远点。
图8为根据本发明一个实施例的检测手指指尖和手指区域的方法的流程图。如图8所示,从计算的多个极远点中检测手指指尖和手指区域的过程包括如下步骤。首先,在步骤S401,将所述多个极远点确 定为多个指尖候选点P。然后在步骤S402,选择一个指尖候选点P并且初始化预定距离阈值,也就是设置预定距离阈值的初始值。然后在步骤S403,从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点(即,所述指尖候选点P在手联通域内部的周围点)与所述指尖候选点P的3D测地线距离,如果所述3D测地线距离小于预定距离阈值,则将所述邻域点加入手指点集。接下来在步骤S404,判断手指点集宽度是否小于第二阈值Th2。在一个实施例中,所述第二阈值Th2参考值为35mm。如果手指点集宽度小于第二阈值Th2,则前进到步骤S405,将所述预定距离阈值增加一个步长并返回步骤S403,继续检查指尖候选点P的周围点与所述指尖候选点P的3D测地线距离。在一个实施例中,所述步长参考值为3mm。如果在步骤S404中手指点集宽度不小于第二阈值Th2,则前进到步骤S406。在步骤S406中,判断是否仍有未处理的指尖候选点P。如果还有未处理的指尖候选点P,则返回步骤S402,选择下一个未处理的指尖候选点P重复所述迭代过程。如果没有未处理的指尖候选点P,则在步骤S407中退出所述迭代过程。
为了检测手指点集或手指区域,步骤S403中从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离需要重新计算到P点的距离矩阵D。在一个实施例中,从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离进一步包括如下步骤。首先,构造一个与手联通域SH同样大小的距离矩阵D,该距离矩阵D具有与手联通域SH的像素一一对应的元素。然后,对于距离矩阵D中与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算。在一个实施例中,所述最大值可以是100000mm。可以将所述负数设置为-1。设候选点P的坐标为(xP,yP),然后将与所述指尖候选点P对应的距离值D(xP,yP)设置为0,并按照下列步骤更新距离矩阵D。
建立一个FIFO队列,将指尖候选点P的坐标(xP,yP)添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列 中没有像素点需要处理为止:从所述FIFO队列中取出当前像素点(x0,y0),对于该当前像素点(x0,y0)的上、下、左、右、左上、右上、左下、右下8个邻域点中的每一个邻域点(x1,y1),计算邻域(x1,y1)点与该当前像素点(x0,y0)之间的三维距离d,如果该邻域点(x1,y1)的距离值大于该当前像素点的距离值与所述三维距离d之和,即D(x1,y1)>D(x0,y0)+d,则将该邻域点(x1,y1)的距离值设置为该当前像素点的距离值与所述三维距离d之和,即D(x1,y1)=D(x0,y0)+d,并将该邻域点(x1,y1)添加到FIFO队列中。在这个过程中,距离值为负值的邻域点是不需要处理的,因为它并不属于手联通域上的像素点,当然也就不属于手指区域了。另外,作为一种更快捷的运算方式,可以先比较邻域点(x1,y1)的距离值与当前像素点(x0,y0)的距离值。如果邻域点(x1,y1)的距离值小于当前像素点(x0,y0)的距离值,那么就不需要再计算所述三维距离d和更新该邻域点了。
在通过上述迭代过程更新距离矩阵之后,可以从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点在更新的距离矩阵中的距离值。也就是说,更新的距离矩阵使得能够基于距离阈值确定手指点集或手指区域。
在一个实施例中,为了判断指尖候选点P是否是真实指尖,我们设置一个手指长度下限Th3。如果停止生长时的手指集合长度达到Th3以上则判断该候选点为真实“指尖”,记录“指尖”坐标(xP,yP),否则判断指尖候选点P为“非指尖”。具体而言,从计算的多个极远点中检测手指指尖进一步包括如下步骤:比较手指点集的长度与第三阈值Th3;如果手指点集的长度大于或等于第三阈值Th3,则确定所述指尖候选点P为真实的指尖;如果手指点集的长度小于第三阈值Th3,则确定所述指尖候选点P为非真实的指尖。在一个实施例中,所述第三阈值Th3参考值为40mm。
图9分别在上部和下部示意性示出了根据本发明一个实施例真实指尖点的手指检测过程和虚假指尖点的手指检测过程。如图9所示,利用重新计算的距离矩阵D从P点出发开始检测手指,到P点的距离值小于某个预定距离阈值的点集被认为是手指点集。逐渐增大该距离 阈值,每次增大一个步长dt,手指区域也逐渐增大。如图9所示,从左到右每次增大距离阈值时,新增的手指像素点用白色表示。检查手指集合的形状大小,当手指集合宽度超过手指宽度上限Th2时,停止生长过程。
在通过上述方法确定了真实的手指指尖以及手指区域之后,最后输出上述方法检测并记录的全部手指指尖坐标以及对应手指的像素点集合。图10示意性示出了根据本发明一个实施例的检测结果示例的示意图。
图11为根据本发明一个实施例的手指检测设备1100的结构示意图。如图11所示,该手指检测设备1100可以包括:手联通域获取单元1101,可以被配置用于接收用户的深度图并从所述深度图中获取手联通域;中心点确定单元1102,可以被配置用于计算所述手联通域的中心点;极远点计算单元1103,可以被配置用于计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;手指检测单元1104,可以被配置用于从计算的多个极远点中检测手指指尖和手指区域;和输出单元1105,可以被配置用于输出指尖位置及手指区域。
需要指出的是,手指检测设备1100可以执行上述任何一种手指检测方法。由于发明原理与所述手指检测方法相同,在此就不再重复描述手指检测设备1100以及其组件执行上述方法及其步骤的功能和操作了。
图12图示了可以被用于实现一个或多个实施例的示例计算设备1200。特别地,根据一些实施例的设备可以在所述示例计算设备1200实现。如图所示,示例计算设备1200包含一个或多个处理器1210或处理单元,可以包含一个或多个存储器1222的一个或多个计算机可读介质1220,一个或多个用于向用户显示内容的显示器1240,一个或多个用于输入输出(I/O)设备的输入/输出(I/O)接口1250,一个或多个用于与其它计算设备或通信设备通信的通信接口1260,以及允许不同的组件和设备彼此通信的总线1230。
计算机可读介质1220、显示器1240和/或一个或多个I/O设备可以被包含来作为计算设备1200的一部分,或者可替换地可以被耦合到计 算设备1200。总线1230表示一个或多个若干类型的总线结构,其包含存储总线或存储控制器、外围总线、加速图形端口、以及使用各种各样总线架构的任何结构的处理器或局部总线。总线1230可以包含有线的和/或无线的总线。
一个或多个处理器1210在形成它们的材料或其中采用的处理机制方面没有任何限制。例如,处理器可以由一个或多个半导体和/或晶体管(例如电子集成电路(IC))组成。在这样的背景下,处理器可执行指令可以是电学可执行的指令。存储器1222表示与一种或多种计算机可读介质相关联的记忆/存储容量。该存储器1222可以包含易失性介质(诸如随机存取存储器(RAM)之类)和/或非易失性介质(诸如只读存储器(ROM)、闪速存储器、光盘、磁盘等等之类)。该存储器1222可以包含固定介质(例如,RAM、ROM、固定硬盘驱动等等)以及可移动介质(例如,闪速存储器驱动、可移动硬盘驱动、光盘等等)。
一个或多个输入/输出接口1250允许用户输入命令和信息到计算设备1200,并且同样允许将信息呈现给该用户和/或使用不同的输入/输出设备呈现给其它组件或设备。输入设备的示例包含键盘、触摸屏显示器、光标控制设备(例如鼠标)、麦克风、扫描仪等等。输出设备的示例包含显示设备(例如监视器或投影仪)、扬声器、打印机、网卡等等。
通信接口1260允许与其它计算设备或通信设备进行通信。通信接口1260在其采用的通信技术方面没有任何限制。通信接口1260可以包括诸如局域网通信接口和广域网通信接口之类的有线通信接口,也可以包括无线通信接口,例如红外线、Wi-Fi或者蓝牙通信接口。
本文中各种技术是在软件、硬件(固定逻辑电路)、或程序模块的一般环境下描述的。一般地,所述程序模块包含执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等等。这些模块和技术的实现可以被存储在某种形式的计算机可读介质上或经由该计算机可读介质而被传输。计算机可读介质可以包含多种可以由计算设备访问的可用媒介或介质。
本文描述的特定的模块、功能、组件和技术可以被实现在软件、 硬件、固件和/或其组合中。计算设备1200可以被配置成执行对应于实现在计算机可读介质上的软件和/或硬件模块的特定指令和/或功能。该指令和/或功能可以由制造产品(例如,一个或者多个计算设备1200和/或处理器1210)执行/操作以便实现本文所述的技术。这样的技术包含但不限于本文所描述的示例过程。因此,计算机可读介质可以被配置成当由本文所描述的一个或者多个设备访问时存储或提供用于实现上述不同技术的指令。
尽管上面参考附图对本发明的一些实施例进行了具体的描述,但是本领域普通技术人员可以理解,以上的具体描述仅仅是为了解释本发明,本发明绝不仅仅局限于上述具体的实施方式。基于本文对这些实施例的具体描述和教导,本领域普通技术人员可以对这些具体实施方式进行各种修改、增加、置换以及变型而不脱离本发明的保护范围,也就是说,这些修改、增加、置换以及变型都应涵盖在本发明的保护范围内。本发明的保护范围应所述以权利要求的保护范围为准。上文中描述的具体特征和行为是作为实现权利要求的示例形式而被公开的。
需要说明的是,上述实施例仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要将上述功能分配给不同的功能模块完成。可以将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述一个模块的功能可以由多个模块来完成,上述多个模块的功能也可以集成到一个模块中完成。
本申请使用了诸如“第一”、“第二”、“第三”等之类的措词。在无附加上下文时,使用这样的措词并不旨在暗示排序,实际上它们仅仅用于标识目的。例如短语“第一阈值”和“第二阈值”未必意味着在时间上第一阈值在第二阈值之前被生成、接收或处理。实际上,这些短语仅仅用来标识不同的阈值。
在权利要求书中,任何置于括号中的附图标记都不应当解释为限制权利要求。术语“包括”或“包含”并不排除除了权利要求中所列出的元件或步骤之外的元件或步骤的存在。元件前的词语“一”或“一个”并不排除存在多个这样的元件。在列举了若干装置的设备或系统 权利要求中,这些装置中的一个或多个能够在同一个硬件项目中体现。仅仅某个措施记载在相互不同的从属权利要求中这个事实并不表明这些措施的组合不能被有利地使用。

Claims (18)

  1. 一种手指检测方法,包括:
    从用户的深度图中获取手联通域;
    计算手联通域的中心点;
    计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;
    从计算的多个极远点中检测手指指尖和手指区域;和
    输出指尖位置及手指区域。
  2. 根据权利要求1所述的方法,其中,从用户的深度图中获取手联通域进一步包括:
    用图像生长的方法检测用户的深度图中所有的联通域;和
    从检测到的联通域中选择深度最小的联通域作为手联通域。
  3. 根据权利要求2所述的方法,其中,所述图像生长方法进一步包括:对于每一个联通域,执行如下步骤:
    建立一个FIFO队列,并选择所述联通域中的一个像素点作为初始像素点放入所述FIFO队列中;
    针对所述FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
    取出所述FIFO队列中的当前像素点;
    比较所述当前像素点的深度以及它的4个相邻像素点中没有加入任何联通域的每一个相邻像素点的深度;和
    如果相邻像素点与所述当前像素点之间的深度差小于第一阈值Th1,则将所述相邻像素点添加到所述联通域中以及所述FIFO队列中;以及
    输出所述联通域。
  4. 根据权利要求3所述的方法,其中,所述第一阈值Th1取值范围参考值为10-15毫米。
  5. 根据权利要求1所述的方法,其中,计算手联通域的中心点进一步包括:
    计算所述手联通域中所有像素点的X坐标的平均值作为中心点的X坐标;和
    计算所述手联通域中所有像素点的Y坐标的平均值作为中心点的Y坐标。
  6. 根据权利要求5所述的方法,其中,计算手联通域的中心点进一步包括:
    如果所述计算得到的中心点不在所述手联通域上,则适当调整所述中心点的位置以便所述中心点位于所述手联通域上。
  7. 根据权利要求6所述的方法,其中,如果所述计算得到的中心点为所述深度图像中的空值点,则所述计算得到的中心点不在所述手联通域上,其中所述空值点为用户的深度图中深度为0的点。
  8. 根据权利要求1所述的方法,其中,计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点进一步包括:
    S301:构造一个与手联通域同样大小的距离矩阵,该距离矩阵具有与手联通域的像素一一对应的元素;
    S302:对于与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算;
    S303:将所述中心点作为初始极远点,
    S304:将初始极远点在距离矩阵中的对应距离值设置为0,用手联通域中每一个像素点与所述初始极远点和计算出的所有极远点的3D测地线距离中的最小值来更新所述距离矩阵;
    S305:确定已更新距离矩阵中距离值最大的点作为计算出的极远点,并将计算出的极远点作为新的初始极远点;。
    重复执行步骤S304-S305,计算出5-9个极远点。
  9. 根据权利要求8所述的方法,其中,步骤S4中更新所述距离矩阵进一步包括:
    建立一个FIFO队列,将初始极远点添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
    从所述FIFO队列中取出当前像素点,对于该当前像素点8个邻域点中的每一个邻域点,计算邻域点与该当前像素点之间的三维距离d,如果该邻域点的距离值大于该当前像素点的距离值与所述三维距离d之和,则将该邻域点的距离值设置为该当前像素点的距离值与所述三 维距离d之和,并将该邻域点添加到FIFO队列中。
  10. 根据权利要求8所述的方法,其中,所述最大值为100000毫米。
  11. 根据权利要求1所述的方法,其中,从计算的多个极远点中检测手指指尖和手指区域进一步包括:
    将所述多个极远点确定为多个指尖候选点P;以及
    对于每一个指尖候选点P,执行如下迭代过程:
    从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离,如果所述3D测地线距离小于预定距离阈值,则将所述邻域点加入手指点集;
    如果手指点集宽度小于第二阈值Th2,将所述预定距离阈值增加一个步长,否则,判断是否仍有未处理的指尖候选点P;和
    如果还有未处理的指尖候选点P,则选择下一个未处理的指尖候选点P重复所述迭代过程,如果没有未处理的指尖候选点P,退出所述迭代过程。
  12. 根据权利要求11所述的方法,其中,从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点与所述指尖候选点P的3D测地线距离进一步包括:
    构造一个与手联通域同样大小的距离矩阵,该距离矩阵具有与手联通域的像素一一对应的元素;
    对于与深度值不为0的像素对应的元素,将该元素的距离值设置为最大值,对于与深度值为0的像素对应的元素,将该元素的距离值设置为一个负数,表示这些点的距离值不需要计算;
    将与所述指尖候选点P对应的距离值设置为0;
    建立一个FIFO队列,将指尖候选点P添加到该FIFO队列中,针对该FIFO队列迭代执行如下操作,一直到所述FIFO队列中没有像素点需要处理为止:
    从所述FIFO队列中取出当前像素点,对于该当前像素点8个邻域点中的每一个邻域点,计算邻域点与该当前像素点之间的三维距离d,如果该邻域点的距离值大于该当前像素点的距离值与所述三维距离d之和,则将该邻域点的距离值设置为该当前像素点的距离值与所述三维距离d之和,并将该邻域点添加到FIFO队列中;
    从所述指尖候选点P出发从内到外逐步检测所述指尖候选点P的周围点在更新的距离矩阵中的距离值。
  13. 根据权利要求11所述的方法,其中,所述第二阈值Th2参考值为35mm和/或所述步长参考值为3mm。
  14. 根据权利要求11所述的方法,其中,从计算的多个极远点中检测手指指尖进一步包括:
    比较手指点集的长度与第三阈值Th3;
    如果手指点集的长度大于或等于第三阈值Th3,则确定所述指尖候选点P为真实的指尖;
    如果手指点集的长度小于第三阈值Th3,则确定所述指尖候选点P为非真实的指尖。
  15. 根据权利要求14所述的方法,其中,所述第三阈值Th3参考值为40mm。
  16. 一种手指检测设备,包括:
    手联通域获取单元,被配置用于接收用户的深度图并从所述深度图中获取手联通域;
    中心点确定单元,被配置用于计算所述手联通域的中心点;
    极远点计算单元,被配置用于计算手联通域中与所述中心点具有3D测地线距离极大值的多个极远点;
    手指检测单元,被配置用于从计算的多个极远点中检测手指指尖和手指区域;和
    输出单元,被配置用于输出指尖位置及手指区域。
  17. 一种计算机可读存储介质,其上存储了计算机可读指令,所述指令在被计算设备执行时导致计算设备执行如权利要求1-15中任何一项所述的方法。
  18. 一种手指检测设备,包括:
    存储器,被配置用来存储计算机可读指令和数据;以及
    耦合到所述存储器的处理器,被配置用来执行所述计算机可读指令从而执行如权利要求1-15中任何一项所述的方法。
PCT/CN2017/077065 2016-09-14 2017-03-17 基于深度图的启发式手指检测方法 WO2018049801A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/553,710 US10311295B2 (en) 2016-09-14 2017-03-17 Heuristic finger detection method based on depth image
EP17754245.3A EP3514724B1 (en) 2016-09-14 2017-03-17 Depth map-based heuristic finger detection method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610823569.7A CN107818290B (zh) 2016-09-14 2016-09-14 基于深度图的启发式手指检测方法
CN201610823569.7 2016-09-14

Publications (1)

Publication Number Publication Date
WO2018049801A1 true WO2018049801A1 (zh) 2018-03-22

Family

ID=61600730

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/077065 WO2018049801A1 (zh) 2016-09-14 2017-03-17 基于深度图的启发式手指检测方法

Country Status (4)

Country Link
US (1) US10311295B2 (zh)
EP (1) EP3514724B1 (zh)
CN (1) CN107818290B (zh)
WO (1) WO2018049801A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740497A (zh) * 2018-12-27 2019-05-10 河海大学 一种基于最小二乘曲线拟合的指尖检测方法
CN113011361A (zh) * 2021-03-29 2021-06-22 福建师范大学 基于oct指纹的内部最大强度投影成像方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109426789B (zh) * 2017-08-31 2022-02-01 京东方科技集团股份有限公司 手和图像检测方法和系统、手分割方法、存储介质和设备
JP2020014057A (ja) * 2018-07-13 2020-01-23 オリンパス株式会社 頭部搭載型表示装置、検査支援表示システム、表示方法及び表示プログラム
CN109145803B (zh) * 2018-08-14 2022-07-22 京东方科技集团股份有限公司 手势识别方法及装置、电子设备、计算机可读存储介质
CN109344718B (zh) * 2018-09-03 2021-02-09 先临三维科技股份有限公司 指尖识别方法、装置、存储介质及处理器
CN109272519B (zh) * 2018-09-03 2021-06-01 先临三维科技股份有限公司 指甲轮廓的确定方法、装置、存储介质及处理器
CN111354029B (zh) * 2020-02-26 2023-05-05 深圳市瑞立视多媒体科技有限公司 手势深度确定方法、装置、设备及存储介质
CN113867521B (zh) * 2020-06-30 2024-01-23 京东方科技集团股份有限公司 一种基于手势视觉识别的手写输入方法、装置及电子设备
CN115760750B (zh) * 2022-11-15 2023-11-21 北京的卢铭视科技有限公司 Doe质量检测方法、系统、电子设备和存储介质
CN116884048B (zh) * 2023-09-08 2023-12-12 江苏圣点世纪科技有限公司 一种基于边缘形态的异常静脉图像检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102778953A (zh) * 2012-06-28 2012-11-14 华东师范大学 基于Kinect的皮影戏远程数字表演的体感控制方法
CN103353935A (zh) * 2013-07-19 2013-10-16 电子科技大学 一种用于智能家居系统的3d动态手势识别方法
CN103488972A (zh) * 2013-09-09 2014-01-01 西安交通大学 基于深度信息的指尖检测方法
US20140118335A1 (en) * 2012-10-30 2014-05-01 Primesense Ltd. Depth mapping with enhanced resolution

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8872899B2 (en) * 2004-07-30 2014-10-28 Extreme Reality Ltd. Method circuit and system for human to machine interfacing by hand gestures
US9189068B2 (en) 2011-03-14 2015-11-17 Lg Electronics Inc. Apparatus and a method for gesture recognition
WO2012147961A1 (ja) * 2011-04-28 2012-11-01 Necシステムテクノロジー株式会社 情報処理装置、情報処理方法及び記録媒体
US8873852B2 (en) * 2011-09-29 2014-10-28 Mediatek Singapore Pte. Ltd Method and apparatus for foreground object detection
KR20130055119A (ko) * 2011-11-18 2013-05-28 전자부품연구원 싱글 적외선 카메라 방식의 투영 영상 터치 장치
JP5799817B2 (ja) 2012-01-12 2015-10-28 富士通株式会社 指位置検出装置、指位置検出方法及び指位置検出用コンピュータプログラム
FR2987216B1 (fr) * 2012-02-17 2014-03-28 Pole Star Methode de cartographie de signatures wi-fi par collecte aveugle de mesures rss
US9734393B2 (en) * 2012-03-20 2017-08-15 Facebook, Inc. Gesture-based control system
CN103150022B (zh) * 2013-03-25 2016-09-21 深圳泰山体育科技股份有限公司 手势识别方法及装置
RU2013146529A (ru) * 2013-10-17 2015-04-27 ЭлЭсАй Корпорейшн Распознавание динамического жеста руки с избирательным инициированием на основе обнаруженной скорости руки
CN103971102B (zh) * 2014-05-21 2017-02-01 南京大学 基于手指轮廓和决策树的静态手势识别方法
CN105046249B (zh) 2015-09-07 2018-09-11 哈尔滨市一舍科技有限公司 一种人机交互方法
JP2017067503A (ja) * 2015-09-28 2017-04-06 富士通株式会社 位置推定装置、位置推定方法、及び位置推定プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102778953A (zh) * 2012-06-28 2012-11-14 华东师范大学 基于Kinect的皮影戏远程数字表演的体感控制方法
US20140118335A1 (en) * 2012-10-30 2014-05-01 Primesense Ltd. Depth mapping with enhanced resolution
CN103353935A (zh) * 2013-07-19 2013-10-16 电子科技大学 一种用于智能家居系统的3d动态手势识别方法
CN103488972A (zh) * 2013-09-09 2014-01-01 西安交通大学 基于深度信息的指尖检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3514724A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109740497A (zh) * 2018-12-27 2019-05-10 河海大学 一种基于最小二乘曲线拟合的指尖检测方法
CN113011361A (zh) * 2021-03-29 2021-06-22 福建师范大学 基于oct指纹的内部最大强度投影成像方法
CN113011361B (zh) * 2021-03-29 2023-11-07 福建师范大学 基于oct指纹的内部最大强度投影成像方法

Also Published As

Publication number Publication date
CN107818290B (zh) 2021-03-16
US10311295B2 (en) 2019-06-04
EP3514724A1 (en) 2019-07-24
US20180239957A1 (en) 2018-08-23
EP3514724A4 (en) 2020-06-17
CN107818290A (zh) 2018-03-20
EP3514724B1 (en) 2024-05-29

Similar Documents

Publication Publication Date Title
WO2018049801A1 (zh) 基于深度图的启发式手指检测方法
US10198823B1 (en) Segmentation of object image data from background image data
WO2022148192A1 (zh) 图像处理方法、图像处理装置以及非瞬时性存储介质
CN110458805B (zh) 一种平面检测方法、计算设备以及电路系统
WO2020199468A1 (zh) 图像分类方法、装置及计算机可读存储介质
WO2021012484A1 (zh) 基于深度学习的目标跟踪方法、装置及计算机可读存储介质
CN107633526B (zh) 一种图像跟踪点获取方法及设备、存储介质
WO2019041519A1 (zh) 目标跟踪装置、方法及计算机可读存储介质
CN110163087B (zh) 一种人脸姿态识别方法及系统
US10885321B2 (en) Hand detection method and system, image detection method and system, hand segmentation method, storage medium, and device
JP2011134114A (ja) パターン認識方法およびパターン認識装置
WO2021147113A1 (zh) 一种平面语义类别的识别方法以及图像数据处理装置
WO2022237811A1 (zh) 图像处理方法、装置及设备
JP2008250950A (ja) 画像処理装置、制御プログラム、コンピュータ読み取り可能な記録媒体、電子機器及び画像処理装置の制御方法
WO2020248848A1 (zh) 智能化异常细胞判断方法、装置及计算机可读存储介质
JP2008250951A (ja) 画像処理装置、制御プログラム、コンピュータ読み取り可能な記録媒体、電子機器及び画像処理装置の制御方法
WO2018184255A1 (zh) 图像校正的方法和装置
WO2022099889A1 (zh) 重定位方法、机器人及计算机可读存储介质
CN111598149B (zh) 一种基于注意力机制的回环检测方法
WO2021168703A1 (zh) 字符处理及字符识别方法、存储介质和终端设备
CN114926849A (zh) 一种文本检测方法、装置、设备及存储介质
WO2021238151A1 (zh) 图像标注方法、装置、电子设备、存储介质及计算机程序
WO2022193976A1 (zh) 一种图像深度预测方法及电子设备
CN106469437B (zh) 图像处理方法和图像处理装置
US11315265B2 (en) Fingertip detection method, fingertip detection device, and medium

Legal Events

Date Code Title Description
REEP Request for entry into the european phase

Ref document number: 2017754245

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17754245

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE