姿势识别方法与装置、设备与流程

文档序号:32222957发布日期:2022-11-16 12:00阅读:196来源:国知局
姿势识别方法与装置、设备与流程

1.本技术涉及计算机视觉领域,具体涉及一种姿势识别方法与装置、设备。


背景技术:

2.在计算机视觉领域中,物体的姿势可以是指它相对于相机的相对方向、位置和角度等。其中,姿势识别(posture recognition)可以理解为识别物体的运动姿态或者预测物体的运动意图等。
3.在日常生活中,用户使用某一设备(如手机)时的姿势可能存在异常,例如用户在走路过程中长时间低头使用手机、用户长时间躺卧使用手机、用户在开车过程中频繁看手机等,而这些异常的姿势可能对用户的健康、安全等带来一定风险。
4.然而,目前在对用户使用设备时的姿势进行识别的研究中,往往利用单个设备所采集的数据进行姿势识别,但这些数据因数据来源的单一性而出现识别的准确性较低等问题。


技术实现要素:

5.本技术实施例提供了一种姿势识别方法与装置、设备,以期望解决姿势识别的准确性较低等问题。
6.第一方面,为本技术的一种姿势识别方法,应用于第一设备,包括
7.获取第一指令,所述第一指令用于控制所述第一设备采集图像帧以及控制所述第一设备向至少一个第二设备发送第二指令,所述第二指示用于控制至少一个所述第二设备采集校正数据;
8.在所述图像帧上检测到用户的人脸情况下,根据所述图像帧确定所述用户在使用所述第一设备时的人脸角度,所述人脸角度表示所述用户的人脸在相机坐标系中相对于世界坐标系的角度;
9.在所述人脸角度属于异常的情况下,获取来自至少一个所述第二设备的所述校正数据;
10.根据所述校正数据校正所述人脸角度以得到校正结果;
11.根据所述校正结果识别所述用户在使用所述第一设备时的姿势。
12.可见,本技术实施例可以通过控制第一设备采集图像帧以及控制至少一个第二设备采集校正数据,从而实现利用多个设备所采集的数据进行姿势识别以提高准确性,避免数据来源的单一性。然后,通过图像帧来检测是否存在用户的人脸,并在检测到用户的人脸的情况下,根据图像帧确定用户在使用第一设备时的人脸角度,从而实现实时对用户使用第一设备时的人脸进行检测以得到人脸角度,进而通过人脸角度实现头部姿态评估,以便利用头部姿态评估来反映用户在使用第一设备时的姿势。最后,通过判断人脸角度是否异常,并在人脸角度属于异常的情况下,根据所获取的校正数据来校正人脸角度以得到校正结果,并根据校正结果来识别用户在使用第一设备时的姿态,从而通过校正来实现提高姿
态识别的准确性的可能性。
13.第二方面,为本技术的一种姿势识别装置,包括:
14.获取单元,用于获取第一指令,所述第一指令用于控制所述姿势识别装置采集图像帧以及控制所述姿势识别装置向至少一个第二设备发送第二指令,所述第二指示用于控制至少一个所述第二设备采集校正数据;
15.确定单元,用于在所述图像帧上检测到用户的人脸情况下,根据所述图像帧确定所述用户在使用所述第一设备时的人脸角度,所述人脸角度表示所述用户的人脸在相机坐标系中相对于世界坐标系的角度;
16.所述获取单元,还用于在所述人脸角度属于异常的情况下,获取来自至少一个所述第二设备的所述校正数据;
17.校正单元,用于根据所述校正数据校正所述人脸角度以得到校正结果;
18.识别单元,用于根据所述校正结果识别所述用户使用所述姿势识别装置时的姿势。
19.第三方面,为本技术的一种设备,所述设备为第一设备,包括处理器、存储器及存储在所述存储器上的计算机程序或指令,所述处理器执行所述计算机程序或指令以实现上述第一方面中所设计的方法中的步骤。
20.第四方面,为本技术的一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序或指令,所述计算机程序或指令被处理器执行时以实现上述第一方面中所设计的方法中的步骤。
21.第五方面,为本技术的一种计算机程序产品,包括计算机程序或指令,其中,所述计算机程序或指令被处理器执行时实现上述第一方面中所设计的方法中的步骤。
22.第二方面至第五方面的技术方案所带来的有益效果可以参见第一方面的技术方案所带来的技术效果,此处不再赘述。
附图说明
23.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
24.图1是本技术实施例的一种坐标转换的结构示意图;
25.图2是本技术实施例的一种姿势识别方法的流程示意图;
26.图3是本技术实施例的一种姿势识别方法的整体流程图;
27.图4是本技术实施例的一种姿势识别装置的功能单元组成框图;
28.图5是本技术实施例的一种设备的结构示意图。
具体实施方式
29.为了本技术领域人员更好理解本技术的技术方案,下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的部分实施例,而并非全部的实施例。基于本技术实施例的描述,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所保护的范围。
30.应理解,本技术实施例中涉及的术语“第一”、“第二”等是用于区别不同对象,而不
是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、软件、产品或设备没有限定于已列出的步骤或单元,而是还包括没有列出的步骤或单元,或还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
31.本技术实施例中涉及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
32.本技术实施例中的“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示如下三种情况:单独存在a;同时存在a和b;单独存在b。其中,a、b可以是单数或者复数。
33.本技术实施例中,符号“/”可以表示前后关联对象是一种“或”的关系。另外,符号“/”也可以表示除号,即执行除法运算。例如,a/b,可以表示a除以b。
34.本技术实施例中,符号“*”或“·”可以表示乘号,即执行乘法运算。例如,a*b或a
·
b,可以表示a乘以b。
35.本技术实施例中的“至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合,是指一个或多个,多个指的是两个或两个以上。例如,a、b或c中的至少一项(个),可以表示如下七种情况:a,b,c,a和b,a和c,b和c,a、b和c。其中,a、b、c中的每一个可以是元素,也可以是包含一个或多个元素的集合。
36.本技术实施例中的“等于”可以与大于连用,适用于大于时所采用的技术方案,也可以与小于连用,适用于与小于时所采用的技术方案。当等于与大于连用时,不与小于连用;当等于与小于连用时,不与大于连用。
37.在日常生活中,用户使用某一设备(如手机)时的姿势可能存在异常,而这些异常的姿势可能对用户的健康、安全等带来一定风险。然而,目前在对用户使用设备时的姿势进行识别的研究中,往往利用单个设备所采集的数据进行姿势识别,但这些数据因数据来源的单一性而出现识别的准确性较低等问题。
38.基于此,本技术实施例可以通过控制第一设备采集图像帧以及控制至少一个第二设备采集校正数据,从而实现利用多个设备所采集的数据进行姿势识别,避免数据来源的单一性。然后,根据图像帧确定用户在使用第一设备时的人脸角度,并根据第二设备所采集的校正数据来对人脸角度进行校正以实现提高姿态识别的准确性。
39.下面对本技术实施例所涉及的技术方案、有益效果以及相关概念等进行具体说明。
40.一、设备
41.1、描述
42.本技术实施例所述的设备可以为具有收发的通信功能的实体/单元/模块/装置等。
43.在一些可能的实现中,设备可以是电子设备、手持设备、车载设备、可穿戴设备、增强现实(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、物联网(internet of things,iot)设备、投影设备、投影仪或者连接到无线调制解调器的其他设
备,也可以是用户设备(user equipment,ue)、终端设备(terminal device)、终端、移动终端、手机(smart phone)、智慧屏、智慧电视、智能手表、笔记本电脑、智能音响、摄像头、游戏手柄、麦克风、站点(station,sta)、接入点(access point,ap)、移动台(mobile station,ms)、个人数字助理(personal digital assistant,pda)、个人计算机(personal computer,pc)或者中继设备等。
44.例如,以设备是可穿戴设备为例,该可穿戴设备也可以称为智能穿戴式设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发的智能设备的总称,例如智能眼镜、智能手套、智能手表、各类具体征监测的智能手环、智能首饰等。该可穿戴设备即可以直接穿在身上,也可以整合到用户的服饰或配件上的一种便携式设备。该可穿戴设备不仅可以搭载专用的硬件架构,还可以搭载专用的软件架构进行数据交互、云端交互等。该穿戴式智能设备可以不依赖其他智能设备以实现完整或者部分的功能。
45.在一些可能的实现中,本技术实施例所述的设备可以包括处理器、传感组件、显示组件、摄像组件和输入驱动器等中的至少之一项。下面分别进行示例性说明。
46.2、处理器
47.在一些可能的实现中,处理器可以用于运行或加操作系统,该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统。例如,linux操作系统、unix操作系统、android操作系统、ios操作系统、windows操作系统、zephyr操作系统、实时操作系统(real time operating system,rtos)、dos操作系统、mac操作系统、threadx操作系统、嵌入式操作系统、nucleusplus操作系统等。
48.在一些可能的实现中,处理器可以看作一个完整的系统级芯片(system on chip,soc)。
49.在一些可能的实现中,处理器可以包括一个或多个处理单元。例如,处理单元可以包括中央处理器(central processing unit,cpu)、应用处理器(application processor,ap)、微控制单元(microcontroller unit,mcu)、单片微型计算机(single chip microcomputer,scm)、单片机、图形处理器(graphics processing unit,gpu)、图像信号处理器(image signal processor,isp)、控制器、数字信号处理器(digital signal processor,dsp)、现场可编程逻辑门阵列(field programmable gate array,fpga)、专用集成电路(application-specific integrated circuit,asic)、基带处理器、神经网络处理器(neural-network processing unit,npu)等中的至少之一。其中,不同的处理单元可以是各自分离,也可以集成在一起。
50.在一些可能的实现中,一个处理单元可以是单核或者多核。
51.在一些可能的实现中,一个处理单元可以运行或加载一个多核子系统。其中,多核子系统,可以是具有多核处理能力的操作系统。
52.在一些可能的实现中,处理器中还可以包含存储器,用于存储计算机程序或指令。
53.例如,处理器可以调用存储器中存储的程序以运行操作系统。
54.又例如,处理器中的存储器可以保存或缓存该处理器刚用过或循环使用的指令。若该处理器需要再次使用该指令或数据,则可以从该存储器中直接调用,从而避免重复存取,减少处理器的等待时间以提高系统效率。
55.又例如,处理器中的存储器还可以保存或缓存数据,并该数据同步或传输给其他
处理器执行。其中,处理器中的存储器可以为高速缓冲存储器。
56.在一些可能的实现中,处理器可以包括一个或多个通信接口。其中,该通信接口可以包括串行外设接口(serial peripheral interface,spi)、集成电路(inter-integrated circuit,i2c)接口、集成电路内置音频(inter-integrated circuit sound,i2s)接口、脉冲编码调制(pulse code modulation,pcm)接口、通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口、移动产业处理器接口(mobile industry processor interface,mipi)、通用输入输出(general-purpose input/output,gpio)接口、用户标识模块(subscriber identity module,sim)接口、通用串行总线(universal serial bus,usb)接口等中的至少之一。
57.3、传感组件
58.在一些可能的实现中,传感组件可以为传感器。
59.例如,传感组件可以包括重力传感器、陀螺仪传感器、磁力计传感器、加速度传感器、惯性传感器(如惯性运动单元(inertial motion unit,imu))、压力传感器、气压传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器、超带宽(uwb)传感器、近场通信(nfc)传感器、激光传感器和/或可见光传感器等中的至少之一项。
60.4、显示组件
61.在一些可能的实现中,显示组件可以用于显示用户界面、用户界面元素和特征、用户可选择控件、各种可显示对象等中的至少之一项。
62.在一些可能的实现中,显示组件可以为显示屏、触摸屏等中的至少之一项。
63.例如,显示组件可以包括显示面板。其中,显示面板可以采用液晶显示屏(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,amoled)、柔性发光二极管(flex light-emitting diode,fled)、量子点发光二极管(quantum dot light emitting diodes,qled)等。
64.需要说明的是,设备可以通过gpu、显示组件以及处理器等实现显示功能。其中,gpu可以用于执行数学和几何计算,并进行图形渲染。另外,gpu可以为图像处理的微处理器,并连接显示组件和处理器。处理器可以包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
65.5、摄像组件
66.在一些可能的实现中,摄像组件可以为摄像头或者摄像模组,其用于捕获(拍摄/扫描/采集等)静态/动态的图像或视频。
67.在一些可能的实现中,摄像组件可以包括镜头、感光元件等,而感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。
68.因此,物体对象可以通过镜头生成光学图像投射到感光元件。感光元件可以把该光学图像中的光信号转换成电信号,再将该电信号传递给isp转换成数字图像信号。isp将该数字图像信号输出到dsp。dsp将该数字图像信号转换成标准的rgb、yuv等格式的图像信号。
69.在一些可能的实现中,摄像组件可以为前置摄像头。
70.需要说明的是,设备可以通过isp、dsp、摄像组件、视频编解码器、gpu、显示组件以及处理器等实现捕获(拍摄/扫描等)图像等功能。
71.在一些可能的实现中,isp可以用于处理摄像组件反馈的数据。例如,在拍照时,先打开快门,再由光线通过摄像组件的镜头传递到摄像组件的感光元件上,实现光信号转换为电信号,最终通过感光元件将该电信号传递给isp处理以转化为数字图像等。
72.在一些可能的实现中,isp还可以对图像的噪点、亮度、肤色进行算法优化。
73.在一些可能的实现中,isp还可以对拍摄场景的曝光、色温等参数进行优化。
74.在一些可能的实现中,isp和/或dsp可以设置在摄像组件中。
75.6、输入驱动器
76.在一些可能的实现中,输入驱动器可以用于处理来自用户操作设备的各种输入。
77.例如,当显示屏为触摸屏时,输入驱动器可操作以检测和处理各种触摸输入和/或触摸事件。其中,触摸屏上的触摸输入或触摸事件以同时指示感兴趣的区域以及开始向物体对象(如证件)进行扫描。物体对象可在触摸屏上被显示为要扫描的图像的预览,并且在触摸屏上的特定位置处的触摸事件指示应该扫描的图像。
78.7、设备的软硬件结构的示例说明
79.示例性的,设备的软硬件结构可以包括硬件层、运行在硬件层之上的操作系统层以及运行在操作系统层上的应用层等。
80.在一些可能的实现中,该硬件层可以包括处理器、内存管理单元(memory management unit,mmu)和内存(也称为存储器)等硬件。
81.在一些可能的实现中,该内存可以用于存储软体程序/计算机程序/计算机指令/数据等,可以包括存储程序区和存储数据区。其中,存储程序区可以用于存储操作系统或者至少一个功能所需的软体程序/计算机程序/计算机指令等,并且该至少一个功能所需的软件程序/计算机程序/计算机指令可以用于执行本技术实施例所涉及的技术方案;存储数据区可以用于存储本技术实施例所涉及的数据等。
82.需要说明的是,本技术实施例未对姿势识别方法的执行主体的具体结构进行特别限定,只要能够通过运行记录有本技术实施例的提供的方法的计算机程序或指令,以及根据本技术实施例提供的方法进行处理即可。例如,本技术实施例提供的方法的执行主体可以是第一设备,也可以是第一设备中能够调用计算机程序或指令并执行的处理器/装置/模块/单元等,对此不作具体限制。
83.二、姿势识别
84.在本技术实施例中,通过控制第一设备采集图像帧以及控制至少一个第二设备采集校正数据,从而实现利用多个设备所采集的数据进行姿势识别以提高准确性,避免数据来源的单一性。然后,通过图像帧来检测是否存在用户的人脸,并在检测到用户的人脸的情况下,根据图像帧确定用户在使用第一设备时的人脸角度,实现实时对用户使用第一设备时的人脸进行检测以得到人脸角度,从而通过人脸角度实现头部姿态评估,以便利用头部姿态评估来反映用户在使用第一设备时的姿势。最后,通过判断人脸角度是否异常,并在人脸角度属于异常的情况下,根据所获取的校正数据来校正人脸角度以得到校正结果,并根据校正结果来识别用户在使用第一设备时的姿态,从而通过校正来实现提高姿态识别的准
确性的可能性。
85.下面对本技术实施例的姿势识别方法所涉及的相关概念、所能达到的有益效果等进行具体说明。
86.1、第一设备、第二设备
87.1)描述
88.需要说明的是,结合上述“一、设备”中的内容,本技术实施例的第一设备和第二设备均为一种设备。其中,第一设备与第二设备之间可以为互不相同的设备,如第一设备为手机,而第二设备为智能手表。
89.另外,在本技术实施例中,第一设备可以存在一个,而第二设备可以存在一个或多个,并且多个第二设备之间可以为相同或者不同的类型。以两个不同类型的第二设备为例,一个第二设备为智能手表,另一个第二设备为智能手套。为了便于描述,下面以一个第二设备为例进行说明,而多个第二设备可以同理可知。
90.2)数据采集过程
91.在一些可能的实现中,第一设备和第二设备可以各自针对用户的不同部位的运动采集相应的数据。
92.例如,第一设备可以通过上述“5、摄像组件”中所述的摄像组件针对用户的头部的运动采集图像帧,而第二设备可以通过上述“3、传感组件”中所述的传感组件针对除用户的头部之外的其他部位的运动采集数据。
93.以第一设备为手机,第二设备为智能手表为例,用户可以手持该手机,并戴着该智能手表。这样,该手机可以通过前置摄像头针对用户的头部的运动采集图像帧,而该智能手表可以通过传感器针对用户的手部的运动采集传感器数据。
94.当然,由于用户的头部存在运动,因此手机所采集的图像帧中不一定存在用户的人脸。
95.可见,本技术实施例可以通过第一设备和至少一个第二设备来针对用户的不同部位来采集数据,使得这些数据可以从不同的维度来反映当前用户的运动姿态,避免数据来源的单一性,以便提高姿势识别的准确性。
96.3)通信过程
97.在一些可能的实现中,第一设备与第二设备可以通过短距离通信(如蓝牙、wifi、uwb等)技术进行相互通信。
98.在一些可能的实现中,第一设备与第二设备可以在应用层上安装相同的应用程序,以便通过该应用程序实现在第一设备与第二设备之间传输应用层的数据。
99.2、第一指令和第二指令
100.1)描述
101.需要说明的是,第一指令,可以用于控制第一设备采集图像帧以及控制第一设备向至少一个第二设备发送第二指令,第二指示可以用于控制至少一个第二设备采集校正数据。
102.例如,第一指示,可以用于控制第一设备的摄像模组针对用户的头部的运动采集图像帧以及控制第一设备向至少一个第二设备发送第二指令,第二指令可以用于控制至少一个第二设备的传感器针对除用户的头部之外的其他部位的运动采集传感器数据。
103.当然,为了便于区分和描述,第一指令和第二指令也可以采用其他术语描述,对此不作具体限制。
104.2)如何获取第一指令
105.在本技术实施例中,第一设备的应用层可以安装某一应用程序,该应用程序可以用于进行姿势识别。当存在用户启动该应用程序中的姿态识别功能的事件时,该事件会触发第一设备获取第一指令。
106.3)如何发送第二指令
107.在本技术实施例中,第一设备可以通过短距离通信将第二指令发送给至少一个第二设备。
108.3、图像帧
109.1)描述
110.需要说明的是,本技术实施例可以通过第一设备来采集图像帧。
111.具体实现时,通过第一设备中的摄像组件针对用户的头部的运动采集图像帧。
112.2)人脸检测
113.由于用户的头部存在运动,因此第一设备所采集的图像帧中不一定存在用户的人脸。对此,本技术实施例可以利用人脸检测算法来对图像帧来检测以判断是否存在用户的人脸。
114.需要说明的是,本技术实施例的人脸检测算法可以采用目前所公开的方式,对此不作具体限制和赘述。
115.3)未检测到用户的人脸
116.在一些可能的实现中,在未检测到用户的人脸情况下,本技术实施例可以删除图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集。
117.需要说明的是,由于本技术实施例通过头部姿态识别实现用户在使用第一设备时的姿态识别,因此需要实时检查用户的人脸。
118.然而,当在当前的图像帧中未检测到用户的人脸时,需要重新进行人脸检测,直到检测的用户的人脸。此时,由于未检测到人脸,因此需要清空已经采集到的相关数据,再重新开始对下一帧图像进行处理以及通知第二设备重新采集新的数据,以便进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
119.4)检测到用户的人脸
120.需要说明的是,在检测到用户的人脸的情况下,本技术实施例可以根据图像帧确定用户在使用第一设备时的人脸角度。其中,人脸角度可以表示用户的人脸在相机坐标系中相对于世界坐标系的角度。
121.这样,实现实时对用户使用第一设备时的人脸进行检测以得到人脸角度,从而通过人脸角度实现头部姿态评估(head pose estimation),以便利用头部姿态评估来反映用户在使用第一设备时的姿势。
122.需要说明的是,头部姿态评估可以是通过图像帧中的人脸图像来获得用户的头部姿态的朝向,跟航空领域中的飞机飞行有点类似,主要检测的参数有三个:俯仰角(pitch)、偏航角(yaw)、横滚角(roll)。其中,俯仰角可以理解为抬头,偏航角可以理解为摇头,横滚角可以理解为转头。
123.4、校正数据
124.1)描述
125.需要说明的是,校正数据可以用于表征用户的运动或姿态变化情况以及校正人脸角度,以便提高姿势识别的准确性。
126.在一些可能的实现中,校正数据,可以是在第二设备针对除所述用户的头部之外的其他部位的运行所采集的传感器数据。
127.2)传感器数据
128.在一些可能的实现中,该传感器数据可以包括以下至少之一项:重力数据(由重力传感器采集)、加速度数据(由加速度传感器采集)、陀螺仪数据(由陀螺仪传感器采集)、惯性数据(由惯性传感器采集)等。
129.需要说明的是,对于重力数据,由于用户可以佩戴第二设备,因此当用户在运动或采用不同的姿势时第二设备的重心、重力加速度等会发生变化。这样,第二设备中的重力传感器可以采集重力数据来表征用户的重心和重力加速度变化情况。
130.对于加速度数据,由于用户可以佩戴第二设备,因此当用户在运动或采用不同的姿势时第二设备的加速度等会发生变化。这样,第二设备中的加速度传感器可以采集加速度数据来表征用户的加速度变化情况。
131.对于陀螺仪数据,由于用户可以佩戴第二设备,因此当用户在运动或采用不同的姿势时第二设备的旋转角速度等会发生变化。这样,第二设备中的陀螺仪传感器可以采集陀螺仪数据来表征用户的旋转角速度变化情况。
132.对于惯性数据,由于用户可以佩戴第二设备,因此当用户在运动或采用不同的姿势时第二设备的加速度和旋转角速度等会发生变化。这样,第二设备中的惯性传感器可以采集惯性数据来表征用户的加速度和旋转角速度变化情况。
133.5、如何判断人脸角度是否异常
134.需要说明的是,本技术实施例可以引入预设正常人脸角度范围。这样,若人脸角度在该预设正常人脸角度范围内,则说明该人脸角度属于正常,如此可以大概判断用户在使用第一设备时的姿态属于正常;
135.若人脸角度在该预设正常人脸角度范围之外,则说明该人脸角度属于异常,如此可以大概判断用户在使用第一设备时的姿态可能属于异常。
136.本技术实施例通过判断人脸角度是否异常来决策下一步是否需要再根据校正数据来校准人脸角度,以便更加准确的判断用户的姿态是否异常。
137.在一些可能的实现中,在人脸角度属于异常的情况下,本技术实施例可以获取校正数据,并根据该校正数据校正人脸角度以得到校正结果。
138.需要说明的是,本技术实施例的第一设备可以向第二设备发送指令,该指令可以用于通知第二设备向第一设备发送校正数据。这样,第二设备在接收到该指令之后,可以通过短距离通信向第一设备发送该校正数据。
139.可见,由于人脸角度属于异常,因此可以大概判断用户在使用第一设备时的姿态可能属于异常。这样,通过对人脸角度进行校正,使得校正结果能更加准确的判断出用户的姿态是否异常。
140.在一些可能的实现中,在人脸角度属于正常的情况下,删除图像帧,并获取该图像
帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
141.可见,由于人脸角度属于正常,因此可以大概判断用户当前在使用第一设备时的姿势属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
142.6、如何根据图像帧确定人脸角度
143.需要说明的是,本技术实施例可以提取该图像帧中的二维(2d)人脸关键点坐标,以及根据该二维人脸关键点坐标进行回归(regression)计算以得到人脸角度。
144.1)二维人脸关键点坐标
145.需要说明的是,本技术实施例可以利用人脸关键点检测算法从图像帧的人脸图像中提取出二维人脸关键点坐标。
146.人脸关键点检测,也可以称为人脸关键点定位或者人脸对齐,是指在人脸图像中定位出人脸面部的多个关键点,
147.其中,人脸关键点可以有6个、32个、64个、128个或者256个等,如鼻尖、下巴、左眼左眼角、右眼右眼角、左嘴角和右嘴角等。
148.本技术实施例的人脸关键点检测算法可以采用目前所公开的方式,对此不作具体限制和赘述。
149.2)回归计算
150.在本技术实施例中,回归计算是一种用于确定两种或两种以上变数之间的关联/映射/对应关系的方法。因此,本技术实施例可以通过回归计算来建立二维人脸关键点坐标与人脸角度之间的关联关系,以便根据二维人脸关键点坐标和该关联关系得到人脸角度。
151.3)实现方式
152.由于回归计算涉及多种方式,因此下面本技术实施例将采用如下多种方式进行说明。
153.方式1:
154.①
描述
155.在“方式1”中,二维人脸关键点坐标看作是一个在二维上的坐标,而为了准确表示三维空间中的坐标,需要从二维转换为三维。对此,本技术实施例可以引入预设三维(3d)人脸模型,该预设三维人脸模型可以包括多个三维人脸关键点坐标。这样,通过该预设三维人脸模型来充当真实脸的空间位置。另外,本技术实施例可以通过三维形变模型(3d morphable model,3dmm)对不同人拟合出对应的三维人脸模型。
156.具体实现时,本技术实施例可以获取二维人脸关键点坐标对应于预设三维人脸模型中的三维人脸关键点坐标(为了便于区分和描述,该三维人脸关键点坐标可以称为“第一三维人脸关键点坐标”);确定该二维人脸关键点坐标与该第一三维人脸关键点坐标之间的旋转关系;根据该旋转关系到欧拉角的转换关系确定人脸角度。
157.需要说明的是,二维人脸关键点坐标对应于第一三维人脸关键点坐标,可以理解为,若二维人脸关键点坐标为图像帧中鼻尖、下巴等的二维坐标,则第一三维人脸关键点坐标为预设三维人脸模型中鼻尖、下巴等的三维坐标。
158.可见,在“方式1”中,回归计算可以是:将二维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再根据该二维人脸关键点坐标与该
第一三维人脸关键点坐标之间的旋转关系,最后根据该旋转关系到欧拉角的转换关系确定人脸角度,从而实现根据二维人脸关键点坐标进行回归计算以得到人脸角度。
159.②
如何确定该旋转关系
160.在一些可能的实现中,本技术实施例可以根据相机内部参数、相机畸变参数、柱面投影的坐标变换关系中至少之一项确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标,以及确定目标人脸关键点坐标到第一三维人脸关键点坐标之间的旋转关系。
161.需要说明的是,由于二维人脸关键点坐标是在图像坐标系中的坐标,而为了计算真实空间中的坐标(即世界坐标系中的坐标),因此本技术可以根据相机内部参数将图像坐标系中的坐标转换到相机坐标系中的坐标。
162.若相机成像过程中的存在畸变(distortion),则本技术可以根据相机内部参数和相机畸变参数将图像坐标系中的坐标转换到相机坐标系中的坐标。这样由于在坐标的转移过程中考虑了相机畸变参数,从而有利于避免因畸变而产生的误差。
163.若相机成像过程中的存在畸变,而畸变会导致图像帧中的人脸图像产生扭曲线条,则本技术可以根据柱面投影的坐标变换关系来保持竖直方向的线条不发生弯曲变形,从而可以恢复一些因畸变所导致的图像扭曲。
164.下面对其涉及的相关概念进行说明。
165.a.相机成像
166.需要说明的是,在图像测量过程和机器视觉应用中,为确定真实空间的物体上某点的三维坐标与其在图像中对应点之间的相互关系,需要建立相机成像的几何模型,而相关的几何模型参数就是相机参数(如相机内部参、相机外部参数、相机畸变参数)。
167.在大多数条件下,相机参数需要通过实验与计算才能得到,而求解相机参数的过程就称之为相机标定(或摄像机标定)。其中,相机成像过程中存在一定的畸变,而畸变是对直线投影的一种偏移,而畸变可能是由摄像机镜头导致的。
168.总体上,相机成像可以分为刚体变换(从世界坐标系到相机坐标系)、透视投影(从相机坐标系到图像坐标系)、畸变校正和数字化图像等。具体如下:
169.刚体变换中的坐标系满足如下坐标变换:
170.(xc,yc,zc)=q(xw,yw,zw);
171.其中,矩阵q可以由矩阵r和向量t确定;矩阵r可以表示旋转矩阵;向量t可以表示平移向量;坐标(xc,yc,zc)可以表示相机坐标系中的坐标;坐标(xw,yw,zw)可以表示世界坐标系中的坐标。
172.可以理解的是,刚体变换只改变物体的空间位置(平移)和朝向(旋转),而不改变其形状。同时,旋转矩阵r和平移向量t也称之为相机外部参数。
173.也就是说,相机外部参数决定真实空间的物体上某点从世界坐标系转换到相机坐标系的变换,并描述了相机在世界坐标系中的位置和朝向。
174.b.相机内部参数
175.透视投影涉及从相机坐标系到图像坐标系的坐标转换。请参阅图1,图像坐标系包括图像像素坐标系(u00v坐标系)和图像物理坐标系(x01y坐标系)。图像像素坐标系以图像帧的左上角为原点(00),且以像素为单位。图像物理坐标系以图像帧的几何中心点(也称为
主点,01)为原点,且以毫米为单位。透视投影中的坐标系满足如下坐标变换:
176.(u,v,1)=(a/zc)(xc,yc,zc);
177.其中,坐标(u,v,1)可以表示图像像素坐标系中的坐标;矩阵a可以表示相机内部参数;矩阵a可以由dx、dy、f和坐标(u0,v0)确定;dx可以表示尺寸比例(毫米/像素);dy可以尺寸比例(毫米/像素);f可以表示相机焦距;坐标(u0,v0)可以表示主点的坐标。
178.c.相机畸变参数
179.理想的针孔成像确定的坐标变换关系均为线性的,而实际上,对于现实中使用的相机,由于镜头的镜片因光线产生不规则的折射而出现镜头畸变(lens distortion),即根据理想的针孔成像模型计算出来的像点坐标与实际坐标存在偏差。畸变的引入使得针孔成像模型中的几何变换关系变为非线性,增加了模型的复杂度,但更接近真实情形。其中,畸变导致的成像失真可分为径向失真和切向失真。
180.畸变类型可以分为径向畸变和切向畸变两类。其中,径向畸变的形成原因是镜头制造工艺不完美,导致镜头形状存在缺陷,且径向畸变包括枕形畸变和桶形畸变等。切向畸变包括薄透镜畸变和离心畸变等。薄透镜畸变的形成原因是透镜存在一定的细微倾斜;离心畸变的形成原因是镜头是由多个透镜组合而成的,而各个透镜的光轴不在同一条中心线上。在引入镜头的畸变后,像点从理想图像坐标系到真实图像坐标系的坐标变换关系满足如下:
181.x'=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2);
182.y'=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy;
183.r2=x2+y2;
184.其中,坐标(x,y)可以表示真实图像坐标系中的坐标(即畸变图像中的坐标);坐标(x',y')可以表示理想图像坐标系中的坐标;k1、k2和k3表示径向畸变参数;p1和p2表示切向畸变参数。同时,径向畸变参数和切向畸变参数可以统称相机畸变参数。
185.光线通过相机镜头后成像在感光阵列(ccd或cmos)上,再由感光阵列将光信号转化为电信号,最后形成数字化图像。
186.d.柱面投影的坐标变换关系
187.柱面投影,是将拍摄出的平面图像投影到以相机焦距为半径的圆柱面图像上的投影方式,其优点是可以保持竖直方向的线条不发生弯曲变形。同样,把图像帧通过柱面投影方式再次进行投影以得到柱面投影图像,而该柱面投影图像的两侧的拉伸变形可以实现一定程度的恢复,但是水平方向的长直线线条会产生一定程度的弯曲变形。
188.对于图像尺寸的高为h(h个像素)和宽为w(w个像素)的图像帧,该图像帧的图像坐标系上的坐标通过柱面投影的坐标变换关系可以表示为:
189.x'=f
·
arctan((x-w/2)/f)+f
·
arctan(w/(2f));
190.y'=(f
·
(y-h/2)/(sqr((x-w/2)2+f2))+h/2;
191.其中,坐标(x,y)可以表示该图像帧的图像坐标系上的坐标,该坐标以该图像帧的左上角为原点;坐标(x',y')表示坐标(x,y)通过柱面投射后的坐标;f表示相机焦距;h表示该图像帧的高;w表示该图像帧的宽;sqr表示算数平方根。或者,
192.x'=f
·
arctan(x/f);
193.y'=cos(arctan(x/f));
194.其中,坐标(x,y)表示该图像帧的图像坐标系上的坐标,该坐标以该图像帧的几何中心为原点。
195.③
如何根据相机内部参数确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标
196.需要说明的是,结合上述内容,本技术实施例可以根据如下公式来确定二维人脸关键点坐标转换到目标人脸关键点坐标:
197.(u,v,1)=(a/zc)(xc,yc,zc);
198.其中,坐标(u,v,1)可以表示二维人脸关键点坐标,坐标(xc,yc,zc)可以表示目标人脸关键点坐标。
199.④
如何根据相机内部参数和相机畸变参数确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标
200.需要说明的是,结合上述内容,本技术实施例可以根据如下公式来确定二维人脸关键点坐标转换到目标人脸关键点坐标:
201.x'=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2);
202.y'=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy;
203.r2=x2+y2;
204.(x',y',1)=(a/zc)(xc,yc,zc);
205.其中,坐标(x,y)可以表示二维人脸关键点坐标;坐标(xc,yc,zc)可以表示目标人脸关键点坐标。
206.⑤
如何根据相机内部参数和柱面投影的坐标变换关系确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标
207.需要说明的是,结合上述内容,本技术实施例可以根据如下公式来确定二维人脸关键点坐标转换到目标人脸关键点坐标:
208.x'=f
·
arctan(x/f);y'=cos(arctan(x/f));或者,x'=f
·
arctan((x-w/2)/f)+f
·
arctan(w/(2f));y'=(f
·
(y-h/2)/(sqr((x-w/2)2+f2))+h/2;
209.(x',y',1)=(a/zc)(xc,yc,zc);
210.其中,坐标(x,y)可以表示二维人脸关键点坐标;坐标(xc,yc,zc)可以表示目标人脸关键点坐标。
211.⑥
如何根据相机内部参数、相机畸变参数和柱面投影的坐标变换关系确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标
212.需要说明的是,结合上述内容,本技术实施例可以根据如下公式来确定二维人脸关键点坐标转换到目标人脸关键点坐标:
213.x'=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2);
214.y'=y(1+k1r2+k2r4+k3r6)+p1(r2+2y2)+2p2xy;
215.r2=x2+y2;
216.u=f
·
arctan(x'/f);v=cos(arctan(x'/f));或者,u=f
·
arctan((x-w/2)/f)+f
·
arctan(w/(2f));v=(f
·
(y-h/2)/(sqr((x-w/2)2+f2))+h/2;
217.(u,v,1)=(a/zc)(xc,yc,zc);
218.其中,坐标(x,y)可以表示二维人脸关键点坐标;坐标(xc,yc,zc)可以表示目标人
脸关键点坐标。
219.⑦
如何确定目标人脸关键点坐标到第一三维人脸关键点坐标之间的旋转关系
220.需要说明的是,结合上述内容,由于本技术实施例可以获得目标人脸关键点坐标和第一三维人脸关键点坐标。因此,本技术实施例可以通过如下公式确定旋转关系:
221.(xc,yc,zc)=q(xw,yw,zw);
222.其中,矩阵q可以由矩阵r和向量t确定;矩阵r可以表示旋转矩阵以作为该旋转关系;向量t可以表示平移向量;坐标(xc,yc,zc)可以表示目标人脸关键点坐标;坐标(xw,yw,zw)可以表示第一三维人脸关键点坐标。
223.⑧
旋转关系到欧拉角的转换关系
224.需要说明的是,结合上述描述,旋转关系为矩阵r,欧拉角为(α,β,γ);因此,矩阵r到(α,β,γ)的转换关系为:
[0225][0226][0227]
当然矩阵r也采用其他表示,对此不作具体限制。这样,根据该转换关系将(α,β,γ)作为人脸角度。
[0228]
方式2:
[0229]

描述
[0230]
在“方式2”中,本技术实施例可以直接将二维人脸关键点坐标从二维转换为三维以得到三维人脸关键点坐标(为了便于区分和描述,该三维人脸关键点坐标可以称为“第二三维人脸关键点坐标”)。这样就可以直接计算第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴的夹角来作为人脸角度。
[0231]
具体实现时,获取二维人脸关键点坐标对应于预设三维人脸模型中的第一三维人脸关键点坐标;将该二维人脸关键点坐标转换为世界坐标系中的第二三维人脸关键点坐标;将第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴的夹角作为人脸角度。
[0232]
需要说明的是,“方式2”可以直接将第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴(如x轴、y轴、z轴)的夹角(如(α,β,γ))作为人脸角度。
[0233]
可见,在“方式2”中,回归计算可以是:将二维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再直接将二维人脸关键点坐标从二维转换为三维以得到第二三维人脸关键点坐标,最后计算第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴的夹角,从而实现根据二维人脸关键点坐标进行回归计算以得到人脸角度。
[0234]

如何将该二维人脸关键点坐标转换为世界坐标系中的第二三维人脸关键点坐

[0235]
结合上述“a.相机成像”、“b.相机内部参数”、“c.相机畸变参数”和“d.柱面投影的坐标变换关系”,本技术实施例可以根据相机内部参数、相机畸变参数、柱面投影的坐标变换关系中的至少之一项,将该二维人脸关键点坐标从图像坐标系转换为相机坐标系中的三维坐标;根据相机外部参数将该三维坐标从相机坐标系转换为世界坐标系中的该第二三维人脸关键点坐标,对此不再赘述。
[0236]
方式3:
[0237]
在“方式3”中,本技术实施例的回归计算可以是:通过一些标记的数据来训练神经网络,使得训练好的神经网络具有二维人脸关键点与人脸角度之间的关系。这样,将二维人脸关键点输入已训练的神经网络以输出人脸角度,从而利用神经网络的高精度计算能力,提高从二维坐标到三维坐标的准确性。
[0238]
具体实现时,将二维人脸关键点输入已训练的神经网络以输出人脸角度。
[0239]
7、如何根据校正数据校正人脸角度
[0240]

描述
[0241]
需要说明的是,结合上述“4、校正数据”和“5、如何判断人脸角度是否异常”中的内容,本技术实施例可以根据校正数据对人脸角度进行校正,使得校正结果能更加准确的判断出用户的姿态是否异常。
[0242]
下面将采用如下方式对如何根据校正数据校正人脸角度进行说明。
[0243]

实现方式
[0244]
方式a:
[0245]
a.描述
[0246]
在“方式a”中,本技术实施例可以将人脸角度转换为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第一方向余弦矩阵”),以及将校正数据转换也为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第二方向余弦矩阵”),利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果,以及根据迭代结果到欧拉角的转换关系确定校正结果。
[0247]
可见,通过分别将人脸角度和校正数据转换为方向余弦矩阵,以便通过迭代计算来实现对人脸角度进行校正。
[0248]
b.方向余弦矩阵(direction cosine matrix,dcm)
[0249]
需要说明的是,方向余弦是指在解析几何里,一个向量的三个方向余弦分别是这向量与三个坐标轴之间的角度的余弦。两个向量之间的方向余弦指的是这两个向量之间的角度的余弦。
[0250]
方向余弦矩阵是由两组不同的标准正交基的基底向量之间的方向余弦所形成的矩阵。方向余弦矩阵可以用来表达一组标准正交基与另一组标准正交基之间的关系,也可以用来表达一个向量对于另一组标准正交基的方向余弦。
[0251]
c.迭代计算
[0252]
需要说明的是,利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算,可以理解为,将第一方向余弦矩阵与第二方向余弦矩阵进行内积。
[0253]
例如,将人脸角度转换为第一方向余弦矩阵,该第一方向余弦矩阵为:
[0254][0255]
当然,该第一方向余弦矩阵通过坐标轴顺序的不同可以有不同的表示,对此不作具体限制;
[0256]
若通过第二设备的传感器采集的采样值w=(w
α
,w
β
,w
γ
),采样时间间隔为δt,因此通过一阶积分算法,可以得到δt内的校正数据为:
[0257][0258]
因此,将校正数据转换为第二方向余弦矩阵,该第二方向余弦矩阵为:
[0259][0260]
当然,该第二方向余弦矩阵通过坐标轴顺序的不同可以有不同的表示,对此不作具体限制;
[0261]
然后,利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果为:
[0262][0263]
最后,根据迭代结果到欧拉角的转换关系确定校正结果(α





)为:
[0264][0265]
方式b:
[0266]
a.描述
[0267]
在“方式b”中,本技术实施例可以将人脸角度与校正数据进行加权融合以得到校正结果。
[0268]
可见,通过加权融合来实现对人脸角度进行校正。
[0269]
b.加权融合
[0270]
需要说明的是,若人脸角度为(α,β,γ),校正数据为(δα,δβ,δγ),则将人脸角度与校正数据进行加权融合以得到校正结果(α





)为:
[0271]
[0272]
其中,k1、k2和k3表示预设权重。
[0273]
8、如何根据校正结果识别用户在使用第一设备时的姿势
[0274]
需要说明的是,与上述“5、如何判断人脸角度是否异常”中的内容类似,本技术实施例可以引入预设正常姿势范围。
[0275]
这样,若校正结果在该预设正常姿势范围内,则说明该姿势属于正常;若校正结果在该预设正常姿势范围之外,则说明该姿态属于异常。
[0276]
9、姿势矫正提醒操作
[0277]
需要说明的是,本技术实施例可以通过用户在使用第一设备时的姿态是否异常来确定是否需要及时执行相应的提醒,使得用户通过该提醒能及时的矫正自己的姿势,避免这些异常的姿势可能对用户的健康、安全等带来一定风险。
[0278]
在一些可能的实现中,在该姿势属于异常的情况下,可以执行姿势矫正提醒操作以提醒用户矫正该姿势;其中,该姿势矫正提醒操作可以由第一设备执行或者至少一个第二设备中一个执行,该姿势矫正提醒操作可以采用以下方式之一:语音提示、振动提示、显示熄幕倒计时、熄灭屏幕。
[0279]
需要说明的是,当用户的姿势属于异常时,本技术实施例可以通过第一设备或者第二设备来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项,使得用户可以及时矫正自己的姿势。
[0280]
由于姿态是否异常是由第一设备执行,因此在姿势属于异常时时,若需要第二设备来执行相应的提醒,则需要第一设备向第二设备发送指令,以便第二设备根据该指令来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项。
[0281]
在一些可能的实现中,在该姿势属于正常的情况下,本技术实施例可以删除图像帧和校正数据,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0282]
可见,由于用户的姿势属于正常,因此可以大概判断用户当前在使用第一设备时的姿态属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0283]
在一些可能的实现中,在执行姿势矫正提醒操作以提醒用户矫正该姿势之后,本技术实施例可以删除图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0284]
10、一种姿势识别方法的示例性说明
[0285]
结合上述内容,下面对本技术实施例的一种姿势识别方法进行示例性说明。
[0286]
如图2所示,图2是本技术实施例的一种姿势识别方法的流程示意图,该方法可以应用于第一设备;该方法具体可以包括如下步骤:
[0287]
s210、获取第一指令,该第一指令用于控制第一设备采集图像帧以及控制第一设备向至少一个第二设备发送第二指令,该第二指示用于控制至少一个第二设备采集校正数据。
[0288]
s220、在该图像帧上检测到用户的人脸情况下,根据该图像帧确定用户在使用第一设备时的人脸角度,该人脸角度表示用户的人脸在相机坐标系中相对于世界坐标系的角度。
[0289]
s230、在该人脸角度属于异常的情况下,获取来自至少一个第二设备的校正数据。
[0290]
s240、根据该校正数据校正该人脸角度以得到校正结果。
[0291]
s250、根据该校正结果识别用户在使用第一设备时的姿势。
[0292]
可见,本技术实施例可以通过控制第一设备采集图像帧以及控制至少一个第二设备采集校正数据,从而实现利用多个设备所采集的数据进行姿势识别以提高准确性,避免数据来源的单一性。然后,通过图像帧来检测是否存在用户的人脸,并在检测到用户的人脸的情况下,根据图像帧确定用户在使用第一设备时的人脸角度,从而实现实时对用户使用第一设备时的人脸进行检测以得到人脸角度,从而通过人脸角度实现头部姿态评估,以便利用头部姿态评估来反映用户在使用第一设备时的姿势。最后,通过判断人脸角度是否异常,并在人脸角度属于异常的情况下,根据所获取的校正数据来校正人脸角度以得到校正结果,并根据校正结果来识别用户在使用第一设备时的姿态,从而通过校正来实现提高姿态识别的准确性的可能性。
[0293]
需要说明的是,“第一设备”、“第二设备”、“第一指令”、“第二指令”、“人脸角度”、“校正数据”、“校正结果”等可以详见上述描述,对此不再赘述。
[0294]
下面对所涉及的一些实现方式再进行说明,而未其他未涉及的内容可以具体详见上述描述,对此不再赘述。
[0295]
在一些可能的实现中,s220中根据图像帧确定用户在使用第一设备时的人脸角度,可以包括如下步骤:
[0296]
提取图像帧中的二维人脸关键点坐标;
[0297]
根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度。
[0298]
需要说明的是,结合上述“6、如何根据图像帧确定人脸角度”中的内容,本技术实施例可以通过回归计算来建立二维人脸关键点坐标与人脸角度之间的关联关系,以便根据二维人脸关键点坐标和该关联关系得到人脸角度。
[0299]
在一些可能的实现中,根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度,可以包括如下步骤:
[0300]
获取二维人脸关键点坐标对应于预设三维人脸模型中的第一三维人脸关键点坐标;
[0301]
确定二维人脸关键点坐标与第一三维人脸关键点坐标之间的旋转关系;
[0302]
根据旋转关系到欧拉角的转换关系确定用户在使用第一设备时的人脸角度。
[0303]
需要说明的是,结合上述“方式1”中的内容,在“方式1”中,回归计算可以是:将二维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再根据该二维人脸关键点坐标与该第一三维人脸关键点坐标之间的旋转关系,最后根据该旋转关系到欧拉角的转换关系确定人脸角度,从而实现根据二维人脸关键点坐标进行回归计算以得到人脸角度。
[0304]
在一些可能的实现中,确定二维人脸关键点坐标与第一三维人脸关键点坐标之间的旋转关系,可以包括如下步骤:
[0305]
根据相机内部参数、相机畸变参数、柱面投影的坐标变换关系中至少之一项确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标,相机内部参数包括图像
帧的几何中心点坐标、图像帧的尺寸比例、相机焦距,相机畸变参数包括径向畸变参数和切向畸变参数;
[0306]
确定目标人脸关键点坐标到第一三维人脸关键点坐标之间的旋转关系。
[0307]
需要说明的是,结合上述“方式1”中的内容,由于二维人脸关键点坐标是在图像坐标系中的坐标,而为了计算真实空间中的坐标(即世界坐标系中的坐标),因此本技术可以根据相机内部参数将图像坐标系中的坐标转换到相机坐标系中的坐标。
[0308]
若相机成像过程中的存在畸变,则本技术可以根据相机内部参数和相机畸变参数将图像坐标系中的坐标转换到相机坐标系中的坐标。这样由于在坐标的转移过程中考虑了相机畸变参数,从而有利于避免因畸变而产生的误差。
[0309]
若相机成像过程中的存在畸变,而畸变会导致图像帧中的人脸图像产生扭曲线条,则本技术可以根据柱面投影的坐标变换关系来保持竖直方向的线条不发生弯曲变形,从而可以恢复一些因畸变所导致的图像扭曲。
[0310]
在一些可能的实现中,根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度,可以包括如下步骤:
[0311]
获取二维人脸关键点坐标对应于预设三维人脸模型中的第一三维人脸关键点坐标;
[0312]
将二维人脸关键点坐标转换为世界坐标系中的第二三维人脸关键点坐标;
[0313]
将第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴的夹角,作为用户在使用第一设备时的人脸角度。
[0314]
需要说明的是,结合上述“方式2”中的内容,在“方式2”中,回归计算可以是:将二维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再直接将二维人脸关键点坐标从二维转换为三维以得到第二三维人脸关键点坐标,最后计算第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系。
[0315]
在一些可能的实现中,根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度,可以包括如下步骤:
[0316]
将二维人脸关键点输入已训练的神经网络以输出用户在使用第一设备时的人脸角度。
[0317]
需要说明的是,结合上述“方式3”中的内容,在“方式3”中,本技术实施例的回归计算可以是:通过一些标记的数据来训练神经网络,使得训练好的神经网络具有二维人脸关键点与人脸角度之间的关系。这样,将二维人脸关键点输入已训练的神经网络以输出人脸角度,从而利用神经网络的高精度计算能力,提高从二维坐标到三维坐标的准确性。
[0318]
在一些可能的实现中,在根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度之后,该方法还可以包括如下步骤:
[0319]
在人脸角度属于正常的情况下,删除图像帧,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0320]
需要说明的是,结合上述“5、如何判断人脸角度是否异常”中的内容,由于人脸角度属于正常,因此可以大概判断用户当前在使用第一设备时的姿势属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从
而实现对用户在使用第一设备时的姿态进行实时识别。
[0321]
在一些可能的实现中,s240中根据校正数据校正人脸角度以得到校正结果,可以包括如下步骤:
[0322]
将人脸角度转换为第一方向余弦矩阵,将校正数据转换为第二方向余弦矩阵,利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果,以及根据迭代结果到欧拉角的转换关系确定校正结果。
[0323]
需要说明的是,结合上述“方式a”中的内容,本技术实施例可以将人脸角度转换为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第一方向余弦矩阵”),以及将校正数据转换也为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第二方向余弦矩阵”),利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果,以及根据迭代结果到欧拉角的转换关系确定校正结果。
[0324]
可见,通过分别将人脸角度和校正数据转换为方向余弦矩阵,以便通过迭代计算来实现对人脸角度进行校正。
[0325]
在一些可能的实现中,s240中根据校正数据校正人脸角度以得到校正结果,可以包括如下步骤:
[0326]
将人脸角度与校正数据进行加权融合以得到校正结果。
[0327]
需要说明的是,结合上述“方式b”中的内容,本技术实施例可以将人脸角度与校正数据进行加权融合以得到校正结果。
[0328]
可见,通过加权融合来实现对人脸角度进行校正。
[0329]
在一些可能的实现中,校正数据,可以是在第二设备针对除用户的头部之外的其他部位的运行所采集的传感器数据。
[0330]
需要说明的是,结合上述“1、第一设备、第二设备”和“4、校正数据”中的内容,校正数据可以用于表征用户的运动或姿态变化情况以及校正人脸角度,以便提高姿势识别的准确性,而本技术实施例可以通过第一设备和至少一个第二设备来针对用户的不同部位来采集数据,使得这些数据可以从不同的维度来反映当前用户的运动姿态,避免数据来源的单一性,以便提高姿势识别的准确性
[0331]
在一些可能的实现中,在根据校正结果识别用户使用第一设备时的姿势之后,还包括:
[0332]
在姿势属于异常的情况下,执行姿势矫正提醒操作以提醒用户矫正姿势,姿势矫正提醒操作可以由第一设备执行或者至少一个第二设备中一个执行,姿势矫正提醒操作采用以下方式之一:语音提示、振动提示、显示熄幕倒计时、熄灭屏幕;
[0333]
在姿势属于正常的情况下,删除图像帧和校正数据,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0334]
需要说明的是,结合上述“9、姿势矫正提醒操作”中的内容,当用户的姿势属于异常时,本技术实施例可以通过第一设备或者第二设备来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项,使得用户可以及时矫正自己的姿势。
[0335]
由于姿态是否异常是由第一设备执行,因此在姿势属于异常时时,若需要第二设备来执行相应的提醒,则需要第一设备向第二设备发送指令,以便第二设备根据该指令来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项。
[0336]
由于用户的姿势属于正常,因此可以大概判断用户当前在使用第一设备时的姿态属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0337]
在一些可能的实现中,在获取第一指令之后,还包括:
[0338]
在图像帧上未检测到用户的人脸情况下,删除图像帧,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0339]
需要说明的是,结合上述“3、图像帧”中的内容,由于本技术实施例通过头部姿态识别实现用户在使用第一设备时的姿态识别,因此需要实时检查用户的人脸。
[0340]
然而,当在当前的图像帧中未检测到用户的人脸时,需要重新进行人脸检测,直到检测的用户的人脸。此时,由于未检测到人脸,因此需要清空已经采集到的相关数据,再重新开始对下一帧图像进行处理以及通知第二设备重新采集新的数据,以便进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0341]
11、一种姿势识别方法的整体流程图的示例性说明
[0342]
结合上述内容,下面再对本技术实施例的姿势识别方法的整体流程图进行示例性说明。
[0343]
如图3所述,图3是本技术实施例的一种姿势识别方法的整体流程图,流程说明如下:
[0344]
1)启动姿势识别
[0345]
需要说明的是,结合上述“2、第一指令和第二指令”中的内容,在本技术实施例中,第一设备的应用层可以安装某一应用程序,该应用程序可以用于进行姿势识别。当存在用户启动该应用程序中的姿态识别功能的事件时,即启动姿势识别的事件,该事件会触发第一设备获取第一指令。
[0346]
2)启动摄像组件以采集图像帧
[0347]
需要说明的是,结合上述“2、第一指令和第二指令”和“3、图像帧”中的内容,第一指令可以用于控制第一设备启动摄像模组以采集图像帧。
[0348]
例如,第一设备的摄像模组针对用户的头部的运动采集图像帧。
[0349]
3)启动传感组件以采集校正数据
[0350]
需要说明的是,结合上述“2、第一指令和第二指令”和“4、校正数据”中的内容,第一指令可以用于控制第一设备向至少一个第二设备发送第二指令,第二指示可以用于控制至少一个第二设备启动传感组件以采集校正数据。
[0351]
4)人脸检测以判断是否存在用户的人脸
[0352]
需要说明的是,结合上述“3、图像帧”中的内容,由于用户的头部存在运动,因此第一设备所采集的图像帧中不一定存在用户的人脸。对此,本技术实施例可以利用人脸检测算法来对图像帧来检测以判断是否存在用户的人脸。
[0353]
5)提取二维关键点坐标
[0354]
需要说明的是,结合上述“3、图像帧”和“6、如何根据图像帧确定人脸角度”中的内容,若存在用户的人脸,则本技术实施例可以利用人脸关键点检测算法从图像帧的人脸图像中提取出二维人脸关键点坐标。
[0355]
若不存在用户的人脸,则执行“12)删除相关数据,进行下一次姿势识别”,即删除
图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0356]
6)回归计算人脸角度
[0357]
需要说明的是,结合上述“6、如何根据图像帧确定人脸角度”中的内容,本技术实施例可以根据二维人脸关键点坐标进行回归计算以得到人脸角度。
[0358]
7)判断人脸角度是否异常
[0359]
需要说明的是,结合上述“5、如何判断人脸角度是否异常”中的内容,本技术实施例需要判断人脸角度是否异常,并引入预设正常人脸角度范围。
[0360]
这样,若人脸角度在该预设正常人脸角度范围内,则说明该人脸角度属于正常,如此可以大概判断用户在使用第一设备时的姿态属于正常;
[0361]
若人脸角度在该预设正常人脸角度范围之外,则说明该人脸角度属于异常,如此可以大概判断用户在使用第一设备时的姿态可能属于异常。
[0362]
若人脸角度属于异常,则执行“8)获取校正数据”;
[0363]
若人脸角度属于正常,则执行“12)删除相关数据,进行下一次姿势识别”,即删除图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0364]
8)获取校正数据
[0365]
需要说明的是,结合上述“5、如何判断人脸角度是否异常”中的内容,本技术实施例的第一设备可以向第二设备发送指令,该指令可以用于通知第二设备向第一设备发送校正数据。这样,第二设备在接收到该指令之后,可以通过短距离通信向第一设备发送该校正数据。
[0366]
9)人脸角度和校正数据进行校正计算
[0367]
需要说明的是,结合上述“7、如何根据校正数据校正人脸角度”中的内容,本技术实施例可以根据校正数据对人脸角度进行校正,使得校正结果能更加准确的判断出用户的姿态是否异常。
[0368]
10)判断姿势是否异常
[0369]
需要说明的是,结合上述“8、如何根据校正结果识别用户在使用第一设备时的姿势”中的内容,本技术实施例需要判断用户在使用第一设备时的姿势是否异常,并引入预设正常姿势范围。
[0370]
这样,若校正结果在该预设正常姿势范围内,则说明该姿势属于正常;若校正结果在该预设正常姿势范围之外,则说明该姿态属于异常。
[0371]
若该姿势属于异常,则执行“11)姿势矫正提醒”。
[0372]
若该姿势属于正常,则执行“12)删除相关数据,进行下一次姿势识别”,即删除图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0373]
11)姿势矫正提醒
[0374]
需要说明的是,结合上述“9、姿势矫正提醒操作”中的内容,本技术实施例可以通过用户在使用第一设备时的姿态是否异常来确定是否需要及时执行相应的提醒,使得用户通过该提醒能及时的矫正自己的姿势,避免这些异常的姿势可能对用户的健康、安全等带
来一定风险。
[0375]
这里,姿势矫正提醒操作由第一设备执行,该姿势矫正提醒操作可以采用以下方式之一:语音提示、振动提示、显示熄幕倒计时、熄灭屏幕。
[0376]
12)删除相关数据,进行下一次姿势识别
[0377]
需要说明的是,结合上述“9、姿势矫正提醒操作”中的内容,在姿势矫正提醒之后,本技术实施例可以删除图像帧,并获取该图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0378]
三、一种姿态识别装置的示例性说明
[0379]
上述主要从方法侧执行过程的角度对本技术实施例的方案进行了介绍。可以理解的是,设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该知悉,结合本文中所提供的实施例描述的各示例的方法、功能、模块、单元或者步骤,本技术能够以硬件或者硬件与计算机软件的结合形式来实现。某个方法、功能、模块、单元或者步骤究竟以硬件或计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用使用不同方法来实现所描述的方法、功能、模块、单元或者步骤,但是这种实现不应认为超出本技术的范围。
[0380]
本技术实施例可以根据上述方法示例对设备进行功能单元/模块的划分。例如,可以对应各个功能划分各个功能单元/模块,也可以将两个或两个以上的功能集成在一个功能单元/模块中。上述集成的功能单元/模块既可以采用硬件的方式实现,也可以采用软件程序的方式实现。需要说明的是,本技术实施例中对功能单元/模块的划分是示意性的,只是一种逻辑功能划分,而实际实现时可以有另外的划分方式。
[0381]
在采用集成的单元的情况下,图4是本技术实施例的一种姿势识别装置的功能单元组成框图。姿势识别装置400,具体包括:获取单元410、确定单元420、校正单元430和识别单元440。
[0382]
需要说明的是,获取单元410可以是一种用于获取或处理信号、数据、信息等的模块单元,对此不作具体限制。
[0383]
确定单元420可以是一种用于处理信号、数据、信息等的模块单元,对此不作具体限制。
[0384]
校正单元430可以是一种用于处理信号、数据、信息等的模块单元,对此不作具体限制。
[0385]
识别单元440可以是一种用于处理信号、数据、信息等的模块单元,对此不作具体限制。
[0386]
在一些可能的实现中,获取单元410、确定单元420、校正单元430和识别单元440可以是相互分离的,可以是集成在同一个单元中。
[0387]
例如,若获取单元410、确定单元420、校正单元430和识别单元440集成在同一个单元中,则获取单元410、确定单元420、校正单元430和识别单元440可以集成在处理单元中。
[0388]
需要说明的是,处理单元可以是处理器或控制器,例如可以是中央处理器(central processing unit,cpu)、通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application-specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体
管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框、模块和电路。处理单元也可以是实现计算功能的组合,例如包含一个或多个微处理器组合、dsp和微处理器的组合等。
[0389]
又例如,获取单元410可以集成在通信单元中,确定单元420、校正单元430和识别单元440可以集成在处理单元中。
[0390]
需要说明的是,通信单元可以是通信接口、收发器、收发电路等。
[0391]
在一些可能的实现中,姿势识别装置400还可以包括存储单元,用于存储姿势识别装置400所执行的计算机程序或者指令。
[0392]
例如,该存储单元可以是存储器。
[0393]
在一些可能的实现中,姿势识别装置400可以是芯片/芯片模组/处理器/硬件等。
[0394]
具体实现时,姿势识别装置400用于执行如上述方法实施例中所描述的步骤。下面进行详细说明。
[0395]
获取单元410,用于获取第一指令,第一指令用于控制姿势识别装置400采集图像帧以及控制姿势识别装置400向至少一个第二设备发送第二指令,第二指示用于控制至少一个第二设备采集校正数据;
[0396]
确定单元420,用于在图像帧上检测到用户的人脸情况下,根据图像帧确定用户在使用第一设备时的人脸角度,人脸角度表示用户的人脸在相机坐标系中相对于世界坐标系的角度;
[0397]
获取单元410,还用于在人脸角度属于异常的情况下,获取来自至少一个第二设备的校正数据;
[0398]
校正单元430,用于根据校正数据校正人脸角度以得到校正结果;
[0399]
识别单元440,用于根据校正结果识别用户使用姿势识别装置400时的姿势。
[0400]
可见,本技术实施例可以通过控制姿势识别装置400采集图像帧以及控制至少一个第二设备采集校正数据,从而实现利用多个设备所采集的数据进行姿势识别以提高准确性,避免数据来源的单一性。然后,通过图像帧来检测是否存在用户的人脸,并在检测到用户的人脸的情况下,根据图像帧确定用户在使用第一设备时的人脸角度,从而实现实时对用户使用第一设备时的人脸进行检测以得到人脸角度,从而通过人脸角度实现头部姿态评估,以便利用头部姿态评估来反映用户在使用姿势识别装置400时的姿势。最后,通过判断人脸角度是否异常,并在人脸角度属于异常的情况下,根据所获取的校正数据来校正人脸角度以得到校正结果,并根据校正结果来识别用户在使用姿势识别装置400时的姿态,从而通过校正来实现提高姿态识别的准确性的可能性。
[0401]
需要说明的是,姿势识别装置400执行的各个操作的具体实现可以参见上述图2所示的方法实施例的相应描述,在此不再赘述。
[0402]
下面对所涉及的一些实现方式再进行说明,而未其他未涉及的内容可以具体详见上述描述,对此不再赘述。
[0403]
在一些可能的实现中,在根据图像帧确定用户在使用第一设备时的人脸角度方面,确定单元420可以用于:
[0404]
提取图像帧中的二维人脸关键点坐标;
[0405]
根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角
度。
[0406]
需要说明的是,结合上述“6、如何根据图像帧确定人脸角度”中的内容,本技术实施例可以通过回归计算来建立二维人脸关键点坐标与人脸角度之间的关联关系,以便根据二维人脸关键点坐标和该关联关系得到人脸角度。
[0407]
在一些可能的实现中,在根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度方面,确定单元420可以用于:
[0408]
获取二维人脸关键点坐标对应于预设三维人脸模型中的第一三维人脸关键点坐标;
[0409]
确定二维人脸关键点坐标与第一三维人脸关键点坐标之间的旋转关系;
[0410]
根据旋转关系到欧拉角的转换关系确定用户在使用第一设备时的人脸角度。
[0411]
需要说明的是,结合上述“方式1”中的内容,在“方式1”中,回归计算可以是:将二维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再根据该二维人脸关键点坐标与该第一三维人脸关键点坐标之间的旋转关系,最后根据该旋转关系到欧拉角的转换关系确定人脸角度,从而实现根据二维人脸关键点坐标进行回归计算以得到人脸角度。
[0412]
在一些可能的实现中,在确定二维人脸关键点坐标与第一三维人脸关键点坐标之间的旋转关系方面,确定单元420可以用于:
[0413]
根据相机内部参数、相机畸变参数、柱面投影的坐标变换关系中至少之一项确定二维人脸关键点坐标转换到相机坐标系中的目标人脸关键点坐标,相机内部参数包括图像帧的几何中心点坐标、图像帧的尺寸比例、相机焦距,相机畸变参数包括径向畸变参数和切向畸变参数;
[0414]
确定目标人脸关键点坐标到第一三维人脸关键点坐标之间的旋转关系。
[0415]
需要说明的是,结合上述“方式1”中的内容,由于二维人脸关键点坐标是在图像坐标系中的坐标,而为了计算真实空间中的坐标(即世界坐标系中的坐标),因此本技术可以根据相机内部参数将图像坐标系中的坐标转换到相机坐标系中的坐标。
[0416]
若相机成像过程中的存在畸变,则本技术可以根据相机内部参数和相机畸变参数将图像坐标系中的坐标转换到相机坐标系中的坐标。这样由于在坐标的转移过程中考虑了相机畸变参数,从而有利于避免因畸变而产生的误差。
[0417]
若相机成像过程中的存在畸变,而畸变会导致图像帧中的人脸图像产生扭曲线条,则本技术可以根据柱面投影的坐标变换关系来保持竖直方向的线条不发生弯曲变形,从而可以恢复一些因畸变所导致的图像扭曲。
[0418]
在一些可能的实现中,在根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度方面,确定单元420可以用于:
[0419]
获取二维人脸关键点坐标对应于预设三维人脸模型中的第一三维人脸关键点坐标;
[0420]
将二维人脸关键点坐标转换为世界坐标系中的第二三维人脸关键点坐标;
[0421]
将第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系中的三个坐标轴的夹角,作为用户在使用第一设备时的人脸角度。
[0422]
需要说明的是,结合上述“方式2”中的内容,在“方式2”中,回归计算可以是:将二
维人脸关键点坐标与预设三维人脸模型进行匹配以获取其对应的第一三维人脸关键点坐标,再直接将二维人脸关键点坐标从二维转换为三维以得到第二三维人脸关键点坐标,最后计算第一三维人脸关键点坐标和第二三维人脸关键点坐标的连线所在的方向相对于世界坐标系。
[0423]
在一些可能的实现中,在根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度方面,确定单元420可以用于:
[0424]
将二维人脸关键点输入已训练的神经网络以输出用户在使用第一设备时的人脸角度。
[0425]
需要说明的是,结合上述“方式3”中的内容,在“方式3”中,本技术实施例的回归计算可以是:通过一些标记的数据来训练神经网络,使得训练好的神经网络具有二维人脸关键点与人脸角度之间的关系。这样,将二维人脸关键点输入已训练的神经网络以输出人脸角度,从而利用神经网络的高精度计算能力,提高从二维坐标到三维坐标的准确性。
[0426]
在一些可能的实现中,在根据二维人脸关键点坐标进行回归计算以得到用户在使用第一设备时的人脸角度之后,姿势识别装置400还可以包括处理单元,该处理单元用于:
[0427]
在人脸角度属于正常的情况下,删除图像帧,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0428]
需要说明的是,结合上述“5、如何判断人脸角度是否异常”中的内容,由于人脸角度属于正常,因此可以大概判断用户当前在使用第一设备时的姿势属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0429]
在一些可能的实现中,在根据校正数据校正人脸角度以得到校正结果方面,校正单元430可以用于:
[0430]
将人脸角度转换为第一方向余弦矩阵,将校正数据转换为第二方向余弦矩阵,利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果,以及根据迭代结果到欧拉角的转换关系确定校正结果。
[0431]
需要说明的是,结合上述“方式a”中的内容,本技术实施例可以将人脸角度转换为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第一方向余弦矩阵”),以及将校正数据转换也为方向余弦矩阵(为了便于区分和描述,该方向余弦矩阵称为“第二方向余弦矩阵”),利用第二方向余弦矩阵对第一方向余弦矩阵进行迭代计算以得到迭代结果,以及根据迭代结果到欧拉角的转换关系确定校正结果。
[0432]
可见,通过分别将人脸角度和校正数据转换为方向余弦矩阵,以便通过迭代计算来实现对人脸角度进行校正。
[0433]
在一些可能的实现中,在根据校正数据校正人脸角度以得到校正结果方面,校正单元430可以用于:
[0434]
将人脸角度与校正数据进行加权融合以得到校正结果。
[0435]
需要说明的是,结合上述“方式b”中的内容,本技术实施例可以将人脸角度与校正数据进行加权融合以得到校正结果。
[0436]
可见,通过加权融合来实现对人脸角度进行校正。
[0437]
在一些可能的实现中,校正数据,可以是在第二设备针对除用户的头部之外的其
他部位的运行所采集的传感器数据。
[0438]
需要说明的是,结合上述“1、第一设备、第二设备”和“4、校正数据”中的内容,校正数据可以用于表征用户的运动或姿态变化情况以及校正人脸角度,以便提高姿势识别的准确性,而本技术实施例可以通过第一设备和至少一个第二设备来针对用户的不同部位来采集数据,使得这些数据可以从不同的维度来反映当前用户的运动姿态,避免数据来源的单一性,以便提高姿势识别的准确性
[0439]
在一些可能的实现中,在根据校正结果识别用户使用第一设备时的姿势之后,姿势识别装置400还可以包括提醒单元和处理单元;
[0440]
该提醒单元,用于在姿势属于异常的情况下,执行姿势矫正提醒操作以提醒用户矫正姿势,姿势矫正提醒操作可以由第一设备执行或者至少一个第二设备中一个执行,姿势矫正提醒操作采用以下方式之一:语音提示、振动提示、显示熄幕倒计时、熄灭屏幕;
[0441]
该处理单元,用于在姿势属于正常的情况下,删除图像帧和校正数据,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0442]
需要说明的是,结合上述“9、姿势矫正提醒操作”中的内容,当用户的姿势属于异常时,本技术实施例可以通过第一设备或者第二设备来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项,使得用户可以及时矫正自己的姿势。
[0443]
由于姿态是否异常是由第一设备执行,因此在姿势属于异常时时,若需要第二设备来执行相应的提醒,则需要第一设备向第二设备发送指令,以便第二设备根据该指令来执行语音提示、振动提示、显示熄幕倒计时、熄灭屏幕等方式中的之一项。
[0444]
由于用户的姿势属于正常,因此可以大概判断用户当前在使用第一设备时的姿态属于正常。又由于用户的姿势可能会实时发生改变,因此需要将当前相关的数据删除,再进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0445]
在一些可能的实现中,在获取第一指令之后,姿势识别装置400还可以包括处理单元,该处理单元可以用于:
[0446]
在图像帧上未检测到用户的人脸情况下,删除图像帧,并获取图像帧的下一帧图像以及控制至少一个第二设备重新进行采集,以便进行下一次姿势识别。
[0447]
需要说明的是,结合上述“3、图像帧”中的内容,由于本技术实施例通过头部姿态识别实现用户在使用第一设备时的姿态识别,因此需要实时检查用户的人脸。
[0448]
然而,当在当前的图像帧中未检测到用户的人脸时,需要重新进行人脸检测,直到检测的用户的人脸。此时,由于未检测到人脸,因此需要清空已经采集到的相关数据,再重新开始对下一帧图像进行处理以及通知第二设备重新采集新的数据,以便进行下一次姿势识别,从而实现对用户在使用第一设备时的姿态进行实时识别。
[0449]
四、一种设备的示例性说明
[0450]
下面介绍本技术实施例的一种设备的结构示意图,如图5所示。其中,设备500包括处理器510、存储器520和至少一个用于连接处理器510、存储器520的通信总线。
[0451]
在一些可能的实现中,处理器510可以是一个或多个中央处理器cpu。在处理器510是一个cpu的情况下,该cpu可以是单核cpu,也可以是多核cpu。存储器520包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只
读存储器(compact disc read-only memory,cd-rom),并且存储器520用于存储计算机程序或指令。
[0452]
在一些可能的实现中,设备500还包括通信接口,该通信接口用于接收和发送数据。
[0453]
在一些可能的实现中,设备500中的处理器510用于执行存储器520中存储的计算机程序或指令521以实现如下步骤:
[0454]
获取第一指令,该第一指令用于控制第一设备采集图像帧以及控制第一设备向至少一个第二设备发送第二指令,该第二指示用于控制至少一个第二设备采集校正数据;
[0455]
在该图像帧上检测到用户的人脸情况下,根据该图像帧确定用户在使用第一设备时的人脸角度,该人脸角度表示用户的人脸在相机坐标系中相对于世界坐标系的角度;
[0456]
在该人脸角度属于异常的情况下,获取来自至少一个第二设备的校正数据;
[0457]
根据该校正数据校正该人脸角度以得到校正结果;
[0458]
根据该校正结果识别用户在使用第一设备时的姿势。
[0459]
需要说明的是,设备500执行的各个操作的具体实现可以参见上述图2所示的方法实施例的相应描述,在此不再赘述。
[0460]
五、其他示例性说明
[0461]
本技术实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质上存储有计算机程序或指令,该计算机程序或指令被处理器执行时以实现上述实施例中所描述的步骤。
[0462]
本技术实施例还提供一种计算机程序产品,包括计算机程序或指令,其中,该计算机程序或指令被处理器执行时以实现上述实施例中所描述的步骤。示例性的,该计算机程序产品可以为一个软件安装包。
[0463]
另外,计算机程序产品,应理解为,主要通过计算机程序或指令实现解决本技术的技术方案的软件产品。
[0464]
需要说明的是,对于上述的各个实施例,为了简单描述,将其都表述为一系列的动作组合。本领域技术人员应该知悉,本技术不受所描述的动作顺序的限制,因为本技术实施例中的某些步骤可以采用其他顺序或者同时进行。另外,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作、步骤、模块或单元等并不一定是本技术实施例所必须的。
[0465]
在上述实施例中,本技术实施例对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0466]
本领域技术人员应该知悉,本技术实施例所描述的方法、步骤或者相关模块/单元的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式来实现,也可以是由处理器执行计算机程序指令的方式来实现。其中,该计算机程序产品包括至少一个计算机程序指令,计算机程序指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、eprom、eeprom、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。该计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,该计算机程序指令可以从一个网站站点、计算机、
服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质、或者半导体介质(如ssd)等。
[0467]
上述实施例中描述的各个装置或产品包含的各个模块/单元,其可以是软件模块/单元,可以是硬件模块/单元,也可以一部分是软件模块/单元,而另一部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置或产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现;或者,其包含的一部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,而另一部分(如果有)的部分模块/单元可以采用电路等硬件方式实现。对于应用于或集成于芯片模组的各个装置或产品,或者应用于或集成于终端的各个装置或产品,同理可知。
[0468]
以上的具体实施方式,对本技术实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本技术实施例的具体实施方式而已,并不用于限定本技术实施例的保护范围。凡在本技术实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1