使用 LEADTOOLS 从驾驶证捕获客户信息





0/5 (0投票)
本白皮书将探讨程序员如何使用 LEADTOOLS 驾驶执照识别或条形码识别来提取驾驶执照上的识别信息。
引言
各种企业都在拥抱技术,以期改进客户在客户服务流程前端提供信息的方式。当客户到达医生办公室、汽车经销商、健身房甚至餐厅时,可能会被递给一个平板电脑或被引导至一个自助服务终端进行登记。这对设备制造商和软件开发人员来说是一个令人兴奋的变化,但这是否总能带来更好的客户服务呢?
如果流程困难或耗时过长,客户很可能会感到恼火,甚至更糟糕的是,他们会选择去别家消费。因此,为了技术而技术是远远不够的。为了最大限度地利用他们的投资,企业所有者可以使用各种影像技术来捕获客户信息,从而加快流程并提高客户满意度。理想的解决方案是能够从客户已有的身份证件或表格(如驾驶执照)中捕获信息。本白皮书将探讨程序员如何使用 LEADTOOLS 驾驶执照识别 或 条形码识别 来提取驾驶执照上的识别信息。
更快的 정보 수집
新客户首次光顾企业时,预期会进行一定程度的数据收集。与接待员交谈和填写几份纸质表格在某些企业可能仍然有效,但由于多种原因,这一过程正开始被取代。由于口音难以理解、姓名拼写假设(例如 John vs Jon)和潦草的笔迹,数据错误很常见。此外,减少纸张消耗和走向绿色是越来越多的企业试图实现的目标。
通过平板电脑和自助服务终端进行数字数据录入是朝着正确方向迈出的一步,因为它通过消除纸质和计算机的双重录入来减少人为错误。办公室工作人员只需审核客户输入的内容,而不是输入客户写下的内容。然而,客户完成过程所需的时间是一个令人担忧的问题。可用设备过少会导致瓶颈和排长队,我们都知道客户有多么讨厌排队。很难平衡设备数量与需求,而且收益可能不抵成本。通过自动驾驶执照识别或条形码识别来加快流程,可以在柜台双方都带来有利的倾斜。
驾驶执照识别
驾驶执照是迄今为止最常见的带照片身份证件之一,大多数客户乐于在这些场合出示。大多数企业没有意识到的是,他们可能已经用来验证客户身份的相同文件也可以用来启动客户登记流程。这是一个错失的机会,未能捕获准确、可靠的信息,并创造更令人满意的客户体验。
LEADTOOLS 可以识别和处理结构化和非结构化表单,包括发票、护照和驾驶执照。驾驶执照包含许多常用于任何注册表单的出色信息:姓名、地址、性别、出生日期等。只需用网络摄像头或平板电脑内置摄像头拍摄一张照片,然后让 LEADTOOLS 自动填充表单,这样客户就可以轻松验证并添加任何其他所需信息。在输入姓名的同时,就可以完成大部分甚至全部表单。
令人难以置信的是,这种高级识别功能不需要太多努力即可实现。LEADTOOLS 包含所有 50 个州的母版模板,以及一些具有不同设计或布局的州的多个模板。通过高级 AutoFormsEngine
类,只需不到 40 行代码即可识别表单并遍历捕获的字段。
// Create the RasterCodecs to be used by OCR and Forms engines RasterCodecs formsCodec = new RasterCodecs(); // Create an OCR Engine for each processor on the machine. This // allows for optimal use of thread during recognition and processing. IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, false); ocrEngine.Startup(formsCodec, null, null, @"C:\LEADTOOLS 19\Bin\Common\OcrAdvantageRuntime"); // Create a master form repository and point it to directory with existing master forms DiskMasterFormsRepository formsRepository = new DiskMasterFormsRepository( formsCodec, @"C:\Users\Public\Documents\LEADTOOLS Images\Forms\MasterForm Sets\Driving License"); // Create the AutoFormsEngine using the repository and ocr engine AutoFormsEngine autoEngine = new AutoFormsEngine(formsRepository, ocrEngine, null, AutoFormsRecognitionManager.Ocr, 30, 80, true); // For this tutorial, we will use the sample NC Driver's License string formToRecognize = @"C:\Users\Public\Documents\LEADTOOLS Images\Forms\Forms to be Recognized\Driving License\License.png"; // Recognize the form string resultsMessage = ""; AutoFormsRunResult runResult = autoEngine.Run(formToRecognize, null); if (runResult != null) { FormRecognitionResult recognitionResult = runResult.RecognitionResult.Result; // Process the fields foreach (FormPage formPage in runResult.FormFields) { foreach (FormField field in formPage) { if (field != null) { resultsMessage = String.Format("{0}{1} = {2}{3}", resultsMessage, field.Name, (field.Result as TextFormFieldResult).Text, Environment.NewLine); } } } } if (string.IsNullOrEmpty(resultsMessage)) MessageBox.Show("The form was not recognized", "Field Processing Results"); else MessageBox.Show(resultsMessage, "Field Processing Results");
2D 条形码
最常见的条形码(1D 条形码)编码少量信息,用于识别产品编号或会员 ID,通常少于二十个字母数字字符就足够了。然而,存在更高级的条形码符号,通常称为 2D 条形码,它可以编码数千个字符。
特别是,PDF417 条形码经常出现在驾驶执照背面。由于 PDF417 可以存储多达 1850 个 ASCII 字符,发行机构可以将持证人的所有信息编码到条形码中,以便快速、轻松且可靠地读取。由于具有强大的纠错码(ECC),即使在已经严重磨损的老旧驾驶执照上,PDF417 也能保持准确。
例如,这里有一个南卡罗来纳州驾驶执照的 PDF417 示例条形码(来自 http://www.scdmvonline.com/DMVNew/general/New%20DL%20Barcode.pdf),以及由 LEADTOOLS 解码的信息。
乍一看,结果可能看起来很神秘,但如果有一个合适的图例(大多数州都会提供),实际上很容易破译。以下是带有突出显示的姓、名、中间名(Sample, Driver Credential)和出生日期(09/28/1978)的纯文本。
@ ANSI 6360050101DL00300201DLDAQ102245737DAASAMPLE,DRIVER,CREDENTIAL,DAG 1500 PARK STDAICOLUMBIADAJSCDAK292012731 DARD DAS DAT DAU600DAW200DAY DAZ DBA20190928DBB19780928DBC1DBD20091026DBG2DBH1
使用 LEADTOOLS 读取条形码比上面讨论的基于表单的驾驶执照识别对程序员来说更加友好。BarcodeEngine
类完成了所有繁重的工作。当使用示例如下所示的默认参数时,引擎将搜索整个图像以查找 LEADTOOLS 支持的 100 多种条形码类型。当开发人员知道图像只使用特定类型的条形码,或者知道将搜索限制在特定感兴趣区域(例如,在智能手机实时预览上绘制的矩形)时,识别算法将运行得更快。
// Read all the barcodes // The second parameter is the search rectangle. Pass an empty rectangle to indicate the entire image. // The third parameter is the maximum number of barcodes to read. Pass 0 for all barcodes found in the image. // Last parameter is an array of the BarcodeSymbology we are interested in. Pass null // to indicate that we do not care, and want all barcodes available to be read BarcodeEngine barcodeEngine = new BarcodeEngine(); BarcodeData[] dataArray = barcodeEngine.Reader.ReadBarcodes(image, LogicalRectangle.Empty, 0, null); StringBuilder sb = new StringBuilder(); sb.AppendFormat("{0} barcode(s) found", dataArray.Length); sb.AppendLine(); for (int i = 0; i < dataArray.Length; i++) { BarcodeData data = dataArray[i]; sb.AppendFormat("Symbology: {0}, Location: {1}, Data: {2}", data.Symbology.ToString(), data.Bounds.ToString(), data.Value); sb.AppendLine(); } MessageBox.Show(sb.ToString());
结论
如今的影像技术真是令人惊叹。即使在看似简单的应用程序中,用数字设备取代纸质表格以供客户驱动数据录入,LEADTOOLS 影像 SDK 也能在许多方面加速和改进整个工作流程。特别是,使用驾驶执照是一种直观且可靠的解决方案,可以自动填充企业需要将客户添加到其系统中的大部分信息。
下载完整的媒体流服务器示例
您可以下载包含上述功能的完整功能演示。要运行此示例,您需要以下条件:
- LEADTOOLS 免费 60 天试用版
- Visual Studio 2008 或更高版本
- 导航到LEADTOOLS示例文件夹(例如,C:\LEADTOOLS Multimedia 19\Examples\),您可以在其中找到此及LEADTOOLS中更多技术的示例项目。
支持
需要帮助来启动并运行此示例吗? 联系我们的支持团队 以获得免费技术支持!有关定价或许可问题,您可以联系我们的销售团队(sales@leadtools.com)或致电 704-332-5532。