我们几乎每天都要扫码,登录网站、登记信息、消费支付、添加好友……只要打开扫一扫,能省去不少繁琐步骤。而当每次打开工具扫码时,这些工具通常都会给出 1:1 的扫码框,将框对准二维码,手机就能马上识别码内的信息。然而,不知你有没有发现,即使这些工具会将“扫描区”框出来,有时候其实不需要对准框就能完成扫描,只要二维码在相机取景范围内,系统就能马上将内容识别出来。
其实这跟每款 app 对扫描功能的用途有很大关系。纵观我们目前日常最常用的 10 款 app,二维码扫描页的设计可以分为几类:固定区域扫描、全屏扫描、固定区域但实际是全屏扫描、全屏设计但实际是固定扫描。固定区域扫描是我们目前接触最多的扫码模式,用户需要将手机对准二维码扫描才能让手机完成识别,若是目标二维码不在框内,app 就无法识别内容。
而在一些我们较为常用的 app,比如微信、支付宝,则是从过去的“固定框扫描”变成“全屏扫描”,即整个手机屏幕都是扫描框。手机无需正对着二维码也能完成识别,识别速度也比有框扫描快很多,相机还没对上焦,系统就能马上识别出信息。
实际上要将扫码页做成全屏并不难,但专门腾出一个方框作为扫描区也并非多此一举。二维码的历史最早可以追溯到上世纪八十年代,但直到过去十年才开始普及到我们的日常生活中。早期智能手机的对焦反应、速度都相对较慢,而且也容易受环境光和镜头清晰度的影响,因而在开发 app 扫描页时,开发者需要通过调整相机取景范围,让相机向特定区域对焦,而不是广域对焦。
近几年智能手机的相机对焦速度提升很快,核心处理器对图像处理的能力也逐步提升,因此现代手机扫码也不需要长时间的对焦,即便需要,也只是在不到一秒内就能完成。与此同时,随着二维码的应用渐成主流,app 开发商也通过自创扫码引擎的方式,提高扫码的速度和成功率,而不仅只依靠硬件层面来完成识别过程——微信便是其中一家。
微信虽然不是最早使用二维码的 app,但不得不承认它是应用二维码和扫码最频密的一款 app,这除了让用户一旦提起“扫码”就想到微信以外,也间接推动了微信对扫码技术的开发。在 QBar 问世前,扫码引擎主要为 zxing 和 zbar 两种,而这两种引擎有不同的优势,但都有各自的缺点,同时这两种引擎对条形码识别的限制也相对比二维码更多。
2016 年,由微信技术团队通过公众号“微信派”发布的一则推文中,他们曾介绍过 QBar 扫码引擎的工作原理。相比于传统的扫码方式,QBar 会在扫码页工作时通过预判算法筛出有条形码 / 二维码内容,通过扫描页快速识别出画面前的图形码信息,随后通过 QBar 引擎对图像解码,输出最终结果。
有了更完善的算法引擎和硬件解码能力,手机对二维码的识别也变得“敏感”了起来,它们在无需高清图像的条件下,也都能快速识别出码里的内容。如此一来,过去用于固定焦点的方框,自然会被全屏扫描所取代。
扫码形式上的变化,在微信、支付宝、微博这些用户扫码行为较多的 app 中体验升级尤其明显。用户在微信、支付宝可以快速完成扫码交易;微博则能让用户快速完成扫码二步验证。扫码速度、准确率的变化有赖于几家头部企业对扫码引擎和算法的改良,但从侧面看,这其实也得益于手机硬实力不断升级,只有分辨率更高的相机、运算性能更强的处理器,才能承载更复杂的解码引擎和算法,实现毫秒级的扫码识别能力。
从扫码页面的进化,可见手机扫码效率正在不断提升,常用 app 在扫码时都无需对准码,即能完成扫描。那我们回头来看,最为原始的扫码方框还有存在的意义吗?其实还是有的。首先一方面是当前旧设备的留存率较高,智能手机的使用寿命普遍都在 2-3 年,甚至长达 4-5 年,旧手机的对焦和识别能力都不如现在的新手机。
此外,尽管微信有自己的扫码引擎,但并非所有 app 开发商都具备开发引擎或专门优化引擎的能力。对于扫码需求不大的 app 来说,扫描功能主要也是扫描二维码,扫描成功率比速度更重要,因此在没有对识别引擎进行特定优化的前提下,使用原始的框内扫描,可以保障新旧设备扫码都有较高的识别成功率。
二维码的普及极大简化了我们在查询、支付、登记时的操作,而用于扫描它的手机,也在随着软件和硬件的解码能力升级,变得高效且多样化。如今的扫码页所能扫描的已经不止二维码,它还能结合神经网络进行识物。根据微信最新功能文档介绍,基于中国科学院昆明植物研究所提供的 85 万份植物图像数据,目前扫一扫功能能对 3.6 万多种植物进行识别,基本涵盖了我们日常所见的花草树木数据。
正因如此,过去用于引导用户、提高设备对焦速度的扫码框也随算法升级、硬件迭代、扫码页支持更多扫描目标而渐渐退出舞台。然而它并没有真正离开我们,只是从过去的 1:1 演变成和手机屏幕比例一致而已。