人工智能

百度开源移动端深度学习框架mobile-deep-learning

2017 年 9 月 25 日,百度在 GitHub 开源了移动端深度学习框架 mobile-deep-learning(MDL)的全部代码以及脚本,希望这个项目在社区的带动下能够更好地发展。 写在前面 深度学习技术已经在互联网的诸多方向产生影响,每天科技新闻中关于深度学习和神经网络的讨论越来越多。深度学习技术在近两年飞速发展,各种互联网产品都争相应用深度学习技术,产品对深度学习的引入也将进一步影响人们的生活。随着移动设备的广泛使用,在移动互联网产品应用深度学习和神经网络技术已经成为必然趋势。 与深度学习紧密联系在一起的图像技术同样在业界广泛应用。传统计算机视觉和深度学习的结合使图像技术得以快速发展。 GitHub 地址:https://github.com/baidu/mobile-deep-learning 移动端深度学习技术应用 百度应用案例 在移动端应用深度学习技术比较典型的就是 CNN(Convolutional Neural Network)技术,即常被人提起的卷积神经网络。mobile-deep-learning(MDL)是一个基于卷积神经网络实现的移动端框架。 MDL 在移动端主要有哪些应用场景呢?比较常见的如分辨出一张图片中的物体是什么,也就是 分类;或者识别出一张图片中的物体在哪、有多大,也就是 主体识别。 下面这个 App 叫拾相,可以在 Android 平台的应用宝中找到。它可以自动为用户将照片分类,对于拥有大量照片的用户来讲,这个功能很有吸引力。 另外,在手机百度搜索框右侧可以打开图像搜索,打开图像搜索后的界面效果如下图。当用户在通用垂直类别下开启自动拍开关(图中下方标注)时,手停稳它就会自动找到物体进行框选,并无需拍照直接发起图像搜索。整个过程可以给用户带来流畅的体验,无需用户手动拍照。图片中的框体应用的就是典型的深度学习主体识别技术,使用的就是 mobile-deep-learning(MDL)框架。MDL 目前在手机百度中稳定运行了多个版本,经过数次迭代后可靠性大幅提升。 业界其他案例 互联网行业在移动端应用神经网络的案例已经越来越多。 目前的流派主要有两种,其一是完全在客户端运行神经网络,这种方式的优点显而易见,那就是不需要经过网络,如果能保证运行速度,用户体验会非常流畅。如果能保证移动端高效运行神经网络,可以使用户感觉不到加载过程。使用完全脱离互联网网络在移动端运算神经网络的 App 已经举例,如前述拾相和手机百度中的图像搜索。 其二是另一种,运算神经网络过程依赖互联网网络,客户端只负责 UI 展示。在客户端神经网络落地之前,绝大部分 App 都使用了这种运算在服务端、展示在客户端的方式。这种方式的优点是实现相对容易,开发成本更低。 为了更好理解上述两种神经网络的实现方法,下面展示两个识别植物花卉的例子,分别用到了识花和形色两个 App。这两款 App 都使用了典型分类方法,都可以在 iOS 平台的 App Store 中找到。下图是一张莲花图片,这张图片使用识花和形色两个 App 分类都能得到较好的分类结果。你可以尝试安装这两款 App 并根据使用效果来判断它们分别使用了上述哪一种方法。 识花 近一年来涌现出很多花卉识别的 App。微软「识花」是微软亚洲研究院推出的一款用于识别花卉的 App,用户可以在拍摄后选择花卉,App 会给出该类花卉的相关信息。精准的花卉分类是其对外宣传的一大亮点。 形色 这款「形色」App,只需要对准植物 (花、草、树) 拍照,就能快速给出植物的名字,还有不少有趣的植物知识,如这个植物还有什么别名、植物的花语、相关古诗词、植物文化、趣味故事以及养护方法,看完收获不少。 移动端应用深度学习的难点 一直以来由于技术门槛和硬件条件的限制,在移动端应用深度学习的成功案例不多。传统移动端 UI 工程师在编写神经网络代码时,可以查阅到的移动端深度学习资料也很少。另一方面,时下的互联网竞争又颇为激烈,先入咸阳者王,可以率先将深度学习技术在移动端应用起来,就可以更早地把握时代先机。 移动端设备的运算能力相对 PC 端非常弱小。由于移动端的 CPU 要将功耗指标维持在很低的水平,制约了性能指标的提升。在 App 中做神经网络运算会使 CPU 运算量猛增。如何协调好用户功耗指标和性能指标就显得至关重要。

[April]总结和规划

[April]总结和规划 四月份是平淡的一个月,貌似没发生多少大事,所以我就简单总结下。 四月份清明节放假,寻思着趁放假把图书馆借的《批判性思维》和《暗时间》看完,没想到一直拖到前几天才看完。不过细嚼慢咽效果还是不错的,收获不少,接下去准备看《学会提问》。 四月各种网络上的比赛都开始了,像携程,GCJ,编程之美什么的,我倒是有去混一混,不过是打酱油的。 四月份没怎么刷题的样子,因为各种网络赛,还有个院内的比赛,另外被侠”姐”拖去打各种比赛,狠欢乐.. 越来越感觉时间的不够用,这个月开始使用wunderlist+发条番茄钟进行事情的计划和执行。托它们的福,感觉我的生活丰富了许多。但是还不够,我希望能花更多的时间来做我喜欢的事情,于是我仿照@编程菜菜 巨巨的方法,开始了#8 tomatoes a day#的计划,今天才day 4,希望能坚持下去(ง •̀_•́)ง。 上个月记得说过要整理博客来着,于是今天就整理了一下,还写了个简单Python来爬标题,后来发现爬完标题后发现在本地文本进行分类效率实在太慢,于是就在线整理了,今天就整理了一半。后面留着过几天有空再说吧。 明天开始就是五一劳动节了,又是假期…准备出去好好玩一下,于是这几天估计不会学习╮( ̄▽ ̄)╭,tomatoes计划也尽量完成吧。。 下个月准备复习数学,感觉以前数学学的不深,而且差不多忘了,需要好好地补一下了。已经借了概率论和微积分来看了ˊ>ˋ,希望能看完一半。 然后这个月又开始上起了Coursera的课程,是复旦的《大数据与信息传播》,跟舍友一起学的(:з」∠)_,另外又出了个国内的学堂在线,体验非常棒,准备去学几门~希望不要跟丢了.. 另外如果有时间的话想去重温下Python…又快忘了…