提交 a63588b7 编写于 作者: W wizardforcel

2020-12-06 12:27:12

上级 5748c481
此差异已折叠。
......@@ -4,9 +4,9 @@
根据 Wikipedia 的说法,“ Raspberry Pi 是 Raspberry Pi 基金会在英国开发的一系列小型单板计算机,旨在促进学校和发展中国家的基础计算机科学教学。” Raspberry Pi 的官方网站( [https://www.raspberrypi.org](https://www.raspberrypi.org)将其描述为“一种小型且价格合理的计算机,可以用来学习编程。” 如果您以前从未听说过或使用过 Raspberry Pi,请访问其网站,然后您很快就会爱上这个很棒的小东西。 几乎没有什么功能-实际上,TensorFlow 的开发人员从 2016 年中期开始在早期版本的 Raspberry Pi 上提供了 TensorFlow,因此我们可以在微型计算机上运行复杂的 TensorFlow 模型,您只需花费 35 美元即可购买到。 这可能超出了“基础计算机科学的教学”或“学习编程”的范围,但另一方面,如果我们考虑过去几年中移动设备的所有飞速发展,那么看到这一点我们就不会感到惊讶 如何在越来越小的设备中实现越来越多的功能。
根据 Wikipedia 的说法,“ Raspberry Pi 是 Raspberry Pi 基金会在英国开发的一系列小型单板计算机,旨在促进学校和发展中国家的基础计算机科学教学。” [Raspberry Pi 的官方网站](https://www.raspberrypi.org)将其描述为“一种小型且价格合理的计算机,可以用来学习编程。” 如果您以前从未听说过或使用过 Raspberry Pi,请访问其网站,然后您很快就会爱上这个很棒的小东西。 几乎没有什么功能-实际上,TensorFlow 的开发人员从 2016 年中期开始在早期版本的 Raspberry Pi 上提供了 TensorFlow,因此我们可以在微型计算机上运行复杂的 TensorFlow 模型,您只需花费 35 美元即可购买到。 这可能超出了“基础计算机科学的教学”或“学习编程”的范围,但另一方面,如果我们考虑过去几年中移动设备的所有飞速发展,那么看到这一点我们就不会感到惊讶 如何在越来越小的设备中实现越来越多的功能。
在本章中,我们将进入 Raspberry Pi 的有趣世界,Raspberry Pi 是 TensorFlow 正式支持的最小设备。 我们将首先介绍如何获取和设置新的 Raspberry Pi 3 B 板,包括本章中使用的所有必要配件,以使其能够看,听和说。 然后,我们将介绍如何使用 GoPiGo 机器人基础套件( [https://www.dexterindustries.com/shop/gopigo3-robot-base-kit](https://www.dexterindustries.com/shop/gopigo3-robot-base-kit) )将 Raspberry Pi 板变成一个机器人 可以移动。 之后,我们将提供最简单的工作步骤,以便在 Raspberry Pi 上设置 TensorFlow 1.6 并构建其示例 Raspberry Pi 应用程序。 我们还将讨论如何集成图像分类,这是我们在[第 2 章](../Text/02.html)*通过转移学习*对图像进行分类时使用的模型,并通过文字转语音功能使机器人告诉我们它可以识别的内容 以及如何集成音频识别,这是我们在[第 5 章](../Text/05.html)*了解简单语音命令*中使用的模型以及 GoPiGo API,可让您使用语音命令来控制机器人的运动 。
在本章中,我们将进入 Raspberry Pi 的有趣世界,Raspberry Pi 是 TensorFlow 正式支持的最小设备。 我们将首先介绍如何获取和设置新的 Raspberry Pi 3 B 板,包括本章中使用的所有必要配件,以使其能够看,听和说。 然后,我们将介绍如何使用 [GoPiGo 机器人基础套件](https://www.dexterindustries.com/shop/gopigo3-robot-base-kit),将 Raspberry Pi 板变成一个可以移动的机器人。 之后,我们将提供最简单的工作步骤,以便在 Raspberry Pi 上设置 TensorFlow 1.6 并构建其示例 Raspberry Pi 应用程序。 我们还将讨论如何集成图像分类,这是我们在[第 2 章](../Text/02.html)*通过转移学习*对图像进行分类时使用的模型,并通过文字转语音功能使机器人告诉我们它可以识别的内容 以及如何集成音频识别,这是我们在[第 5 章](../Text/05.html)*了解简单语音命令*中使用的模型以及 GoPiGo API,可让您使用语音命令来控制机器人的运动 。
最后,我们将向您展示如何使用 TensorFlow 和 OpenAI Gym,这是一个用于开发和比较强化学习算法的 Python 工具包,如何在模拟环境中实现强大的强化学习算法,以使我们的机器人能够在真实的身体中移动和平衡 环境。
......@@ -28,16 +28,16 @@
小型单板 Raspberry Pi 计算机系列包括 Raspberry Pi 3 B +,3 B,2B,1 B +,1 A +,零和零 W(有关详细信息,请参见 [https:// /www.raspberrypi.org/products/#buy-now-modal](https://www.raspberrypi.org/products/#buy-now-modal) )。 我们将在此处使用 Pi 3 B 主板,您可以从前面的链接或在 Amazon( [https://www.amazon.com/gp/product/B01CD5VC92](https://www.amazon.com/gp/product/B01CD5VC92) )上以$ 35 的价格购买。 我们在主板上使用并测试过的配件及其价格如下:
小型单板 Raspberry Pi 计算机系列包括 Raspberry Pi 3B+,3B,2B,1B+,1A+,0 和 0W(有关详细信息,请参见[这里](https://www.raspberrypi.org/products/#buy-now-modal))。 我们将在此处使用 Pi 3B 主板,您可以从前面的链接或在 [Amazon](https://www.amazon.com/gp/product/B01CD5VC92) 上以 35 美元的价格购买。 我们在主板上使用并测试过的配件及其价格如下:
* CanaKit 5V 2.5A Raspberry Pi 电源约 10 美元( [https://www.amazon.com/gp/product/B00MARDJZ4](https://www.amazon.com/gp/product/B00MARDJZ4),可在开发期间使用。
* Kinobo-大约 4 美元的( [https://www.amazon.com/gp/product/B00IR8R7WQ](https://www.amazon.com/gp/product/B00IR8R7WQ)可以记录您的语音命令的 USB 2.0 微型麦克风。
* USHONK USB 微型扬声器约合 12 美元( [https://www.amazon.com/gp/product/B075M7FHM1](https://www.amazon.com/gp/product/B075M7FHM1),可以播放合成声音。
* Arducam 5 Megapixels 1080p 传感器 OV5647 微型相机约合$ 14 ( [https://www.amazon.com/gp/product/B012V1HEP4](https://www.amazon.com/gp/product/B012V1HEP4),以支持图像分类。
* [CanaKit 5V 2.5A Raspberry Pi 电源](https://www.amazon.com/gp/product/B00MARDJZ4)约 10 美元,可在开发期间使用。
* [Kinobo](https://www.amazon.com/gp/product/B00IR8R7WQ) - 大约 4 美元的可以记录您的语音命令的 USB 2.0 微型麦克风。
* [USHONK USB 微型扬声器](https://www.amazon.com/gp/product/B075M7FHM1)约合 12 美元,可以播放合成声音。
* [Arducam 5 Megapixels 1080p 传感器 OV5647 微型相机](https://www.amazon.com/gp/product/B012V1HEP4)约合 14 美元,以支持图像分类。
* 16 GB MicroSD 和适配器,价格约为 10 美元( [https://www.amazon.com/gp/product/B00TDBLTWK](https://www.amazon.com/gp/product/B00TDBLTWK),用于存储 Raspbian(Raspberry Pi 的官方操作系统)的安装文件,并用作 安装后的硬盘驱动器。
* 一个 USB 磁盘,例如 SanDisk 32GB USB Drive,售价 9 美元( [https://www.amazon.com/gp/product/B008AF380Q](https://www.amazon.com/gp/product/B008AF380Q),将用作交换分区(有关详细信息,请参阅下一节) 因此我们可以手动构建 TensorFlow 库,这是构建和运行 TensorFlow C ++代码所必需的。
* 售价 110 美元的 GoPiGo 机器人基础套件( [https://www.amazon.com/gp/product/B00NYB3J0A](https://www.amazon.com/gp/product/B00NYB3J0A) 或官方网站 [https://www.dexterindustries.com/shop](https://www.dexterindustries.com/shop),将 Raspberry Pi 板变成可以移动的机器人。
* [16 GB MicroSD 和适配器](https://www.amazon.com/gp/product/B00TDBLTWK),价格约为 10 美元,用于存储 Raspbian(Raspberry Pi 的官方操作系统)的安装文件,并用作 安装后的硬盘驱动器。
* 一个 USB 磁盘,例如 [SanDisk 32GB USB Drive](https://www.amazon.com/gp/product/B008AF380Q),售价 9 美元,将用作交换分区(有关详细信息,请参阅下一节) 因此我们可以手动构建 TensorFlow 库,这是构建和运行 TensorFlow C ++代码所必需的。
* 售价 110 美元的 [GoPiGo 机器人基础套件](https://www.amazon.com/gp/product/B00NYB3J0A)[官方网站](https://www.dexterindustries.com/shop),将 Raspberry Pi 板变成可以移动的机器人。
您还需要 HDMI 电缆将 Raspberry Pi 板连接到计算机显示器,USB 键盘和 USB 鼠标。 总共要花 200 美元,包括 110 美元的 GoPiGo,来构建一个可以移动,看,听,说的 Raspberry Pi 机器人。 尽管与功能强大的 Raspberry Pi 计算机相比,GoPiGo 套件似乎有点昂贵,但是如果没有它,那么一动不动的 Raspberry Pi 可能会失去很多吸引力。
......@@ -53,12 +53,12 @@ There's an older blog, *How to build a robot that “sees” with $100 and Tenso
最简单的方法是遵循 Raspbian 软件安装指南,网址为 [https://www.raspberrypi.org/learning/software-guide/quickstart](https://www.raspberrypi.org/learning/software-guide/quickstart) ,总而言之,这是一个简单的三步过程:
最简单的方法是遵循 [Raspbian 软件安装指南](https://www.raspberrypi.org/learning/software-guide/quickstart),总而言之,这是一个简单的三步过程:
1. 为 Windows 或 Mac 下载并安装 SD 格式化程序( [https://www.sdcard.org/downloads/formatter_4/index.html](https://www.sdcard.org/downloads/formatter_4/index.html)
1. 为 Windows 或 Mac 下载并安装 [SD 格式化程序](https://www.sdcard.org/downloads/formatter_4/index.html)
2. 使用 SD 格式化程序格式化 MicroSD 卡。
3. [https://www.raspberrypi.org/downloads/noobs](https://www.raspberrypi.org/downloads/noobs) 上下载 Raspbian 的官方简易安装程序 New Out Of Box Software(NOOBS)的离线 ZIP 版本,将其解压缩,然后拖动并 将提取的`NOOBS`文件夹中的所有文件拖放到格式化的 MicroSD 卡中。
3.[这个页面](https://www.raspberrypi.org/downloads/noobs)上下载 Raspbian 的官方简易安装程序 New Out Of Box Software(NOOBS)的离线 ZIP 版本,将其解压缩,然后拖动并 将提取的`NOOBS`文件夹中的所有文件拖放到格式化的 MicroSD 卡中。
现在弹出 MicroSD 卡并将其插入 Raspberry Pi 板上。 将显示器的 HDMI 电缆以及 USB 键盘和鼠标连接到开发板上。 用电源为开发板供电,然后按照屏幕上的步骤完成 Raspbian 的安装,包括设置 Wifi 网络。 整个安装过程不到一个小时即可完成。 完成后,您可以打开一个终端并输入`ifconfig`来查找电路板的 IP 地址,然后从您的计算中使用`ssh pi@<board_ip_address>`来访问它,正如我们稍后将要看到的,这确实很方便并且需要 在移动中测试控制 Raspberry Pi 机器人-当移动时,您不想或不能将键盘,鼠标和显示器与板子一起使用。
......@@ -148,13 +148,13 @@ Occasionally, after the Pi board reboots, the card number for the USB speaker ge
GoPiGo 是一个流行的工具包,可将您的 Raspberry Pi 板变成移动的机器人。 购买并收到我们之前提到的 GoPiGo 机器人基础套件后,请按照 [https://www.dexterindustries.com/GoPiGo/get-started-with-the-gopigo3-raspberry- pi-robot / 1-assemble-gopigo3](https://www.dexterindustries.com/GoPiGo/get-started-with-the-gopigo3-raspberry-pi-robot/1-assemble-gopigo3) 将其与您的 Pi 板组装在一起。 根据您是同时观看 March March Madness 还是 NBA 季后赛比赛,这大约需要一两个小时。
GoPiGo 是一个流行的工具包,可将您的 Raspberry Pi 板变成移动的机器人。 购买并收到我们之前提到的 GoPiGo 机器人基础套件后,请按照[这里](https://www.dexterindustries.com/GoPiGo/get-started-with-the-gopigo3-raspberry-pi-robot/1-assemble-gopigo3)将其与您的 Pi 板组装在一起。 根据您是同时观看 March March Madness 还是 NBA 季后赛比赛,这大约需要一两个小时。
完成后,您的 Raspberry Pi 机器人以及我们之前列出的所有附件应如下所示:
![](img/a745c220-8c27-4b70-bef4-bc8dcbc518d8.png)Figure 12\. 1 Raspberry Pi robot with GoPiGo Kit and camera, USB speaker, and USB microphone
现在,使用 Raspberry Pi 电源打开 Pi 机器人,并在启动后使用`ssh pi@<your_pi_board_ip>`连接到它。 要安装 GoPiGo Python 库,以便我们可以使用 GoPiGo 的 Python API( [http://gopigo3.readthedocs.io/en/master/api-basic.html](http://gopigo3.readthedocs.io/en/master/api-basic.html)控制机器人,请运行以下命令 ,它将执行一个 shell 脚本,该脚本创建一个新的`/home/pi/Dexter`目录并在其中安装所有库和固件文件:
现在,使用 Raspberry Pi 电源打开 Pi 机器人,并在启动后使用`ssh pi@<your_pi_board_ip>`连接到它。 要安装 GoPiGo Python 库,以便我们可以使用 [GoPiGo 的 Python API](http://gopigo3.readthedocs.io/en/master/api-basic.html) 控制机器人,请运行以下命令 ,它将执行一个 shell 脚本,该脚本创建一个新的`/home/pi/Dexter`目录并在其中安装所有库和固件文件:
```py
sudo sh -c "curl -kL dexterindustries.com/update_gopigo3 | bash"
......@@ -190,7 +190,7 @@ gpg3_obj.drive_cm(5, False)
gpg3_obj.turn_degrees(30, False)
```
您还可以使用`forward``backward`许多其他 API 调用(如 [http://gopigo3.readthedocs.io/en/master/api-basic.html](http://gopigo3.readthedocs.io/en/master/api-basic.html) 中所述)来控制 机器人的运动,但是在本章中,我们仅使用`drive_cm``turn_degrees`
您还可以使用`forward``backward`[许多其他 API 调用](http://gopigo3.readthedocs.io/en/master/api-basic.html)来控制机器人的运动,但是在本章中,我们仅使用`drive_cm``turn_degrees`
我们现在准备使用 TensorFlow 向机器人添加更多智能。
......@@ -202,15 +202,15 @@ gpg3_obj.turn_degrees(30, False)
要在 Python 中使用 TensorFlow,就像我们稍后在*音频识别**强化学习*部分中所做的那样,我们可以在 TensorFlow Jenkins 持续集成站点上为 Pi 安装每晚 TensorFlow 1.6 版本 ( [http://ci.tensorflow.org/view/Nightly/job/nightly-pi/223/artifact/output-artifacts](http://ci.tensorflow.org/view/Nightly/job/nightly-pi/223/artifact/output-artifacts)
要在 Python 中使用 TensorFlow,就像我们稍后在*音频识别**强化学习*部分中所做的那样,我们可以在 TensorFlow Jenkins 持续集成站点上为 Pi 安装[每晚 TensorFlow 1.6 版本](http://ci.tensorflow.org/view/Nightly/job/nightly-pi/223/artifact/output-artifacts)
```py
sudo pip install http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-1.6.0-cp27-none-any.whl
```
此方法更为常见,并在一个不错的博客条目*中为 Raspberry Pi 交叉编译 TensorFlow*[https://petewarden.com/2017/08/20/cross-compiling](https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi) ,,作者是 *Pete Warden*
此方法更为常见,并在一个不错的博客条目中描述,[《为 Raspberry Pi 交叉编译 TensorFlow》](https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi),作者是 *Pete Warden*
一种更复杂的方法是使用`makefile`,这在您需要构建和使用 TensorFlow 库时是必需的。 TensorFlow 官方 makefile 文档( [https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile)的 Raspberry Pi 部分包含构建 TensorFlow 库的详细步骤,但是它 可能不适用于每个版本的 TensorFlow。 此处的步骤与 TensorFlow 的早期版本(0.10)完美配合,但是在 TensorFlow 1.6 中会导致许多“未定义对`google::protobuf`的引用”错误。
一种更复杂的方法是使用`makefile`,这在您需要构建和使用 TensorFlow 库时是必需的。 [TensorFlow 官方 makefile 文档](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile)的 Raspberry Pi 部分包含构建 TensorFlow 库的详细步骤,但是它 可能不适用于每个版本的 TensorFlow。 此处的步骤与 TensorFlow 的早期版本(0.10)完美配合,但是在 TensorFlow 1.6 中会导致许多“未定义对`google::protobuf`的引用”错误。
TensorFlow 1.6 版本已经测试了以下步骤,可从[下载 https://github.com/tensorflow/tensorflow/releases/tag/v1.6.0](https://github.com/tensorflow/tensorflow/releases/tag/v1.6.0) ; 您当然可以在 TensorFlow 发行页面中尝试使用较新的版本,或者通过`git clone https://github.com/tensorflow/tensorflow`克隆最新的 TensorFlow 源,并修复所有可能的问题。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册