Zxing与华为HMS扫描套件的比较

关于本文件
Zxing是常见的第三方开源SDK。 但是,Zxing具有以下缺陷:它仅实现扫描QR码的基本操作,并且不支持更复杂的扫描环境,例如强光,弯曲和变形。 当前,主流做法是基于Zxing优化源代码。 但是,优化效果仍然不理想,许多人将花费大量时间进行优化。
华为扫描工具包服务提供便捷的条形码和QR码扫描,解析和生成功能,帮助开发人员快速在应用程序中构建QR码扫描功能。 由于华为在计算机视觉领域的长期积累,华为统一的条形码扫描服务(Scan Kit)可以检测并自动放大长距离或小码,并优化常见的复杂条形码扫描场景的识别(如反射)。 ,暗光,污迹,模糊和圆柱)。 提高QR码扫描成功率和用户体验。
Zxing与华为HMS扫描套件的比较
现在,让我们从以下几个方面比较Zxing和华为HMS扫描套件的功能:
Ø远程码扫描
Ø在复杂场景下扫描二维码
Ø可以任意角度扫描条形码。
Ø多码识别
Ø整合难度
ØSDK包装尺寸
Ø跨平台支持
远程码扫描比较
远距离QR码扫描的成功取决于QR码规格(信息越多,越难识别)以及相机与QR码之间的距离。 由于缺乏针对Zxing的自动放大优化,因此当代码小于屏幕的1/5时,很难识别代码。 HMS扫描套件具有预检测功能,即使无法用肉眼识别QR码,它也可以在很长的距离自动放大QR码。


在复杂情况下通过扫描代码进行比较


在复杂的情况下,代码扫描可以分为反射,暗光,污迹,模糊和圆柱扫描。 在复杂的情况下,Zxing的识别效果很差。 复杂的情况如下:
这些情况在日常生活中很常见。 例如,可能发生室外场景,例如反射,暗光和污迹。 将QR码附加到产品上时,可能会出现弯曲的表面甚至边缘和角落。 当您步行并扫描QR码时,还将遇到运动模糊的挑战。 下图显示了这些情况下的测试比较。


扫描任何角度的QR码以进行比较。
当前,Zxing仅支持正向扫描,即Zxing无法以一定角度识别代码。 扫描套件可以轻松实现这一目标。 当代码偏差在10度以内时,Zxing仍可以具有较高的识别精度。 但是,当代码偏转超过10度时,Zxing的识别精度会急剧下降。 但是,Scan Kit不受夹角的影响,并且识别精度不会降低。


多码识别比较
多码识别有助于在快递和超市结账等场景中一次识别多个码,从而提高服务处理效率。 在多代码识别模式下,扫描套件可以同时在屏幕上识别五种类型的代码,并一次返回所有代码的相应类型和值。

Zxing与华为HMS扫描套件的比较_第1张图片


SDK套件大小比较
Zxing软件包的大小约为500 KB,这是令人满意的大小。 扫描套件有两种模式:精简版和专业版。 在精简模式下,程序包的大小为700 KB。 在Pro模式下,程序包大小为3.3 MB。 如果使用该表,您将更加清楚。


在非华为手机上,这两种模式略有不同。 因此,如果您对非华为手机的包装尺寸不敏感,请尝试选择Pro版本。 我还对非华为精简版进行了测试,但测试结果略低于专业版。
平台支持比较
Zxing和Scan Kit支持iOS和Android平台。
整合模式比较
Zxing的集成方式比较简单。 仅需几行代码即可将其与SDK快速集成。 但是,在实际的产品开发过程中,还涉及产品接口和辅助功能的开发。 但是,Zxing没有提供相应的快速集成模式。 集成指南可在实时网络上使用很长时间。 因此,可以降低开发难度。 总之,Zxing集成的第一点是没有默认接口可用。 其次,需要实现自己的自动放大,闪光灯等功能。
扫描工具包提供多种访问模式,包括单代码访问,多代码访问和自定义访问。 两种集成方式的区别如下:
默认布局是为Scan Kit摄像机的单代码访问提供的。 此外,预设了自动放大和闪光等功能。 开发人员无需手动配置这些功能。 代码集成量为5行,特别适合需要快速集成和快速替换QR码扫描功能的场景。
扫描套件的自定义访问权限使用户可以自己设计布局。 仅提供扫描和解码的基本功能和空白布局。 用户可以根据自己的应用样式来设计布局。 但是,他们需要实现自动缩放和闪光等功能。 相应的技术文档可以在华为开发人员的光网络上找到。 但是,与单码访问相比,这种访问模式更为复杂。
集成方式如下:
Zxing整合流程
1.创建一个项目并导入Zxing模块。
2.添加权利并动态申请权利。
3.复制onActivity方法。
4,调用解码功能
5.编译UI,确保UI正确显示。
扫描套件集成过程
默认查看模式提供两种功能:相机QR码扫描和基于图像的QR码扫描。 在这种模式下,开发人员无需开发用于QR码扫描的UI。
该过程与Zxing几乎相同。
1.创建一个项目并导入扫描套件模块。
2.添加权限并动态申请权限。
3.复制onActivity方法。
4.调用解码功能。
下面以“默认视图模式”为例介绍集成过程。
1.创建一个项目,然后在app / build.gradle文件中添加在线依赖项。
implementation'com.huawei.hms:scan:{version}'
2.在调用模块的AndroidManifest.xml文件中声明QR码扫描页面。
13

    
    
    
    
    
    
3.根据现场要求创建QR码扫描选项。
HmsScanAnalyzerOptions options = new HmsScanAnalyzerOptions.Creator().setHmsScanTypes(HmsScan.QRCODE_SCAN_TYPE, HmsScan.DATAMATRIX_SCAN_TYPE).create();
4.调用ScanUtil的静态方法startScan,以启动“默认视图QR码”扫描页面。
ScanUtil.startScan(this, REQUEST_CODE_SCAN_ONE, options);
比较表明,Scan Kit和Zxing具有相同的依赖性和权限应用程序方法。 但是,默认情况下,Scan Kit可以使用UI(具有内置闪光灯,自动焦距和QR码导入)。 Zxing需要自己实现UI,然后手动完成这些功能。
技术分析
为什么Scankit比Zxing更好? 下面从技术实现原理的角度介绍Zxing和Scan Kit的技术分析。
中兴科技分析
Zxing使用传统的识别算法。 它可以通过从特定角度分析代码来检测代码。 该算法仅允许一定程度的变形,例如,方码可以稍微倾斜不到10度,他的像素仍然适合该图案,但是如果它们变形太大或角度太大,它们就不能检测代码的位置。 ZXing的检测过程分为两类:一维代码检测和二维代码串行检测。
在一维代码检测中,Zxing使用渐进式扫描机制进行特征识别。 因为一维代码特征是黑白交叉,所以当识别出具有等间距类的黑白序列时,它被视为潜在代码。 潜在代码的长度通过找到起始位和结束位来确定。 然后,将序列发送到不同的一维代码解码模块进行串行解码,这需要很长时间。 当串行解码失败时,将显示一条失败消息,并且失败时间也很长。 另外,一旦一维代码具有褶皱,旋转或变形,就不能通过逐行扫描找到满足特定要求的序列,即,不能在复杂条件下检测到一维代码。


1,安静区域(圆角)2.起始字符3.数据符号4.终止符5,安静区域(后面)
在二维码检测中,Zxing对不同的二维码使用不同的检测算法。 例如,最常见的QR码具有三种位置检测模式。 因此,Zxing仍使用隔行扫描模式来查找位置检测图案的特征。 一旦找到黑白比为1:1:3:1:1的特征,即以位置检测图的中心点为参考点进行仿射变换,从而校正后的图片发送到QR解码模块。 QR码的定位点具有校正旋转的功能,因此可以很好地适应旋转情况。 但是,Zxing完全无法处理部分阻塞,变形以及污染和反射定位点的情况。 如图所示,检测位置检测图是检测二维码是否被成功检测的最重要步骤。 一旦无法检测到位置,就无法检测到二维码。

Zxing与华为HMS扫描套件的比较_第2张图片


华为HMS扫描套件技术分析
Scan Kit使用深度学习算法,该算法在空间上是不变的。 通过训练相应代码类型的检测器,Scan Kit可以快速找到所有必需的代码。
实际过程:

Zxing与华为HMS扫描套件的比较_第3张图片


条形码检测模块和角度预测模块使用深度学习模型。
条形码检测:不再限制在Zxing中分别检测一维代码的二维代码的串行过程。 训练有素的检测器可用于直接获取代码模式和相应位置。 可以通过一次检测将条形码准确地发送到相应的解码模块,并且不再需要单独的串行解码过程。 因为解码包括诸如跳过扫描之类的具有高开销的一系列操作,并且不能共享不同代码的信息,所以该操作极大地减少了端到端延迟,并且避免了很多重复的和不必要的计算开销。
角度预测:返回代码的相应三位角度以进行射线照相转换。 在实践中,条形码检测的核心是准确获取边界点。 在将图像转换成二进制图像后,将其发送到解码模块,但是解码效果仍然很差。 这也是解决复杂情况下条形码识别的最重要步骤。
综上所述,深度学习将Zxing条形码的串行检测和解码过程变为并行过程。 另外,返回条形码的三位数角度值。 仿射更改后,将获得对齐的标准前条形码。 这大大提高了条形码检测的成功率,并大大减少了等待时间。
更多信息
演示,示例代码和开发文档可在华为开发人员官方网站上找到。
演示和示例代码:
https://developer.huawei.com/consumer/zh-CN/doc/development/HMS-Examples/scan-sample-code4
问题与讨论:
https://forums.developer.huawei.com/forumPortal/zh/home

From: https://bytes.com/topic/mobile-development/insights/974079-comparison-between-zxing-huawei-hms-scan-kit

你可能感兴趣的:(Zxing与华为HMS扫描套件的比较)