[0029] 下面结合附图,对具体实施方式说明如下。
[0030] 如图1所示,本发明的装置用于通过操作系统实现用户姿态检测的移动终端5,该移动终端中包含姿态传感模块1、用户配置输入模块2、告警信号输出模块3、操作系统运行装置4、应用程序模块71,72,…,7N。姿态传感模块1产生姿态传感信号S。用户配置输入模块2识别用户操作,将用户指令I传递至应用程序模块71,72,…,7N和/或操作系统运行装置4。
告警信号输出模块3发出用户感官可识别的信号。
[0031] 本发明所述操作系统运行装置,是加载和运行移动终端操作系统的装置,例如加载和运行Android、iOS、黑莓操作系统及其替代程序。本发明所述应用程序模块71,72,…,7N,是加载和运行应用程序的装置,特别是加载和运行一些用户可能长时间连续使用的应用程序,如视频播放器、网页浏览器、阅读软件等。本发明所述应用程序模块、操作系统运行模块等各组成部分能用CPU系统、可编程逻辑电路和存储器的组合来实现。
[0032] 图1进一步描述了本发明提出的操作系统运行装置4,包含传感模块驱动单元41、输入模块驱动单元42、输出模块驱动单元43。传感模块驱动单元41控制姿态传感模块1工作、并将姿态传感模块1输出的姿态传感信号S转换为姿态数据D。输入模块驱动单元42控制用户配置输入模块工作,识别用户指令I,产生用户指令数据;输出模块驱动单元43输出信号O,包含报警数据A和/或姿态矫正数据R,控制告警信号输出模块3工作,
[0033] 操作系统运行装置4中还包含姿态服务模块40,姿态服务模块40中还包含姿态检测单元46,读取传感模块驱动单元输出的姿态数据D、识别用户面部的位置、产生姿态参数G。
[0034] 所述姿态服务模块40(或应用程序模块71,72,…,7N中至少一个)还包含姿态比较单元47,将所述姿态参数G与对应的门限值进行比较;所述姿态服务模块40(或应用程序模块71,72,…,7N中至少一个)还包含姿态提醒单元48,产生报警数据A和/或姿态矫正数据R。所述姿态服务模块40(或者应用程序模块71,72,…,7N中至少一个)产生报警数据A和/或姿态矫正数据R,启动输入模块驱动单元。
[0035] 操作系统运行装置中还包含应用数据库44,所述应用数据库44存储工作数据和默认设置数据。
[0036] 所述应用数据库44存储的工作数据,是指在本发明的装置工作中改变的数据,包括“应用程序状态表”、“姿态检测标志位”、“应用程序注册表”及所述姿态参数等。
[0037] 应用程序状态表,包含终端中应用程序模块工作状态的信息,例如该应用程序模块是否运行、是否占据显示屏等。
[0038] 应用程序注册表,包含有检测必要的应用程序模块名称或系统分配的某种标识符。应用程序模块71,72,…,7N可以通过应用程序编程接口45把自己的名称或标识符添加到应用数据库44中。
[0039] 姿态检测标志位,是指操作系统运行装置4中姿态服务模块40是否运行的标志。
[0040] 所述应用数据库44存储的默认设置数据,包含以下一种或多种:姿态检测标志位、应用程序注册表、门限值。这些数据也可以通过手动设置,其中姿态检测标志位和应用程序注册表还可能在工作中被重新设置。
[0041] 操作系统运行装置4中还包含应用程序编程接口45(API)。所述应用程序模块有一个或多个,所述应用程序模块71,72,…,7N装载并运行应用程序,通过所述应用程序编程接口45调用所述传感模块驱动单元41、输入模块驱动单元42、输出模块驱动单元43、姿态服务模块40、应用数据库44等组件。
[0042] 作为本发明进一步优化的实施例,图2~3所示方案中,传感信号S进一步包含图像信号S1和角度传感信号S2。姿态数据D进一步包含用户姿态数据D1和本机姿态数据D2。姿态参数G进一步包含相对姿态参数G1和绝对姿态参数G2。G1、G2对应的门限值分别为T1、T2。
[0043] 如图2所示,是本发明操作系统运行装置和应用程序模块的一个实施例,姿态传感模块1使用摄像头方案,包含一只或多只前置摄像头11,产生图像信号S1。传感模块驱动单元41中包含摄像头驱动单元411。姿态检测单元46读取摄像头驱动单元411输出的用户姿态数据D1,检测用户面部与显示屏6(图4~5)的相对位置,产生相对姿态参数G1。姿态服务模块40中还包含姿态比较单元47,将所述姿态参数G1与对应的门限值T1进行比较。
[0044] 操作系统运行装置4或应用程序模块(例如71)中还包含姿态提醒单元,产生报警数据A和/或姿态矫正数据R。
[0045] 如图3所示,是本发明操作系统运行装置和应用程序模块的一个实施例,姿态传感模块1使用摄像头和本机姿态传感器相结合的方案。其中,姿态传感模块1包含一只或多只前置摄像头11,产生图像信号S1。姿态传感模块中还包含能检测显示屏所在平面倾角的本机姿态传感器12(如重力传感器,又称为倾角传感器),产生角度传感信号S2。传感模块驱动单元41中包含摄像头驱动单元411和本机姿态传感器(重力传感器、倾角传感器)的驱动单元412。姿态检测单元46读取摄像头驱动单元输出的用户姿态数据D1,检测用户面部与显示屏6(图4~5)的相对位置,产生相对姿态参数G1。姿态检测单元46读取本机姿态传感器驱动单元412输出本机姿态数据D2,确定本机显示屏6所在平面的倾角α。姿态检测单元46根据相对姿态参数G1和本机显示屏6所在平面的倾角α,产生绝对姿态参数G2。
[0046] 操作系统运行装置或应用程序模块中还包含姿态比较单元,将所述姿态参数G1、G2与对应的门限值T1、T2进行比较;操作系统运行装置或应用程序模块中还包含姿态提醒单元,产生报警数据A和/或姿态矫正数据R。
[0047] 在上述各方案中所提到的“姿态参数”,可以用多种方法定义,以下举例说明定义和分析的方法。本发明的装置和方法不限定姿态参数的具体方式。
[0048] 例如一种姿态参数是:用户面部参考点与终端显示屏参考点之间的水平距离L1、垂直距离L2,用户面部中间线和显示屏之间的夹角β,用户面部中间线和水平面之间的夹角γ。其中L1、L2、β反映了用户面部与终端显示屏之间的相对位置关系,因此称为“相对姿态参数G1”,其中γ反映了用户面部与终端显示屏无关的位置参数,称为“绝对姿态参数G2”。即:G1=[L1,L2,β],G2=γ=α+β。参数G1可以运用摄像头驱动单元输出的用户姿态数据D1使用单目机器视觉、双目机器视觉或多目机器视觉的方法得到,G2结合G1和本机显示屏所在平面的倾角α得到。
[0049] 再例如一种姿态参数是:在摄像头图像数据用户面部轮廓线中占据的范围Af、及面部中间线偏离图像中间线的程度d,用户面部中间线和水平面之间的夹角γ,也可以构建相对姿态参数,即G1=[Af,d,β]。参数G1可以运用摄像头驱动单元输出的用户姿态数据D1使用图像数据分析的方法得到。绝对姿态参数仍可采用G2=γ=α+β。
[0050] 对应的门限值T是指G1、G2中标定正确姿态的门限值,例如L1、L2、Af、α、β、γ的最大值或最小值。按照前述姿态参数的实施例,相对姿态参数的门限值T1=[Min(L1),Max(L1),Min(L2),Max(L2),Min(β),Max(β)],或者T1=[Min(Af),Max(Af),Max(d),Min(β),Max(β)];绝对姿态参数的门限值T2=[Min(α),Max(α),Min(γ),Max(γ)]。所谓用户姿态不正确,是指用户的姿态参数超出门限值的范围。
[0051] 图4和图5表示摄像头和本机姿态传感器在移动终端的安置方案。其中,图4表示摄像头11在终端设备5的面板上的位置和功能,一个移动式智能终端5设备使用时大致呈平板状,有一个或多个面向用户的摄像头11。还要至少包含一个面向用户的显示屏6,使用户在面向设备阅读或工作时面向摄像头11、处于摄像头11的图像采集空间中。图5表示姿态传感器12在终端设备5上的位置和功能。该设备的硬件包含至少一个面向用户的显示屏6和一个能检测出显示屏所在平面倾角的传感器12。该传感器12安装在终端设备中,与显示屏6具有固定的位置关系。通过该传感器输出的数据,可以得到终端设备的显示屏所在平面的倾角(α),即终端设备的显示屏所在平面和水平面之间的夹角。
[0052] 图6是操作系统运行装置和应用程序模块实现用户姿态检测的工作过程,包含如下步骤:
[0053] 第101步、配置输入:应用程序模块71,72,…,7N和/或操作系统运行装置4接受来自用户配置输入模块指令数据I;
[0054] 第102步、姿态检测:传感模块驱动单元41控制姿态传感模块采集传感信号S1、S2,并转换为姿态数据D1、D2;姿态服务模块40读取传感模块驱动单元41输出的姿态数据D1、D2,姿态检测单元对姿态数据进行分析,得出相对姿态参数G1和/或绝对姿态参数G2;
[0055] 第103步、姿态比较:姿态比较单元将所述用户姿态参数G1、G2和门限值T1、T2进行比较,姿态正常时转第102步,否则第104步;
[0056] 第104步、姿态提醒:在所述用户姿态参数超过门限值时,姿态提醒单元生成报警数据A和/或姿态矫正数据R;告警信号输出模块向客户发出用户感觉可识别的信号,包含报警信息和/或矫正建议,告警输出后,转第102步。
[0057] 在上述方法中,姿态检测的步骤在操作系统运行装置4中完成,姿态比较、姿态提醒的步骤可以由操作系统运行装置中的姿态服务模块40完成,也可以由应用程序模块71,72,…,7N完成。在上述方法中,为了降低检测的频率,从第103步、第104步回归到第102步时,经过一个延时步骤(第105步)。
[0058] 图7是移动终端中操作系统运行装置和应用程序模块的实施例,操作系统运行装置实现姿态检测、姿态比较和姿态提醒。
[0059] 操作系统运行装置4中包含传感模块驱动单元41、输入模块驱动单元42、输出模块驱动单元43,传感模块驱动单元输出传感控制信号、输入传感信号S;输入模块驱动单元输出配置控制信号、接收用户指令I;输出模块驱动单元输出告警控制信号、以及包含报警数据A和/或姿态矫正数据R的输出信号O。
[0060] 操作系统运行装置4中还包含姿态服务模块40,姿态服务模块40中包含姿态检测单元46、姿态比较单元47、姿态提醒单元48。所述姿态检测单元46启动传感模块驱动单元41,读取传感模块驱动单元41输出的姿态数据D,识别用户面部的位置,产生姿态参数G。所述姿态比较单元47,将所述姿态参数G与对应的门限值T进行比较;所述姿态提醒单元48,在用户姿态不正确时产生报警数据A和/或姿态矫正数据R,并启动所述输出模块驱动单元。
[0061] 操作系统运行装置4中还包含应用数据库44,所述应用数据库44存储工作数据和默认设置数据。
[0062] 作为本发明进一步优化的实施例,图7所示操作系统运行装置还包含以下部分:
[0063] 姿态服务模块40中还包含数据扫描单元49,所述数据扫描单元49查询所述应用数据库中的工作数据,按照所述工作数据的指示,在需要启动姿态检测过程时,触发姿态检测单元46。
[0064] 操作系统运行装置4中还包含应用程序编程接口(API)45,所述应用程序模块71,72,…,7N通过所述应用程序编程接口45调用所述应用数据库44,对其中的数据进行设置或清除。
[0065] 图8是移动终端中操作系统运行装置和应用程序模块的实施例,操作系统运行装置进行姿态检测和姿态比较。
[0066] 操作系统运行装置4中包含传感模块驱动单元41、输入模块驱动单元42、输出模块驱动单元43,传感模块驱动单元输出传感控制信号、输入传感信号S;输入模块驱动单元输出配置控制信号、接收用户指令I;输出模块驱动单元输出告警控制信号、以及包含报警数据A和/或姿态矫正数据R的输出信号O。
[0067] 操作系统运行装置4中还包含姿态服务模块40,姿态服务模块40中包含姿态检测单元46、姿态比较单元47,启动传感模块驱动单元41,读取传感模块驱动单元41输出的姿态数据D,识别用户面部的位置,产生姿态参数G;所述姿态比较单元47将所述姿态参数G与对应的门限值T进行比较,在姿态参数超出门限值时通过应用程序编程接口45向至少一个所述应用程序模块71,72,…,7N发出姿态超限通知。
[0068] 操作系统运行装置4中还包含应用数据库44,所述应用数据库44存储工作数据和默认设置数据。
[0069] 至少一个所述应用程序模块(例如71)中包含姿态提醒单元48、输入输出处理单元70。所述姿态提醒单元48产生报警数据A和/或姿态矫正数据R。所述输入输出处理单元70,通过应用程序编程接口45设置应用数据库44中的工作数据、接收来自操作系统运行装置4的姿态超限通知、启动输入模块驱动单元42、启动输出模块驱动单元43。
[0070] 作为本发明进一步优化的实施例,图8中所示操作系统运行装置4,还包含以下部分:
[0071] 姿态服务模块40中还包含数据扫描单元49,所述数据扫描单元查询所述应用数据库44中的工作数据,按照所述工作数据的指示,在需要启动姿态检测过程时,触发姿态检测单元46。
[0072] 图9是移动终端中操作系统运行装置和应用程序模块的实施例,操作系统运行装置进行姿态检测。
[0073] 操作系统运行装置4中包含传感模块驱动单元41、输入模块驱动单元42、输出模块驱动单元43,传感模块驱动单元输出传感控制信号、输入传感信号S;输入模块驱动单元输出配置控制信号、接收用户指令I;输出模块驱动单元输出告警控制信号、以及包含报警数据A和/或姿态矫正数据R的输出信号O。
[0074] 操作系统运行装置4中还包含姿态服务模块40,姿态服务模块40中包含姿态检测单元46,所述姿态检测单元46启动传感模块驱动单元41,读取传感模块驱动单元41输出的姿态数据D,识别用户面部的位置,产生姿态参数G,将所述姿态参数保存在应用数据库中。
[0075] 操作系统运行装置4中还包含应用数据库44,所述应用数据库44存储工作数据和默认设置数据。
[0076] 操作系统运行装置4中还包含应用程序编程接口(API)45。
[0077] 作为本发明进一步优化的实施例,图9中所示操作系统运行装置4,还包含以下部分:
[0078] 姿态服务模块40中还包含数据扫描单元49,所述数据扫描单元查询所述应用数据库44中的工作数据,按照所述工作数据的指示,在需要启动姿态检测过程时,触发姿态检测单元46。
[0079] 本发明所述应用程序模块(例如71)中包含姿态比较单元47、姿态提醒单元48、输入输出处理单元70。姿态比较单元47将所述姿态参数G与对应的门限值T进行比较;所述姿态提醒单元48产生报警数据A和/或姿态矫正数据R。所述输入输出处理单元70,通过所述应用程序编程接口45设置或读取应用数据库44中的工作数据、启动输入模块驱动单元42、启动输出模块驱动单元43。
[0080] 在图7~9所示实施例中,当姿态服务模块中包含数据扫描单元49时,应用程序模块和数据扫描单元对工作数据处理过程举例如下:
[0081] 过程一:应用程序模块71,72,…,7N中的至少一个(例如71)占据显示屏时,通过应用程序编程接口45修改应用数据库44中的“应用程序状态表”,写入该应用程序模块的名称(或系统分配的某种标识符)。用户通过用户配置输入模块2设置“应用程序列注册表”,某些应用程序模块也可以自己主动修改“应用程序注册表”,将自己加入到这个列表中。姿态服务模块40中的数据扫描单元49查询应用数据库的工作数据,所述工作数据包含应用程序状态表和应用程序注册表;按照所述工作数据的指示,是指所述数据扫描单元从应用程序状态表中获得正在使用显示屏的应用程序模块名称或标识符、检查所述应用程序模块是否在应用程序注册表中,如是,则需要启动姿态检测过程。
[0082] 过程二:操作系统运行装置4提供的应用程序编程接口45用于设置或清除“姿态检测标志位”。应用程序模块在占用显示屏且有必要对用户进行姿态检测时,调用该应用程序编程接口,设置该标志位,从而激活姿态检测功能。姿态服务模块40中的数据扫描单元49查询应用数据库的工作数据,所述工作数据包含姿态检测标志位;按照所述工作数据的指示,是指所述数据扫描单元查询所述姿态检测标志位是否被设置,如是,则需要启动姿态检测过程。应用程序模块退出或其它不需要对姿态进行监测的情况发生时清除该标志位。
[0083] 针对以上各个实施例,具体说明用户功能设置方案。操作系统运行装置4和至少一个应用程序模块(例如71)接受来自用户配置输入模块指令数据I。在输入模块驱动单元42的控制下,识别用户配置输入模块2输入的用户指令。输入模块驱动单元既可以由操作系统运行装置4启动,也可以由应用程序模块(例如71)中输入输出处理单元70通过应用程序编程接口45启动。指令数据至少包括以下指令中一种:1.应用程序选择指令,用于设置“应用程序注册表”。只有前台运行这些应用程序时该后台服务才进行姿态检测。某些应用程序也可以自己主动加入到这个列表中。通过设置让该功能在某些应用中不被启用。如前台应用程序是接听、拨打电话、听收音机或其它音频内容时,由于此时用户不会长时间关注显示屏,此时不必要开启本功能。2.启动指令,用于设置“姿态检测标志位”。直接通过设置该标志位启动或禁止姿态检测功能。3.门限指令,用于设置姿态参数门限值。通过设置门限值适应不同用户的需求。在没有用户指令时,上述指令数据在操作系统运行装置4的应用数据库44中存在默认设置数据。
[0084] 针对以上各个实施例,具体说明告警输出方案。在操作系统运行装置4中输出模块驱动单元43的控制下,告警信号输出模块3处理报警数据A和姿态矫正数据R。报警数据是指用户姿态参数超出门限值时生成的,包含报警的方式、报警的强度、报警的时间长短等特征,这些数据是根据用户偏离正确姿态的程度和时间来确定的。姿态矫正数据是根据姿态参数和门限值之间的差,得到如何改变用户姿态以达到正确姿态的数据,包括距离、角度、及调整的方向等信息。报警输出模块输出的信号是用户感官可识别的信号,包含以下一种或多种类型:通过音频模块发出来的提示音、通过振动设备发出来的振动,通过显示屏给出的图形或文字提示。