本发明涉及一种低头族骑车安全监测与警告方法。
背景技术:
伴随手机功能的极大丰富,手机成为大量低头族须臾不能离开的物件,眼睛随时随地都在盯着手机屏幕,导致低头族忽视了交通安全,给自己和他人带来了不必要的安全隐患。而随着快递业的迅速发张,从业者在骑车时收发信息、看导航,无法注意交通规则和道路行人与车辆,更是导致交通事故频发。
技术实现要素:
本方案就是要提供一种技术方法,实现对手机用户骑车时使用手机这一危险状态的实时监测,并及时给予安全警告,具体包括如下步骤:
步骤1,判断用户是否在骑车的行驶速度范围内,如果是,执行步骤2;
步骤2,判断用户是否在看手机,如果是,执行步骤3;否则返回步骤1;
步骤3,通过手机后置摄像头拍摄图片,并判断图片中是否有车把,如果有,判断用户处于骑车时的驾驶者位置,执行步骤4;否则返回步骤1;
步骤4,对用户发出安全警告。
本发明步骤1中,通过如下方法判断用户是否在骑车的行驶速度范围内:
步骤1-1,每100ms通过手机记录一次用户骑车的行驶速度;
步骤1-2,记录满五次时,计算这五次行驶速度的平均速度v;
步骤1-3,判断平均速度v是否在6~20km/h范围内,如果是,则判定用户在骑车的行驶速度范围内,否则返回步骤1-1。
本发明步骤2中,通过如下方法判断用户是否在看手机:
步骤2-1,打开手机前置摄像头,初始化拍摄照片分辨率和格式;(默认分辨率为1280*960,格式为jpeg)
步骤2-2,线程休眠1秒(即手机摄像头休眠1秒),使得摄像头充分采光,然后拍摄照片;
步骤2-3,将拍摄的照片保存在临时位图中,逆时针旋转90度后,按1比0.3的比例缩放位图;
步骤2-4,将位图转换为rgb_565格式后,调用google自带的facedetector类(facedetector模块官方链接:https://developers.google.com/android/reference/com/google/android/gms/vision/face/facedetector)检测位图中是否存在人脸,如果存在,判定用户在看手机,否则返回步骤2-2。
本发明步骤3中,所述通过手机后置摄像头拍摄图片,并判断图片中是否有车把,具体包括如下步骤:
步骤3-1,打开手机前置摄像头,初始化拍摄照片分辨率和格式;(默认分辨率为1280*960,格式为jpeg)
步骤3-2,线程休眠1秒,使得摄像头充分采光,然后拍摄照片;
步骤3-3,对拍摄图片进行灰度化,并对灰度图片采用最大类间方差法二值化;
步骤3-4,计算拍摄图片最大的三个连通区域:上部区域为s1,下部区域分别为s2、s3,取上部区域s1纵向最低点的坐标点(x1,y1)作为分割点,截取以下的区域作为roi区域(regionofinterest,感兴趣区域);
步骤3-4,训练svm(supportvectormachine,支持向量机)分类器;
步骤3-5,对截取后的roi区域,利用sift特征(scale-invariantfeaturetransform,尺度不变特征转换)提取方法获得图像特征,利用局部约束线性编码对sift特征进行编码,编码结果用已训练好的svm分类器进行分类,若返回的类别是车把,则执行步骤3-6;若返回结果为其他结果,则返回步骤3-2;
步骤3-6,获取跟踪roi区域;
步骤3-7,跟踪车把:通过meanshift(均值漂移)跟踪算法对跟踪roi区域进行跟踪,如果meanshift返回值为true,表示跟踪roi区域仍存在,则持续进行跟踪;如果返回值为false,表示跟踪roi区域消失,则返回步骤3-2。
本发明步骤3-4包括:
将车把照片作为正样本,不包含车把的照片作为负样本,利用sift特征提取方法分别获得正样本的图像特征和负样本的图像特征,利用局部约束线性编码对获得正样本的图像特征和负样本的图像特征进行编码,得到训练好的svm分类器。
本发明步骤3-6包括:
取下部区域s2的右上点(x2,y2)和下部区域s3的左上点(x3,y3),结合上部区域s1纵向最低点(x1,y1),得到车把的跟踪roi区域为(x1,y2)~(x3,y3)。
本发明步骤4包括:
步骤4-1,当用户在骑车的行驶速度范围内、正在看手机、手机后置摄像头拍摄图片中有车把这三个条件同时满足时,启动计时器,并启动一级警示,在手机屏幕中弹出带警示标志的警示语:“骑车中使用手机容易导致危险,请注意安全!”
步骤4-2,当计时器持续n1秒(一般取值为10秒)时,启动二级警示,在手机屏幕中弹出带警示标志的警示语:“为了您的安全,手机五秒后将自动关闭!”,启动手机振动功能并循环播放警示语音;
步骤4-3,当计时器持续n2秒时(一般取值为15秒),强行关闭用户手机屏幕。并将此次警告信息录入本机数据库。
有益效果:
本方法在不借助外接设备的情况下,仅利用手机自身的传感器,实现了对用户在骑车时是否使用手机进行监测;本方法采用先监测gps是否有变化,若有,再监测前置摄像头是否有人脸,若有,再监测后置摄像头是否有车把,避免三个传感器同时开启对手机资源消耗;当手机判定用户在骑车时使用手机,则启用警告模式对用户进行警告,警告一段时间后强行关闭手机屏幕,对用户起到很好的保护作用。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明总流程图。
图2为速度检测流程图。
图3为人脸识别模块流程图。
图4为车把识别、跟踪流程图。
图5为roi区域的截取流程图。
图6a~图6c为roi区域截取效果图。
图7为跟踪roi区域选取流程图。
图8a和图8b为跟踪roi区域选取效果图。
图9为训练svm分类器流程图。
图10为模块一效果图。
图11为模块三运算结果。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本方案包含四个模块:
1.速度监测模块:通过检测手机内置gps信息的变化,判断使用者是否在骑车速度范围内运动;如图2所示,当本手机应用软件启动后,每100毫秒读取一次手机的速度信息,每记录5次求平均移动速度v,当平均移动速度v位于6~20km/h时,则判定用户是在骑车的速度范围内。本发明流程如图1所示。图10是模块1效果图。
2.人脸监测模块:通过监测前置摄像头拍摄图片中是否有人脸,判断用户是否在看手机;如图3所示,当监测到用户处于骑车的速度范围内时,调用手机自带前置摄像头,每隔1秒自动拍照一次。通过google自带人脸检测算法检测照片中是否有人脸、脸部与手机平面所成角度是否在一定范围内,以此判断用户是否正在使用或观看手机。
3.车把监测模块:如图4所示,通过检测后置摄像头拍摄图片中是否有车把,判断用户是否处于骑车时的驾驶者位置;当检测到用户正在使用手机,则调用手机自带后置摄像头进行摄像,每隔1秒截取一帧图片,并对图片进行模式识别,判断图片中是否有车把,如果有则对车把进行实时追踪,则判定用户是否处于车驾驶者位置,roi区域的截取如图5所示,roi区域截取效果图如图6a~图6c所示,跟踪roi区域选取如图7所示,跟踪roi区域选取效果图如图8a和图8b所示。训练svm分类器如图9所示。具体步骤如下:
a.选择roi区域:为了降低车把前进方向以及车筐对识别结果的影响,在对一幅图像的roi区域进行选择时,把图像中车把以下的区域作为roi区域。对一幅图片进行灰度化、二值化,然后计算二值图像最大的三个连通区域:如图6b所示,上部区域为s1,下部区域分别为s2、s3;取s1纵向最低点的坐标点(x1,y1)作为分割点,截取以下的区域,然后进行车把的识别;
b.识别车把:对截取后的roi区域,利用sift特征提取方法获得图像特征,然后利用局部约束线性编码对sift特征进行编码,编码结果用已训练好的svm分类器进行分类,若返回的类别是车把,则对车把进行跟踪。若返回结果为其他结果,则读取下张图片重新进行车把的识别;
c.选择跟踪roi区域:当步骤a得到下部两个连通区域s2、s3,取s2的右上点(x2,y2)和s3的左上点(x3,y3),结合s1纵向最低点(x1,y1),得到车把的跟踪区域roi为(x1,y2)~(x3,y3);
d.跟踪车把:通过meanshift跟踪算法对跟踪roi区域进行跟踪。如果meanshift返回值为true,说明跟踪roi区域仍存在,则持续进行跟踪;如果返回值为false,说明跟踪roi区域消失,则读取下张图片进行车把的识别。
4.警告模块:当使用者同时满足行驶达到一定速度,在看手机,且在骑车的驾驶者位置时候,该方法就能判定用户是在骑车状态下使用手机,进而对用户发出安全警告。
当警告模块检测到以上三个条件同时满足,判定用户在骑车时使用手机,开启计时器记录持续的时间;在计时期间如果有一个及以上条件不满足,则计时清零;具体步骤如下。
1.从警告模块启动开始,启动一级警示:在屏幕中弹出带警示标志的警示语:“骑车中使用手机容易导致危险,请注意安全!”
2.从警告模块开启持续10秒时,启动二级警示:在屏幕中弹出带警示标志的警示语:“为了您的安全,手机五秒后将自动关闭!”启动手机振动功能并循环播放警示语音。
3.当警告模块开启持续15秒时,通过控制手机的电源管理,强行关闭用户手机屏幕。并将此次警告信息录入本机数据库。
运行和测试
模块1:利用android开发,结合百度地图api,对骑车速度进行计算,可以达到实时性要求。
模块2:运行测试
人脸检测允许的误差:当用户脸部轮廓完整地包含于图像中时,允许xoy平面内±30°的旋转、y轴方向±30°的偏转、x轴方向±45°的偏转。
模块3:运行测试
测试在windows10系统下,matlab2013b上设计实现,硬件配置如下:
操作平台:windows10x64
处理器:intelcorei5-45703.20ghz
内存(ram):8.00gb
车把的识别与跟踪速度如下,当采用720p的拍摄像素,仍然可以达到每秒识别一张照片,识别准确率达到95.6%,并且每秒可以对5张照片进行跟踪,模块3运行结果如图11所示,运算时间如表1所示。
表1:模块3运算时间
本发明提供了一种低头族骑车安全监测与警告方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。