一种动态定位模拟人体移动算法的无感考勤方法及其系统与流程

文档序号:30510948发布日期:2022-06-25 01:52阅读:204来源:国知局
一种动态定位模拟人体移动算法的无感考勤方法及其系统与流程

1.本发明涉及移动互联网无感考勤技术领域,具体涉及一种动态定位模拟人体移动算法的无感考勤方法以及应用该方法的无感考勤系统。


背景技术:

2.传统、单一的考勤方式,存在一些问题,如刷卡考勤方式,存在忘记打卡,替人打卡的情况;人脸识别考勤,存在人脸误识、人脸作弊等情况;移动app定位打卡,也存在忘记打卡的情况。上述问题降低了考勤管理效率和准确性,也给用户带来了不好的用户体验。
3.伴随移动互联网高速发展的近十年、无线移动办公已然成为时代潮流、“无感考勤”是一款移动办公软件的必备品,可以让员工无忧自由上下班、让人事月末弹“纸”一键化。
4.由于室内定位这个业内难题以及手机系统获取的定位点极不精准,如何提高无感考勤的准确性是一个必须要攻克的技术问题。


技术实现要素:

5.为了克服现有技术的不足,本发明的目的在于提供一种动态定位模拟人体移动算法的无感考勤方法及其系统,该方法和系统主要解决了现有考勤都基于公司固定硬件设备、上下班人员密集拥挤影响效率的问题,可以确保员工精准且准时地无忧上下班,能够有效提升考勤管理效率和准确性,进而提升用户的用户体验。
6.为解决上述问题,本发明所采用的技术方案如下:
7.一种动态定位模拟人体移动算法的无感考勤方法,包括以下步骤:
8.判断考勤区域内是否检测到用户的位置信息,如是,实时检测用户在考勤区域内的网络信号;当网络发生变化后,向考勤系统上报当前位置信息;将接收到的位置信息进行数据滤波平滑算法处理;基于平滑滤波后的数据,根据用户速度判断用户位置点之间的距离是否符合预设步行速率;如是,根据用户位置点做圆点对圆点的直线距离算法,判断上报的位置点是否在最大考勤范围内,如是,则进入打卡流程。
9.进一步的方案是,当用户网络变化为移动网络信号-考勤点无线网络信号,即可确定用户为上班考勤状态,当用户网络信号由移动网络信号变为考勤点无线网络信号后,向考勤系统上报当前位置信息;当用户网络变化为考勤点无线网络信号-移动网络信号,即可确定用户为下班考勤状态,当用户网络信号由考勤点无线网络信号变为移动网络信号后,向考勤系统上报当前位置信息。
10.更进一步的方案是,在将接收到的位置信息进行大数据滤波算法处理之前,首先,建立系统模型,其包括:设置预参数,根据第k-1时刻的状态预测第k时刻的状态x(k|k-1),根据第k-1时刻的系统预测误差,估计第k时刻的系统预测误差p(k|k-1),计算卡尔曼增益kg,计算系统最优估算值x(k|k),计算系统当前适合的系统预测误差p(k|k)。
11.更进一步的方案是,当向考勤系统上报当前位置信息时,根据用户速度抛弃异常
点:判断用户前一个位置点是否为空,如是,判断该位置是否为异常点,如是,判断重大异常值是否为空,如是,基于圆点距离算法计算当前上报位置点与异常点的距离a,判断距离a是否小于设置值,如是,则认为该位置为异常点并返回空位置;若距离a不小于设置值,判断前一个正确位置点是否为空,如是,则认为该位置异常并返回空位置,如不是,基于圆点距离算法计算上一个正确位置点和当前上报位置点的距离,根据该距离与两点时间差得出速度x,判断速度x是否小于设置速度speed,如是,则确定当前位置点不为异常点且上一个位置点等于当前上报位置点,并返回位置结果。
12.更进一步的方案是,如该位置不为异常点,计算当前上报位置点和前一个位置点的时间差t,判断时间差t是否小于2秒,如不是,判断时间t是否大于或等于最大设置时间,如是,则前一个位置点等于当前上报位置点,并返回前一个正确位置点作为结果;若时间差t小于最大设置时间,基于圆点距离算法计算上一个正确位置点和当前上报位置点的距离,根据该距离与两点时间差得出速度x,判断速度x是否大于设置速度speed,如是,则确定为严重异常,并返回空位置。
13.更进一步的方案是,若速度x不大于设置速度speed,判断当前上报位置点精度是否大于10并且当前上报位置点精度*0.5是否大于两点距离值,如是,则可确定为无效移动并返回上一个位置点;若当前上报位置点精度小于10并且当前上报位置点精度*0.5小于两点距离值,则可确定当前上报位置点等于上一个位置点。
14.更进一步的方案是,在返回位置结果后,首先,判断该位置点是否为空位置,如是,通过卡尔曼滤波算法对该位置信息进行滤波处理,并返回滤波后的位置信息,如不是,重置初始化值,并返回前一个位置点。
15.更进一步的方案是,在上述步骤中,设置参数speed、max_background_time以及fatalexception,其中,speed为最大速度;每次接收到最新位置信息时计算速度,如果速度大于180m/s,则认为当前上报位置点出现重大异常,记录最新接收到的位置为重大异常点,标记fatalexception为true,返回上一个正常位置,否则正常返回最新上报的位置信息;max_background_time为最大后台时间;当最新接收到的位置信息与前一个位置信息间隔时间超过180s,则重置前一个位置和前一个正确位置为最新接收到的位置;fatalexception为重大异常标记,当该标记为true时,每次接收到最新位置信息时计算速度,如果小于speed则异常恢复,将该标记设为false,设置前一个位置信息为最新接收到的位置信息并返回该位置信息。
16.更进一步的方案是,所述进入打卡流程,包括:判断用户是否存在最近考勤点,如是,判断用户是否开启自动打卡,如是,判断位置点在考勤范围内或考勤范围外,若该位置点在考勤内,判断用户今日是否请假,如是,取消位置上报;如不是,判断用户今日是否打卡,如是,则取该用户最近一条打卡记录,并且判断是否为下班卡,如是,则自动打卡,并取消位置上报;若该用户最近一条打卡记录不为下班卡,则判断是否为上班卡并且是否匹配考勤点无线网络信号,如是,则取消位置上报;如不是,判断两点距离是否小于n*100,如是,记录本次网络变化并上报周期。
17.一种动态定位模拟人体移动算法的无感考勤系统,包括;app客户端、考勤系统以及考勤点无线网络,在指定考勤区域内发生网络变化后,app客户端通过国密算法sm2将加密后的位置数据触发上报至考勤系统;在考勤系统第一层收到用户上报数据后,经过国密
算法sm2解密后沿下透传;在考勤系统第二层收到解密后的用户上报数据后,将该数据进行数据滤波平滑算法处理;在考勤系统第三层收到平滑滤波后的数据,根据用户速度判断用户位置点之间的距离是否符合预设步行速率,否则丢弃位置点;在接收到考勤系统第三层传输的数据后,通过考勤系统第四层对该数据做圆点对圆点的直线距离算法,并进行打卡流程;其中,考勤系统为提供位置计算的后端服务器系统,考勤点无线网络为app客户端在工作场地的蓝牙/wifi热点网络。
18.由此可见,在本发明中,由于每一个位置上报点的两个相邻点都遵循一个弧线的规则,在不确定的周期内会回到用户所在准确位置点,本发明通过计算平滑这些上报点、再通过点与点的算法计算出人体运动的真实轨迹,从而实现用户在指定考勤范围内智能无感考勤,避免了传统、单一考勤方式的缺点,在提升员工体验的同时,降低考勤管理成本、提升考勤管理效率。
19.因此,相比现有技术,本发明可以实现上下班进出考勤点无感打卡,无需员工关注考勤备要;上报移动定位点数据做滤波算法渗透位置点平滑;拾取用户上下班步行数据后经均衡算法得出移动速度;取用用户移动速度为条件通过位置吃点算法实现精确打卡。
20.下面结合附图和具体实施方式对本发明作进一步详细说明。
附图说明
21.图1是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例的流程图。
22.图2是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中关于滤波平滑算法的流程原理图。
23.图3是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中根据用户速度抛弃异常点的第一流程图。
24.图4是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中根据用户速度抛弃异常点的第二流程图。
25.图5是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中打卡流程中关于位置点在考勤范围内的流程图。
26.图6是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中打卡流程中关于位置点在考勤范围外的流程图。
27.图7是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中判断异常点条件的原理图。
28.图8是本发明一种动态定位模拟人体移动算法的无感考勤方法实施例中圆点对圆点的直线距离算法的原理图。
具体实施方式
29.一种动态定位模拟人体移动算法的无感考勤方法实施例:
30.如图1所示,一种动态定位模拟人体移动算法的无感考勤方法,包括以下步骤:
31.步骤s1,判断考勤区域内是否检测到用户的位置信息,如是,实时检测用户在考勤区域内的网络信号。
32.步骤s2,当网络发生变化后,向考勤系统上报当前位置信息。
33.步骤s3,将接收到的位置信息进行数据滤波平滑算法处理。
34.步骤s4,基于平滑滤波后的数据,根据用户速度判断用户位置点之间的距离是否符合预设步行速率。
35.步骤s5,如是,根据用户位置点做圆点对圆点的直线距离算法,判断上报的位置点是否在最大考勤范围内,如是,执行步骤s6,进入打卡流程。
36.在本实施例中,当用户网络变化为移动网络信号-考勤点无线网络信号,即可确定用户为上班考勤状态,当用户网络信号由移动网络信号变为考勤点无线网络信号后,向考勤系统上报当前位置信息。
37.当用户网络变化为考勤点无线网络信号-移动网络信号,即可确定用户为下班考勤状态,当用户网络信号由考勤点无线网络信号变为移动网络信号后,向考勤系统上报当前位置信息。
38.在上述步骤s3中,在将接收到的位置信息进行大数据滤波算法处理之前,如图2所示,首先,设置用户缓存,检查可用数据,转换位置数据,滤波验证位置点,组装正确位置点。然后,建立系统模型,其包括:设置预参数,根据第k-1时刻的状态预测第k时刻的状态x(k|k-1),根据第k-1时刻的系统预测误差,估计第k时刻的系统预测误差p(k|k-1),计算卡尔曼增益kg,计算系统最优估算值x(k|k),计算系统当前适合的系统预测误差p(k|k)。
39.在上述步骤s4中,如图3和图4所示,当向考勤系统上报当前位置信息时,根据用户速度抛弃异常点:判断用户前一个位置点是否为空,如是,判断该位置是否为异常点,如是,判断重大异常值是否为空,如是,基于圆点距离算法计算当前上报位置点与异常点的距离a,判断距离a是否小于设置值,如是,则认为该位置为异常点并返回空位置。
40.若距离a不小于设置值,判断前一个正确位置点是否为空,如是,则认为该位置异常并返回空位置,如不是,基于圆点距离算法计算上一个正确位置点和当前上报位置点的距离,根据该距离与两点时间差得出速度x,即距离
÷
两点时间差=速度x,判断速度x是否小于设置速度speed,如是,则确定当前位置点不为异常点且上一个位置点等于当前上报位置点,并返回位置结果。
41.如该位置不为异常点,计算当前上报位置点和前一个位置点的时间差t,判断时间差t是否小于2秒,如不是,判断时间t是否大于或等于最大设置时间,如是,则前一个位置点等于当前上报位置点,并返回前一个正确位置点作为结果;
42.若时间差t小于最大设置时间,基于圆点距离算法计算上一个正确位置点和当前上报位置点的距离,根据该距离与两点时间差得出速度x,即距离
÷
两点时间差=速度x,判断速度x是否大于设置速度speed,如是,则确定为严重异常,并返回空位置。
43.若速度x不大于设置速度speed,判断当前上报位置点精度是否大于10并且当前上报位置点精度*0.5是否大于两点距离值,如是,则可确定为无效移动并返回上一个位置点。
44.若当前上报位置点精度小于10并且当前上报位置点精度*0.5小于两点距离值,则可确定当前上报位置点等于上一个位置点。
45.在本实施例中,如图7所示,判断异常点条件包括:o1=当前上报位置时间,o2=上一次上报位置时间,i=上报间隙,两点时间差表示为公式(1),当前上报位置表示为公式(2):
46.e=(o1-o2)/i
ꢀꢀꢀ
(1)
47.l=e*100m
ꢀꢀꢀ
(2)
48.判断:l小于两点的距离值则该位置点有效,否则无效抛弃。
49.在上述步骤s5中,如图8所示,根据用户位置点做圆点对圆点的直线距离算法,包括以下公式:
50.经度1=lat1,纬度1=lng1,经度2=lat2,纬度2=lng2。
51.计算:a1=(lat1*π*/180),a2=(lat2*π/180),b=(lng1*π/180)-(lng2*π/180)
52.a=a1-a2:
53.s1=2*math.sin(math.sqrt(math.pow(math.sin(a/2),2)+(math.cos(a1)*math.cos(a2))*math.pow(math.sin(b/2),2)))
54.s2=s1*6378.137
55.s3=math.round(s2*10000)/10000
56.s4=s3*1000。
57.在本实施例中,在返回位置结果后,首先,判断该位置点是否为空位置,如是,通过卡尔曼滤波算法对该位置信息进行滤波处理,并返回滤波后的位置信息,如不是,重置初始化值,并返回前一个位置点。
58.在上述步骤中,设置参数speed、max_background_time以及fatalexception。
59.其中,speed为最大速度;每次接收到最新位置信息时计算速度,如果速度大于180m/s,则认为当前上报位置点出现重大异常,记录最新接收到的位置为重大异常点,标记fatalexception为true,返回上一个正常位置,否则正常返回最新上报的位置信息。
60.max_background_time为最大后台时间;当最新接收到的位置信息与前一个位置信息间隔时间超过180s,则重置前一个位置和前一个正确位置为最新接收到的位置。
61.fatalexception为重大异常标记,当该标记为true时,每次接收到最新位置信息时计算速度,如果小于speed则异常恢复,将该标记设为false,设置前一个位置信息为最新接收到的位置信息并返回该位置信息。
62.在上述步骤s5中,如图5和图6所示,进入打卡流程,包括:判断用户是否存在最近考勤点,如是,判断用户是否开启自动打卡,如是,判断位置点在考勤范围内或考勤范围外,若该位置点在考勤内,判断用户今日是否请假,如是,取消位置上报;如不是,判断用户今日是否打卡,如是,则取该用户最近一条打卡记录,并且判断是否为下班卡,如是,则自动打卡,并取消位置上报。
63.若该用户最近一条打卡记录不为下班卡,则判断是否为上班卡并且是否匹配考勤点wifi,如是,则取消位置上报;如不是,判断两点距离是否小于n*100,如是,记录本次网络变化并上报周期。
64.若位置点在考勤范围外,判断用户今日是否请假,如不是,判断是否匹配考勤点wifi,如不是,判断今日是否打卡,如是,则取最近一条打卡记录,判断是否为上班卡,如是,判断本次位置是否匹配考勤点wifi,如是,判断首次打卡是否在考勤范围外n分钟位置(首次打卡前3分钟都在考勤外派生类),并且是否已存在上报周期,如是,并且连续三分钟上报位置都是在考勤范围外,则取消位置上报,如不存在上报周期并且首次上报大于考勤点范围,则不取消上报。
65.若位置点在考勤外范围不匹配考勤点wifi,判断首次打卡是否在考勤范围外n分
钟停止,并且是否已存在上报周期,如是,并且连续三分钟上报都是考勤范围外,则取消位置上报;如不取消位置上报,判断两点距离是否小于n*100,如是,判断连续三个考勤点外位置的前一个位置是否为考勤范围内,如是,则自动打卡,取消位置上报。
66.由此可见,在本发明中,由于每一个位置上报点的两个相邻点都遵循一个弧线的规则,在不确定的周期内会回到用户所在准确位置点,本发明通过计算平滑这些上报点、再通过点与点的算法计算出人体运动的真实轨迹,从而实现用户在指定考勤范围内智能无感考勤,避免了传统、单一考勤方式的缺点,在提升员工体验的同时,降低考勤管理成本、提升考勤管理效率。
67.因此,相比现有技术,本发明可以实现上下班进出考勤点无感打卡,无需员工关注考勤备要;上报移动定位点数据做滤波算法渗透位置点平滑;拾取用户上下班步行数据后经均衡算法得出移动速度;取用用户移动速度为条件通过位置吃点算法实现精确打卡。
68.一种动态定位模拟人体移动算法的无感考勤系统实施例:
69.一种动态定位模拟人体移动算法的无感考勤系统,包括;app客户端、考勤系统以及考勤点无线网络,在指定考勤区域内发生网络变化后,app客户端通过国密算法sm2将加密后的位置数据触发上报至考勤系统。
70.在考勤系统第一层收到用户上报数据后,经过国密算法sm2解密后沿下透传。
71.在考勤系统第二层收到解密后的用户上报数据后,将该数据进行数据滤波平滑算法处理。
72.在考勤系统第三层收到平滑滤波后的数据,根据用户速度判断用户位置点之间的距离是否符合预设步行速率,否则丢弃位置点。
73.在接收到考勤系统第三层传输的数据后,通过考勤系统第四层对该数据做圆点对圆点的直线距离算法,并进行打卡流程。
74.其中,考勤系统为提供位置计算的后端服务器系统,考勤点无线网络为app客户端在工作场地的蓝牙/wifi热点网络。
75.本发明是企业考勤管理人员在考勤系统管理后台设置考勤位置点,考勤点最大范围,公司wifi名称,考勤人员范围。
76.在考勤人员a登陆app客户端走在所属考勤点最大范围内时,如发生网络变化后则app客户端会连续上报当前位置到考勤系统,考勤系统接收到上报位置后及时做第二层介质滤波算法并把位置信息平滑后送入第三层介质中;第三层介质会根据用户速度判断点与点之间的距离是否吻合日常上下班步行速率,如果吻合则送入第四层介质,否则丢弃位置点。第四层介质根据位置点做圆点对圆点的直线距离算法,判断是否上报位置点在最大考勤范围内,满足则打卡,不满足则丢弃。
77.在本实施例中,app客户端为工作宝客户端,使用gzbapp代称;app服务端为考勤系统,使用gzbserver代称;wifi为本公司热点服务,使用gzbwifi代称。
78.首先,登录到gzbserver管理后台设置企业坐标位置点及企业一个或者多个gzbwifi热点。
79.接着,安装gzbapp后需自行连上gzbwifi热点。
80.然后,授权gzbapp获取位置权限及开启考勤自动打卡。
81.然后,gzbapp发生网络变换时[gzbwifi-4g/5g]监听工作、获取火星坐标位置上报
到gzbserver。
[0082]
判断考勤区域内是否检测到用户的位置信息,如是,实时检测用户在考勤区域内的网络信号;
[0083]
因此,本发明由app客户端、考勤系统、公司wifi组成,其中,app客户端是用户移动设备app;考勤系统是提供位置计算的后端服务器系统;公司wifi是app客户端在工作场地的热点网络。
[0084]
本发明的无感考勤系统包括以下流程及步骤:
[0085]
上报流程:
[0086]
1.用户app客户端在指定考勤内发生了网络变化、携带通过国密sm2加密后的位置数据触发上报;
[0087]
2.考勤系统第一层收到用户上报数据、经国密sm2解密后沿下透传;
[0088]
3.考勤系统第二层收到解密上报数据做“滤波平滑算法”;
[0089]
4.考勤系统第三层收到平滑数据后做“点与点之间距离算法”;
[0090]
5.考勤系统第四层收到距离数据后做“圆上点对点距离计算”打卡。
[0091]
上班考勤步骤:
[0092]
1.用户(app客户端)到达公司连上公司wifi后开始上报位置(携带wifi名称);
[0093]
2.判断用户上报的位置点是否在考勤点设置的范围内;
[0094]
3.判断用户今日是否有考勤记录,有则判断卡是否为下班卡,无则直接打上班卡。
[0095]
下班考勤步骤:
[0096]
1.用户(app客户端)离开公司断掉wifi变成移动网络后开始上报位置;
[0097]
2.判断用户上报的位置连续n次在考勤范围外时,则判断前n次是否在考勤范围内;
[0098]
3.判断用户今日最后考勤记录是否为上班卡,是则打下班卡,否则自动停止上报。
[0099]
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1