【Android Tips】小厂的扫码还能怎么做?
先说重点,你的 App 能识别下面这个二维码吗?
如果扫码功能基于ZXing
与ZBar
,而且没有自定义处理过数据,大概率是不行的。
这个时候,你可以试试 google 这个(基于机器学习的)库:
结果截图:
下面说一下我面临的问题与思考过程:
今天接到一个优化扫码的任务,然后收到了下面的二维码(就是上面那个):
扫码比较差我是知道的,只是用了ZXing这个库,在大部分情况下能扫出来,但是与超级 App 有着肉眼可见的差距(如微信、支付宝都成功识别了上面的二维码)。
跪在上面这张二维码上后,我不怀好意地测试了一些不以扫码为主要用户场景的应用,发现他们也都跪了。。。
于是开始搜索一些解决方案,对于图像做一些中间的处理,处理后的数据ZXing
更容易识别。看到这里,没有马上动手,而是开始想另一个问题:
这样的问题,最应该谁来解决?
应用层的程序员真的要研究图像识别,二维码原理这些吗?
带着这些问题,我搜索了微信的解决方案,看到微信对整个扫码的流程都做了很多处理,而且这篇文章是 2016 年的,听说现在的微信扫码用到了机器学习的技术(后来一想,图像识别可能是最适合用机器学习的场景了)。另外,微信阿里的方案都是闭源的(当然,他们没有任何义务开源),腾讯云还有一个产品就叫[智能扫码](https://cloud.tencent.com/document/product/1214/42830), 想着替公司剩下 10 万一个应用的授权费用,我继续了搜寻。。。
。。。很久(大概半个小时吧)之后,
我找到了文章开头提到的 google 的方案,作为机器学习的应用之一,ML Kit项目中包含一个barcode-scanning
模块。项目还比较新,init
到现在也就半年多(如果有坑可别怪我,嘿嘿~),但理论上基于机器学习的图像识别技术已经非常成熟了。具体的用法可以参考Guideline和Sample, 如上文,结果是快速成功识别:
这可能是我第一次真真实实地意识到机器学习的力量,联想到韩寒的文章《我也曾对这种力量一无所知》,机器学习已经在很多方面展现出它的过人之处了,感谢 Google,让我对机器学习一无所知的情况下也能分享收益,只是。。。
如果没有 Google,只有国内的大厂(再次强调,它们没有义务开源),
机器学习的时代,会加速公平还是加速分化呢?
版权声明: 本文为 InfoQ 作者【李小四】的原创文章。
原文链接:【http://xie.infoq.cn/article/0e31fdbd66ff779efd506c001】。文章转载请联系作者。
评论