我们几乎每天都会扫码登录网站、注册信息、购买支付、添加好友……只要打开扫一扫,就可以省去很多繁琐的步骤。
每次您打开工具进行扫码时,这些工具通常都会提供1:1的扫描框。 将边框与二维码对齐,手机即可立即识别二维码中的信息。
不过,不知大家是否注意到,即使这些工具将“扫描区域”框起来,有时不用对齐框也能完成扫描。 只要二维码在摄像头的可视范围内,系统就能立即识别内容。 出来。
那么这个盒子有什么用呢?
其实这和各个app如何使用扫描功能有很大关系。 纵观当今最常用的10款App,二维码扫描页面的设计可以分为几类:
固定区域扫描
全屏扫描
固定区域但实际全屏扫描
全屏设计但实际上是固定扫描
固定区域扫描是目前我们接触最多的扫描方式。 用户需要将手机对准二维码,扫描手机即可完成识别。 如果目标二维码不在框架内,应用程序将无法识别内容。
在我们一些比较常用的App中,比如微信、支付宝等,已经将过去的“定框扫描”改为“全屏扫描”,即整个手机屏幕都是一个扫描框。
手机无需面对二维码即可完成识别,识别速度比框式扫描快很多。 系统可以在相机对焦之前立即识别信息。
即使不在框内也能识别二维码(实际速度比GIF更快)
当然,这其中也有特殊情况。 当我打开微博扫码时,页面设计了固定的扫描区域,但应用程序的扫描机制本质上是全屏扫描。 所以每当我要扫描时,在二维码进入框架之前,信息就已经被读取了。
难道是设计师偷懒了? 或许。
要揭开扫描页面的细节,仅看表面显然是不够的。 我们还需要考虑很多方面,比如扫码所用的硬件以及软件层面的解码能力。
其实,让扫描页面全屏并不难,但留出一个方框作为扫描区域也不是没有必要。
原因在于,当二维码刚进入我们的生活时,无论是应用程序本身还是扫描设备都没有经过专门优化。 扫码的成功率往往取决于二维码所在环境的光线、距离和清晰度。 有关的。
对于用户个人来说,扫码区域提供了扫码识别的提示。 它的任务是告诉用户相机已经准备好扫描,只要对准就可以读取信息。
对于设备本身来说,摄像头能否快速识别二维码与摄像头的对焦性能以及处理器的解码运算能力有关系。
二维码的历史可以追溯到20世纪80年代,但直到最近十年,它们才在我们的日常生活中变得司空见惯。
但早期智能手机的对焦反应和速度都比较慢,而且也容易受到环境光和镜头清晰度的影响。 因此,开发者在开发App扫描页面时,需要调整摄像头的可视范围,以聚焦于特定区域。 ,而不是广域聚焦。
旧手机扫描速度比新手机慢(注意对焦拉风箱,使用魅族MX5测试)
简单来说,分离扫描区域,其实是为了照顾早期对焦速度比较慢的设备。 原理与相机的定点对焦区域类似。 相机仅对框内区域进行测量和对焦,从而减少目标二维码周围其他因素的干扰,从而提高相机的对焦速度和扫码成功率。
从另一个角度来看,扫码框除了告诉用户扫描功能已开启之外,也是提高识别准确率的一种方法。 只要盒子里的二维码关键元素符合要求,识别准确率大约是100%。
为了让用户能够在不同的环境和条件下扫码,开发者在使用扫码开发库时会集成调用闪光灯、远距离自动变焦等功能。 目的是让手机能够清楚地看到盒子。 里面的二维码信息方便用户在任何使用情况下扫描。
不过,近年来,智能手机摄像头的对焦速度快速提升,核心处理器的图像处理能力也逐渐提升。 因此,现代手机扫码时不需要长时间对焦。 即使他们这样做了,也只需要不到一秒钟的时间。 是可以在里面完成的。
与此同时,随着二维码的应用成为主流,应用开发者也在使用自己的扫码引擎来提高扫码的速度和成功率,而不再仅仅依靠硬件水平来完成识别过程——微信这是其中之一。
虽然微信并不是第一个使用二维码的应用程序,但不得不承认,它是最常使用二维码和扫码的应用程序。 这不仅让用户一提到“扫码”就想到微信,也间接推动了二维码的发展。 微信二维码扫描技术的开发。
在QBar出现之前,主要有两种扫描引擎:zbar和zbar。 这两种发动机有不同的优点,但都有各自的缺点。 同时,这两个引擎对条形码识别的限制比二维码更多。 。
2016年,微信技术团队通过公众号“微信拍”发布的一条推文中,介绍了QBar扫码引擎的工作原理。
与传统扫码方式相比,QBar在扫描码页时会采用预判算法过滤掉条码/二维码内容,通过扫描页快速识别屏幕前方的图文码信息,然后使用QBar引擎对图像进行处理并输出最终结果。
也就是说,当用户打开扫码页面时,只要盒子里有条形码或二维码图像,系统就已经开始预测用户的扫描目标,并开始对其进行分类识别。
只有一个角可以识别GIF(使用微信扫一扫功能)
而且由于二维码本身也具有容错机制(本来是为了让二维码即使损坏也能正常使用),所以相机实际上并不需要比对完整的二维码,它只需要找到二维码的关键点在容错范围内。 可以识别。 结合QBar引擎特性,扫码摄像头可以预测并过滤出二维码及其关键信息,在一秒内完成识别解码工作。
微信扫码预测模块流程图,图片来自:微信拍
“微信拍”公布的识别原理看似复杂,但在现代智能手机中,这些都是只需几毫秒就能完成的任务。 根据《微信学堂》的参考数据,iOS客户端微信的解码时间为5毫秒,微信客户端的解码时间为12毫秒。
至于为什么iOS设备的扫描速度更快,这可能与当时iOS与设备之间的解码性能有关。
11 Pro Max使用微信扫码速度(因GIF帧率略有加快)
在日光环境下的测试中,A13处理器确实能够在对焦前完成识别,甚至2016年的7也能实现“一键扫描”的响应; 而使用骁龙865旗舰的响应也很快,但与iOS相比略有速度差距。
如果说扫描二维码的意思是“还没看清楚就识别完成”,那么就是“看清楚就立即识别完成”。
两者之间的差别只有毫秒。
一加8使用微信扫码速度(由于GIF帧数有轻微加速)
不过,虽然扫码速度比iOS略慢,但与五年前两大阵营的速度差异相比,差距有所改善。
因此,过去5/12毫秒的识别时间并不是绝对值。 它们会随着手机软硬件算法的迭代而改变。
值得一提的是,当使用设备同时扫描多个二维码时,屏幕中的多个二维码会被一起识别,然后为用户选择对象提供入口; 虽然iOS识别速度更快,但在面对多个二维码时,系统会随机选择一个。
无需固定扫描框的微信扫一扫可同时识别多个二维码(注:多扫码功能目前正在灰度版测试,后续将在iOS版本中上线)
除了微信之外,支付宝也采用了与微信类似的全屏扫描方式。 虽然它的识别速度比微信稍慢,但仍然可以达到举手识别的水平。
根据CSDN网友分享的技术文档,该库集成了支付宝的扫码功能。 虽然不是微信的Qbar,但其深度优化下的识别速度也可以以毫秒计算。
凭借更完善的算法引擎和硬件解码能力,手机对二维码的识别变得更加“灵敏”。 他们可以快速识别代码的内容,而不需要高清图像。
这样一来,过去用来固定焦点的盒子自然就会被全屏扫描所取代。
支付宝识别速度也很快(测试平台11 Pro Max)
二维码扫描形式的变化在微信、支付宝、微博等用户经常扫描二维码的应用中表现得尤为明显。
用户通过微信、支付宝扫描二维码即可快速完成交易; 微博允许用户通过扫描二维码快速完成两步验证。
扫码速度和准确度的变化取决于几家领先公司扫码引擎和算法的改进。 但从侧面来看,这也是得益于手机硬件的不断升级。 只有分辨率更高的摄像头和计算性能更强的处理器,才能搭载更复杂的解码引擎和算法,实现毫秒级的扫码识别能力。
7 用旧版微信扫描盒子
从扫码页面的演变可以看出,手机扫码的效率在不断提升。 常用的应用程序在扫描时不需要对齐代码即可完成扫描。 那么我们回头看看,最原始的扫码盒子还有意义吗?
其实还是有一些的。
首先,一方面,目前老设备的保有率比较高。 智能手机的使用寿命一般为2-3年,甚至长达4-5年。 旧手机的对焦和识别能力不如现在的新手机。
扫描盒的作用,如前所述,是为了方便旧手机快速找到焦点,提高二维码的扫描速度和准确性。 而且,它还可以直观地引导用户将手机指向扫码,这实际上间接提高了旧手机每次扫码的识别效率。
京东、淘宝扫码虽然是全屏,但仍然需要在框内扫描。
另外,虽然微信有自己的扫码引擎,但并不是所有的应用开发者都有能力开发引擎或者专门优化引擎。
对于扫码需求不大的app来说,扫码功能主要是扫描二维码。 扫描成功率比速度更重要。 因此,无需对识别引擎进行专门的优化,使用原有的帧内扫描就可以保证新旧设备在扫描二维码时都有较高的识别成功率。
二维码的普及,大大简化了我们查询、支付、注册时的操作,而用于扫二维码的手机也随着软硬件解码能力的升级,变得高效、多样化。
如今的扫码页面不仅仅可以扫描二维码。 它还可以与神经网络结合来识别物体。 根据微信最新的功能文档,基于中国科学院昆明植物研究所提供的85万张植物图像数据,扫描功能目前可以识别3.6万多种植物,基本覆盖了我们日常见到的花草树木的数据。天。
可以看到,扫码页面正在承载更多的功能、更多样化的算法。
正因为如此,过去用于引导用户、提高设备对焦速度的扫描框架,随着算法升级、硬件迭代、扫描页面支持更多扫描目标,逐渐退出舞台。 不过,它并没有真正离开我们,只是从过去的1:1演变到与手机屏幕相同的比例。
爱范儿开通了视频账号!
更多新奇黑科技解密和炫酷产品,就来爱范儿视频号,1分钟了解全部。
注:微信视频号尚处于内测阶段,尚未对部分用户开放。
如果您喜欢这篇文章,请点击这里