证件图像信息采集系统的设计与实现*

2010-05-18 07:28陈建铭谭洪舟
网络安全与数据管理 2010年20期
关键词:广角镜头PC机证件

李 宇,陈建铭,谭洪舟

(1.广东药学院 医药信息工程学院,广东 广州 510006;2.炬力集成电路设计有限公司,广东 珠海 519085;3.中山大学 信息科学与技术学院,广东 广州 510275)

随着信息技术的不断发展,社会各项规章制度不断完善,人们需要用各种各样的证件来表征有关个人的信息。对这些证件进行信息采集识别是必要的个人信息获取和安全的手段,有利于相关部门对社会进行监管和提供服务。一个完善的证件信息采集系统由证件信息采集设备及相应的配套软件组成。采集设备通过接口与PC机连接,利用运行在PC机上配套的软件实现证件资料信息的自动提取、录入,并通过信息管理系统实现信息的管理与维护。它可以广泛应用于公安、银行、电信、酒店、交通、证券、民政、教育、出入境等部门和行业中,节省大量的人力和物力,保障公共场所的安全。证件信息采集常用的自动化技术包括光学文字识别(OCR)技术和射频标签识别(RFID)技术。目前仅我国第二代居民身份证采用了RFID技术,如护照、驾驶证等其他证件并没有采用RFID技术,因此证件的光学文字识别或图像信息采集识别是通用证件信息采集系统不可缺少的组成部分。

一个优秀的证件图像信息采集系统(以下简称证件系统)要具备较短的获取时间、较高的信息采集准确率、较高的成像质量、较长的使用寿命和人性化的系统与外观设计。综合以上因素,本文采用微距广角镜头拍摄的方式对证件图像进行采集,在证件图像信息采集硬件系统中对采集图像进行初步处理后,通过USB2.0这一目前获得最广泛使用的高速外设接口,将数据传送至PC机上位机,由主机中相关处理软件系统对图像信息进行提取和分类。这是一种数据采集设备与基于PC机端应用软件相结合的系统开发模式,它能够利用日常生活中通用PC机高速、强大的计算能力,对需要高算法复杂度的图像进行快速处理计算,为实现复杂的信息处理算法提供了保障,而且在响应速度及实时性方面也能够满足许多应用领域的要求。本证件系统包括硬件部分和软件部分。镜头采用了焦距为1.8 mm、可视角大于140°的微距广角镜头,使得证件在镜头前方约45 mm处可以得到完整取景,以实现系统装置的小型化。证件系统的扩展性和复用性主要表现在能够识别更多类型的证件(如身份证、护照、户口本等)和通用性的图像数据处理算法。针对扩展性和复用性问题,本文采用MVC(Model View Controller)架构[1]设计证件系统软件部分,在软件架构上实现了各模块之间的松耦合。

1 系统总体框架

证件系统自身是一套独立的数据采集及信息获取系统,由其特有硬件和软件共同组成。硬件部分包括摄像头模块、数据传输模块、LED灯模块和电源供应模块。如果再加上第二代身份证的RFID卡射频感应获取信息的功能,还有一个RFID感应模块。由于身份证RFID模块的使用需要经过公安部门的认证,因而本文中描述的系统不包含RFID模块功能的具体实现,但是该系统在设计时,已经预留了相应的接口。软件部分主要包含运行在PC机上的摄像头驱动子程序,图像采集子程序,图像畸变补偿、色彩增强、分割等处理子程序,信息提取子程序和数据库存储、管理子程序。整个系统框架如图1所示。

证件图像信息采集设备与PC机之间通过USB2.0接口进行通信。PC上位机运行的应用软件能够通过该接口向USB摄像头发送控制命令,从而捕获相应的图像或者视频数据。若存在RFID感应模块,则感应后的数据也通过该接口传送到应用程序中进行处理。

2 系统硬件

证件图像信息采集设备主要由图像获取模块、传输接口模块、电源模块、LED光源模块4部分构成(不考虑RFID感应模块)。硬件框图如图2所示。

2.1 CMOS图像采集模块

采用CMOS摄像头进行图像采集,图像清晰,功耗较低。利用短焦距广角镜头进行物体成像,在扩大视场的同时还能有效地减小物体与CMOS传感器之间的距离,从而有效地减小了仪器的体积,使产品更为便携,甚至可以装配到通用PC机的机箱中。本文实现的系统中采用了焦距为1.8 mm、可视角大于140°的微距广角镜头,使得证件在镜头前方约45 mm处可以得到完整取景。加上镜头高度,总厚度在60 mm左右。采用广角镜头将带来桶形失真,此问题将在主机程序中通过软件算法进行补偿,尽可能复原图像。

2.2 传输接口模块

系统采用480 Mb/s的USB2.0接口进行高速传输。采集模块在完成数据采集以后通过该接口可以快速地传送到上位机中。考虑到系统最后还必须扩展RFID感应模块,以通过感应方式获取第二代身份证的信息,因而同一USB接口还需要传输来自RFID模块的信息。这只需要增加一个USB的Hub芯片,实现接口的复用功能。使用比较常见的GL850A[2]的 USB Hub芯片即可以对两路信号进行选通,达到系统的要求。

2.3 LED光源组模块

由于证件的图像采集是在一个类似于暗室的环境中进行的,因此需要提供照明光源。LED色温范围比较广,而且色温的高低对图像的成像质量有着直接的影响,因而选用了方向性相对较弱、发光颜色接近白光的LED,设计了两个LED光源组。从系统实际拍摄的效果来看,这种设计能够使最终的成像不会因为光源的方向性问题而产生人为的亮点,也不会因为光源的色温过于偏离正常范围而导致色彩过度失真。

2.4 电源模块

该系统采用了一个AC-DC变换器,通过对220 V的市电进行转换,产生供应LED光源组所需的12 V电压。至于CMOS图像传感器模块的供电,则通过USB连接线直接提供,其工作电压为5 V。

3 系统软件

3.1 系统软件组成

由于绝大多数图像数据处理要通过运行在PC机上的配套软件实现,因此软件系统设计的主要任务是设计一个运行高效、功能上易扩展、适合Windows系统的软件系统。本系统主要分为图像采集模块、图像处理模块和信息提取模块,实现对图像采集、处理以及信息的提取和回显、编辑。由于整个系统最终是在Windows操作系统上运行的,针对图像采集模块,利用DirectX中的DirectShow[3]进行开发,实现了在Windows平台上高效获取图像/视频信息的功能;对于图像畸变补偿及增强等处理算法设计,应用了Intel公司高效且可靠开源的OpenCV图像处理库[4];对于图像信息提取,采用了内嵌在 Office 2003中的 MODI识别控件[5],该组件中汉字的文字识别引擎就是清华紫光的OCR引擎;对于图形用户界面设计,使用了微软的MFC[6]。图3展示了以上所描述的关系。

鉴于DirectX是基于组件对象模型 (COM)的技术,OpenCV库主要亦是用 C/C++开发,MODI和MFC之类的部件也都是基于C++描述等技术因素,软件系统采用Visual Studio 6.0作为开发工具,选择C++进行程序设计。利用支持C++的编译器,可以生成执行效率很高的程序,而且面向对象程序的设计能够实现很好的数据封装。

3.2 系统的可扩展性设计

MVC软件架构可实现各模块之间最大程度的松耦合,保证系统扩展性和复用性[1]。图4是系统的UML主体类框图。设计方案分别通过扩展模型、视图及控制器三个部分实现证件系统的扩展。

(1)模型部分

模型部分表现为图像的采集、处理、文字识别等与数据相关的处理操作。系统设计时将与图像数据处理相关的处理操作进行封装,实现了CDibImage类。该类描述了所有与证件图像相关的数据处理。在对此类系统中证件图像的特点进行分析和归纳总结的基础上,提出了一组合理、有效的处理流程方案,并用OpenCV的图像库实现自动白平衡色彩补偿、失真样条曲线建模畸变补偿[7]、基于轮廓信息和Hough变换的倾斜角检测完成倾斜矮正、结合图像先验知识的粗分割与细分割以及文字信息识别。该方案是一种通用的处理流程和解决方案,实现证件图像各个信息图块的正确分割,适用于所有的证件图像处理,因而能够适应日后扩展的新型证件识别的需要。模型的扩展包括增加模型的功能集和扩展模型的应用对象。前者诸如增加图像伽玛值校正算法等操作,通过增加新的数据处理函数或者通过一些特定类进行封装便可实现。后者诸如利用已有的模型处理新型的证件,此时仅需要针对该证件上相应的信息段分布规律按以上流程进行简单再设计即可实现。

(2)控制器部分

为了保证逻辑的一致性,在采用MVC设计的系统中通常仅设计单控制器[9]。显然,单控制器需要在系统中被多次调用。为此,系统对控制器专门采用单件模式(Singleton)[8]设计。将单件模式应用于MVC模式中的控制器设计,能够使系统开发过程更具有安全性,免除了控制器的作用域全局化 (即相当于全局变量)带来的潜在不安全性,利于软件规模的扩展设计。通常情况下,单件类自身负责保存它的唯一实例,并且使用一个静态成员函数提供全局的访问点[9]。

定义一个控制器类Controller,为该类定义一个静态成员函数GetInstance,以提供这个类操作的全局访问点。Controller类还定义了一个表态成员变量static Controller*singleton,用于保存一个指向它的唯一实例的指针。客户仅通过Controller::GetInstance函数访问这个单件。指针变量Singleton初始化为0,而静态成函数GetInstance返回该变量值。如果其值为0,则用唯一的实例初始化它。Singleton使用惰性(Lazy)初始化,它的返回值直到第一次访问时才被创建和保存。Controller类的构造函数是私有类型的,试图直接实例化Controller类的程序将在编译时得到一个错误信息,这就保证了仅可以创建一个实例。

(3)视图部分

软件系统的视图部分表现为与用户交互的图形用户界面。软件设计中采用CTabCtrl页表容器控件,用以容纳各种证件显示页面。为此设计了一个类CTabSheet,其UML的类属性如图5所示。

利用CTabSheet这个类,只需要在主界面中维护一个该类的对象CTabSheet m_tabSheetCard,便可以实现对各个页面的管理与控制。例如要增加页面,则仅调用CTabSheet::AddPage()这个方法即可;要更换页面,则只需要调用TabSheet::SetCurSel()方法设置当前选中的新页面即可。在系统中,所有的证件子对话框类均继承于CCertificate这个类,如图6所示,而该类又继承于MFC中的CDialog类。若要添加新的护照页面,可以用MFC向导生成相应的CPassport类。

4 实验

实验中硬件装置的镜头采用前面所介绍的广角镜,PC采用Lenovo奔腾双核CPU的启天M6900 PC机器。系统先对采集到的图像进行样条函数畸变补偿,校正处理后的身份证图像如图7所示;再对处理后的身份证图像进行识别,采集到证件的信息内容如图8所示。从整个采集识别情况来看,本方案设计的证件系统能有效地实现图像的输入、捕捉、处理以及证件信息识别等功能。

本文提出了一个证件信息采集系统,并对整个系统的软硬件部分进行描述。系统采用焦距为1.8 mm、可视角大于140°的微距广角镜头,使得证件在镜头前方约45 mm处可以得到完整取景。采用MVC架构设计证件图像信息采集软件,在软件架构上实现了各模块之间的松耦合,保证系统软件部分的可扩展性和可复用性。试验表明,本证件系统可以满足实际证件信息采集使用要求,并具有良好的可扩展性,为今后扩大系统的证件识别种类和加入更新的图像处理算法提供了良好的软件平台。本证件信息采集系统亦是RFID型证件识别系统的一个有效功能补充。

[1]孙卫琴,李洪成.Tomcat与Java Web开发技术详解[M].北京:电子工业出版社,2006.

[2]Genesys Logic,Inc.GL850A USB-2.0 Low Power Hub Controller DataSheet[M].2007.

[3]PESCE M D.Programming microsoft direct show for digital video and TV[M].Washington:Microsoft Press,2003.

[4]The open computer vision library[EB/OL].http://sourceforge.net/projects/opencvlibrary/.

[5]OCR Images Using Microsoft Office2003 SDK[EB/OL].http://www.print-driver.com/sdk/postprin t/ocr_office2003_vc6.html.

[6]CORPORATION M.MFC library reference:CTabCtrl Class,Microsoft Visual Studio 2005 Documentation[M].

[7]王占斌,赵辉,陶卫,等.广角镜头桶形畸变的样条函数修正方法[J].光电工程,2008,35(4):140-144.

[8]GAMMA E.设计模式:可复用面向对象程序的基础[M].李英军,译.北京:机械工业出版社,2000.

[9]陆其明.DirectShow实务精选[M].北京:科学出版社,2004.

猜你喜欢
广角镜头PC机证件
上海夜景
因应聘证件引发的劳动纠纷
挑选超广角镜头该看什么?
学院成功举办2017年伊朗出入境证件识别培训班
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
浑身“长满”滤镜的手机壳
排除OLT设备登录故障
VIVID3彩色超声仪结构原理及维修
广阔天地