使用TensorFlow和Raspberry Pi进行图像识别入门

TensorFlow是Google的神经网络库。鉴于机器学习是当前最热门的事情,因此Google成为这项新技术的领导者就不足为奇了。

在本文中,您将学习如何在Raspberry Pi上安装TensorFlow,以及在预先训练的神经网络上运行简单的图像分类。

入门

要开始图像识别,您将需要Raspberry Pi(任何模型都可以使用)和SD带有Raspbian Stretch(9.0+)操作系统的存储卡(如果您不熟悉Raspberry Pi,请使用我们的安装指南)。

启动Pi并打开终端窗口。确保您的Pi是最新的,并检查您的Python版本。

sudo apt-get updatepython --versionpython3 --version

您可以在本教程中同时使用Python 2.7或Python 3.4+。此示例适用于Python3。对于Python 2.7,在整个过程中,将 Python3 替换为 Python ,并将 pip3 替换为 pip 教程。

Pip是Python的软件包管理器,通常在Linux发行版中作为标准安装。

如果没有,请按照此处的Linux安装说明进行操作。

安装TensorFlow

安装TensorFlow过去是一个令人沮丧的过程,但是最近的更新使其变得非常简单。虽然您可以在没有任何先验知识的情况下阅读本教程,但是在尝试之前,可能值得了解机器学习的基础。

在安装TensorFlow之前,请安装 Atlas 库。<

sudo apt install libatlas-base-dev

完成后,通过pip3安装TensorFlow

pip3 install --user tensorflow

这将为登录用户安装TensorFlow。如果您更喜欢使用虚拟环境,请在此处修改代码以反映这一点。

测试TensorFlow

一旦安装,就可以测试它是否与TensorFlow等效。 你好,世界!

在命令行中,使用 nano vim 创建新的Python脚本(如果不是, '不确定要使用哪一个,它们都有优势),并给它起一个易于记忆的名称。

sudo nano tftest.py

输入以下由Google提供的代码来测试TensorFlow:

import tensorflow as tfhello = tf.constant('Hello, TensorFlow!')sess = tf.Session()print(sess.run(hello))

正在使用nano,请在出现提示时按 Ctrl + X 退出并通过键入 Y 保存文件。

从终端运行代码:

python3 tftest.py

您应该看到“ Hello,TensorFlow"打印出来。

如果运行的是Python 3.5,则会收到一些运行时警告。 TensorFlow官方教程承认发生了这种情况,建议您忽略它。

它有效!现在,使用TensorFlow做一些有趣的事情。

安装图像分类器

在终端中,在您的主目录中为该项目创建一个目录,并导航至该目录。

mkdir tf1cd tf1

TensorFlow有一个git存储库,其中包含示例模型供您试用。将存储库克隆到新目录中:

git clone https://github.com/tensorflow/models.git

您要使用图像分类示例,该示例可在 models / tutorials / image / imagenet 中找到。立即导航到该文件夹​​:

cd models/tutorials/image/imagenet

标准图像分类脚本使用提供的熊猫图像运行:

要使用提供的熊猫图像运行标准图像分类器,请输入:<

python3 classify_image.py

这会将熊猫图像馈送到神经网络,该神经网络返回对图像的确定性值的猜测。

如输出图像所示,神经网络猜对正确,几乎有90%的把握。它还认为该图像可能包含一个南美番荔枝,但对这个答案并不十分自信。

使用自定义图像

熊猫图像证明TensorFlow可以工作,但这就是考虑到这是该项目提供的示例,也许不足为奇。为了进行更好的测试,您可以将自己的图像提供给神经网络进行分类。

在这种情况下,您将看到TensorFlow神经网络是否可以识别George。

遇见乔治。乔治是恐龙。要将图像(此处以裁剪形式提供)输入神经网络,请在运行脚本时添加参数。

python3 classify_image.py --image_file=/home/pi/george.jpg

脚本名称后的 image_file = 允许添加任何图像按路径。让我们看看这个神经网络是如何工作的。

还不错!虽然George不是三角恐龙,但与其他选项相比,神经网络将图像分类为具有高度确定性的恐龙。

TensorFlow和Raspberry Pi,准备就绪

TensorFlow的这种基本实现已经具有潜力。该对象识别发生在Pi上,不需要互联网连接即可运行。这意味着,通过添加Raspberry Pi摄像头模块和适用于Raspberry Pi的电池单元,整个项目可以变得可移植。

大多数教程仅涉及主题的表面,但从未如此。比这种情况更真实。机器学习是一门令人难以置信的密集学科。

一种进一步提高您的知识水平的方法是参加专门的课程。同时,您可以尝试使用这些TensorFlow项目来学习机器学习和Raspberry Pi。

标签: Google TensorFlow 图像识别 Raspberry Pi