前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TensorFlow助力微信小程序,来自谷歌开发者大会上的商用案例

TensorFlow助力微信小程序,来自谷歌开发者大会上的商用案例

作者头像
云水木石
发布2019-09-17 10:54:16
1.1K0
发布2019-09-17 10:54:16
举报
文章被收录于专栏:大龄程序员的人工智能之路

前段时间一直在研究微信小程序中的 TensorFlow.js 开发,并开发了若干示例小程序,详情请查看之前的文章:

  1. 重磅好消息!TensorFlow开始支持微信小程序
  2. 当微信小程序遇上TensorFlow - tensorflow.js篇
  3. 当微信小程序遇上TensorFlow - 本地缓存模型
  4. 当微信小程序遇上TensorFlow - 官方文档

然而,随着研究的深入,越来越觉得微信小程序的限制太多,让我开始怀疑在微信小程序中加入 TensorFlow 能否达到产品级需求。就拿微信小程序有 2M 的大小限制来说,就是一大难题, TensorFlow 的js文件就有几百K,而一个精简的图片分类模型 MobileNet ,就有 1M 多,再加上本身的业务逻辑 js 和图片文件,很难将小程序控制在 2M 以内。如果每次从网络加载模型,倒没有大小限制,但这又背离了在微信小程序中使用 TensorFlow.js 的初衷。

这个问题一直困扰了很久,直到前几天放假观看了谷歌开发者大会2019年上海的视频。在一场以 TensorFlow.js 为主题的演讲中,介绍了一款结合了AR的虚拟试妆微信小程序,采用了 TensorFlow.js 框架。

先观看一下节选视频:

TensorFlow.js演讲节选视频 - 微信小程序

因为我找到的是官方提供的回看视频,没有同步放上PPT的内容。爱奇艺上的直播回放视频,将演讲和PPT同步放到一起,看起来更方便,有兴趣的同学可以上爱奇艺,搜索谷歌开发者大会,找出2019Google开发者大会-11日下午的视频(这是一个直播合集)即可。

这是一款来自 ModiFace 团队开发的虚拟试妆微信小程序,因为结合了 AR 技术,可以实时观察上妆效果,这无疑是一个非常有前景的领域。而要将这些技术运用到微信小程序,同样面临着如下挑战:

面对挑战,ModiFace开发团队给出了解决方案:

  1. 微信小程序支持 WebGL ,有了 WebGL,TensorFlow.js的推导速度比单纯用 CPU 最多可以快上 10 倍。现在的智能手机,基本上都带有 GPU ,所以这个前提条件可以满足。
  2. 传统的面部特征提取技术,结合 CNN,可以减少模型复杂度,从而降低模型的大小。在深度学习领域,通常采取端到端的机器学习,让模型自行提取特征,这固然可以简化开发,但也带来了模型复杂的问题。
  3. 就拿Inception V3、ResNet等模型,大小高达几十M到上百M,并不适用于端侧的机器学习。
  4. 针对 TensorFlow.js 支持的算子(op)有限的问题,开发者团队通过少量修改 TensorFlow.js 源码,加入自定义的算子支持。 最终效果如何呢?下面是ModiFace团队给出的答案:

这款微信小程序已经上线,不过藏的比较深,名字叫做阿玛尼美妆官方精品商城,点击下面的小程序即可进入:

我简单的试用了一下,目前只支持唇膏的实时试妆,效果算不上完美,也不算非常流畅,不过还能接受。

自从进入机器学习领域,所看的教程、书籍,大多数都是以图片分类作为例子。图片分类是机器学习的经典应用,但我们应该认识到,还有许多应用场景,机器学习在许多领域大有可为。在TensorFlow.js的主题演讲中,谷歌的开发工程师给我们提供更多的应用场景:

最后附上TensorFlow.js主题演讲的完整视频,如果你是一名前端开发工程师,可能会对此感兴趣:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云水木石 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档