CN114581535B - 图像中用户骨关键点标注方法、装置、存储介质及设备 - Google Patents
图像中用户骨关键点标注方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN114581535B CN114581535B CN202210294866.2A CN202210294866A CN114581535B CN 114581535 B CN114581535 B CN 114581535B CN 202210294866 A CN202210294866 A CN 202210294866A CN 114581535 B CN114581535 B CN 114581535B
- Authority
- CN
- China
- Prior art keywords
- image
- palm
- user
- depth
- probability
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30004—Biomedical image processing
- G06T2207/30008—Bone
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本申请公开图像中用户骨关键点标注方法、装置、存储介质及设备,该方法包括:读取多帧图像或视频流中的第一图像;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到指示时得到第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型识别第一局部图像中所有骨关键点,输出所有骨关键点坐标以及所有骨关键点构成合理手掌结构的第一概率;当第一概率大于预设阈值时,确定在第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。本申请解决现有技术中骨关键点标注方式准确性和实时性低的技术问题。
Description
技术领域
本申请涉及人机交互技术领域,具体而言,涉及一种图像中用户骨关键点标注方法、装置、存储介质及设备。
背景技术
常见的图像中用户手掌骨关键点检测方法通常基于图像识别技术,即采用将图形输入一预先训练的模型来判断图像中是否存在用户手掌以及手掌中的骨关键点,而受限于图像识别的计算复杂性,这种手掌检测方式和骨关键点标注方式通常准确性和实时性都不高,因此无法应用于远程的、实时的触控识别方案。
针对上述现有技术中骨关键点标注方式准确性和实时性低的技术问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种图像中用户手掌检测方法、装置、存储介质及设备,以至少解决现有技术中远程触控效果差的技术问题。
根据本申请实施例的一个方面,提供了一种图像中用户骨关键点标定方法,包括:从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
根据本申请实施例的另一个方面,提供一种图像中用户骨关键点标定装置,包括:读取模块,用于从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;第一检测模块,用于调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;处理模块,用于在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;第二检测模块,用于调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;确定模块,用于当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
根据本申请实施例的另一个方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任一实施例的方法。
根据本申请实施例的另一个方面,提供了一种设备,包括处理器,处理器用于运行程序,其中,程序运行时执行上述任一实施例的方法。
在本申请实施例中,通过读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到指示时,对第一图像进行处理得到第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型识别第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率;当第一概率大于预设阈值时,确定在第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。本申请解决现有技术中骨关键点标注方式准确性和实时性低的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现图像中用户骨关键点标注方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种图像中用户骨关键点标注方法的流程图;
图3是根据本申请实施例的预先定义手部区域骨关节点示意图;
图4a是根据本申请实施例的用于识别用户手掌的神经网络基础架构示意图;
图4b是根据本申请实施例的候选区判断和候选区回归框架示意图;
图5是根据本申请实施例的一种网络模块结构示意图;
图6a是传统卷积计算方式示意图;
图6b是逐通道卷积的计算方式示意图;
图6c是逐点卷积的计算方式示意图;
图7是根据本申请实施例的骨关键点标定模型的输出示意图;
图8是根据本申请实施例的在视觉图像中检测用户手部图像并标记骨关节点的示意图;
图9是根据本申请实施例的在深度图像中标定用户手部骨关节点的示意图;
图10是根据本申请实施例的一种确定交互表面的方法的流程图;
图11是根据本申请实施例的另一种确定交互表面的示意图;
图12是根据本申请实施例的一种用户交互方法的流程图;
图13是根据本申请实施例的一种图像中用户骨关键点标注装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,还提供了一种图像中用户骨关键点标注方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现图像中用户骨关键点标注方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a,102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的用户手势识别确定方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的磨煤机管路堵塞状态确定方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处,需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
本申请在上述运行环境下运行如图2所示的一种图像中用户骨关键点标注方法。图2是根据本申请实施例的图像中用户骨关键点标注方法的流程图,该方法应用于移动终端、计算机、投影仪等设备,这些设备均可基于图1所述的计算机终端实现。
参见图2所示,图像中用户骨关键点标注方法可以包括:
步骤S200:从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;
在步骤S200中,启动预先架设的一个或一组摄像装置对交互表面处的图像进行采集,由于可能要捕获用户在一段持续时间内在该交互表面上的手势操作,因此需要采集得到多帧图像或视频流,交互表面设置在一个摄像装置的视野范围内或者在一组摄像装置的至少部分重合的视野范围内;摄像装置可以为RGB摄像头,或者RGB摄像头+深度摄像头,或者双目深度摄像头,或者RGB摄像头+TOF摄像头。多帧图像或视频流可以仅包括视觉图像,也可以包含同时刻同区域的视觉图像+深度图像,视觉图像可以是彩色图像,也可以是灰度图像。交互表面可以为平面,也可以为任意曲度的曲面,甚至是凹凸不平的表面,交互表面可以指真实物体表面,例如桌面、墙体,还可以指虚拟物体表面,例如桌面上放置任意具有一定高度的物体后该物体表面对应的虚拟表面。第一图像可以为多帧图像或视频流中的任意帧图像,而作为一种方法的起始步骤,此处限定第一图像的前一帧图像中未检出用户手掌。当第一图像为多帧图像或视频流的第一帧图像时,也可等同视为第一图像的前一帧图像中未检测到用户手掌。而对于第一图像的前一帧图像中检出用户手掌的情况,则适用于本申请检测到用户手掌后的其余步骤。
步骤S202:调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;
在步骤S202中,对第一图像进行分析,判断第一图像中是否可能包含用户手掌。可以借助于任意一种用户手掌检测模型,本申请不以此为限。例如基于图片进行建模、判断图片中是否包含用户手部轮廓,又例如,建立神经网络模型对图片进行检测处理,后续会对这种方式进行详细说明。边界框参数可以为该局部区域的边界上多个点的位置参数,也可以是该局部区域中心的位置参数和区域的尺寸参数,只要能通过该边界框参数实现区域定位即可。
步骤S204:在监测到指示产生时,根据边界框参数对第一图像进行处理,得到第一图像中被边界框限定的第一局部图像;
在步骤S204中,通过对图像进行裁剪处理,使得送入骨关键点标定模型的图像仅为最可能涉及用户手掌的局部图像,从而最大限度的保障了骨关键点标定模型的处理效率。在一种可选实施方案中,骨关键点标定模型中采用卷积运算,而图像裁剪运算的处理消耗远小于对一副图像进行卷积运算的处理消耗。
步骤S206:调用骨关键点标定模型对第一局部图像进行处理,识别第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;
在步骤S206中,手掌部骨关键点包括1个手掌根部区域骨节点,20个手指区域骨节点,其中每个手指区域上从指根到指尖设置4个骨节点。图3是根据本申请实施例的预先定义手掌部区域骨关键点示意图,如图3所示,手部区域包含21个骨关键点,其中节点0为手掌根部区域骨节点,节点1-4为大拇指上从指根到指尖大致均匀设置的4个骨节点,与此同理,节点5-8、9-12、13-16、17-20分别为食指、中指、无名指、小指上从指根到指尖大致均匀设置的4个骨节点,可以看出,节点4,8,12,16,20为指尖节点。通过骨关键点标定模型可以识别并标记出图像中手部骨骼结构的骨关键点,从而可以根据每个骨关键点的坐标进行再次手掌检测可靠性判断,提高了本申请手掌检测的精准度。换句话说,本申请在手掌检测模型检测到手掌之后,将会采用一个骨关键点标定模型,根据手掌边界框,输出21个骨关键点的坐标。同时,还将输出一个概率,此概率值为这21个关键点是一个合理的手部结构的概率。若此值未达到阈值,则重新进行手掌检测。假如手掌检测模型没有检测到手掌,则不执行步骤S206,显著减少了没有手掌检出时的算法运算量。
步骤S208:当判断出第一概率大于预设阈值时,确定在第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
在步骤S208中,第一概率可以包括多个概率值,例如包括第一左手概率和第一右手概率,也就是说,本申请可以通过模型具体判断图像中的用户手掌,从而为检测到用户手掌之后的具体操作奠定基础。通过概率判断出确实存在用户手掌时,可以将输出的骨关键点的坐标与预设的骨关键点进行一一对应,从而实现了每一预设骨关键点的标注,或者,仅实现用户指尖区域对应的骨关键点的标注。在一种可选方案中,在检测到用户手掌后,可以根据用户手掌的有、无设置对应的操作指令,还可以根据多幅图像中连续出现的用户手掌中骨关键点的位置坐标的变化趋势判断用户具体手势,进而设置用户具体手势对应的操作指令,还可以根据一幅图像中用户手掌中涉及手指的骨关键点的深度信息和交互平面的深度信息判断用户是否有点击交互平面的动作,还可在此基础上进行点击交互平面的动作和点击之后用户手势识别的叠加,可用于实现多种交互用途。
在本申请实施例中,通过读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到指示时,对第一图像进行处理得到第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型识别第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点构成合理手掌结构的第一概率;当第一概率大于预设阈值时,确定在第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。本申请解决现有技术中骨关键点标注方式准确性和实时性低的技术问题。
可选地,如下以手掌检测模型选用神经网络模型为例,对步骤S202:调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数进行具体说明。该步骤包括:
建立神经网络模型,所述神经网络模型包括特征提取卷积层,候选区提取网络,候选区池化层以及分类器,其中:
将第一图像从所述特征提取卷积层输入至所述神经网络模块;
所述特征提取卷积层用于将输入的第一图像处理为特征图;
所述候选区提取网络用于在特征图尺度上设置预设数量的候选区,并利用深度网络判断候选区为正样本或负样本,其中,正样本指示候选区中包含用户手部图像,负样本指示候选区中不包含用户手部图像;具体的,在所述特征图尺度上,针对每个点以多种尺寸和多种长宽比例设置多种候选框,随后,具体的,所述候选区提取网络用于在所述特征图尺度上,针对每个点以三种尺寸和三种长宽比例,共设置9种候选框,分别尺寸为(0.5,0.5)、(1,0.5)、(0.5,1)、(1,1)、(2,1)、(1,2)、(2,2)、(4,2)、(2,4),随后用深度网络判断哪些区域是正样本,哪些区域是负样本。
所述候选区池化层用于将判断为正样本区域的特征图,池化为固定大小的图像;
所述分类器用于将池化后的图像进行分类,以根据分类结果判断输入至所述神经网络模型的第一图像中是否包含用户手掌。
图4a是根据本申请实施例的用于识别用户手掌的神经网络基础架构示意图;如图4a所示,手掌检测模型采用了一个基于Faster R-CNN的架构来进行单类检测。该Faster R-CNN的基础架构主要包含4个部分的内容,特征提取卷积层(Conv Layers)、候选区提取网络(Region Proposal Networks)、候选区池化层(ROI Pooling)、分类器(Classifier),其具体功能及作用同上文。检出手掌之后,可以采用手掌跟踪算法,来提高手掌跟踪的帧率。
可选地,根据分类结果判断输入至所述神经网络模型的第一图像中是否包含用户手掌之后,所述方法还包括:
当根据所述神经网络模型判断出所述第一图像中包含用户手掌时,确定池化后的图像所对应的候选区的标识和尺寸,根据对应的候选区的标识确定该候选区在所述第一图像中的位置,根据该位置和对应的候选区的尺寸生成指示用户手掌所在局部区域的边界框参数。
可选地,所述候选区提取网络被配置为执行如下方法步骤:
以特征图中的每一个点为中心,将其映射回所述第一图像,在所述第一图像上生成预设数量的候选区,所述候选区具有多种尺度和多种长宽比;
逐个判断每一候选框是否为合理的候选区,若否,则剔除不合理的候选区;
剔除重叠的候选区;
判断每一候选区是正样本或负样本的概率值,选取概率值大的多个候选区送入所述候选区池化层。
具体的,对于特征提取卷积层,当输入一张输入的640*480的图片,首先会被输入卷积层进行若干次卷积、激活、池化等操作,卷积层通常采用的骨架模型是VGG16或ResNet50。卷积层可例如包含13次卷积操作,13次Relu激活操作和4次池化操作。所有的卷积层都会进行扩边处理,以保证卷积操作后,图像的尺寸不发生改变。卷积使用的是多通道卷积操作,其中,第13个卷积层采用的是512通道的卷积操作。对于多通道卷积,其输出的特征图的通道数和卷积通道数一致。Relu层为线性整流函数,以提高特征提取模型的非线性表达能力。池化层采用最大池化操作,每次池化操作后,图像的长与宽都缩小为原来的二分之一。一张输入的640*480的图片,经过卷积层后,将输出一张40*30*512的特征图。
具体的,对于候选区提取网络,主要包括候选框生成,候选框判断和候选框回归三个子部分。在候选框生成部分,对于40*30*512的特征图,实际上相当于40*30个点,每个点有一个512维特征向量。对于每一个点,在Faster R-CNN中的策略,是会以此点为中心,映射回原图后,在原图尺度(640*480)上生成9个选框。这9个选框有3种尺度和3种长宽比例,长宽比大约为1:1,2:1和1:2。这些选框将用左上角点和右下角点在原图尺度上的共4个横纵坐标值作为标志。对于40*30*512的特征图,输出的候选框个数将有40*30*9个。
其中,对于多种候选区尺度,本申请采用如下方式进行:先对特征图进行M次降采样,再进行N次上采样,得到M+N中尺寸的候选区,例如将特征图尺寸降采样到8*8,再进行3次上采样,这样对同一候选区,就提供了四种候选区的尺寸,可以更好用微观视觉特征。对于多种候选区长宽比例,由于人手掌形状的特点接近一个正方形框,所以把可以将候选区长宽比例比例限定到1:1,在只提供一种长宽比例时可以进一步提高速度。在另一种改进方案中,先提供多种比例的候选区长宽比,然后进行手掌识别,最终在某一长宽比之下的候选区中检测到用户手掌,如此进行多次,在后续进行手掌检测时,可以根据历次检测到用户手掌的候选区的长宽比,设定本次进行手掌检测的长宽比,如此可视实现候选区长宽比的高效自适应。在另一种改进方案中,在进行手掌检测前,对用户的手掌图像进行训练,判断每一用户的手掌在图像中的长宽比,并建立该长宽比与用户标识之间的一一对应,如此,在进行手掌检测之前,获取用户标识即可确认当前适用于手掌检测的候选区长宽比。
如下构建用于候选区判断的真实数据:每一个候选框,通过与真实数据中的实际框计算交并比IOU(Intersection-over-Union),能够知晓其是否是合理的候选框。将此作为一个二分类问题,IOU超过一定阈值的候选框,正确概率记为1,错误概率记为0,而IOU没有达到的候选框,正确概率记为0,错误概率记为1,这样就构建得到了二分类任务的真实数据(Ground Truth),其尺寸大小为40*30*9*2,也就是40*30*18。
如下构建用于候选区回归的真实数据:每一个候选框通过与真实数据中的实际框比对,可以计算出平移系数和缩放系数。给定候选框A=(Ax,Ay,Aw,Ah)和G=(Gx,Gy,Gw,Gh),可以寻找一种线性变换F,使得A经过映射后得到一个跟真实选框G更接近的回归窗口G'。线性变换的方式即先进行横纵平移,再进行横纵缩放,使用四个参数值即可标志这一变换。对于40*30*9个候选框,可以构建得到候选框回归任务的Ground Truth,其大小为40*30*36。
以上为候选框判断和候选框回归两个部分的Ground Truth的构建方法。图4b是根据本申请实施例的候选区判断和候选区回归框架示意图;如图4b所示,上半部分为候选框判断部分,下半部分为候选框回归部分。上半部分,特征图通过18通道的1*1卷积,输出40*30*18的张量,经过Softmax层后,与二分类任务的Ground Truth进行比对训练。下半部分,特征图通过36通道的1*1卷积,输出40*30*36的张量,与回归任务的Ground Truth进行比对训练。
训练完成后,在前向传播过程中,整个候选区提取网络部分,按照以下顺序依次进行。
1.生成候选框,并对每个候选框进行候选框回归和候选框判断。
2.按照候选框判断为正样本的概率值从大到小排序,选取前若干个,并且提取经回归任务修正位置后的候选框。
3.剔除尺寸极小的候选框。
4.使用非极大值抑制(NMS)去掉重叠的候选框。
5.输出候选框的二分类结果和回归结果。
具体的,对于候选区池化层,对于传统的卷积网络,网络训练好后输入的图像尺寸必须是确定的值,同时输出也是固定的大小。而在检测任务中,输入图像大小不定,这个问题就需要解决。传统有裁剪和拉伸两种解决办法,这两种方法都不好,裁剪会破坏图像的完整度,而拉伸会破坏图像原始的形状信息。那么候选区池化层(ROI Pooling)实际上就是为解决这一问题而设计的。对于任意大小的特征图,都可以通过池化的方式将其转换为固定大小的特征图。
具体的,对于分类器,通过回归后的候选框的特征图,经过全连接层和Softmax层后计算每个候选框具体所属的物体类别。
可选地,骨关键点标定模型还输出第一局部图像中包含的所有骨关键点坐标,其中,在步骤S208:当判断出第一概率大于预设阈值时,确定在第一图像中检测到用户手掌之后,方法还包括:
步骤S2090:根据边界框参数对第二图像进行处理,得到第二图像中被边界框限定的第二局部图像,其中第二图像为第一图像的后一帧图像;
在步骤S2090中,在第一图像中通过双重手段确定检测到用户手掌后,就可以进行如下所述的用户手掌的跟踪步骤。首先由于两帧图像之间存在采集间隔,进而导致两帧图像之间用户手掌的整体位置可能发生偏移,但是又由于该采集间隔相对来说极短,因此该整体位置的偏移不会特别大,但经过多幅图像累积的整体偏移相当可观,如果采用固定的边界框参数,可能会影响手掌检测的精确度,因此本申请提供一种边界框参数的动态更新方案。该方案的整体思路是根据两帧图像中多个骨关键点的位置坐标,判断用户手掌的整体位移,从而对应调整边界框参数,使用户手掌保持在边界框的中心位置或固定位置,通过边界框参数的更新可以实现连续图像中手掌的持续跟踪。
步骤S2092:调用骨关键点标定模型对第二局部图像进行处理,输出第二局部图像中包含的所有骨关键点坐标以及所有骨关键点构成合理手部结构的第二概率;
步骤S2094:当判断出第二概率大于预设阈值时,根据第一局部图像中包含的所有骨关键点坐标和第二局部图像中包含的所有骨关键点坐标,计算第二图像中用户手掌相对于第一图像中用户手掌的整体偏移量;
在步骤S2094中,例如根据两帧图像中21个骨关键点坐标,计算两帧图像中21个骨关键点的平均位移,将其作为手掌检测框的位移,即可实现手掌检测框的更新。在另一种方式中,由于每个骨关键点的活动范围大小不同,指尖区域的骨关键点有最大的活动空间,而在手掌整体没有大距离移动的情况下,如果某几个指尖区域骨关键点坐标变化较大,则可能会给整个手掌的位移计算带来误差,因此,本申请还提供一种精确度更高的计算方式,包括:为每个骨关键点赋予不同的权重,通过所有骨关键点位移的加权计算,得到手掌的整体位移,将其作为手掌检测框的位移。
步骤S2096:根据整体偏移量更新边界框参数,以使第二图像的后续图像帧中的用户手掌始终位于更新的边界框的限定范围,实现对后续图像帧中用户手掌的追踪。
在步骤S2096中,对应调整边界框参数,使用户手掌保持在边界框的中心位置或固定位置,即可实现边界框的动态更新,便于后续手掌的持续跟踪。
通过上述步骤,根据两帧图像中多个骨关键点的位置坐标,判断用户手掌的整体位移,从而对应调整边界框参数,使用户手掌保持在边界框的中心位置或固定位置,通过边界框参数的更新可以实现连续图像中手掌的持续跟踪。
可选地,方法还包括:
当手掌检测模型对第一图像进行处理,未识别出第一图像中可能包含用户手掌时,返回执行从采集得到的多帧图像或视频流中读取第一图像的步骤;或者
当判断出第一概率未大于预设阈值时,或者当判断出第二概率未大于预设阈值时,确定在第一图像或第二图像中未检测到用户手掌,返回执行从采集得到的多帧图像或视频流中读取第一图像的步骤。
通过上述步骤,在没有检测到手掌时,则不执行步骤S204-S208:,显著减少了没有手掌检出时的算法运算量。
可选地,第一概率可以包括多个概率值,例如包括第一左手概率和第一右手概率,其中判断第一概率是否大于预设阈值包括:
获取预先设置的左手概率阈值和右手概率阈值;
判断第一左手概率和第一右手概率是否至少有一个大于对应的左手概率阈值和右手概率阈值;
若是,则确定在第一图像中检测到用户手掌,并根据第一左手概率和第一右手概率中的较高者确定在检测到的用户手掌为左手掌或右手掌;
若否,则确定在第一图像中未检测到用户手掌。
可选地,第二概率包括第二左手概率和第二右手概率,其中判断第二概率是否大于预设阈值包括:
获取预先设置的左手概率阈值和右手概率阈值;
判断第二左手概率和第二右手概率是否至少有一个大于对应的左手概率阈值和右手概率阈值;
若是,则确定在第二图像中检测到用户手掌,并根据第二左手概率和第二右手概率中的较高者确定在检测到的用户手掌为左手掌或右手掌;
若否,则确定在第二图像中未检测到用户手掌。
具体的,在得到第一图像或第二图像的包含用户手掌的局部图像后,骨关键点标定模型的输出包含三个部分。第一个部分,是手部各骨关键点的位置坐标,这些骨关键点的位置既可以用于骨关键点坐标的输出,也可以将数据流的两帧中的骨关键点的平均偏移,当作手掌的平均位置偏移,用于进行手掌跟踪中的手掌框位置更新。第二个部分,是框中的区域中存在左手的概率。第三个部分,是框中的区域中存在右手的概率。当左手和右手存在的概率都低于某一个阈值时,意味着框中没有手掌,手掌跟踪已经跟丢了。因此,这时需要读取下一帧图像,并返回执行调用手掌检测模型对第一图像进行处理的步骤。
可选地,方法还包括:根据第一局部图像中包含的所有骨关键点坐标、第二局部图像中包含的所有骨关键点坐标,以及第二图像之后预设帧数或预设时间内的多帧图像中包含的所有骨关键点坐标之间的变化,确定用户的操作手势,以确定与用户的操作手势对应的交互命令。
可选地,以第一频率调用手掌检测模型,以第二频率调用骨关键点标定模型,其中第二频率大于第一频率。
具体的,采用一个手掌检测模型来检测一帧图像中存在的手掌,并为每个手掌返回边界框的位置和大小。手掌检测模型以一个适中的帧率来运行,检测出手掌后,对单个手掌进行手掌跟踪,骨关键点标定模型以一个较高的帧率来运行。骨关键点标定模型的算法采用到了手的21个骨关键点的坐标,通过将两帧中21个骨关键点的平均位移作为手掌检测框的位移,即可实现手掌检测框的更新,进而实现手掌跟踪。
具体的,例如当前摄像设备可以实现产出1秒50帧的图片,那么在这种情况下将以“每5帧1次的频率”调用手掌检测模型来检测是否存在手掌,当检测为手掌后便会以一个更高的帧率,例如“每2帧一次的频率”来调用骨关键点标定模型来进行标定,以提高骨关键点标定的灵活性和实时性。
可选地,骨关键点标定模型包括输入层,多个级联的网络模块,以及输出层,其中:
将局部图像表达为预定形式的图像矩阵并传至输入层;
通过多个级联的网络模块对图像矩阵进行卷积处理,得到局部图像中包含的所有手掌部骨关键点坐标,以及所有手掌部骨关键点坐标构成合理手掌结构的概率;
通过输出层输出概率值和表示所有手掌部骨关键点坐标的向量。
具体的,本模型采用了一个类似MobileNetV2的模型来输出手部21个骨关键点的x,y,z坐标,以及左手和右手分别存在的概率。采用这样的模型结构有助于很好地降低模型的参数量和计算量,并且也得以利用多尺度的方式扩大感受野,提高高维图像信息的利用率。其中,网络模块例如逆残差模块。
具体的,骨关键点标定模型采用了一种在MobileNetV2中被首次提出的网络模块,并将这种网络模块级联起来使用。这种模块具有参数量小、计算量小的显著特点,它采用了深度可分卷积(Depthwise Separable Convolution)和逆残差结构(InvertedResiduals)。
模块的输入是一个1*W*H*C的矩阵,其被分为两支,一支被送入深度可分卷积网络层,另一支作为残差被送入模块的末尾进行加和。深度可分卷积是对普通卷积的变种,实际上是将一次普通的卷积操作换为了一次逐通道卷积和一次逐点卷积的组合。本网络采用的深度可分卷积网络的一层被分为逐点卷积层和逐通道卷积层,一个被送入深度可分卷积网络层的矩阵,会先通过逐点卷积(Pointwise Convolution)进行升通道,再通过逐通道卷积(Depthwise Convolution)进行通道间信息传递,再通过一个逐点卷积进行降通道,最后和作为残差的那一支特征矩阵进行加和,得到此模块的输出。图5是根据本申请实施例的一种网络模块结构示意图;如图5所示,模块输入24*1*1*96的矩阵,转换为1*28*28*24后被分为两支,一支进行逐点卷积、逐通道卷积以及逐点卷积后送入加法器,另一支直接送入加法器,二者相加后得到模块输出。此处需要说明的是,上述数值仅为示例,本申请不以此为限。
图6a是传统卷积计算方式示意图;如图6a所示,一次传统的卷积操作可以被分为一次逐通道卷积加一次逐点卷积来进行。图6b是逐通道卷积的计算方式示意图;如图6b所示,逐通道卷积,指的是一个卷积核只负责一个通道的计算,一个通道只被一个卷积核卷积。这样的计算量很小,就可以进行通道内的信息传递,但缺点是进行不了通道间的信息传递。图6c是逐点卷积的计算方式示意图;如图6c所示,逐点卷积,指的是卷积核的尺寸是1*1*C*N,C是输入的通道数,N是输出的通道数。通过逐点卷积可以实现通道间的信息传递,却实现不了通道内的信息传递。
通过逐点卷积和逐通道卷积的配合,就可以实现一次完整的传统卷积操作所实现的功能,实现通道内和通道间的图像信息传递,并且对通道的数量进行改变。将一次传统卷积拆分为逐点卷积和逐通道卷积的好处是能够显著降低参数量和计算量。对于传统卷积操作,一张W*H*C的输入图片,经过w*h的卷积层,输出N通道的图片,付出的参数量为w*h*C*N,付出的计算量为W*H*C*N*w*h。
拆分后,一次逐通道卷积的参数量为w*h*C,计算量为W*H*C*w*h。一次逐点卷积的参数量为1*1*C*N,计算量为W*H*C*N*1*1。合并来看,总参数量为w*h*C+C*N,总计算量为W*H*C*w*h+W*H*C*N,当卷积核的w和h较小时,参数量和计算量均大约相当于原有参数量和计算量的1/N,具有显著的降低。
可选地,每一网络模块包括深度可分卷积网络模块以及残差叠加模块,深度可分卷积网络模块依次包括第一逐点卷积层,逐通道卷积层,以及第二逐点卷积层,其中通过多个级联的网络模块对图像矩阵进行卷积处理包括:
将图像矩阵分为两支,第一支图像矩阵输入深度可分卷积网络模块,第二支图像矩阵输入残差叠加模块;
通过第一逐点卷积层对第一支图像矩阵进行升通道;
通过逐通道卷积层进行通道间信息传递;
通过第二逐点卷积层进行降通道;
将第二逐点卷积层的输出送至残差叠加模块,与第二支图像矩阵进行叠加,得到模块的输出。
具体的,逆残差结构是此模块的另一个较创新的结构。传统的残差网络结构中,通常是先对矩阵进行降通道,随后进行卷积操作,接着再升通道回来和残差进行加和,这样做的目的是降通道以减小计算量。而逆残差结构中,由于已经采用了深度可分卷积的结构,参数量和计算量已经较小,所以在模块中需要进行升通道来提高模型的表现效果。因此,逆残差结构的通道改变顺序正好相反,先通过逐点卷积进行升通道,接着进行逐通道卷积,再进行逐点卷积降通道回来与残差进行加和。最终的整体结构,将9个这样的逆残差模块级联起来使用,并最终输出了两个概率和一个63维的向量。图7是骨关键点标定模型的输出示意图;如图7所示,输出了两个概率和一个63维的向量。两个概率分别代表左手和右手存在的概率,63维的向量对应于21个关键点的三维坐标。当左手和右手存在的概率都低于某个阈值时,说明手掌跟踪已经失败,将重新进入第一阶段的手掌检测流程。否则,根据两个概率中较高的一个,来分辨左右手。并且根据相邻两帧中21个骨关键点的平均位移,来更新手掌框的位置,以实现手掌跟踪的效果。左手或右手的判断对于后续的交互定义会有帮助,可以针对性地为不同的手定义不同的交互。
可选地,多帧图像或视频流中的图像包括在时间上对应的视觉图像和深度图像,其中视觉图像帧用于用户手掌检测,深度图像帧用于在检测到用户手掌且得到视觉图像帧中包含的手掌部骨关键点坐标后,确定指尖区域骨关键点的深度信息,以根据该深度信息判断用户手掌是否进行了触控交互表面的操作。
具体的,得到骨关键点坐标后,选取指尖关键点的坐标和深度,与存储的背景建模深度图进行比对,深度差在某个阈值内,则视为有效触控。根据触摸点的数量,触摸事件的持续时间,以及骨关键点在触摸持续时间内的位移,还可以判断发生的是点击事件、拖动事件或是缩放事件等。最后,将相关触摸检测结果上报给系统。
可选地,多帧图像或视频流中的任一帧图像包括在时间和空间上对应的视觉图像和深度图像,其中从采集得到的多帧图像或视频流中读取第一图像包括:读取多帧图像或视频流中的其中一帧图像的视觉图像;在当判断出第一概率大于预设阈值时,确定在第一图像中检测到用户手掌之后,该方法还包括:
读取多帧图像或视频流中的该同一帧图像的深度图像;
根据第一图像中包含的手掌部所有骨关键点坐标确定出用户指尖区域骨关键节点的坐标;
根据用户指尖区域骨关键节点的坐标和深度图像,确定指尖区域骨关键点的深度信息;
根据指尖区域骨关键点的深度信息和预设交互表面的深度信息,判断用户是否进行了触控交互表面的操作。
在一种可选方案中,通过预先架设的摄像装置获取多帧图像或视频流,其中摄像装置可以为RGB摄像头,或者RGB摄像头+深度摄像头,或者双目深度摄像头,或者RGB摄像头+TOF摄像头。本申请摄像装置中所包含的摄像头数量不做限制,只要能采集视觉图像信息+深度图像信息即可,其中视觉图像信息可以是彩色图像信息,也可以是灰度图像信息,甚至可以是红外图像信息。例如,可直接运用RGB、深度摄像头通过三维结构光进行深度的识别,该组合对40cm之内的较近距离能达到很好的识别效果。又例如,可将双目摄像头,通过双目摄像头计算量大的特点,可能在实时性上稍微有些落后,但识别范围不再有着40cm的限制,较近情况下也可实现对深度信息的识别,进而输出RGB图,来结合关节点预测结果共同判断触控行为。又例如,可以通过TOF摄像头获取深度图像,TOF即time to flight的缩写,通过“飞行时间”来进行深度的判断。
在一种可选方案中,通过RGB摄像头获取视觉图像,通过TOF摄像头获取深度图像,交互表面设置于RGB摄像头与TOF摄像头的至少部分重合的视野范围内,用于捕捉用户在该交互表面进行的手部动作。
可选地,根据该深度信息判断用户手掌是否进行了触控交互表面的操作包括:
根据深度图像确定所述交互表面的第一深度值;
根据深度图像和指尖区域骨关键点坐标,确定指尖区域骨关键点的第二深度值;
当所述第一深度值与所述第二深度值之间的差值小于预设阈值时,确定用户的手势操作针对所述交互表面。
其中,交互表面可以为真实物理表面,也可以为虚拟表面,可以首先根据图像中各像素点的深度值确定出一交互表面,从而可得知该交互表面的深度值,也可以预先确定出固定位置的交互表面,从而直接根据该固定位置确定交互表面的深度值。
其中,深度图像与视觉图像在物理空间和时间维度上均对应,即二者对应的同一区域的同一时刻的手部动作。当根据视觉图像确定出用户手部和骨骼节点后,在深度图像中对应标记出用户手部和骨骼节点。图8是根据本申请实施例的在深度图像标定用户手部图像的示意图,如图8所示,RGB摄像头获取手部视觉图片,通过手掌检测模型检测出手掌后,分离处图片中的手掌区域。系统通过手部骨关节点标定算法,分析出第一步检测出的手掌的21个关键骨节点,并且存储21个节点的坐标。当用户的手发生移动时,系统会对手部指尖的五个关键节点进行跟踪,根据节点的变化情况实时更新节点坐标队列。标记结果可参见图9所示。
其中,当用户的指尖节点的深度最终与交互表面的深度基本接近时,可以视为用户的手势操作针对该交互表面。具体的,当用户点击交互界面时,指尖与桌面的深度差会达到一个设定的阈值(约5-8mm)。当通过RGB+深度摄像头的方式时,深度摄像头持续采集范围内的深度信息,系统通过判断指尖关键骨节点的坐标对应深度值与桌面深度值之差,来判定为是否为一次点击事件。第一步:使用者利用手指或其他遮挡物对需要进行交互的位置进行按压,与交互面的深度差会达到一个阈值,通常是6-10毫米。第二步:系统对用户指尖进行跟踪,当系统发现用户指尖对应坐标的深度与桌面的深度达到系统预定的阈值时,确认这是一次有效的点击事件,并且存储当前的点击坐标。
其中,当采用双目深度摄像头的方式时,利用双目摄像头对当前场景进行拍摄,获取到当前场景的左右图片,并对信息进行预处理以及略微的矫正。获取到处理后的图片后,进一步利用基于卷曲神经网络的手部检测算法和手部骨节点标定算法进行手部各骨关节点位置的预测与跟踪,进而便可得到用户当前的手部姿势,储存后等待下一步使用。通过双目摄像机获取的两张图片实时计算场景物体的深度,如果判断出手部骨关键点与投影平面距离相差小于5mm,则判定用户动作为按压平面。
其中,触摸检测部分定义双手的指尖部分为有效触控部位,将手关键点检测模型输出的5个指尖部分关键点的坐标与深度和触控表面背景的深度图进行比对,深度差在某个阈值内,即视为有效触控。
可选地,根据该深度信息判断用户手掌进行了触控交互平面的操作之后,方法还包括:
当确定用户的手势操作是针对所述交互表面时,在所述交互表面上确定用户手势操作所选择的目标对象,并读取用户针对所述交互表面进行手势操作的时刻的前后多帧图像信息;
根据所述前后多帧图像确定用户的完整手势动作;
根据预存的完整手势动作与操作指令的对应关系,确定所述完整手势动作对应的操作指令;
针对用户手势操作所选择的目标对象执行所述操作指令,以更改所述用户交互界面。
其中,当用户的手指触及交互表面即用户指尖与交互表面深度差小于阈值时,可视为用户的手势操作针对该交互表面。此时,可以先根据用户的手指触及交互表面的位置,从交互表面上显示的至少一个可供用户操作的目标对象中选择其中一个目标对象。随后,获取用户手指指尖点击交互表面的时刻之前多帧图像信息,并据此判断用户的完整手势。例如,用户的完整手势动作可以是单个手势,如张开手掌、握拳、比划特定手势如V字形手势,还可以是多种手势的组合,例如先握拳再比划特定手势。例如,张开手掌即表示拖动动作,握拳表示缩小视图动作,比划V字形手势表示截图动作。通过上述步骤,可以先确定用户点击交互表面即先确定出用户有操作意图,再对用户手势动作进行识别,可以避免用户手势误操作。确定用户具体要操作的目标对象或显示元素,确定用户要对该目标对象或显示元素执行什么操作。举例来说,用户先张开手掌即表示要执行拖动动作,随后根据用户的按压位置决定要拖动哪个目标对象,例如哪个图标或哪个窗口;又或者用户先伸出食指表示点击动作,随后根据食指顶端触及交互表面的位置来确定点击位置,随后执行该点击位置对应的目标对象/控件对应的功能;再或者用户比划V字形手势表示截图动作,随后根据食指顶端触及交互表面的位置来确定截图区域。
在一种可选方案中,在判断出为点击事件后,为了分析用户的具体动作,从存储中获取前几帧的点击信息,将这些信息同样也作为下一步分析的源数据。具体的,依据当前用户状态和动作进一步计算,得出当前用户调用的方法,同时将投影仪需要作出的改变传输至投影仪,该方法具体包括:利用多帧状态信息分析出用户的手指动作,进一步得到用户的轨迹信息。
在一种可选方案中,以摄像头帧率为50帧对多帧状态分析方法的具体流程进行简易描述,本发明不以此为限。
(1)当系统对当前的图片中用户动作判断为按压行为时,便需要对一个持续时间进行判断,这里假设按压动作持续100ms(即5帧)算是一个真正的按压事件,并进一步去调用相应的处理方法。
(2)当仅检测到某一帧用户为按压行为时,系统会开始查询操作,首先会获取前一帧用户的行为类型,如果识别为为同一手部位置的按压行为,则系统继续获取前一帧的影响。当遇到非法行为(非同一位置的按压行为或者非按压行为),会进行特殊处理:跳过这一帧再向前读一帧。
(3)此时有两种情况:1.再向前的一帧仍为非法行为则本次查询终止,此时当前帧不能算作真正的按压事件,多帧判断结束,系统开始等待下一帧的用户行为并判断。2.再向前的一帧可以识别为同一手部位置的按压行为,那么之前遇到的非法行为被标记为错误数据,并当做一个同一手部位置的按压行为来进行处理。
(4)在经过查询和特殊处理之后,如果计算板判断此时已经有连续五帧同一位置的按压行为,则会将其视为真正的按压事件,多帧判断结束,进行后续具体按压位置的手部关节点识别。
在上述任一实施例的基础上,完整的手势动作至少包括第一手势动作和第二手势动作,所述第一手势动作用于标记所述用户交互界面上显示的目标对象,所述第二手势动作用于更新所述用户交互界面上显示的目标对象,其中执行所述操作指令,以更改所述用户交互界面上显示的目标对象包括:
当确定用户的完整手势动作是所述第一手势动作时,执行与所述第一手势动作对应的第一操作指令,在所述用户交互界面上用户指定的目标对象处绘制对应的标记图样;
当确定用户的完整手势动作是所述第二手势动作时,执行与所述第二手势动作对应的第二操作指令,读取需要更新的用户交互界面数据并将需要更新的用户界面数据进行投射。
在上述任一实施例的基础上,所述交互表面为物理表面,根据所述深度图像信息确定所述交互表面的第一深度值包括三种方式,其中第一种方式和第二种方式为整体建模法,该方法针对的是整个接触平面,所以只有当用户接触到桌面这一交互平面时才能有效点击,即交互面固定;第三种方式可称为局部点集法,针对的是一个虚拟的交互面,并不要求一定是桌面。例如用户将书本放在桌面上时,用户可以以书本平面为交互面进行交互,即交互面取决于用户。以下对三种方式进行详细说明。
第一种方式:对所述物理表面进行建模,根据所述深度图像信息和建模信息确定所述物理表面的第一深度值。在一种可选方案中,上述整体建模法关注整个交互平面的建模,进而判断指尖与建模平面的深度差。
第二种方式:该方式可针对虚拟交互表面,该方式包括:从所述深度图像中提取出一滚动窗口;根据所述滚动窗口计算每个像素点的深度均值和深度标准差;判断所述深度标准差是否大于预设阈值;若是,则返回从所述深度图像信息中提取出一滚动窗口的步骤;若否,则基于所述深度均值对所述虚拟表面进行建模,将所述每个像素点的深度均值确定为所述虚拟表面的第一深度值。
具体的,上述整体建模法采用动态建模,即当平面上发生变化时(例如平面上放置了物体)应该去更新该平面的模型。图10是根据本申请实施例的确定交互表面的方法的流程图,如图10所示,该方法具体流程如下:
S1:对于每一个深度图的像素,从深度流中取出一个滚动窗口(本算法中使用的滚动窗口长度为3秒),通过滚动窗口计算每个像素点深度的均值和标准差。
S2:基于第一个滚动窗口进行表面建模时,每个像素的均值构成了背景的深度建模。
S3:之后的滚动窗口将用于背景建模的动态更新,当通过后续滚动窗口计算得出的标准差超过某个阈值时,说明环境正在发生较大的变化,深度图将不会发生更新,直到标准差重新回落到正常范围内时,深度图的更新才会进行。
第三种方式:交互表面为物理表面或虚拟表面,第三种方式包括:定位所述用户手部的指尖节点在所述交互表面上的第一位置;划定包含所述第一位置的第一局部区域;根据所述深度图像信息确定所述第一局部区域中每个像素点的深度均值;根据所述每个像素点的深度均值确定所述第一局部区域的深度均值,并作为所述第一深度值。
具体的,不同于整体建模法对整个交互平面的模拟,局部点集法只关注指尖对应的骨节点附近的背景深度。具体流程如下:
S1:从手部骨节点标定算法中获取指尖的骨节点坐标,并根据此时指尖坐标与下节点的长度来动态获取一定区域内的背景。图11是根据本申请实施例的另一种确定交互表面的示意图;如图11所示,此时系统会对圆形区域的点集进行均值计算,以当作此时的背景交互面深度。
S2:对背景深度进行排序,选取中间70%的数据点,计算这70%数据点的深度均值,作为当前交互面深度。此时系统会对圆形区域的点集进行均值计算,以当作此时的背景交互面深度。
在一种可选方案中,图12是根据本申请实施例的一种用户交互方法的流程图,该图对应的方案采用视觉信息采集单元(RGB摄像头和3D结构光摄像头的镜头组合,或双目摄像头,或RGB摄像头和TOF摄像头的镜头组合等)、投影控制单元(投影仪)、计算分析单元(计算板),如图12所示,该方法包括:
S1:投影仪初始化,在对应平面上投影出当前的操作界面信息。RGB摄像头、深度摄像头开始工作,向系统持续输入图片信息流。
S2:使用者的手部进入RGB摄像头的视野范围内,RGB摄像头持续获取手部图片,通过系统处理解析出手部的21个关键骨关节点,并且对指尖的五个关键骨关节点进行跟踪。
S3:当用户点击交互界面时,指尖与桌面的深度差会达到一个设定的阈值(约6-10mm)。深度摄像头持续采集范围内的深度信息,系统通过判断指尖关键骨节点的坐标对应深度值与桌面深度值之差,来判定为是否为一次点击事件。
S4:计算板分析出某一位置是用户的点击事件,计算板从存储中获取前几帧的点击信息,进一步分析用户动作。
S5:计算板依据当前用户状态和动作进一步计算,得出当前用户调用的方法,同时将投影仪需要作出的改变传输至投影仪。
S6:投影仪根据计算板传输的信息对投影内容进行更新。
在一种可选方案中,步骤S1还包括:
第一步:投影仪初始化,进行对焦,梯形校正,进行画面信号的重合和校准判断,直到投影清晰,显示加载中的操作界面。
第二步:RGB摄像头、深度摄像头通过分别通过openCV与openNI的调用进行初始化,持续将图像流向系统输入。
第三步:投影仪从计算板中获取当前用户的设置,并投影出正确的用户操作界面。
在一种可选方案中,步骤S2还包括:
第一步:RGB摄像头获取手部图片,通过手掌检测分离处图片中的手掌区域。
第二步:系统通过手部骨关节点标定算法,分析出第一步检测出的手掌的21个关键骨节点,并且存储21个节点的坐标。
第三步:当用户的手发生移动时,系统会对手部指尖的五个关键节点进行跟踪,根据节点的变化情况实时更新节点坐标队列。
在一种可选方案中,步骤S3还包括:
第一步:使用者利用手指或其他遮挡物对需要进行交互的位置进行按压,与交互面的深度差会达到一个阈值,通常是6-10毫米。
第二步:系统对用户指尖进行跟踪,当系统发现用户指尖对应坐标的深度与桌面的深度达到系统预定的阈值时,确认这是一次有效的点击事件,并且存储当前的点击坐标。
在一种可选方案中,步骤S4还包括:在判断出为点击事件后,为了分析用户的具体动作,从存储中获取前几帧的点击信息,将这些信息同样也作为下一步分析的源数据。为系统判断出点击事件,做出相应的响应。
在一种可选方案中,步骤S5还包括:
第一步:计算板利用多帧状态信息分析出用户的手指动作,进一步得到用户的轨迹信息,关于多帧状态的具体流程,见基础扩展流程——补充流程。
第二步:获取当前投影仪的投影内容,并结合轨迹信息对按压位置所涉及的功能进行判断,借助点击位置处功能的识别。
第三步:在了解所涉及、功能后,如果功能是某一事件的调用则进行调用,并记录调用信息,如果是纯粹的标记添加则记录下标记信息。
第四步:计算板将用户动作所产生的调用信息或者标记信息传输至投影仪。
在一种可选方案中,步骤S6还包括:
第一步:投影仪实时获取计算板的信息,在获取信息后与计算板中对信息的配置进行对比,得出信息的类型。
第二步:如果是标记信息则直接在投影内容上绘制出相应的内容
第三步:如果是调用信息则利用计算板的存储功能,获取需要更新到的投影界面,并将投影界面进行显示。
在另一种可选方案中,可以采用双目摄像头获取视觉图像和深度图像,基于双目摄像头的用户交互方法包括:
S1:双目摄像头初始化,实时获取当前用户的手部姿势信息,同时利用计算板进行手部的圈定。具体的,利用双目摄像头对当前场景进行拍摄,获取到当前场景的左右图片,并对信息进行预处理以及略微的矫正。获取到处理后的图片后,进一步利用基于卷曲神经网络的手部检测算法和手部骨节点标定算法进行手部各骨关节点位置的预测与跟踪,进而便可得到用户当前的手部姿势,储存后等待下一步使用。
S2:当计算板分析出某一帧用户动作为按压平面,则计算板从存储中获取前几帧用户的动作信息,进一步分析用户动作。具体的,通过双目摄像机获取的两张图片实时计算场景物体的深度,如果判断出手部骨关节点与投影平面距离相差小于5mm,则判定用户动作为按压平面。在判断出为按压事件后,为了分析用户的具体动作,从存储中获取前几帧的用户动作信息信息,将这些信息同样也作为下一步分析的源数据。
S3:计算板依据当前用户状态和动作进一步计算,得出当前用户调用的方法,同时将投影仪需要作出的改变传输至投影仪。具体的,计算板利用多帧状态信息分析出用户的具体手部动作,进一步得到用户按压平面部分的轨迹信息。获取当前投影仪的投影内容,并结合轨迹信息对同一位置所会涉及的功能进行判断,判断方式为获取计算板判断的按压事件位置(一般为指尖),然后将对当前位置的功能进行识别。在了解所涉及的功能后,如果功能是某一事件的调用则进行调用,并记录调用信息,如果是纯粹的标记添加则记录下标记信息。计算板将用户动作所产生的调用信息或者标记信息传输至投影仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的图像中用户骨关键点标注方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例2
根据本申请实施例,还提供了一种用于实施上述图像中用户骨关键点标注方法的图像中用户手掌检测装置,该装置以软件或硬件方式实现于移动终端、计算机,投影仪等设备,这些设备都可基于图1所述的计算机终端实现。
如图13所示,该图像中用户骨关键点标注装置130包括:
读取模块1300,用于从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;
第一检测模块1302,用于调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;
处理模块1304,用于在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;
第二检测模块1306,用于调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;
确定模块1308,用于当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
此处,需要说明的是,上述读取模块1300,第一检测模块1302,处理模块1304,第二检测模块1306以及确定模块1308对应于实施例1中的步骤S200至步骤S208,上述五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
该装置该包括各种对应的功能模块,用以实现如实施例1中任一实施方式或可选方式中的流程步骤,囿于篇幅不再赘述。
实施例3
本申请的实施例可以提供一种设备,该设备可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述设备也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述设备包括一个或多个处理器、存储器、以及传输装置。其中,存储器可用于存储软件程序以及模块,如本申请实施例中的图像中用户骨关键点标注方法和装置对应的程序指令/模块。处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的图像中用户骨关键点标注方法。
可选地,存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备120。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中,上述设备中的处理器运行存储的程序代码时可以执行以下方法步骤:从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
进一步地,在本实施例中,上述设备中的处理器运行存储的程序代码时可以执行实施例1中所列举的任一方法步骤,囿于篇幅不再赘述。
实施例4
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述图像中用户骨关键点标注方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌;调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注。
进一步地,在本实施例中,存储介质被设置为存储用于执行实施例1中所列举的任一方法步骤的程序代码,囿于篇幅不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (14)
1.一种图像中用户骨关键点标注方法,其特征在于,该方法包括:
从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌,其中,所述多帧图像或视频流中的任一帧图像包括在时间和空间上对应的视觉图像和深度图像,其中从采集得到的多帧图像或视频流中读取第一图像包括:读取多帧图像或视频流中的其中一帧图像的视觉图像;
调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;
在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;
调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;
当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注;
在当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌之后,所述方法还包括:
读取多帧图像或视频流中检测到用户手掌的一帧图像所对应的深度图像;
根据第一图像中包含的手掌部所有骨关键点坐标确定出用户指尖区域骨关键节点的坐标;
根据用户指尖区域骨关键节点的坐标和所述深度图像,确定指尖区域骨关键点的深度信息;
根据指尖区域骨关键点的深度信息和预设交互表面的深度信息,判断用户是否进行了触控交互表面的操作;
其中,根据指尖区域骨关键点的深度信息和预设交互表面的深度信息,判断用户是否进行了触控交互表面的操作包括:
根据深度图像确定所述交互表面的第一深度值;
根据深度图像和指尖区域骨关键节点坐标,确定指尖区域骨关键点的第二深度值;
当所述第一深度值与所述第二深度值之间的差值小于预设阈值时,确定用户进行了触控交互表面的操作;
其中根据深度图像确定所述交互表面的第一深度值包括:
定位所述用户手部的指尖节点在所述交互表面上的第一位置;划定包含所述第一位置的第一局部区域;根据所述深度图像信息确定所述第一局部区域中每个像素点的深度均值;根据所述每个像素点的深度均值确定所述第一局部区域的深度均值,并作为所述第一深度值。
2.根据权利要求1所述的方法,其特征在于,调用手掌检测模型对第一图像进行处理,识别第一图像中是否包含用户手掌包括:
建立神经网络模型,所述神经网络模型包括特征提取卷积层,候选区提取网络,候选区池化层以及分类器,其中:
将第一图像从所述特征提取卷积层输入至所述神经网络模型;
所述特征提取卷积层用于将输入的第一图像处理为特征图;
所述候选区提取网络用于在特征图尺度上设置预设数量的候选区,并利用深度网络判断候选区为正样本或负样本,其中,正样本指示候选区中包含用户手部图像,负样本指示候选区中不包含用户手部图像;
所述候选区池化层用于将判断为正样本区域的特征图,池化为固定大小的图像;
所述分类器用于将池化后的图像进行分类,以根据分类结果判断输入至所述神经网络模型的第一图像中是否包含用户手掌。
3.根据权利要求2所述的方法,其特征在于,在根据分类结果判断输入至所述神经网络模型的第一图像中是否包含用户手掌之后,所述方法还包括:
当根据所述神经网络模型判断出所述第一图像中包含用户手掌时,确定池化后的图像所对应的候选区的标识和尺寸,根据对应的候选区的标识确定该候选区在所述第一图像中的位置,根据该位置和对应的候选区的尺寸生成指示用户手掌所在局部区域的边界框参数。
4.根据权利要求2所述的方法,其特征在于,所述候选区提取网络被配置为执行如下方法步骤:
以特征图中的每一个点为中心,将其映射回所述第一图像,在所述第一图像上生成预设数量的候选区,所述候选区具有多种尺度和多种长宽比;
逐个判断每一候选框是否为合理的候选区,若否,则剔除不合理的候选区;
剔除重叠的候选区;
判断每一候选区是正样本或负样本的概率值,选取概率值大的多个候选区送入所述候选区池化层;
其中,设置候选区为多种尺度包括:先对特征图进行M次降采样,再进行N次上采样,得到M+N种尺度的候选区,M和N为整数;
设置候选区为多种长宽比包括:提供多种比例的候选区长宽比进行手掌识别,根据历史上历次检测到用户手掌的候选区的长宽比,设定本次进行手掌检测的长宽比;或者,在进行手掌检测前,对用户的手掌图像进行训练,判断每一用户的手掌在图像中的长宽比,并建立该长宽比与用户标识之间的对应关系,根据获取的当前用户标识确认适用于当前用户手掌检测的候选区长宽比。
5.根据权利要求1所述的方法,其特征在于,在当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌之后,所述方法还包括:
根据所述边界框参数对第二图像进行处理,得到所述第二图像中被边界框限定的第二局部图像,其中所述第二图像为所述第一图像的后一帧图像;
调用骨关键点标定模型对所述第二局部图像进行处理,输出所述第二局部图像中包含的所有骨关键点坐标以及所有骨关键点构成合理手部结构的第二概率;
当判断出所述第二概率大于预设阈值时,根据第一局部图像中包含的所有骨关键点坐标和第二局部图像中包含的所有骨关键点坐标,计算第二图像中用户手掌相对于第一图像中用户手掌的整体偏移量;
根据所述整体偏移量更新所述边界框参数,以使所述第二图像的后续图像帧中的用户手掌始终位于更新的边界框的限定范围,实现对后续图像帧中用户手掌的追踪。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当手掌检测模型对第一图像进行处理,未识别出第一图像中可能包含用户手掌时,返回执行从采集得到的多帧图像或视频流中读取第一图像的步骤;或者
当判断出所述第一概率未大于预设阈值时,或者当判断出所述第二概率未大于预设阈值时,确定在所述第一图像或第二图像中未检测到用户手掌,返回执行从采集得到的多帧图像或视频流中读取第一图像的步骤。
7.根据权利要求5所述的方法,其特征在于,所述第一概率包括第一左手概率和第一右手概率,其中判断所述第一概率是否大于预设阈值包括:
获取预先设置的左手概率阈值和右手概率阈值;
判断所述第一左手概率和第一右手概率是否至少有一个大于对应的左手概率阈值和右手概率阈值;
若是,则确定在所述第一图像中检测到用户手掌,并根据所述第一左手概率和第一右手概率中的较高者确定在检测到的用户手掌为左手掌或右手掌;
若否,则确定在所述第一图像中未检测到用户手掌;或者
所述第二概率包括第二左手概率和第二右手概率,其中判断所述第二概率是否大于预设阈值包括:
获取预先设置的左手概率阈值和右手概率阈值;
判断所述第二左手概率和第二右手概率是否至少有一个大于对应的左手概率阈值和右手概率阈值;
若是,则确定在所述第二图像中检测到用户手掌,并根据所述第二左手概率和第二右手概率中的较高者确定在检测到的用户手掌为左手掌或右手掌;
若否,则确定在所述第二图像中未检测到用户手掌。
8.根据权利要求1所述的方法,其特征在于,以第一频率调用手掌检测模型,以第二频率调用骨关键点标定模型,其中第二频率大于第一频率。
9.根据权利要求1所述的方法,其特征在于,通过RGB摄像头获取所述视觉图像,通过TOF摄像头获取所述深度图像,交互表面设置于所述RGB摄像头与所述TOF摄像头的至少部分重合的视野范围内,用于捕捉用户在该交互表面进行的手部动作。
10.根据权利要求1所述的方法,其特征在于,所述骨关键点标定模型包括输入层,多个级联的网络模块,以及输出层,其中:
将第一局部图像表达为预定形式的图像矩阵并传至所述输入层;
通过多个级联的网络模块对图像矩阵进行卷积处理,得到第一局部图像中包含的所有手掌部骨关键点坐标,以及所有手掌部骨关键点坐标构成合理手掌结构的概率;
通过输出层输出所述第一概率值和表示所有手掌部骨关键点坐标的向量。
11.根据权利要求10所述的方法,其特征在于,每一网络模块包括深度可分卷积网络模块以及残差叠加模块,深度可分卷积网络模块依次包括第一逐点卷积层,逐通道卷积层,以及第二逐点卷积层,其中通过多个级联的网络模块对图像矩阵进行卷积处理包括:
将所述图像矩阵分为两支,第一支图像矩阵输入深度可分卷积网络模块,第二支图像矩阵输入残差叠加模块;
通过第一逐点卷积层对第一支图像矩阵进行升通道;
通过逐通道卷积层进行通道间信息传递;
通过第二逐点卷积层进行降通道;
将第二逐点卷积层的输出送至残差叠加模块,与所述第二支图像矩阵进行叠加,得到模块的输出。
12.一种图像中用户骨关键点标注装置,其特征在于,该装置包括:
读取模块,用于从采集得到的多帧图像或视频流中读取第一图像,其中第一图像为多帧图像或视频流中的其中一帧图像,且在第一图像的前一帧图像中未检测到用户手掌,其中,所述多帧图像或视频流中的任一帧图像包括在时间和空间上对应的视觉图像和深度图像,其中从采集得到的多帧图像或视频流中读取第一图像包括:读取多帧图像或视频流中的其中一帧图像的视觉图像;
第一检测模块,用于调用手掌检测模型对第一图像进行处理,在识别出第一图像中可能包含用户手掌时,输出所述第一图像中可能包含用户手掌的指示以及用户手掌所在局部区域的边界框参数;
处理模块,用于在监测到所述指示产生时,根据边界框参数对所述第一图像进行处理,得到所述第一图像中被边界框限定的第一局部图像;
第二检测模块,用于调用骨关键点标定模型对所述第一局部图像进行处理,识别所述第一局部图像中包含的所有手掌部骨关键点,输出所有骨关键点的坐标以及所有骨关键点构成合理手掌结构的第一概率,其中所述骨关键点包括分布在手掌根部区域以及每个手指上从指根到指尖区域内的多个骨节点;
确定模块,用于当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌,以根据输出的所有骨关键点的坐标完成骨关键点标注;
该装置还被配置为:在当判断出所述第一概率大于预设阈值时,确定在所述第一图像中检测到用户手掌之后,读取多帧图像或视频流中检测到用户手掌的一帧图像所对应的深度图像;根据第一图像中包含的手掌部所有骨关键点坐标确定出用户指尖区域骨关键节点的坐标;根据用户指尖区域骨关键节点的坐标和所述深度图像,确定指尖区域骨关键点的深度信息;根据指尖区域骨关键点的深度信息和预设交互表面的深度信息,判断用户是否进行了触控交互表面的操作;
其中,根据指尖区域骨关键点的深度信息和预设交互表面的深度信息,判断用户是否进行了触控交互表面的操作包括:
根据深度图像确定所述交互表面的第一深度值;
根据深度图像和指尖区域骨关键节点坐标,确定指尖区域骨关键点的第二深度值;
当所述第一深度值与所述第二深度值之间的差值小于预设阈值时,确定用户进行了触控交互表面的操作;
所述装置还被配置为:定位所述用户手部的指尖节点在所述交互表面上的第一位置;划定包含所述第一位置的第一局部区域;根据所述深度图像信息确定所述第一局部区域中每个像素点的深度均值;根据所述每个像素点的深度均值确定所述第一局部区域的深度均值,并作为所述第一深度值。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-11任一项所述的方法。
14.一种计算设备,包括处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-11任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022102028909 | 2022-03-03 | ||
CN202210202890 | 2022-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114581535A CN114581535A (zh) | 2022-06-03 |
CN114581535B true CN114581535B (zh) | 2023-04-18 |
Family
ID=81776896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210294866.2A Active CN114581535B (zh) | 2022-03-03 | 2022-03-24 | 图像中用户骨关键点标注方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114581535B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117372425B (zh) * | 2023-12-05 | 2024-03-19 | 山东省工业技术研究院 | 一种头颅侧位片的关键点检测方法 |
CN118170258B (zh) * | 2024-05-13 | 2024-08-06 | 湖北星纪魅族集团有限公司 | 点击操作方法及装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673161A (zh) * | 2009-10-15 | 2010-03-17 | 复旦大学 | 一种可视可操作无实体的触摸屏系统 |
WO2015102658A1 (en) * | 2014-01-03 | 2015-07-09 | Intel Corporation | Systems and techniques for user interface control |
CN107515714A (zh) * | 2017-07-27 | 2017-12-26 | 歌尔股份有限公司 | 一种手指触控识别方法、装置和触控投影设备 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677240B (zh) * | 2012-09-24 | 2017-08-25 | 株式会社理光 | 虚拟触摸交互方法和虚拟触摸交互设备 |
US20140354602A1 (en) * | 2013-04-12 | 2014-12-04 | Impression.Pi, Inc. | Interactive input system and method |
DE102014106960A1 (de) * | 2014-05-16 | 2015-11-19 | Faindu Gmbh | Verfahren zur Darstellung einer virtuellen Interaktion auf zumindest einem Bildschirm und Eingabevorrichtung, System und Verfahren für eine virtuelle Anwendung mittels einer Recheneinheit |
US20170185156A1 (en) * | 2015-12-29 | 2017-06-29 | Microsoft Technology Licensing, Llc | Hand tracking for user interface operation at-a-distance |
CN108427942A (zh) * | 2018-04-22 | 2018-08-21 | 广州麦仑信息科技有限公司 | 一种基于深度学习的手掌检测与关键点定位方法 |
CN109345553B (zh) * | 2018-08-31 | 2020-11-06 | 厦门熵基科技有限公司 | 一种手掌及其关键点检测方法、装置和终端设备 |
CN110443154B (zh) * | 2019-07-15 | 2022-06-03 | 北京达佳互联信息技术有限公司 | 关键点的三维坐标定位方法、装置、电子设备和存储介质 |
CN110852311A (zh) * | 2020-01-14 | 2020-02-28 | 长沙小钴科技有限公司 | 一种三维人手关键点定位方法及装置 |
CN113515987B (zh) * | 2020-07-09 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 掌纹识别方法、装置、计算机设备及存储介质 |
CN112132099A (zh) * | 2020-09-30 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 身份识别方法、掌纹关键点检测模型训练方法和装置 |
CN112183424A (zh) * | 2020-10-12 | 2021-01-05 | 北京华严互娱科技有限公司 | 一种基于视频的实时手部追踪方法和系统 |
CN112509117A (zh) * | 2020-11-30 | 2021-03-16 | 清华大学 | 手部三维模型的重建方法、装置、电子设备及存储介质 |
CN112613384B (zh) * | 2020-12-18 | 2023-09-19 | 安徽鸿程光电有限公司 | 手势识别方法、手势识别装置及交互显示设备的控制方法 |
CN112861783A (zh) * | 2021-03-08 | 2021-05-28 | 北京华捷艾米科技有限公司 | 一种手部检测方法及系统 |
CN113486765B (zh) * | 2021-06-30 | 2023-06-16 | 上海商汤临港智能科技有限公司 | 手势交互方法及装置、电子设备和存储介质 |
CN113589928B (zh) * | 2021-07-27 | 2023-11-24 | 东莞理工学院 | 一种面向智能电视的手势识别方法 |
-
2022
- 2022-03-24 CN CN202210294866.2A patent/CN114581535B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673161A (zh) * | 2009-10-15 | 2010-03-17 | 复旦大学 | 一种可视可操作无实体的触摸屏系统 |
WO2015102658A1 (en) * | 2014-01-03 | 2015-07-09 | Intel Corporation | Systems and techniques for user interface control |
CN107515714A (zh) * | 2017-07-27 | 2017-12-26 | 歌尔股份有限公司 | 一种手指触控识别方法、装置和触控投影设备 |
Non-Patent Citations (1)
Title |
---|
Massimiliano Solazzi 等.Design of a Novel Finger Haptic Interface for Contact and Orientation Display.《IEEE》.2010,1-4. * |
Also Published As
Publication number | Publication date |
---|---|
CN114581535A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110991319B (zh) | 手部关键点检测方法、手势识别方法及相关装置 | |
US11783496B2 (en) | Scalable real-time hand tracking | |
Jadooki et al. | Fused features mining for depth-based hand gesture recognition to classify blind human communication | |
CN114581535B (zh) | 图像中用户骨关键点标注方法、装置、存储介质及设备 | |
CN114138121B (zh) | 用户手势识别方法、装置、系统、存储介质及计算设备 | |
Lahiani et al. | Real time hand gesture recognition system for android devices | |
CN108595008B (zh) | 基于眼动控制的人机交互方法 | |
CN110569817B (zh) | 基于视觉实现手势识别的系统和方法 | |
CN107885317A (zh) | 一种基于手势的交互方法及装置 | |
CN106547356B (zh) | 智能交互方法和装置 | |
CN108304839B (zh) | 一种图像数据处理方法以及装置 | |
US20220351405A1 (en) | Pose determination method and device and non-transitory storage medium | |
CN111062263A (zh) | 手部姿态估计的方法、设备、计算机设备和存储介质 | |
CN107272899B (zh) | 一种基于动态手势的vr交互方法、装置及电子设备 | |
CN106778670A (zh) | 手势识别装置及识别方法 | |
CN111401318A (zh) | 动作识别方法及装置 | |
CN116766213B (zh) | 一种基于图像处理的仿生手控制方法、系统和设备 | |
CN115061577B (zh) | 手部投影交互方法、系统及存储介质 | |
CN112949437A (zh) | 一种手势识别方法、手势识别装置及智能设备 | |
CN112488059B (zh) | 一种基于深度学习模型级联的空间手势控制方法 | |
CN110837766B (zh) | 手势识别方法、手势处理方法及装置 | |
CN113282164A (zh) | 一种处理方法和装置 | |
EP3309713B1 (en) | Method and device for interacting with virtual objects | |
CN115993927A (zh) | 基于手势识别的屏幕显示方法、装置、设备及存储介质 | |
KR20190132885A (ko) | 영상으로부터 손을 검출하는 장치, 방법 및 컴퓨터 프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |