蚊章汇 - Francesco Azzola
type: channel
link: https://linuxcn.bwsl.wang/author/1034/
description: Francesco Azzola
items: 如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习

如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习
type: item
date: 2018-08-02T07:12:29+08:00
description: 探索如何将 Android Things 与 Tensorflow 集成起来，以及如何应用机器学习到物联网系统上。学习如何在装有 Android Things 的树莓派上使用 Tensorflow 进行图片分类。这个项目探索了如何将机器学习应用到物联网上。具体来说，物联网平台我们将使用 Android Things，而机器学习引擎我们将使用 Google TensorFlow。现如今，Android Things 处于名为 Android Things 1.0 的稳定版本，已经可以用在生产系统中了。如你可能已经知道的，树莓派是一个可以支持 Android Things 1.0 做开发和原型设计的平台。本教程将使用 Android Things 1.0 和树莓派，当然，你可以无需修改代码就能换到其它所支持的平台上。这个教程是关于如何将机器学习应用到物联网的，这个物联网平台就是 Android Things Raspberry Pi。物联网上的机器学习是最热门的话题之一。要给机器学习一个最简单的定义，可能就是 维基百科上的定义：机器学习是计算机科学中，让计算机不需要显式编程就能去“学习”（即，逐步提升在特定任务上的性能）使用数据的一个领域。换句话说就是，经过训练之后，那怕是它没有针对它们进行特定的编程，这个系统也能够预测结果。另一方面，我们都知道物联网和联网设备的概念。其中前景最看好的领域之一就是如何在物联网上应用机器学习，构建专家系统，这样就能够去开发一个能够“学习”的系统。此外，还可以使用这些知识去控制和管理物理对象。在深入了解 Android Things 的细节之前，你应该先将其安装在你的设备上。如果你是第一次使用 Android Things，你可以阅读一下这篇如何在你的设备上安装 Android Things 的教程。这里有几个应用机器学习和物联网产生重要价值的领域，以下仅提到了几个有趣的领域，它们是：在工业物联网（IIoT）中的预见性维护消费物联网中，机器学习可以让设备更智能，它通过调整使设备更适应我们的习惯在本教程中，我们希望去探索如何使用 Android Things 和 TensorFlow 在物联网上应用机器学习。这个 Adnroid Things 物联网项目的基本想法是，探索如何去构建一个能够识别前方道路上基本形状（比如箭头）并控制其道路方向的无人驾驶汽车。我们已经介绍了 如何使用 Android Things 去构建一个无人驾驶汽车，因此，在开始这个项目之前，我们建议你去阅读那个教程。这个机器学习和物联网项目包含如下的主题：如何使用 Docker 配置 TensorFlow 环境如何训练 TensorFlow 系统如何使用 Android Things 去集成 TensorFlow如何使用 TensorFlow 的成果去控制无人驾驶汽车这个项目起源于 Android Things TensorFlow 图像分类器。我们开始吧！如何使用 Tensorflow 图像识别在开始之前，需要安装和配置 TensorFlow 环境。我不是机器学习方面的专家，因此，我需要找到一些快速而能用的东西，以便我们可以构建 TensorFlow 图像识别器。为此，我们使用 Docker 去运行一个 TensorFlow 镜像。以下是操作步骤：1、 克隆 TensorFlow 仓库：git clone https://github.com/tensorflow/tensorflow.git cd /tensorflow git checkout v1.5.0 2、 创建一个目录（/tf-data），它将用于保存这个项目中使用的所有文件。3、 运行 Docker：docker run -it \ --volume /tf-data:/tf-data \ --volume /tensorflow:/tensorflow \ --workdir /tensorflow tensorflow/tensorflow:1.5.0 bash 使用这个命令，我们运行一个交互式 TensorFlow 环境，可以挂载一些在使用项目期间使用的目录。如何训练 TensorFlow 去识别图像在 Android Things 系统能够识别图像之前，我们需要去训练 TensorFlow 引擎，以使它能够构建它的模型。为此，我们需要去收集一些图像。正如前面所言，我们需要使用箭头来控制 Android Things 无人驾驶汽车，因此，我们至少要收集四种类型的箭头：向上的箭头向下的箭头向左的箭头向右的箭头为训练这个系统，需要使用这四类不同的图像去创建一个“知识库”。在 /tf-data 目录下创建一个名为 images 的目录，然后在它下面创建如下名字的四个子目…