# 前言 深度学习正迅速成为业界最受欢迎的话题。 本书以工业和应用为重点的方法介绍了流行的深度学习概念及其用例。 您将涵盖一系列项目,包括移动视觉,面部识别,智能 AI 助手和增强现实等任务。 在八个项目的帮助下,您将学习将深度学习过程集成到 iOS 和 Android 移动平台中。 这将帮助您有效地将深度学习功能转换为强大的移动应用程序。 这本书让您动手选择正确的深度学习架构并优化移动深度学习模型,同时遵循面向应用程序的方法在本机移动应用程序上进行深度学习。 稍后,我们将介绍各种经过预先训练和定制的基于深度学习模型的 API,例如通过 Google Firebase 的 ML Kit。 进一步,这本书将带您通过使用 TensorFlow Lite 借助 Python 创建自定义深度学习模型的示例。 从准备模型到部署,每个项目都会演示如何将深度学习库集成到您的移动应用程序中。 到本书结尾,您将具备在 iOS 和 Android 上构建和部署高级深度学习移动应用程序的技能。 # 这本书是给谁的 本书适合那些希望利用深度学习功能来提供更好的用户体验或希望将强大的智能功能引入其应用程序的应用程序开发人员。 同时,它也适合希望将其深度学习模型部署到跨平台移动应用程序的深度学习从业人员。 为了充分利用本书,需要对移动应用程序的工作方式有基本的了解,并对 Python 有很好的了解。 建议对中学数学有较高的了解。 # 本书涵盖的内容 “第 1 章”,“移动深度学习简介”讨论了移动设备上深度学习的新兴重要性。 它涵盖了机器学习和深度学习的基本概念,还向您介绍了可用于将深度学习与 Android 和 iOS 集成的各种选项。 本章还介绍了使用本机和基于云的学习方法进行深度学习项目的实现。 “第 2 章”,“移动视觉–使用设备上模型的人脸检测”向您介绍 ML Kit 中提供的移动视觉和移动视觉模型。 您将学习如何在 Keras 中创建人脸检测模型,并了解如何将其转换为可用于移动设备的模型。 该模型使用 Google Cloud Vision API 进行面部检测。 “第 3 章”,“Google 上的聊天机器人”使用操作,可以通过扩展 Google Assistant 的功能来创建自己的自定义聊天机器人。 该项目很好地理解了如何使用 Google Actions 和 Dialogflow 的 API 构建使用引人入胜的基于语音和文本的会话界面的产品。 “第 4 章”,“识别植物物种”提供了有关如何构建自定义 Tensorflow Lite 模型的深入讨论,该模型能够使用图像处理执行视觉识别任务。 开发的模型在移动设备上运行,主要用于识别不同的植物物种。 该模型使用深层**卷积神经网络**(**CNN**)进行视觉识别。 “第 5 章”,“从摄像机供稿生成实时字幕”提出了一种使用摄像机供稿实时生成自然语言字幕的方法。 在这个项目中,您将创建自己的相机应用程序,该应用程序使用由图像标题生成器生成的自定义预训练模型。 该模型使用 CNN 和**长短期记忆**(**LSTM**)生成字幕。 “第 6 章”,“构建人工智能身份验证系统”为您提供了验证用户身份并创建识别稀有和可疑用户交互的机制的方法。 在识别罕见事件(即与大多数数据不同的事件)后,不允许用户登录,并收到一条消息,指出检测到恶意用户。 当相关应用程序包含高度安全的数据(例如机密电子邮件或虚拟银行保险库)时,这可能会很有用。 该项目在网络请求标头上使用基于 LSTM 的模型来对异常登录进行分类。 “第 7 章”,“语音/多媒体处理-使用 AI 生成音乐”探索了使用 AI 生成音乐的方法。 将向您介绍多媒体处理。 本章演示了样本训练后用于生成音乐的方法。 该项目使用循环神经网络和基于 LSTM 的模型来生成 MIDI 音乐文件。 “第 8 章”,“基于增强型神经网络的国际象棋引擎”讨论了 Google 的 DeepMind,以及如何将增强型神经网络用于 Android 平台上的机器辅助游戏。 首先,您将创建一个 Connect4 引擎,以直观地构建自学习,玩游戏的 AI。 然后,您将开发基于深度强化学习的国际象棋引擎,并将其作为 API 托管在 **Google Cloud Platform**(**GCP**)上。 然后,您将使用国际象棋引擎的 API 在移动设备上执行游戏。 “第 9 章”,“构建图像超分辨率应用程序”提出了一种借助深度学习生成超分辨率图像的方法。 您将学习在 Android/iOS 上处理图像的第三种方法,以及如何创建可在 DigitalOcean 上托管并包含在 Android/iOS 应用程序中的 TensorFlow 模型。 由于此模型的资源非常密集,因此将指导您如何在云上托管该模型。 该项目使用生成对抗网络。 “第 10 章”,“未来之路”简要介绍了当今移动应用程序中最受欢迎的深度学习应用程序,当前趋势以及在该领域中有望发展的技术。 # 充分利用这本书 您需要在本地系统上有效的 Python 3.5+ 安装。 将 Python 作为 Anaconda 发行版的一部分进行安装是一个好主意。 要构建移动应用程序,您需要有效安装 Flutter 2.0+。 此外,整本书中通常会同时需要 TensorFlow 1.x 和 2.x。 因此,必须具有两个 Anaconda 环境: | 书中涵盖的软件/硬件 | **操作系统要求** | | Jupyter 笔记本 | 带有更新的网络浏览器(最好是 Google Chrome/Mozilla Firefox/Apple Safari)的任何操作系统。最低 RAM 要求:4 GB; 但是,建议使用 8 GB。 | | Microsoft Visual Studio 代码 | 任何具有 4 GB 以上 RAM 的操作系统; 但是,建议使用 8 GB。 | | 具有开发人员访问权限的智能手机 | 具有至少 2 GB RAM 的 Android/iOS; 但是,建议使用 3 GB。 | 您可以免费获得本书中所需的所有软件工具。 但是,您必须将您的信用卡/借记卡详细信息添加到您的帐户中才能激活 GCP 或 DigitalOcean 平台。 如果您使用的是本书的数字版本,建议您自己键入代码或通过 GitHub 存储库(下一节中提供的链接)访问代码。 这样做将帮助您避免与代码的复制和粘贴相关的任何潜在错误。 Flutter 移动应用程序上的深度学习尚处于开发的早期阶段。 阅读本书后,如果您撰写博客并制作有关如何在移动应用程序上执行机器学习或深度学习的视频,那么您将为不断增长的应用程序开发人员和机器学习从业者生态系统做出贡献。 # 下载示例代码文件 您可以从 [www.packt.com](http://www.packt.com) 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 [www.packtpub.com/support](https://www.packtpub.com/support) 并注册以将文件直接通过电子邮件发送给您。 您可以按照以下步骤下载代码文件: 1. 登录或注册 [www.packt.com](http://www.packt.com) 。 2. 选择支持选项卡。 3. 单击“代码下载”。 4. 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。 下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹: * Windows 的 WinRAR/7-Zip * Mac 版 Zipeg/iZip/UnRarX * 适用于 Linux 的 7-Zip/PeaZip 本书的代码包也托管在 [GitHub](https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。 我们还从[这里](https://github.com/PacktPublishing/)提供了丰富的书籍和视频目录中的其他代码包。 去看一下! # 下载彩色图像 我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以从[这里](https://static.packt-cdn.com/downloads/9781789611212_ColorImages.pdf)下载。 # 使用约定 本书中使用了许多文本约定。 `CodeInText`:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“注意,这里的`dialogflow`变量是`actions-on-google`模块的对象。” 代码块设置如下: ```py dependencies: flutter: sdk: flutter firebase_ml_vision: ^0.9.2+1 image_picker: ^0.6.1+4 ``` **粗体**:表示新术语,重要单词或您在屏幕上看到的单词。 例如,菜单或对话框中的单词会出现在这样的文本中。 这是一个示例:“要进入控制台,请单击**开始构建**或**转到操作控制台**按钮。” 警告或重要提示如下所示。 提示和技巧如下所示。