图书前言

前    言

深度学习正迅速成为业界最热门的话题。本书采用以工业和移动应用为中心的方法介绍深度学习的概念及其用例。本书将讨论一系列项目,涵盖移动视觉、面部识别、智能AI助手和增强现实等任务。

借助本书提供的8个实际项目,你将深入了解把深度学习流程集成到iOS和Android移动平台的实战操作。这将帮助你有效地将深度学习功能转换为强大的移动应用程序。

本书可让你亲身体验到如何选择正确的深度学习架构并优化移动应用中的深度学习模型,同时遵循面向应用程序的方法在原生移动应用程序上进行深度学习。

本书还将介绍各种预训练和定制的基于深度学习模型的API,如通过Google Firebase使用的ML Kit。此外,本书还将带你了解在TensorFlow Lite的帮助下使用Python创建自定义深度学习模型的示例。本书每个项目都会演示如何将深度学习库集成到你的移动应用程序中,从准备模型到实际部署都有详细介绍。

通读完本书之后,相信你将掌握在iOS或Android上构建和部署高级深度学习移动应用程序的技能。

本书读者

本书面向希望利用深度学习的力量创造更好的用户体验或希望将强大的AI功能引入其应用的程序开发人员。同时,本书也适用于希望将深度学习模型部署到跨平台移动应用程序的深度学习从业者。

要充分利用本书,你需要对移动应用程序的工作原理有基本的了解,并能够很好地理解Python,同时最好具备高中水平的数学知识。

内容介绍

本书共分10章,另外还有一个介绍基础操作的附录。

第1章:“移动设备深度学习简介”,阐释深度学习在移动设备上的新兴趋势和重要性。本章解释了机器学习和深度学习的基本概念,还介绍了可用于将深度学习与Android和iOS集成的各种选项。最后,本章还介绍了使用原生和基于云的方法实现深度学习项目。

第2章:“移动视觉—使用设备内置模型执行人脸检测”,介绍ML Kit中可用的移动视觉模型。本章解释了图像处理的概念,并提供了在Keras中创建人脸检测模型的实例。该实例可用于移动设备,并使用了Google Cloud Vision API进行人脸检测。

第3章:“使用Actions on Google平台开发智能聊天机器人”,介绍如何通过扩展Google Assistant的功能来帮助你创建自定义聊天机器人。该项目很好地演示了如何使用Actions on Google平台和Dialogflow的API构建应用程序,可使你的程序拥有智能语音和基于文本的对话界面。

第4章:“识别植物物种”,深入讨论如何构建能够使用图像处理执行视觉识别任务的自定义Tensorflow Lite模型。该项目开发的模型可在移动设备上运行,主要用于识别不同的植物物种。该模型可使用深度卷积神经网络(CNN)进行视觉识别。

第5章:“为摄像头画面生成实时字幕”,介绍一种为摄像头画面实时生成自然语言字幕的方法。在此项目中,你将创建自己的摄像头应用程序,该应用程序使用由图像字幕生成器生成的自定义预训练模型。该模型可使用卷积神经网络(CNN)和长短期记忆网络(LSTM)生成字幕。

第6章:“构建人工智能认证系统”,演示对用户进行身份验证的方法,并创建了一种机制来识别罕见和可疑的用户交互。在识别出罕见事件(即那些与大多数情况不同的事件)后,用户将不被允许登录,并收到一条消息,说明检测到恶意用户。当相关应用程序包含高度安全的数据(如机密电子邮件或虚拟银行金库)时,这可能非常有用。该项目可在网络请求标头上使用基于LSTM的模型来对异常登录进行分类。

第7章:“语音/多媒体处理—使用AI生成音乐”,探索使用AI生成音乐的方法。本章阐释了多媒体处理技术,演示了在样本训练后用于生成音乐的方法。本章项目可使用循环神经网络(RNN)和基于LSTM的模型来生成MIDI音乐文件。

第8章:“基于强化神经网络的国际象棋引擎”,讨论Google DeepMind开发的AlphaGo及其后续产品的原理,以及如何将强化神经网络用于Android平台的机器辅助游戏。本章项目将首先创建一个Connect 4引擎,以获得构建自学游戏AI的灵感。然后,你将开发基于深度强化学习的国际象棋引擎,并将其作为API托管在Google云平台(GCP)。最后,可使用国际象棋引擎的API在移动设备上运行游戏。

第9章:“构建超分辨率图像应用程序”,介绍一种借助深度学习生成超分辨率图像的方法。你将学习在Android/iOS上处理图像的第三种方法,以及如何创建可以托管在DigitalOcean上,并集成到Android/iOS应用程序中的TensorFlow模型。由于此模型是高度资源密集型的,因此最好在云上托管该模型。该项目使用了生成对抗网络(GAN)。

第10章:“未来之路”,简要介绍当今移动应用程序中最流行的深度学习应用程序、当前趋势以及未来该领域的预期发展。

充分利用本书

你需要在本地系统上安装可运行的 Python 3.5+。建议将Python作为Anaconda发行版的一部分进行安装。要构建移动应用程序,你还需要安装Flutter 2.0+。

此外,在本书中,你通常会同时需要TensorFlow 1.x和TensorFlow 2.x,因此,拥有两个Anaconda环境是必不可少的,具体需求如表P-1所示。

表P-1 

本书软硬件需求 操作系统需求

Jupyter Notebook 任何具有更新网络浏览器的操作系统(最好是Google Chrome/Mozilla Firefox/Apple Safari)。最低RAM要求:4 GB;建议8 GB或以上

Microsoft Visual Studio Code 任何具有4 GB以上RAM的操作系统;建议8 GB或以上

开发人员可以拿到的Android/iOS智能手机 至少有2 GB的RAM;建议3 GB或以上

本书用到的所有软件工具都是免费提供的。但是,你需要提供信用卡/借记卡详细信息才能激活GCP或DigitalOcean平台。

Flutter移动应用程序的深度学习处于开发的早期阶段。阅读本书后,如果你能够撰写有关如何在移动应用程序上执行机器学习或深度学习的博客和视频,那么你将为应用程序开发人员和机器学习从业者不断发展的生态系统做出重要贡献。

下载示例代码文件

读者可以从www.packtpub.com下载本书的示例代码文件。具体操作步骤如下。

(1)注册并登录www.packtpub.com。

(2)在页面顶部的搜索框中输入图书名称Mobile Deep Learning with TensorFlow Lite,ML Kit and Flutter(不区分大小写,也不必输入完整),即可看到本书,单击打开链接,如图P-1所示。

 

图P-1 

(3)在本书详情页面中,找到并单击Download code from GitHub(从GitHub下载代码文件)按钮,如图P-2所示。

  提示:

如果你看不到该下载按钮,可能是没有登录packtpub账号,该站点可免费注册账号。

(4)在本书GitHub源代码下载页面中,单击右侧的Code(代码)按钮,在弹出的下拉菜单中选择Download ZIP(下载压缩包),如图P-3所示。

 

图P-2 

 

图P-3 

下载文件后,请确保使用最新版本解压缩或解压缩到文件夹。

? WinRAR/7-Zip(Windows系统)。

? Zipeg/iZip/UnRarX(Mac系统)。

? 7-Zip/PeaZip(Linux系统)。

也可以直接访问本书在GitHub上的存储库,其网址如下。

https://github.com/PacktPublishing/Mobile-Deep-Learning-Projects

如果代码有更新,则会在现有GitHub存储库上更新。

下载彩色图像

我们提供了一个PDF文件,其中包含本书使用的屏幕截图/图表的彩色图像。可以通过以下地址下载。

https://static.packt-cdn.com/downloads/9781789611212_ColorImages.pdf

本书约定

本书使用了许多文本约定。

(1)有关代码块的设置如下所示。

dependencies: 

flutter:

sdk: flutter 

firebase_ml_vision: ^0.9.2+1 

image_picker: ^0.6.1+4

(2)任何命令行输入或输出都采用如下所示的粗体代码形式。

curl -O <link_you_have_copied>

(3)术语或重要单词采用中英文对照形式,在括号内保留其英文原文。示例如下。

利用自然语言处理(natural language processing,NLP)的强大功能,虚拟助手可以从用户的口语中识别命令,并从上传到助手的图像中识别人和宠物。虚拟助手甚至还可以从任何它们能够访问的在线相册中找到目标。

(4)对于界面词汇或专有名词将保留英文原文,在括号内添加其中文译名。示例如下。

确保在Firewall(防火墙)部分,选中了Allow HTTP traffic(允许HTTP流量)和Allow HTTPS traffic(允许HTTPS流量)复选框。

(5)本书还使用了以下两个图标。

 表示警告或重要的注意事项。

 表示提示或小技巧。