写点什么

【Android Tips】小厂的扫码还能怎么做?

用户头像
李小四
关注
发布于: 2021 年 01 月 28 日
【Android Tips】小厂的扫码还能怎么做?

先说重点,你的 App 能识别下面这个二维码吗?


如果扫码功能基于ZXingZBar,而且没有自定义处理过数据,大概率是不行的。

这个时候,你可以试试 google 这个(基于机器学习的)库:


结果截图:




下面说一下我面临的问题与思考过程:

今天接到一个优化扫码的任务,然后收到了下面的二维码(就是上面那个):

扫码比较差我是知道的,只是用了ZXing这个库,在大部分情况下能扫出来,但是与超级 App 有着肉眼可见的差距(如微信、支付宝都成功识别了上面的二维码)。


跪在上面这张二维码上后,我不怀好意地测试了一些不以扫码为主要用户场景的应用,发现他们也都跪了。。。


锤子的相机-没有识别到二维码


网易云音乐(versionCode=8000041) - 未能识别


得到App(versionCode=20201231) - 未能识别


今日头条(versionCode=8090) - 只是偶尔可以成功。。。对不起宇宙厂,这只是巧合


最后,ZXing的官方App(versionCode=108)也失败了...


于是开始搜索一些解决方案,对于图像做一些中间的处理,处理后的数据ZXing更容易识别。看到这里,没有马上动手,而是开始想另一个问题:


这样的问题,最应该谁来解决?

应用层的程序员真的要研究图像识别,二维码原理这些吗?


带着这些问题,我搜索了微信的解决方案,看到微信对整个扫码的流程都做了很多处理,而且这篇文章是 2016 年的,听说现在的微信扫码用到了机器学习的技术(后来一想,图像识别可能是最适合用机器学习的场景了)。另外,微信阿里的方案都是闭源的(当然,他们没有任何义务开源),腾讯云还有一个产品就叫[智能扫码](https://cloud.tencent.com/document/product/1214/42830), 想着替公司剩下 10 万一个应用的授权费用,我继续了搜寻。。。


。。。很久(大概半个小时吧)之后,


我找到了文章开头提到的 google 的方案,作为机器学习的应用之一,ML Kit项目中包含一个barcode-scanning模块。项目还比较新,init到现在也就半年多(如果有坑可别怪我,嘿嘿~),但理论上基于机器学习的图像识别技术已经非常成熟了。具体的用法可以参考GuidelineSample, 如上文,结果是快速成功识别:



这可能是我第一次真真实实地意识到机器学习的力量,联想到韩寒的文章《我也曾对这种力量一无所知》,机器学习已经在很多方面展现出它的过人之处了,感谢 Google,让我对机器学习一无所知的情况下也能分享收益,只是。。。


如果没有 Google,只有国内的大厂(再次强调,它们没有义务开源),

机器学习的时代,会加速公平还是加速分化呢?


发布于: 2021 年 01 月 28 日阅读数: 131
用户头像

李小四

关注

还未添加个人签名 2018.05.01 加入

还未添加个人简介

评论

发布
暂无评论
【Android Tips】小厂的扫码还能怎么做?