一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

人体躺姿检测方法及使用该方法的移动机器与流程

2023-01-06 03:30:35 来源:中国专利 TAG:


1.本技术涉及人体姿态检测,尤其涉及一种人体躺姿检测方法及使用该方法的移动机器。


背景技术:

2.在医疗保健行业,借助了蓬勃发展的人工智能(ai)技术,机器人已经拥有包括移动助行机器人和医疗机器人在内的多种应用。助行机器人通常被设计成轮椅或助行器等设备而对行走等进行辅助,以提高行动不便人士的行动能力。
3.为实现助行器等功能,助行机器人不可避免地需要具备自动导航能力,从而以更加自动化、便捷的方式辅助用户。而要想实现自动导航,就需要检测其用户以进行路径规划,甚至需要检测用户的姿势,从而以更合适的方式进行相应的服务。
4.基于骨骼的姿势检测是在机器人中实现人体姿态检测的一种普遍的技术,它根据在估计出的人体骨骼上识别出的关键点来检测人体的姿态。在识别出的关键点足够多的情况下,有效且能准确检测;否则,在由于例如人体被障碍物或衣服遮挡很多而使得所能识别出的关键点不够的情况下,甚至可能无法识别人体的姿态。尤其是当人躺在床上、盖着被子时,被子、以至于床都可能遮挡住身体,而影响检测效果。因此,需要一种独立于基于骨骼的姿势检测的人体躺姿检测方法。


技术实现要素:

5.本技术提供一种人体躺姿检测方法及使用该方法的移动机器,用以检测躺在床上的人,解决前述的现有技术中的人体姿态检测技术所存在的问题。
6.本技术的实施例提供了一种人体躺姿检测方法,包括:
7.通过深度相机获取至少一图像;
8.通过深度学习检测该图像中的多个物体、并使用多个2d边界框来分别标记该图像中的该些物体;
9.响应于该图像中的一个该物体被检测为人,若该人所对应的该2d边界框的宽度和高度满足预定条件,则确定该人处于躺姿;
10.响应于该图像中的一个该物体未被检测为人,若该人所对应的该2d边界框的宽度和高度不满足该预定条件、且该图像中的另一个该物体被检测为床,则使用皮肤检测算法来检测该图像中的一或多个皮肤区域、并生成一或多个皮肤区域2d边界框以分别标记各该皮肤区域;以及
11.响应于该一或多个皮肤区域2d边界框和该床所对应的2d边界框满足预定位置关系,而确定该人处于躺姿。
12.本技术的实施例还提供了一种移动机器,包括:
13.深度相机;
14.一或多个处理器;以及
15.一或多个存储器,存储有一或多个计算机程序,该一或多个计算机程序由该一或多个处理器执行,其中该一或多个计算机程序包括多个指令用于:
16.通过深度相机获取至少一图像;
17.通过深度学习检测该图像中的多个物体、并使用多个2d边界框来分别标记该图像中的该些物体;
18.响应于该图像中的其中一个该物体被检测为人,若该人所对应的该2d边界框的宽度和高度满足预定条件,则确定该人处于躺姿;
19.响应于该图像中的其中一个该物体未被检测为人,若该人所对应的该2d边界框的宽度和高度不满足该预定条件、且该图像中的另一个该物体被检测为床,则使用皮肤检测算法来检测该图像中的一或多个皮肤区域、并生成以一或多个皮肤区域2d边界框以分别标记各该皮肤区域:以及
20.响应于该一或多个皮肤区域2d边界框和该床所对应的2d边界框满足预定位置关系,而确定该人处于躺姿。
21.从上述本技术的实施例可知,本技术提供的人体躺姿检测方法结合了家具和人体皮肤的检测,能够在所能识别出的关键点不够的情况下检测出人体的躺姿,从而解决现有技术中所能识别出的关键点不够的情况下可能无法识别人体的姿态等问题。
附图说明
22.为了更清楚地说明本技术的实施例中的技术方案,下面对实施例中或现有技术的描述中所使用的附图进行简要的介绍。在以下的附图中,相同的附图标记在整个图中表示相应的部分。应当理解的是,以下描述中的附图仅为本技术的例子。对于本领域的技术人员来说,在没有创造性劳动的情况下,可以基于这些附图来获得其他的附图。
23.图1a是本技术的一些实施例中使用移动机器检测人体姿态的场景示意图。
24.图1b是使用图1a的移动机器的相机来检测人的姿势的示意图。
25.图2是说明图1a的移动机器的示意框图。
26.图3是本技术的一些实施例中的人体躺姿检测方法的流程图。
27.图4是在图1a的移动机器的相机所拍摄的图像中标记人的示意图。
28.图5是在图1a的移动机器的相机所拍摄的图像中标记人和床的示意图。
29.图6a是图3的人体躺姿检测方法中检测皮肤区域的例子的流程图。
30.图6b是图3的人体躺姿检测方法中检测皮肤区域的示意图。
31.图7a是在图3的人体躺姿检测方法中使用基于骨骼的姿势检测的例子的流程图。
32.图7b是图7a的人体躺姿检测方法中对应于躺着的人的基于骨骼的姿势检测的结果的示意图。
33.图7c是图7a的人体躺姿检测方法中对应于坐着的人的基于骨骼的姿势检测的结果的示意图。
具体实施方式
34.为使本技术的目的、特征和优点更加明显易懂,下面将结合附图对本技术的实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本技术的一部分实施
例,而非全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都在本技术所保护的范围内。
35.应当理解的是,当在本技术和所附的权利要求中使用时,术语“包括”、“包含”、“具有”及其变体表示所述特征、整体、步骤、操作、元素和/或组件的存在,但不排除可以存在或添加一或多个其他特征、整体、步骤、操作、元素、组件和/或其集合。
36.还应当理解的是,在本技术的说明书中所使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术的范围。如同在本技术的说明书和所附的权利要求中所使用的那样,除非上下文清楚地指明了其他情况,否则单数形式的“一”、“一个”以及“该”意在包括复数形式。
37.还应当进一步理解,在本技术说明书和所附的权利要求中所使用的术语“和/或”是指相关列出的项中的一或多个的任何组合以及所有可能组合,并且包括这些组合。
38.本技术中的术语“第一”、“第二”、“第三”仅仅是出于描述的目的,而不能理解为指示或暗示了相对重要性、或是暗示了所指的技术特征的数量。由此,由“第一”、“第二”、“第三”所限定的特征可以显式或隐式地包括其中的至少一个技术特征。在本技术的描述中,“多个”的含义是至少两个,例如两个、三个等,除非另有明确的定义。
39.在本技术的说明书中叙述的“一个实施例”或“一些实施例”等意味着在本技术的一或多个实施例中可以包括与该实施例的描述内容相关的特定特征、结构或特点。由此,在说明书的不同地方出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是意味着所描述的实施例应该被所有其他实施例所引用,而是被“一或多个但不是所有其他实施例所引用”,除非另有特别强调。
40.本技术涉及人体姿态检测。如本文所用的,术语“人类”是指地球上数量最多、分布最广的灵长类动物。人的身体包括头部、颈部、躯干、手臂、手掌、腿和脚掌。术语“姿势”是指人的站姿、坐姿和卧姿,而术语“卧姿”是指人体由其下方的表面沿其长度方向支撑的一种姿势。术语“床”是指可供人在其上休息的家具。床(架)的上面可能包括比如枕头和毯子等典型的物品。床也可以是例如沙发、长凳和吊床等形式。术语“检测”是指与计算机视觉和图像处理相关的计算机技术,用于检测数字图像中某类语义对象(例如人类和家具)的实例。术语“移动机器”是指机器例如移动机器人或能够在其环境中四处移动的车辆。术语“轨迹规划”是指找到一系列有效配置,将移动机器从源头移动到目的地并按时间参数化,其中“轨迹”表示带有时间戳的姿势序列(参见“路径”表示不带时间戳的姿势或位置序列)。术语“姿势”指的是位置(例如x和y轴上的x和y坐标)和姿态(例如沿z轴的偏航角)。术语“导航”是指监视和控制移动机器人从一个地方到另一个地方的运动的过程。术语“防撞”是指防止或减少碰撞的严重程度。术语“传感器”是指设备、模块、机器或子系统,例如环境光传感器和图像传感器(例如相机),其目的是检测其环境中的事件或变化并将信息发送到其他电子设备(例如处理器)。
41.图1a是本技术的一些实施例中使用移动机器检测人体姿态的场景示意图。图1b是使用图1a的移动机器100的相机c来检测人的姿势的示意图。如图1a和图1b所示,移动机器100在其环境(例如房间)中被导航的同时进行人体姿势(即用户u在床o上的姿势)的检测。床o还可以是长凳等家具。移动机器100是移动机器人(如移动助行机器人),其包括相机c和轮子e。相机c可以朝向移动机器100直线移动时的向前方向df而设置,使得相机c的镜头直
线面向向前方向df。相机c具有摄像机坐标系,而移动机器100的坐标与相机c的坐标一致。在相机坐标系中,x轴与向前方向df一致,y轴与地平线平行,z轴与地平线垂直。相机c的视野v覆盖了用户u和床o。移动机器100上的相机c的高度(例如1米)可以根据实际需要改变(例如高度越大视场使得v越大、高度越小使得视场v越小),而且相机c相对于地面的俯仰角也可以根据实际需要改变(例如俯仰角越大使得视场v越近,俯仰角越小使得视场v越远)。根据相机c的高度和俯仰角,可以得到用户u在移动机器100附近的相对位置,也可以判断用户u是否躺着、或用户u所躺的床o。需要说明的是,移动机器100只是移动机器的一个例子,移动机器100可以具有比上面或下面所示更多、更少或不同的部件(例如具有腿而不是轮子e),或者可以具有不同的部件配置或布置(例如将相机c设置在移动机器100的顶部)。在其他实施例中,移动机器100可以是另一种移动机器,例如车辆。
42.在一些实施例中,移动机器100在其所处环境中被导航,同时可以防止诸如碰撞和不安全状态(例如坠落、极端温度、辐射和暴露)之类的危险情况。在该室内导航中,移动机器1000从起点(例如移动机器100最初所在的位置)被导航到(用户u或移动机器100的导航/操作系统所指定的)目的地,并且可避开障碍物(例如墙壁、家具、人、宠物和垃圾)以防止上述危险情况。必需规划能使移动式机器100从起点移动到目的地的轨迹(例如轨迹t),以便根据轨迹来移动移动机器100。每个轨迹包括一系列位姿(例如轨迹t的位姿s
n-1-sn)。需要说明的是,起点和终点仅代表移动机器100在如图所示的场景中的位置,而不是轨迹的真正开始和结束(轨迹的真正开始和结束应该分别是一个位姿)。在一些实施例中,为了实现移动设备100的导航,需要构建环境地图、(使用例如惯性测量单元(imu)1331来)确定移动机器100在环境中的当前位置,而后基于所构建的地图和所确定的移动机器100的当前位置来规划轨迹。期望位姿sd是轨迹t(图中仅部分显示)中的姿态序列中的最后一个,即轨迹t的末端。轨迹t是根据例如所构建的地图中到达用户u的最短路径而规划的。另外,在规划时需要考虑避免与所构建的地图中的障碍物(例如墙壁和家具)或实时检测到的障碍物(例如人和宠物)的碰撞,以便更准确且安全地导航移动机器100。
43.在一些实施例中,移动机器100的导航可以通过移动机器100本身(例如移动机器100上的控制界面)或诸如遥控器、智能手机、平板电脑、笔记本电脑、台式电脑或其他电子设备等控制设备所提供的移动机器100的导航请求来启动。移动机器100和控制设备可以通过网络进行通信,而该网络可以包括例如因特网、内联网(intranet)、外联网(extranet)、局域网(lan)、广域网(wan)、有线网络、无线网络(例如wi-fi网络、蓝牙网络和移动网络)或其他合适的网络,或两个或多个此类网络的任意组合。
44.图2是说明图1a的移动机器100的示意框图。移动机器100可以包括通过一条或多条通信总线或信号线l进行通信的处理单元110、存储单元120和控制单元130。需要说明的是,移动机器100只是移动机器的一个例子。移动机器100可以具有比上面或下面所示更多或更少的组件(例如单元、子单元和模块),可以组合两个或更多个组件,或者可以具有不同的组件配置或排列。处理单元110执行存储在存储单元120中的各种(各组)指令,这些指令可以是软件程序的形式,以执行移动机器100的各种功能和处理相关数据,其可以包括一或多个处理器(例如中央处理器(cpu))。存储单元120可以包括一或多个存储器(例如高速随机存取存储器(ram)和非暂时性存储器)、一或多个存储器控制器,以及一或多个非暂时性计算机可读存储介质(例如固态状态驱动器(ssd)或硬盘)。控制单元130可以包括各种控制
器(例如相机控制器、显示控制器和物理按钮控制器)和用于耦合移动机器100的输入/输出外围设备到处理单元110和存储单元120的外围设备接口,例如外部端口(如usb)、无线通信电路(如rf通信电路)、音频电路(如扬声器电路)、传感器(如imu)。在一些实施例中,存储单元120可以包括用于实现与移动机器100的导航(和轨迹规划)相关的导航功能(例如地图构建和轨迹规划)的导航模块121,其可以存储在一或多个存储器(以及一或多种非暂时性计算机可读存储介质)中。
45.移动设备100的存储单元120中的导航模块121可以是(移动机器100的操作系统的)软件模块,其具有指令in(例如用来致动移动机器100的轮子e的电机1321以移动移动机器100的指令),以实现移动机器100的导航、地图构建器1211和轨迹规划器1212。地图构建器1211可以是具有用于为移动机器100构建地图的指令ib的软件模块,轨迹规划器1212可以是具有用于为移动机器100规划轨迹的指令i
p
的软件模块。轨迹规划器1212可以包括用于为移动机器100规划全局轨迹(例如轨迹t)的全局轨迹规划器、以及用于为移动机器100规划局部轨迹(例如包括图1a中的轨迹t的一部分)的局部轨迹规划器。全局轨迹规划器可以是例如基于dijkstra算法的轨迹规划器,其基于由地图构建器1211通过同时定位与地图构建(simultaneous localization and mapping,slam)等方式所构建的地图来规划全局轨迹。局部轨迹规划器可以是基于teb(timed elastic band)算法的轨迹规划器,其基于全局轨迹和移动机器100收集的其他数据来规划局部轨迹。例如可以是通过移动机器100的相机c采集图像,对采集到的图像进行分析,以识别障碍物,从而可以参考所识别出的障碍物来规划局部轨迹,并且可以根据所规划的局部轨迹来移动移动机器100、以避开障碍物。
46.地图构建器1211和轨迹规划器1212可以是与用于实现动移动机器100的导航的指令in分离的子模块、或是导航模块121的其他子模块,或是指令in的一部分。轨迹规划器1212还可具有与移动机器100的轨迹规划相关的数据(例如输入/输出数据和临时数据),其可存储在一或多个存储器中并由处理单元110访问。在一些实施例中,每个轨迹规划器1212可以是存储单元120中与导航模块121分离的模块。
47.在一些实施例中,指令in可以包括用于实现移动机器100的碰撞避免(例如障碍物检测和轨迹重新规划)的指令。此外,全局轨迹规划器可以重新规划全局轨迹(即规划新的全局轨迹),以响应例如原始全局轨迹被阻挡(例如被一或多个意外障碍物阻挡)或不足以避免碰撞(例如在采用时无法避开所检测到的障碍物)。在其他实施例中,导航模块121可以是通过一或多条通信总线或信号线l与处理单元110、存储单元120和控制单元130通信的导航单元,还可以包括一或多个存储器(例如高速随机存取存储器(ram)和非暂时性存储器),用于存储指令in、地图构建器1211和轨迹规划器1212;以及一或多个处理器(例如微處理器(mpu)和微控制器(mcu)),用于执行存储的指令in、ib和i
p
,以实现移动机器100的导航。
48.移动设备100还可以包括通信子单元131和致动子单元132。通信子单元131和致动子单元132通过一条或多条通信总线或信号线与控制单元130通信。该一或多条通信总线或信号线可以与上述一或多条通信总线或信号线l相同、或至少部分不同。通讯子单元131耦接至移动机器100的通讯接口,诸如供移动机器100通过网络与控制装置进行通信的网络接口1311、i/o接口1312(例如物理按钮)等。致动子单元132耦合到用于实现移动机器100的运动的组件/设备,以驱动移动机器100的车轮e和/或关节的电机1321。通信子单元131可以包括用于移动机器100的上述通信接口的控制器,致动子单元132可以包括用于实现移动机器
100的运动的上述组件/设备的控制器。在其他实施例中,通信子单元131和/或致动子单元132可以只是抽象组件,用以表示移动机器100的组件之间的逻辑关系。
49.移动机器1 00还可以包括传感器子单元133,传感器子单元133可以包括一组传感器和相关控制器,例如rgb-d相机c和imu 1331(或加速度计和陀螺仪),用于检测其所在的环境以实现其导航。传感器子单元133通过一或多条通信总线或信号线与控制单元130通信,该一或多条通信总线或信号线可以与上述的一或多条通信总线或信号线l相同、或至少部分不同。在其他实施例中,在导航模块121为上述导航单元的情况下,传感器子单元133可以通过一或多条通信总线或信号线与导航单元进行通信,该通信总线或信号线可以与上述的一或多条通信总线或信号线l相同、或至少部分不同。此外,传感器子单元133可以只是抽象组件,用以表示移动机器100的组件之间的逻辑关系。
50.在一些实施例中,地图构建器1211、轨迹规划器1212、传感器子单元133和电机1321(以及连接到电机1321的移动机器100的轮子e和/或关节)共同组成一个(导航)系统,实现地图构建、(全局和局部)轨迹规划和电机驱动,以实现移动机器100的导航。此外,图2b中所示的各种组件可以以硬件、软件或硬件和软件的组合来实现。处理单元110、存储单元120、控制单元130、导航模块121和其他单元/子单元/模块中的两个或更多个可以实现在单个芯片或电路上。在其他实施例中,它们中的至少一部分可以在单独的芯片或电路上实现。
51.图3是本技术的一些实施例中的人体躺姿检测方法的流程图。在一些实施例中,以例如将对应于移动机器100的导航方法的指令(组)in存储为存储单元120中的导航模块121、并通过处理单元110执行所存储的指令in的方式在移动机器100中实现该人体躺姿检测方法,而后移动机器100可以利用相机c进行检测、以判断用户u是否躺下。可以响应于来自例如移动机器100本身或控制装置(的导航/操作系统)的检测用户u的姿势的请求来执行该人体躺姿检测方法,然后也可以例如每隔预定的时间间隔(例如1秒)重新执行一次,以重新判断用户u是否躺下、从而检测用户u的姿势变化。因此,在步骤3110中,可以通过相机c获取图像i。由于相机c是深度相机(例如rgb-d相机),因此相机c所拍摄的图像i包括代表距离的像素值。可以获取多个图像i,以便从中选择一个图像i(例如满足一定质量的图像i)来使用。
52.在步骤3120中,通过深度学习检测和以2d(二维)边界框(bounding box,bbox)标记图像i中的物体(例如人和床)。生成人的2d边界框b1来标记人,即用户u,生成床的2d边界框b2来标记床o。2d边界框b1由深度学习模型输出。深度学习模型可以是基于例如yolo(you only look once)算法的计算机模型,其可以使用人类检测相关的标记数据来进行训练。图4是在图1a的移动机器100的相机c所拍摄的图像i中标记人(即用户u)的示意图。在图4的上部的图像i中,包括床o和躺在其上的用户u。在图4下部的图像i中,2d边界框b1是图像i中的矩形区域,显示为带有虚线框架的矩形框、以标记用户u。由于用户u的整个身体(即头部、颈部、躯干、两条手臂、两只手、两条腿和两条脚)显示在图像i中,因此2d边界框b1标记了图像i中用户u的整个身体。在其他实施例中,2d边界框b1可以是图像i中的另一个形状(例如对用户u合身的不规则形状)的区域,其可以被显示为另一种形状(例如用户u合身的不规则形状)而具有其他形式的框架(例如实线框架)的框。床的2d边界框b2可以由上述的深度学习模型输出,该模型基于yolo算法、使用床检测相关的标记数据来进行进一步训练。在其他实施例中,床的2d边界框b2可以由另一个深度学习模型输出。图5是在图1a的移动机器100的
相机c所拍摄的图像i中标记人(即用户u)和床(即床o)的示意图。在图5上部的图像i中,由于用户u的身体上覆盖着被子q,因此只有身体的一部分(即头部、颈部、躯干的一部分、两条手臂、用户u的两只手)显示在图像i中,而床的2d边界框b2只标记了图像i中用户u的身体的该部分。
53.在步骤3130中,判断图像i中是否存在用户u。使用上述深度学习模型检测图像i中的用户u。深度学习模型是通过使用大量人类检测相关的标记数据(例如不同场景中的超过10,000张人类图像的数据集),以及包含多个层的神经网络架构来进行训练,从而直接从所输入的图像i中学习执行分类任务,以检测出图像i中的用户u。如果确定图像i中有用户u,则执行步骤3140;否则,将执行步骤3160。
54.在步骤3140中,判断2d边界框b1的宽度和2d边界框b1的高度是否满足预定条件。预定条件可以是宽高比大于预定比值(例如5∶1)且宽度大于高度超过预定倍数(例如5倍)。若确定2d边界框b1的宽度和高度满足预定条件(即2d边界框b1的宽度大于2d边界框b1的高度、且超过预定倍数),则将执行步骤3150;否则,将执行步骤3160。例如在预定条件为5∶1的情况下,在图4下半部的图像i中,因为2d边界框b1的宽度w1大于2d边界框b1的高度h1在5倍以上,则将判断2d边界框b1的宽度和高度满足预定条件。如图5所示,由于床2d边界框b2的宽度w2大于2d边界框b2的高度h2在5倍以下,则将判断第二2d边界框b2的宽度w2和高度h2不满足预定条件,因此将执行步骤3160。在一些实施例中,第一2d边界框b1的宽度由第一2d边界框b1在水平方向dh上的特征向量表示,第一2d边界框b1的高度由第一2d边界框b1在垂直方向dv的另一个特征向量表示。在步骤3150中,人(即用户u)被确定为处于躺姿,这意味着用户u是躺着的。
55.在步骤3160中,判断图像i中是否存在床o。使用上述深度学习模型来检测图像i中的床o。深度学习模型通过使用大量床检测相关的标记数据(例如10,000多个不同场景的床图像的数据集)和包含多个层的神经网络架构来训练,从而直接从输入的图像i中学习执行分类任务,以检测出图像i中的床o。若确定图像i中有床o,则执行步骤3170;否则,将执行步骤3200。在图5的下部的图像i中,虽然在图像i中显示了用户u的整个床o(即座、背和腿),为了在该人体躺姿检测方法的后续步骤中检测可能在床o上的用户u的躺姿,2d边界框b2可以只标记图像i中床o的上部(即座和背)。2d边界框b2是图像i中的一个矩形区域,显示为带有虚线框架的矩形框,用于标记用户u。在其他实施例中,2d边界框b2可以是图像i中的其他形状的区域(例如适应于床o体的不规则形状),其被显示为具有其他形式的框架(例如实线框架)的形状的框。
56.在步骤3170中,判断图像i中是否存在皮肤区域a。可以从图像i的所有像素中检测出皮肤区域a。使用皮肤检测算法来检测图像i中的皮肤区域a,该算法可以是cv(computer vision,计算机视觉)算法、具有内部开发的包含多个层的架构,从而直接从输入的图像i中学习执行分类任务,以检测出图像i中的皮肤区域a。图6a是图3的人体躺姿检测方法中检测皮肤区域a的例子的流程图,图6b是图3的人体躺姿检测方法中检测皮肤区域a的示意图。步骤3171-3174是执行上述皮肤检测算法,因此,在步骤3171,对图像内的所有像素进行基于纹理的分割以获取纹理片段s
t
。可以基于人类皮肤的hsv(hue、saturation、value,色调、饱和度、值)颜色图中的像素值的阈值来进行基于纹理的分割。在图6b上部的基于纹理的分割t中,每个纹理片段s
t
代表人的皮肤的潜在像素的区域。在步骤3172,对纹理片段s
t
进行基于
区域的分割以获取置信片段sc。通过计算段纹理片段s
t
之间的相似度来得到人皮肤的置信片段sc,置信片段sc通常小于纹理片段s
t
。在图6b中部的基于区域的分割r中,置信片段sc小于对应的纹理片段s
t
。在步骤3173,通过增长置信片段sc来获取皮肤区域a。皮肤区域a可以通过将对应的置信片段sc作为种子、并应用分水岭算法(watershed algorithm)将置信片段sc增长成皮肤区域a来获取。在步骤3174,判断图像i中是否存在皮肤区域a。若已经获取至少两个皮肤区域a,则可以确定图像i中有皮肤区域a。若判断图像i中存在皮肤区域a,则执行步骤3180;否则,将执行步骤3200。
57.在步骤3180中,使用上述的皮肤检测算法来生成皮肤区域2d边界框b3,以标记皮肤区域a。在图6b下部的图像i中,皮肤区域2d边界框b3是图像i中的矩形区域,其显示为带有虚线框架的矩形框、以标记用户u。在其他实施例中,皮肤区域2d边界框b3可以是图像i中的其他形状的区域(例如适应于皮肤区域a的不规则形状),其显示为具有其他形式的框架(例如实线框架)的形状的框。在步骤3190中,判断对应于皮肤区域a的皮肤区域2d边界框b3和2d边界框b2是否满足预定位置关系。在一些实施例中,预定位置关系为所有皮肤区域a所对应的每个皮肤区域2d边界框b3有至少一部分在2d边界框b2内,即所有的皮肤区域2d边界框b3都在2d边界框b2内、或每个皮肤区域2d边界框b3的整个或一部分在2d边界框b2之内,其涵盖了用户u的身体的一部分(例如头、手臂、手掌、腿或脚掌)伸出床o的边缘的状况。
58.若判断皮肤区域a所对应的皮肤区域2d边界框b3与2d边界框b2满足预定位置关系,则执行步骤3150;否则,将执行步骤3200。例如在图6b下部的图像i中,因为与用户u的手掌的皮肤区域a所对应的整个皮肤区域2d边界框b3、和用户u的面部的皮肤区域a所对应的部分皮肤区域2d边界框b3都在2d边界框b2中,而判断皮肤区域a所对应的皮肤区域2d边界框b3与2d边界框b2满足预定位置关系,因此将执行步骤3150。
59.在步骤3200中,人(即用户u)被确定为不处于躺姿。在一些实施例中,在该人体躺姿检测方法中,可以增加一个时间窗来过滤掉无效的结果,以实现更准确、更具鲁棒性的检测。例如在获取时间窗口内的多个相邻帧(即图像i)、且所有图像i中的用户u都被确定为处于躺姿后,确定用户u处于躺姿。需要说明的是,时间窗的大小可以根据实际需要(例如使用环境)来定义。
60.在一些实施例中,基于骨骼的姿势检测也可以用于该人体躺姿检测方法中。当能够检测到足够多的关键点时,可以提供更准确的躺姿检测,并且可以进一步提供更全面的人体姿态检测(例如除了检测用户u的躺姿之外,还可提供人体姿态检测、以检测用户u的站姿和坐姿)。图7a是在图3的人体躺姿检测方法中使用基于骨骼的姿势检测的例子的流程图;图7a的人体躺姿检测方法中对应于躺着的人的基于骨骼的姿势检测的结果的示意图;图7c是图7a的人体躺姿检测方法中对应于坐着的人的基于骨骼的姿势检测的结果的示意图。步骤3211和步骤3212的用于进行基于骨骼的姿势检测可以在确定图像i中存在人(步骤3130)之后被执行。
61.因此,在步骤3211中,识别人(即用户u)身体上的关键点p以获取人的估计骨骼b上的关键点p的位置。在图7b的上部的图像i中,由于在图像i中显示了躺下的用户u的整个身体,获取用户u的整个身体的估计骨骼b上的关键点p的位置。在图7b的下部的图像i中,由于躺下的用户u只有身体的一部分(即头部、颈部、躯干的一部分、两条手臂和两只手),而且被图像i中所示的被子q覆盖,只获取了用户u的身体的该部分的估计骨骼b上的关键点p的位
置。在图7c的图像i中,由于坐着的用户u的整个身体显示在图像i,可以获取用户u的整个身体的估计骨骼b上的关键点p的位置。在步骤3212中,判断人(即用户u)的身体的上部的倾斜角度θ(例如图7b的上部的图像i中的角度θ1和图7c的图像i中的角度θ2)是否大于预定角度。身体的上半部分可以是躯干。预设角度(例如60
°
)是用户u处于躺姿时身体的上部的最小倾斜角度θ。用户u的身体的上部的倾斜角度θ是根据人体估计骨骼b上关键点p的位置来确定的。例如基于对应于身体的颈部和臀部的关键点p的位置来估计身体的上部的轴x(例如图7b的上部的图像i中的轴x1和图7c的图像i中的轴x2),并取x轴与相机c的坐标系的z轴的夹角为倾角θ。若判断用户u的身体的上部的倾斜角度θ大于预定角度,则执行步骤3150;否则,将执行步骤3160或步骤3200。例如在预定角度为60
°
的情况下,在图7b上部的图像i中,由于身体的上部的角度θ1大于60
°
,将执行步骤3150;由于身体的上部的角度θ2(与相机c的坐标系的z轴重叠,为0
°
)小于60
°
,因此执行步骤3160。
62.该人体躺姿检测方法结合了家具和人体皮肤的检测,能够在识别出的关键点不够的情况下检测用户u的躺姿。该人体躺姿检测方法可以实时地实现,只需要很少的计算资源,而且因为只需要一个深度相机、而非多个传感器来进行检测,因此经济高效。在移动机器100为助行机器人的情况下,可实现该人体躺姿检测方法以检测用户u的躺姿、并据以选择合适的方式与用户u进行交互。举例来说,当用户u是老人、而且被侦测到躺在床上时,移动机器100在提供进一步的协助之前可以先要求用户u坐起来。
63.本领域技术人员可以理解,上述实施例中的方法的全部或部分可以通过一或多个计算机程序来指示相关硬件而实现。此外,一个或多个程序可以存储在非暂时性计算机可读存储介质中。当执行一个或多个程序时,执行上述实施例中对应的方法的全部或部分。对存储、存储器、数据库或其他介质的任何引用可以包括非暂时性和/或暂时性存储器。非暂时性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、固态驱动器(ssd)等。易失性存储器可以包括随机存取存储器(ram)、外部高速缓存存储器等。
64.处理单元110(和上述处理器)可以包括中央处理单元(cpu),或者是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga),或者是其他可编程逻辑器件、分立门、晶体管逻辑器件和分立硬件组件。通用处理器可以是微处理器,可以是任何常规处理器。存储单元120(以及上述存储器)可以包括诸如硬盘和内部存储器的内部存储单元。存储单元120还可以包括外部存储设备,例如插入式硬盘、智能媒体卡(smc)、安全数字(sd)卡和闪存卡。
65.实施例中描述的示例性单元/模块和方法/步骤可以通过软件、硬件或者软件和硬件的结合来实现。这些功能究竟是通过软件实现还是通过硬件实现,取决于技术方案的具体应用和设计约束。上述的人体躺姿检测方法及移动机器100可以通过其他方式实现。例如单元/模块的划分仅仅是逻辑上的功能划分,实际实现中还可以采用其他划分方式,即可以将多个单元/模块组合或集成到另一个系统中,或者某些特征可以被忽略或不执行。此外,上述相互耦合/连接可以是直接耦合/连接或通信连接,也可以是通过一些接口/设备的间接耦合/连接或通信连接,还可以是电气、机械或其他形式。
66.上述实施例仅用于说明本发明的技术方案,并不用于限制本发明的技术方案。虽然本发明已经结合上述实施例进行了详细说明,但是上述各个实施例中的技术方案仍然可
以进行修改,或者部分技术特征可以等效替换,从而使这些修改或替换没有使相应技术方案的实质脱离本发明各实施例的技术方案的精神和范围,均应包含在本发明保护的范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献