基于手机内置传感器的用户行为状态判断方法
技术领域
本发明涉及一种基于手机内置传感器的用户行为状态判断方法,特别是涉及对线性加速度传感器和重力加速度传感器数据进行采集、稳定频率、滤波去噪、计算以及分类达到状态判断的技术。
背景技术
随着智能手机的普及以及传感器技术的进步,越来越多的手机内置各种传感器,这些传感器蕴藏的大数据可以帮助用户/第三方APP更方便的分析用户日常行为,对第三方APP来说可以了解用户当前行为状态,基于此对用户做场景化推荐/避免打扰用户;对用户来说,可以分析每天时间分配,合理安排自身时间规划。
目前手机只是配备了传感器,但是不管对android系统还是对ios系统来说,并不知道不同传感器数据对应的用户行为,对第三方APP也是如此。因此,如果能通过传感器蕴含的丰富信息判断出用户当前的行为状态,对诸如驾驶类、时间管理类等场景类APP有重要意义。
发明内容
本发明主要解决的技术问题是提供了一种手机内置传感器可以精确判断用户行为状态的方法,该方法利用决策树方法,实现了用户行为状态识别效果。
其中,本发明的主要构思来源于个体不同行为状态会导致传感器不一样的受力,通过分析传感器的受力情况(三轴线性加速度和重力加速度数据),对传感器数据做相应的指标统计并根据预置的决策树阈值,动态的判断用户当前的行为模式;另外,本发明在使用传感器数据之前对传感器数据进行滤波处理,降低系统噪声和观测噪声对本发明精度的影响;第三,本发明无需预置个体用户行为数据作为训练,甚至可以扩展到一边判断一边学习(通过分析当前状态下用户的GPS数据、WIFI连接状态判断当前系统状态判断的正确性)以提高判断精度;最后,本发明提供了一种在IOS和android平台通用的状态识别方法,降低了APP开发的成本。
本发明提供一种手机内置传感器可以精确判断用户行为状态的方法,其包括以下模块:频率设定模块,用于设定手机采集传感器数据的频率,所述传感器指的是线性加速度传感器和重力加速度传感器;滤波器模块,所述滤波器模块针对车辆行驶过程中的频谱特征对原始传感器数据进行滤波降噪处理;处理器模块,所述处理器模块根据用户不同行为模式,通过计算所述线性加速度传感器和重力加速度传感器上下四分位数之差、概率密度以及波动大小作为状态判断依据;分类器模块,所述分类器模块利用决策树方法动态判断用户行为,该决策树是由C5.0算法对预先收集的训练数据进行机器学习得到。
优选的,所述频率设定模块首先将Android手机传感器频率设置为game模式(频率一般在30HZ到50HZ范围内波动),将IOS手机传感器频率设置为35HZ(频率一般在32HZ到35HZ范围内波动),从原始传感器频率中采样得到稳定的30HZ传感器数据。
优选的,所述滤波器模块为巴特沃斯低通滤波器,所述巴特沃斯低通滤波器根据车辆行驶过程中的频谱特征设计,所述巴特沃斯低通滤波器对线性加速度数据和重力加速度进行滤波降噪处理,提高判断精度。
优选的,所述处理器模块从起始时间t0开始,将5秒内的数据(150条数据)作为判断数据源进行一次判断,分别计算这150条数据三轴线性加速数据的上下四分位点之差、三轴线性加速数据的值在[-0.05,0.05]之间的概率密度和,三轴线性加速数据的值在[-0.3,0.3]之间的概率密度和,三轴线性加速度和重力加速度的标准差。
优选的,分类器模块通过预置的决策树对上述指标进行分类,判断用户当前行为状态,其中预置的决策树由C5.0算法对训练数据学习得到。
优选的,所述基于手机内置传感器判断用户行为状态系统利用训练数据预先设计分类器决策树,无需用户预先配置自身行为数据。
优选的,上述三个模块通过C语言代码实现之后,IOS系统支持直接调用本方法的C代码实现实现状态判断功能,android系统使用JNI桥接后也可调用本方法的C代码实现状态判断功能。
本发明提供了一种IOS和android平台通用的基于手机内置传感器判断用户行为状态方法,具体包括以下步骤:
步骤1,设定手机采样频率,并对手机采集数据进行抽样处理,以稳定数据输出频率;
步骤2,对加速度传感器数据做如下处理:
2-1)设计适用于状态判断的巴特沃斯低通滤波器;
2-2)对原始线性加速度信号和重力加速度信号进行滤波处理以消除背景噪声干扰;
步骤3,计算用户行为状态判断关键区分指标,包括三轴线性加速数据的上下四分位点之差、三轴线性加速数据的值在[-0.05,0.05]之间的概率密度和,三轴线性加速数据的值在[-0.3,0.3]之间的概率密度和以及三轴线性加速度和三轴重力加速度的标准差,其中:
3-1)计算上、下四分位数位置的公式分别为1+(n-1)×0.75和1+(n-1)*0.25;
3-2)计算三轴线性加速度的概率密度公式为
其中K为核密度函数;
3-3)三轴线性加速度的波动幅度计算公式为
上述公式中涉及的变量的具体含义如下:
n为任一轴的线性加速度样本数;i为加速度样本数内的任一值,i的取值范围为[1,n];h为带宽;X为待估概率密度的点;Xi代表任一样本;μ三轴加速度各轴数据的平均值。
作为本发明的进一步优化方案,步骤1采用递归法对原始数据进行抽样以稳定数据频率;
作为本发明的进一步优化方案,步骤2中根据车辆行驶时的频谱范围特征构造巴特沃斯低通滤波器实现降噪;
作为本发明的进一步优化方案,步骤3处理原始数据之前对原始数据有效性进行判断,如果原始数据中x轴的线性加速度为0的条数占比超过10%或者原始数据不到150条,则当前数据不可用,当前用户状态为未知;
作为本发明的进一步优化方案,步骤3采用高斯分布函数作为核密度估计函数;
本发明上述各方面与现有技术相比,首先本发明通过对用户不同行为时手机的受力状态进行分析,构建有效的分类器指标体系;其次,本发明采用C5.0算法对训练数据进行学习构建决策树,避免因训练数据分布不均匀导致的决策树偏差;第三,本发明的状态判断方法预置了决策树,无需预置用户行为数据进行训练,提高了本发明的实用性;最后,本发明通过C语言代码实现之后,IOS系统支持直接调用本方法的C代码实现计步,android系统使用JNI桥接后也可调用本方法的C代码实现计步,不需要额外的硬件设备。
附图说明
图1是展示了本发明的方法流程图。
图2是展示了本发明设计滤波器使用前后行驶过程中的加速度值的对比。
图3是展示了上下四分位点之差、三轴线性加速度数据在[-0.05,0.05]之间的概率密度和以及三轴重力加速度的标准差对状态的区分度。
图4是展示了本发明内置的状态判断决策树。
具体实施方式
下面结合附图1介绍本发明的具体实施方式,图中每个方框代表一个功能模块或一段可执行代码,这些模块是按照图中标注顺序发生,另外,图中所有模块都可以通过代码在IOS和android平台上实现。
首先确定所需原始数据,系统采集的线性加速度数据和重力加速度数据均包括x、y和z三轴;
其次确定手机数据的频率,IOS平台可以直接设置需要的传感器数据频率,android平台传感器频率分为Normal、UI、Game和Fast四档,对应的极限频率分别在5HZ、15HZ、50HZ和100HZ左右,因此对于IOS设备来说,设定系统采样频率为35HZ,对于android设别来说,设定系统采样频率为Game;
再次对手机采样得到的数据做递归采样以稳定数据频率为30HZ,所谓递归采样,即将采样问题进行递归分解。例如系统返回数据实际某秒频率为51HZ,则将采样分解为前后25个点各采15个点,去除中间点;25个点采15个点进一步可以分解为每5个点采3个点;5个点采3个点可进一步分解为前后2个点各采1个点,保留中间点;如此递归采样完成。若系统返回数据某秒频率低于30HZ,则该秒因数据频率过低不判断用户当前状态;
设计巴特沃斯低通滤波器,巴特沃斯低通滤波器可用如下振幅的平方对频率的公式表示:
其中,ωc是滤波器截断频率,n为滤波器阶数。ωc和n的计算公式分别为:
计步器滤波器截断频率滤波器关键参数如下:采样频率设为30HZ,通带截止频率wp为5HZ,通带衰减rp小于0.5db,阻带始点频率ws为8HZ,阻带衰减rs大于150db。判断本段手机收集数据时间长度,若达不到150个点,则因收集数据时间过短不判断用户当前状态;若等于150个点,则对线性加速度数据和重力加速度数据进行滤波去噪。由于车正常行驶的震动频率介于5至8HZ,本发明设计滤波器能有效去除高频背景噪声,滤波效果如图2所示。
接下来计算滤波后三轴线性加速度数据的上下四分位点之差、三轴线性加速度数据在[-0.05,0.05]之间的概率密度和、三轴线性加速度数据在[-0.3,0.3]之间的概率密度和以及三轴线性加速度和三轴重力加速度的标准差,上下四分位点之差、三轴线性加速度数据在[-0.05,0.05]之间的概率密度和以及三轴重力加速度的标准差对状态的区分度见图3;
根据预置决策树对上述结果进行判断,决策树见附图4;
这里需要计算三轴线性加速度数据的上下四分位点之差、三轴线性加速度和三轴重力加速度的标准差是因为正常情况下人的不同行为状态对应的手机传感器震动幅度并不一致,走路的时候手机震动幅度最大,其次依次是开车、玩手机和静默;
这里需要计算三轴线性加速度数据在[-0.05,0.05]之间的概率密度和是因为在静默状态下,手机的传感器数据在此范围内波动,而走路时传感器数据几乎不会出现在这个范围内,开车和玩手机部分时间的传感器数据出现在此范围内,此范围可以比较准确的判断出走路和静默;
这里需要计算三轴线性加速度数据在[-0.3,0.3]之间的概率密度和是因为在玩手机状态下,手机的传感器数据在此范围内波动,而开车的时候,传感器数据出现在这个范围内的概率会小很多,此范围可以部分判断出开车和玩手机;
本领域的技术人员还将理解,上述状态判断装置包括但不限于此,任何理解本发明的技术人员在本发明揭露的技术范围之内,可以理解或者想到的变换和替换,都应该涵盖在本发明的保护范围之内。