摘要:在我国系统性改革过程中,进行了互联网加改革、大数据应用、物联网建设。当前,已经进入到了数字化发展的新时期。以公交车为例,通过对数字化技术的运用,既可以提高服务品质,也能够通过对客流状态的实时监测,保障车辆运行安全与数据统计,合理的调配各项资源。本文以此为出发点,选取基于图像分析的公交车客流状态实时监测研究作为题目,概述了人脸识别系统的组成与开发环境。并以此为基础,分别从图像采集、图像预处理、脸部检测方法、人数数据获取与处理、协议传输方法方面,进行了具体讨论。
关键词:图像分析;公交车;客流状态;人脸识别
0引言
在上世纪六十年代,已经开始了人脸识别系统的研发设计工作,自九十年代末开始应用该技术以来,人脸识别系统发生了巨大变化。一方面,在核心算法方面,从初级的图像识别,发展到了以人工智能技术为基础的机器识别。另一方面,在该系统的应用过程中,形成了不同技术主导下的多元化运用局面,促进了各行业诸领域的智能化发展。由于公交车客流状态的实时监测与公共安全、载客数量、公共资源配置等密切关联,因此,在新时期十分有必要增强人脸识别系统在该领域的运用,促进公共交通事业向着智慧交通方向升级,为构建更高层次的平安中国提供技术支持。
1系统组成开发环境概述
在图像分析技术中,人脸识别技术发展早、应用范围相对较广。而且,在一些成熟的平台上可以直接对人脸识别系统进行二次开发,提高人脸识别技术的应用效率。以英特尔公司开发的OpenCV程序为例,通过对C函数、C++函数的运用,能够实现在OpenCV跨平台计算机视觉库基础上,对人脸识别系统的二次开发,而且,在语言接口方面,设置有MATLAB、Ruby、Python等,增强了该工具的适用性。从系统组成与开发环境方面看,需要在Windows操作系统(本次研究中以Windows10为准,其中安装了OpenCV2.4.9软件工具包、Eclipse,以及VisualStudio2015编译器)下,完成图像数据采集、数据处理、人脸识别、通过检测、上传客户端。
从配置方面看:(1)图像数据采集:由相机摄相头实现,本次研究中选取MicrosoftLifecamStudio相机。(2)图像数据处理:以OpenCV图像处理库为准,结合与之匹配的函数完成。(3)人脸识别:基于图像数据的人脸识别,需要先使用OpenCV库中的Haar分类器,再利用分类器对已经处理过的图像数据实时人脸识别。(4)上传客户端:在该环节,主要是将人脸识别检测中生成的结果,以模型(Socket)通道,上传到与系统连接的PC端设备或移动设备中,从而使客户端可以实时的完成图像显示等。在系统程序流程设置的五大步骤中,第一步要求先完成抓取图像、脸部区域、图像预处理,同时结合训练图像、训练数据进入到第二步实现图像识别。完成后进入第三步步骤,实施检测计数。并配合定时器的设置进入到第四步协议传输。最后完成向移动设备的图像数据上传。
2应用系统的设计与实现
2.1图像采集
图像采集的载体是摄相头,具体操作中,可以利用cvCaptureFromCAM()完成图像数据采集。由于图像由帧数构成,每一帧图像,均可以通过cvQueryFrame()获取。图像采集代码如下:
CvCapture*capture=cvCaptureFromCAM(0);frame=cvQueryFrame(capture);
2.2图像预处理
在图像数据采集过程中,由于环境因素、设备因素、采集对象、采集位置等综合因素影响,会产生一定的干扰。例如,在反光条件下、位置相对较偏、采集图像的尺寸差异与设计值差异较大时,采集到的图像,在人脸识别检测过程中,会产生一定的偏差,造成识别不精准、无识识别、识别失真等情况。因此,为了化解该问题,需要先对图像进行预处理。具体操作中,主要是先对每一帧图像进行灰度转化,再实施直方归一化处理。在灰度图像的转化过程中,主要是应用cvCvtColor()实现,在直方图归一化处理过程中,主要按照cvEqualizeHist()实现。
2.3脸部检测方法
脸部检测中需要采用OpenCV中的Haar分类器。该分类器属于一种技术方案,是对众多人脸进行检测的同一技术方案中的新版本。从该技术方案的发展看,首先,是由JONESMichael与VIOLAPaul两人共同设计,先创造了Viola-Jones检测器。其次,以第一代检测器为基础,通过MAYDTJochen与LIENHARTRainer两人的努力,借助对角特征的扩展,才实现了对原始技术方案的优化。由于在扩展过程中,突出了Haar的小波特征,因此,该分类器才被命名为Haar分类器。对Haar分类器的使用过程中,要求进行大量的数据训练,并将其存储于该平台自带库中,具体操作中以xml文件形式进行保存。
相关知识推荐:计算机工程与应用收录图像处理论文吗
检测方法共由三个步骤组成:(1)加载变量:借助cvLoad()加载CvHaarClassifierCascade变量。(2)进行检测:以cvHaarDetectObjects()实施检查;同时,要求以分类器(与函数级联)为通道,确定目标物体区域并进入到该区域的一序列矩形框。实际上在该过程中,先要在已经获取的图像数据中确认目标物体所在的区域,明确其位置,再通过的返回的方式,进入到该区域。(3)保存变量:需要将脸部检测获得的实际结果存储到cvRect变量之内。
2.4人数数据的获取及处理
人脸识别后,需要与具体的个体特征进行“对号入座”。通过在cvRect变量之内保存脸部检测结果,实际上已经确定了目标物体所在区域,此时,仅需要通过对目标物的圈出即可实现对人数数据的获取。具体操作中:(1)通过cvRound()圈出该目标。这样,通过“循环累加”,实际上就可以得到每一帧图像中确定的人数数据。(2)转换字符数据、整型数据。(3)将转换获得的数据存入剪贴板。可以借助strcpy()实现。此时存储的人数数据即为后续可以进行实时发送的数据。该流程的代码见下图1。
2.5协议传输方法
首先,本次研究中使用的网络通信协议属于Internet最基本的协议,以TCP/IP(TransmissionControlProtocol/InternetProtocol)为准,翻译为汉语意思是传输控制协议/因物网互联协议。由于该协议是一个整体上的协议族,所以,在协议应用中以层级结构为主,由最上层到最一层分别为:(1)应用层;(2)传输层;(3)网络层;(4)网络接口层。由于下一层为上一层提供网络服务,所以,在TCP协议的使用中,要通过三次连接才能真正完成连接。具体操作中,要求在完成连接后对其进行拆除处理。IP协议是网络层,通过该协议可以完成计算机之间的网络通信连接,所以,在该协议下实际上可以实现各类设备之间的网络互联。
其次,在通信模型方面,该系统中主要以作为抽象层的Socket为准。它的功能是通过建立连接满足客户端与服务端之间的数据发送与数据接收。可以通过C++编程完成。
第三,继续以C++为例,服务端的Socket对象建立过程中,需要围绕套接字完成八个步骤完成:加载库——创建套接字——绑定——监听模式——客户请求、接受连接、返回——客户端通信——返回——关闭。
第四,与服务端相比,客户端的Socket对象建立步骤相对较少,只需要完成套接字库的加载与套接字的创建,将连接请求发送至服务器。然后,在取得通信后关闭即可。在本次研究中,安装的编译器为VisualStudio2015,所以,在实际的客户端编程中,则按照安卓版本的实际要求,进行了Java语言编程。具体代码见下图2。
第五,完成以上系统设计开发之后,将该程序导入到Eclipseadt,JDK1.8.0_121和Android5.1版本进行试运行,结果显示可以完成手机通信客户端的试运行。
通过试运行分析可以看出,在公交车客流状态实时监测方面,采用基于图像分析的监测方案时,可以选择能够进行人脸识别系统二次开发的开发设计方案。一方面,通过对适用性平台的选择,有利于降低开发难度,节约成本。另一方面,对于该系统的开发仅需要公交管理部门的一般程序编写人员即可以完成。所以具有多个方面的比较优势。但是,在实际的使用中,仍然需要结合实际情况进行持续优化,才能保障其应用的有效性。
3结束语
人脸识别系统已经广泛应用于公共安全领域,尤其在城市地下轨道交通、地面交通枢纽站中的应用相对普遍。现阶段,我国正处于智慧城市建设的新阶段,为了保障智慧安全、提高智慧城市公共交通的资源配置效率。一方面,应该增强对公交车客流状态实时监测技术的研究。另一方面,则应该利用当前已经十分成熟的图像分析技术,合理的选择人脸识别系统对客流状态进行数据采集、数据获取、数据分析,从而为智慧城市的数据化管理提供数据支持。通过以上初步分析,建议在当前阶段,选择技术成熟度高、投入成本相对较少、系统开发过程容易实现平台,进而促进人脸识别系统在公交车客流状态实时监测方面的快速应用。——论文作者:陈林
转载请注明来自:http://www.lunwencheng.com/lunwen/dzi/21214.html