日本小哥如何使用深度学习和TensorFlow种黄瓜?

简介:


 ◆ 

导读


现在说机器学习和深度学习的应用只受限于人们的想象力并不夸张。不仅全世界的数据科学家们为之着迷,甚至在日本的农场,一位小哥为了减轻妈妈的工作负担,也开始尝试采用深度学习和Tensor Flow种黄瓜。


大约一年前,曾为日本汽车业内一名嵌入式系统设计师的MakotoKoike开始在父母的黄瓜种植园帮工。根据大小形状颜色和其他属性来分选黄瓜这件事所需的工作量令他吃惊。


Makoto Koike那一生致力于提供鲜脆黄瓜的父亲就很为他那些仍带有细刺的扎手黄瓜感到自豪。颜色鲜艳又直又粗并且有许多刺的黄瓜被认为是高档的,可在市场上要价更高。


但是MakotoKoike很快就了解到分选黄瓜就如把它们种出来一样难。“每只黄瓜的颜色、形状、质量、新鲜度都不同”,Makato说。



零售店里和Makoto Koike家农场的黄瓜


在日本,每家农场都有自己的分类方法,并且没有行业标准。MakotoKoike家农场把黄瓜分为9个不同的等级,由他妈妈亲自分选所有黄瓜,——这在收获的峰季是最高每天8小时的工作量。


“分选工作不是一项简单易学的任务。你不只要看它的大小粗细,还要看颜色质地,有没有小的划痕,是不是奇形怪状,有没有刺。这些需要好几个月才能学会,所以在最忙的时节雇临时工行不通。我自己也是最近才学得能把这些黄瓜分选好”,Makoto说到。


歪歪扭扭的黄瓜被评为次品


市面上也有(黄瓜)自动分选机,但在性能和费用方面都有局限,所以小型农场不大会用它们。


Makoto认为分选黄瓜不是瓜农的一项重要任务。“瓜农希望把注意力和功夫花在培养可口蔬菜上。我想在接手父母的农场生意之前把分选工作自动化。”

Makoto Koike(中间)和他的父母在自家黄瓜农场


 ◆ 

深度学习的众多用途


Makoto试用机器学习来分选黄瓜的创意最初来自一个完全不同的应用实例:谷歌阿尔法狗与世界顶尖职业围棋手对弈。


“当我看到谷歌的阿尔法狗,我意识到这里确实在发生一些很严肃的事情,”Makoto说,“这触发我开始开发带有深度学习技术的黄瓜分选机。”


深度学习用于图像识别,允许电脑从训练数据集中学习到什么是图像的重要“特征”。使用大量的人工神经元分层,深度学习可以高精度地自动分类图像。因此神经网络可以从图像中识别出不同种类的猫,或是不同型号的汽车和飞机。神经网络有时会在特定应用中超过人眼的表现。(如需更多信息,请看我过去的博客文章Understanding neuralnetworks with TensorFlow Playground.


 ◆ 

TensorFlow将深度学习的权力民主化


但是计算机是否真能学会妈妈的黄瓜分选技艺?Makoto开始着手使用谷歌的开源机器学习库TensorFlow来看看自己能不能用深度学习技术来进行分选。


“谷歌刚刚开源了TensorFlow,所以我就开始把它试用于我的黄瓜图像上,”Makoto说。“这是我第一次尝试机器学习或是深度学习技术,马上就得到高过预期的准确度。那给了我信心:它能解决我的问题。”


有了TensorFlow你不需要知道施用深度神经网络所需的高阶数学模型和优化算法。只要下载示例代码并阅读教程你可以马上就可以开始用它。TensorFlow显著降低了机器学习的门槛,自从谷歌于去年11月开源了这个程序库,许多“非机器学习”的工程师已经开始通过他们自有的数据和应用来摆弄这项技术。


 ◆ 

黄瓜分选系统的设计


下图是Makoto设计的黄瓜分选机的系统图解。该系统以Raspberry Pi 3为主控制器用一架相机为每根黄瓜拍照。在最初阶段,系统在TensorFlow上运行小规模的神经网络来检测这是否是黄瓜的照片。系统接下来将这张照片转发至Linux服务器上的一个更大的TensorFlow神经网络执行更加精细的分类。


黄瓜分选机的系统图解


Makoto 采用了名为DeepMNIST for ExpertsTensorFlow示例代码,经过一些对卷积层,池化层和最后一层的微调后,改变网络设计以适应黄瓜图像的像素格式和黄瓜分选的等级数。


下图是Makoto的黄瓜分选机,已于七月投入使用。



下图是分选臂以及相机接口的特写镜头。


 ◆ 

挑战深度学习的极限


深度学习目前面临的挑战之一是它需要大量的训练数据。为了训练模型,Makoto花了大约三个月时间,拍摄了7000张他母亲所分选的黄瓜的照片,但这恐怕还是不够。


“当我用测试图像进行验证时,识别准确度超过95%。但如果在实际操作中运用这个系统,准确度就会下降到70%左右。我怀疑神经网络模型由于训练图像的数量不够,存在“过度拟合”的问题(神经网络中的现象:模型被训练得只适于少量的训练数据)。”


深度学习的第二个挑战是它消耗大量的运算容量。现在这架分选机用一台普通的Windows台式电脑来训练神经网络模型。尽管它将黄瓜的照片转成80*80像素的低分辨率图像,但对基于7000张照片的模型,它仍需2-3天时间来完成训练。


“即使处理这样低像素的图像,这个系统也只能根据黄瓜的形状、长度和弯度来将其分类。它不能识别色泽、纹理、划痕和刺”,Makoto解释道。提高像素来放大黄瓜的图像可以提高准确度,但训练所需时间也将大大增加。


为了改进深度学习,一些大公司已经开始进行大规模分布式训练,但那些服务器往往需要巨额成本。谷歌推出了云机器学习(CloudML)这个用于训练和预测的低成本云平台,它可以投入数以百计的云服务器来使用TensorFlow训练神经网络。在Could ML平台上,谷歌会来搭建用于分布式训练的大规模集群,而你只需购买你要用到的,这让开发者们可以更容易地试用深度学习而无需大量资本投资。


这些专用服务器曾被用于阿尔法狗的比赛

 

MakotoCloudML充满期待。我可以在Cloud ML上使用更高分辨率的图像和更多的训练数据来训练模型。我还可以试着改变神经网络的各种设置、参数和算法来看看这些如何提高准确度。我已经迫不及待地想试用了。

 原文发布时间为:2016-09-06

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
30天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
262 55
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
115 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
177 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
169 5
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
100 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
2月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
116 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
121 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
基于TensorFlow的深度学习模型训练与优化实战
基于TensorFlow的深度学习模型训练与优化实战
118 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
107 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
4月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
140 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别