最近,Chrome团队尝试在Chrome中集成了一套与图形识别相关的API,使得图形识别这种以前只在原生应用中存在,或者在浏览器上,要借助其他难用的外部库才能实现的功能,现在只要少量代码即可实现。这些API包括人脸识别,条形码/二维码识别和文本识别,基本上覆盖了当前互联网应用的大部分场景。
现状
图形识别这种对系统资源和设备的计算能力要求颇高的功能,通常只有底层的原生API能驾驭,流行的框架主要是开源的Open CV和各大移动平台的图形识别服务:
而Chrome的这些API,当前还处于实验阶段,只集成在Chrome Canary版本中,特别是Android版更新较快。使用前还需要通过把“实验性网络平台功能”chrome://flags/#enable-experimental-web-platform-features设置为Enable来激活。
激活后,在Console控制台输入以下JavaScript代码,就能验证你的浏览器是否支持相应的API了:
- window.FaceDetector
- window.BarcodeDetector
- window.TextDetector
如果支持,就会返回如function FaceDetector() { [native code] }的信息。
Chrome Canary是Chrome的一条与其他项目并行的实验性分支,是许多前卫激进的特性的试验场,而且迭代很快,有时甚至是每日一更新,所以不出所料,也不太稳定。和其他Chrome版本一样,也可以在Chrome Release Channels上下载。
从现在公布的信息来看,以下这些场景可能得以轻松实现:
1、人脸识别:
- 自动框选你家庭聚会照片里的亲戚朋友们,然后你就可以给每个人都贴标签了,不用自己逐个框选。
- 在社交网站上注册的时候,你上传了一张照片,浏览器可以帮你裁剪好最佳尺寸。
2、条形码识别:
- 识别网页中的条形码/二维码,并作相应的动作,比如链接跳转,支付等等。
3、文本识别:
- OCR
- 配合语音接口,朗读图片中的文字
除此之外,开发者大可以尽情发挥想象,创造更多独一无二有趣的应用。
社区反映
图形识别虽然是刚需,但自去年底公布消息以来,可能是由于这些API尚处于实验阶段,尚待打磨,在开发社区内还未形成大范围的讨论,目前能收集到的主要是以下资料供开发者参考。
- API: Accelerated Shape Detection in Images - by Miguel Casas-Sanchez (Google Inc.) | 中文版 by 谈浩
- Face detection using Shape Detection API - by Paul Kinlan
不过正因为进化迅速,这套图形识别API从去年的M57版本发展至今,已经发生了不小的变化,也许在不久的将来,就会合并到稳定版中,真正为广大开发者所用,构建更多有趣的应用。