基于Android卧铺车厢车票识别APP的系统设计
2017-12-21韩雪粟慧龙
韩雪++粟慧龙
摘要:通过分析目前我国铁路卧铺车厢换票存在的诸多问题,本文提出了一种基于ANDROID 卧铺车厢车票识别APP系统,大大提高了乘务员的工作效率,并给旅客的乘车带来了很大的方便。
关键词:ANDROID;换票;车票识别
中图分类号:TP368.1 文献标识码:A 文章编号:1007-9416(2017)10-0162-02
1 研究背景
随着人们生活水平的不断提高,越来越多的旅客选择乘坐火车卧铺车厢出行,而且很多时间是夜间乘车,为了确保乘客的准确到达下车,乘务员往往会提前至少一个小时唤醒旅客,这不仅影响了乘客的正常休息而且相邻床位的旅客也会受到影响。特别是在春运期间,乘务员工作量大,极易出现换票不及时、漏换等状况,严重时将大大影响乘客的行程。在移动智能终端设备被广泛应用的今天,利用摄像头获取乘客车票上的信息,再利用图像处理技术获取车票信息,实现车票管理信息化。基于此,本文针对卧铺车厢换票问题,构建了基于ANDROID卧铺车厢车票识别APP系统,可有效解决乘务员换票存在的一些问题。
2 系统结构及使用流程
2.1 系统结构
ANDROID 车票识别APP主要由用户登录与校验、车票字符识别、车票二维码扫描、车票信息编解码、蓝牙通讯等五个模块组成。如图1所示。
2.2 系统使用流程
启动车票识别APP软件,进入用户登录界面,验证用户信息,进入主界面后首先进行蓝牙通讯检测,若检测失败,则提示用户进行蓝牙开启和设备连接,连接成功则等待用户进行车票识别操作。车票识别主要通过车票字符识别和二维码扫描两种方式对旅客车票信息进行采集,车票识别成功能后,通过蓝牙通讯方式将车票信息发送给列车员,车票识别APP软件使用流程如图2所示。
2.3 系统设计
2.3.1 车票二维码扫描
2009年12月10日铁道部将车票改版,使用QR码作为新版车票的防伪标识,代替以往的一维条码。二维码识别的过程中,程序首先启动摄像头,然后通过图形识别的方式扫描二维码,并对二维码图像进行循环的解析识别,直到识别成功获取二维码数值,二维码识别过程如图3所示。
2.3.2 蓝牙通讯
基于Android 系统平台,供给蓝牙开发所使用的网络协议栈,容许设备间经过无线方式进行互换数据。蓝牙技术方面依据Android系统所提供的蓝牙API来实现。蓝牙通讯采用蓝牙的设置、搜索与连接蓝牙设备、数据传输等几个过程来实现。
程序代码首先检测安卓设备是否支持蓝牙,若支持则开启蓝牙通讯模块,然后扫描外部蓝牙设备,检测到蓝牙通讯则进行蓝牙配对连接,若连接成功则向外部蓝牙设备发送数据,并显示发送结果。在整个过程中若有一个环节不成功则即出蓝牙通讯,蓝牙通讯流程图如图4所示。
2.3.3 火车票字符识别
火车票字符识别是获取旅客乘车信息的重要手段,为了能够较准确和快速的识别火车票面的出发站、目的站、车次以及铺位信息,首先要对原始图像进行预处理,因此预处理起了非常重要的作用。预处理包括:图像灰度处理、图像二值化、中值滤波、图像定位及校正等过程。
(1)火车票图像灰度化。一般我们用手机采集的图像都是彩色的,彩色图像处理速度相对较慢并且所占的存储空间也较大,因此我们将火车票周围的彩色图案进行灰度处理,这样可以加快处理速度以及节省存储空间[1]。灰度计算公式如式(1)所示:
gray=red×0.299+green×0.587+blue×0.114 (1)
(2)火车票图像二值化。图像的二值化处理就是将图像上的点的灰度置为0或255,也就是将整个图像呈现出明显的黑白效果。通过某些算法得出一个阈值,将火车票图象的灰度值限定在0和255。所有灰度大于或等于阈值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0。要实现火车票图像二值化,关键在于给定的阈值。根据不同的需求,选取阈值的方法也不同。通过研究得出采用双阀值得出的火车票图像边缘清晰并且噪声小。
(3)火车票图像中值滤波。火车票二维码经过灰度处理后虽然图像亮度基本相同,但在采集的过程中经常会遇到各种噪声的干扰,这就需要进行消噪,提高条码的准确度。采用中值滤波的方式,将局部区域的像素按灰度等级进行排序,取该领域中灰度的中值作为当前像素的灰度值。
(4)火车票定位。火車票的右下方有一个二维码图形,可以通过它的特征,即3个角的位置对车票进行定位。车票在正面放置时,从右上角开始,按照逆时针方向顺次记录二维码3个正方形角点中心点坐标分别为为{C1(x,y),C2(x,y),C3(x,y)}[3]。这三个闭合的正方形角点都存在特殊的识别特征,从中提取 2 个最重要的特征来进行定位,特征如下:
C1(x,y)和C2(x,y)的距离等于C2(x,y)和C3(x,y)的距离,由式(2)表示:
(2)
(5)火车票校正。车票在实际的识别过程中,由于乘客摆放的任意性,所获取的车票字符图像往往具有一定的倾斜角度,在这种情况下,车票的识别率大大降低,所以首先就需要对火车票QR码进行校正。这就需要三个步骤:第一步将车票最大连通区域的边缘图做闭运算来凸显轮廓;第二步利用Hough变换检测边界线;第三步运用控制点之间的几何变换实现QR码校正[4]。
2.4 车票解码
通过解码器,将采集到的QR码信息按照国标GB/T 18284-2000《快速响应矩阵码》技术标准进行解码,可以得到车票的数据信息[2]。
3 结语
本文通过实现二维码和火车票字符识别的方式采集旅客乘车信息,构建了基于ANDROID 卧铺车厢车票识别APP系统,使卧铺车厢乘客乘车更加方便快捷并且提高了乘务员的工作效率。
参考文献
[1]徐玲,蒋欣志,张杰.手机二维码识别系统的设计与实现[J].计算机应用,2012,32(05):1474-1476.
[2]董强.QR码识别技术及在手机中的应用[D].青岛大学,2006.
[3]薛圣利,蔡启仲,杨海林,徐晓宇.基于OpenCV的火车票识别算法[J].广西科技大学学报,2016,27(02):46-51.
[4]耿兴龙.基于移动智能平台的车载车票验票终端的研究[D].北方工业大学,2015.endprint