书籍详情
面向移动设备的深度学习:基于TensorFlow Lite,ML Kit 和Flutter
作者:[印]安努巴哈夫·辛格 等著,张满婷 译
出版社:清华大学出版社
出版时间:2023-05-01
ISBN:9787302632344
定价:¥109.00
购买这本书可以去
内容简介
《面向移动设备的深度学习—基于TensorFlow Lite,ML Kit和Flutter》详细阐述了与移动设备深度学习开发相关的基本解决方案,主要包括使用设备内置模型执行人脸检测、开发智能聊天机器人、识别植物物种、生成实时字幕、构建人工智能认证系统、使用AI生成音乐、基于强化神经网络的国际象棋引擎、构建超分辨率图像应用程序等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
作者简介
安努巴哈夫·辛格是 The Code Foundation 的创始人,这是一家专注于人工智能的初创公司,致力于多媒体处理和自然语言处理,目标是让每个人都可以使用人工智能。Anubhav是Venkat Panchapakesan纪念奖学金的获得者,并获得“英特尔软件创新者”称号。Anubhav喜欢分享自己学到的知识,并且是Google Developers Group(谷歌开发者社区)的活跃发言人,经常热心指导他人进行机器学习。
目录
第1章 移动设备深度学习简介 1
1.1 人工智能驱动的移动设备的增长 1
1.1.1 支持人工智能的硬件变化 1
1.1.2 移动设备需要AI芯片的原因 2
1.1.3 使用AI在移动设备上改善用户体验 3
1.1.4 个性化 3
1.1.5 虚拟助手 3
1.1.6 面部识别 4
1.1.7 人工智能驱动的相机 5
1.1.8 预测文本 6
1.1.9 流行的使用人工智能的移动应用程序 7
1.1.10 Netflix 7
1.1.11 Seeing AI 8
1.1.12 Allo 8
1.1.13 English Language Speech Assistant 8
1.1.14 Socratic 8
1.2 机器学习和深度学习 9
1.2.1 机器学习详解 9
1.2.2 深度学习详解 10
1.2.3 输入层 11
1.2.4 隐藏层 11
1.2.5 输出层 11
1.2.6 激活函数 12
1.3 一些常见的深度学习架构 12
1.3.1 卷积神经网络 12
1.3.2 生成对抗网络 14
1.3.3 循环神经网络 15
1.3.4 长短期记忆网络 16
1.4 强化学习和NLP 16
1.4.1 强化学习 17
1.4.2 自然语言处理 17
1.5 在Android和iOS上集成人工智能的方法 18
1.5.1 Firebase ML Kit 18
1.5.2 Core ML 19
1.5.3 Caffe 2 20
1.5.4 TensorFlow 20
1.6 小结 22
第2章 移动视觉—使用设备内置模型执行人脸检测 23
2.1 技术要求 23
2.2 图像处理简介 23
2.2.1 理解图像 24
2.2.2 操作图像 25
2.2.3 旋转 25
2.2.4 灰度转换 26
2.3 使用Flutter开发人脸检测应用程序 27
2.3.1 添加pub依赖项 27
2.3.2 构建应用程序 28
2.3.3 创建个屏幕 30
2.3.4 构建行标题 31
2.3.5 使用按钮小部件构建行 31
2.3.6 创建整个用户界面 34
2.3.7 创建第二个屏幕 35
2.3.8 获取图像文件 35
2.3.9 分析图像以检测人脸 36
2.3.10 标记检测到的人脸 37
2.3.11 在屏幕上显示终图像 39
2.3.12 创建终的应用程序 40
2.4 小结 41
第3章 使用Actions on Google平台开发智能聊天机器人 43
3.1 技术要求 43
3.2 了解可用于创建聊天机器人的工具 44
3.2.1 Wit.ai 44
3.2.2 Dialogflow 45
3.2.3 Dialogflow工作原理 45
3.3 创建Dialogflow账户 47
3.4 创建Dialogflow代理 48
3.5 了解Dialogflow控制台 49
3.5.1 使用Dialogflow控制台 49
3.5.2 创建Intent并抓取实体 50
3.6 创建你的个Google Action 51
3.6.1 Actions on Google平台和Google Assistant的关系 51
3.6.2 Actions on Google平台的意义 51
3.7 创建Actions on Google项目 53
3.7.1 创建Actions on Google项目示例 53
3.7.2 创建与Google Assistant的集成 54
3.8 实现Webhook 56
3.9 将Webhook部署到Cloud Functions 58
3.10 创建一个Actions on Google版本 58
3.11 为对话式应用程序创建用户界面 60
3.11.1 创建文本控制器 61
3.11.2 创建ChatMessage 63
3.12 集成Dialogflow代理 68
3.13 添加与Assistant的音频交互 70
3.13.1 添加插件 70
3.13.2 添加SpeechRecognition 71
3.13.3 添加麦克风按钮 72
3.14 小结 75
第4章 识别植物物种 77
4.1 技术要求 77
4.2 图像分类简介 78
4.3 了解项目架构 78
4.4 Cloud Vision API简介 80
4.5 配置Cloud Vision API以进行图像识别 82
4.5.1 启用Cloud Vision API 82
4.5.2 创建Cloud Vision API密钥 84
4.6 使用SDK/工具构建模型 85
4.6.1 自定义模型的两种方法 85
4.6.2 Google Colaboratory简介 86
4.7 创建用于图像识别的自定义TensorFlow Lite模型 88
4.8 创建Flutter应用程序 93
4.8.1 在两种不同的模型之间进行选择 94
4.8.2 创建第二个屏幕 97
4.8.3 创建用户界面 97
4.8.4 添加功能 99
4.8.5 在屏幕上显示所选图像 100
4.9 运行图像识别程序 102
4.9.1 使用Cloud Vision API 102
4.9.2 使用设备内置的TensorFlow Lite模型 104
4.9.3 使用结果更新用户界面 107
4.10 小结 110
第5章 为摄像头画面生成实时字幕 111
5.1 设计项目架构 111
5.2 理解图像字幕生成器 112
5.2.1 了解数据集 114
5.2.2 构建图像字幕生成模型 116
5.2.3 初始化字幕数据集 116
5.2.4 准备字幕数据集 118
5.2.5 训练 120
5.2.6 测试 126
5.2.7 创建一个简单的一键部署图像字幕生成模型 127
5.3 了解摄像头插件 132
5.3.1 安装摄像头插件 133
5.3.2 添加持久存储和正确执行的方法 133
5.3.3 编写代码 133
5.4 创建摄像头应用程序 134
5.4.1 摄像头应用程序组成部分 134
5.4.2 构建摄像头预览 135
5.4.3 从摄像头生成图像字幕 138
5.5 创建终应用程序 142
5.6 小结 143
第6章 构建人工智能认证系统 145
6.1 技术要求 145
6.2 一个简单的登录应用程序 145
6.2.1 登录应用程序的流程图 145
6.2.2 创建用户界面 147
6.3 添加Firebase身份验证功能 153
6.3.1 创建auth.dart 155
6.3.2 在SignupSigninScreen中添加身份验证功能 158
6.3.3 创建MainScreen 159
6.3.4 创建HomeScreen 161
6.3.5 创建main.dart 163
6.4 了解身份验证的异常检测 164
6.5 用于验证用户的自定义模型 165
6.5.1 为检查身份认证的有效性构建模型 165
6.5.2 托管自定义身份认证的验证模型 168
6.6 实现ReCaptcha以防止垃圾邮件 170
6.6.1 关于ReCaptcha v2 171
6.6.2 获取API密钥 171
6.6.3 代码集成 173
6.7 在Flutter中部署模型 175
6.8 小结 177
第7章 语音/多媒体处理—使用AI生成音乐 179
7.1 设计项目的架构 179
7.2 理解多媒体处理 180
7.2.1 图像处理 181
7.2.2 音频处理 186
7.2.3 Magenta 187
7.2.4 视频处理 189
7.3 开发基于RNN的音乐生成模型 192
7.3.1 创建基于LSTM的模型 193
7.3.2 使用Flask部署模型 196
7.4 在Android和iOS上部署音频生成API 200
7.4.1 创建UI 201
7.4.2 添加音频播放器 204
7.4.3 部署模型 206
7.4.4 创建终应用程序 209
7.5 小结 210
第8章 基于强化神经网络的国际象棋引擎 211
8.1 强化学习简介 211
8.2 手机游戏中的强化学习 213
8.3 探索Google的DeepMind 214
8.3.1 AlphaGo 214
8.3.2 Alpha Zero 215
8.3.3 蒙特卡罗树搜索 216
8.4 用于Connect 4游戏的类Alpha Zero AI 218
8.4.1 创建棋盘的虚拟表示 220
8.4.2 允许根据游戏规则移动 222
8.4.3 状态管理系统 224
8.4.4 生成游戏玩法 225
8.4.5 生成游戏玩法样本 226
8.4.6 系统训练 227
8.4.7 蒙特卡罗树搜索实现 228
8.4.8 神经网络实现 228
8.4.9 创建驱动脚本 229
8.5 基础项目架构 231
8.6 为国际象棋引擎开发GCP托管的REST API 231
8.6.1 了解通用国际象棋接口 233
8.6.2 在GCP上部署 235
8.6.3 请求增加GPU实例的配额 235
8.6.4 创建GPU实例 236
8.6.5 部署脚本 237
8.7 在Android上创建一个简单的国际象棋UI 241
8.7.1 向pubspec.yaml添加依赖项 242
8.7.2 理解映射结构 243
8.7.3 放置棋子的实际图像 245
8.7.4 使棋子可移动 248
8.8 将国际象棋引擎API与UI集成 250
8.8.1 游戏逻辑 250
8.8.2 创建终应用程序 254
8.9 小结 255
第9章 构建超分辨率图像应用程序 257
9.1 基本项目架构 257
9.2 理解GAN 258
9.3 了解图像超分辨率的工作原理 261
9.3.1 理解图像分辨率 262
9.3.2 像素分辨率 262
9.3.3 空间分辨率 262
9.3.4 时间分辨率 263
9.3.5 光谱分辨率 263
9.3.6 辐射分辨率 263
9.3.7 理解SRGAN 264
9.4 为超分辨率创建TensorFlow模型 265
9.4.1 项目目录结构 265
9.4.2 为超分辨率创建SRGAN模型 265
9.5 为应用程序构建UI 267
9.6 从设备的本地存储中获取图片 271
9.7 在DigitalOcean上托管TensorFlow模型 273
9.7.1 创建一个Flask服务器脚本 274
9.7.2 将Flask脚本部署到DigitalOcean Droplet 275
9.8 在Flutter上集成托管的自定义模型 279
9.9 创建终应用程序 282
9.10 小结 283
第10章 未来之路 285
10.1 了解移动应用程序在深度学习方面的趋势 285
10.1.1 Math Solver 285
10.1.2 Netflix 286
10.1.3 Google Map 287
10.1.4 Tinder 287
10.1.5 Snapchat 287
10.2 探索移动设备上深度学习的发展 288
10.2.1 Google MobileNet 288
10.2.2 阿里巴巴移动神经网络 289
10.3 探索移动应用程序中深度学习的当前研究领域 289
10.3.1 时装图像 290
10.3.2 自注意力生成对抗网络 290
10.3.3 图像动态化 291
10.4 小结 292
附录A 293
A.1 在云端虚拟机上设置深度学习环境 293
A.1.1 创建GCP账号并启用结算功能 293
A.1.2 创建项目和GCP计算引擎实例 295
A.1.3 配置VM实例以执行深度学习 296
A.1.4 在虚拟机上安装TensorFlow 299
A.1.5 在虚拟机上安装NLTK并下载数据包 300
A.2 安装Dart SDK 300
A.2.1 Windows 300
A.2.2 macOS 301
A.2.3 Linux 301
A.3 安装Flutter SDK 301
A.3.1 Windows 302
A.3.2 macOS 303
A.3.3 Linux 304
A.4 配置Firebase 305
A.4.1 创建Firebase项目 305
A.4.2 配置Android项目 306
A.4.3 配置iOS项目 308
A.5 设置Visual Studio Code 310
A.5.1 安装Flutter和Dart插件 311
A.5.2 使用flutter doctor验证设置 311
A.5.3 创建个Flutter应用程序 312
A.5.4 运行应用程序 313
A.5.5 尝试热重载 314
1.1 人工智能驱动的移动设备的增长 1
1.1.1 支持人工智能的硬件变化 1
1.1.2 移动设备需要AI芯片的原因 2
1.1.3 使用AI在移动设备上改善用户体验 3
1.1.4 个性化 3
1.1.5 虚拟助手 3
1.1.6 面部识别 4
1.1.7 人工智能驱动的相机 5
1.1.8 预测文本 6
1.1.9 流行的使用人工智能的移动应用程序 7
1.1.10 Netflix 7
1.1.11 Seeing AI 8
1.1.12 Allo 8
1.1.13 English Language Speech Assistant 8
1.1.14 Socratic 8
1.2 机器学习和深度学习 9
1.2.1 机器学习详解 9
1.2.2 深度学习详解 10
1.2.3 输入层 11
1.2.4 隐藏层 11
1.2.5 输出层 11
1.2.6 激活函数 12
1.3 一些常见的深度学习架构 12
1.3.1 卷积神经网络 12
1.3.2 生成对抗网络 14
1.3.3 循环神经网络 15
1.3.4 长短期记忆网络 16
1.4 强化学习和NLP 16
1.4.1 强化学习 17
1.4.2 自然语言处理 17
1.5 在Android和iOS上集成人工智能的方法 18
1.5.1 Firebase ML Kit 18
1.5.2 Core ML 19
1.5.3 Caffe 2 20
1.5.4 TensorFlow 20
1.6 小结 22
第2章 移动视觉—使用设备内置模型执行人脸检测 23
2.1 技术要求 23
2.2 图像处理简介 23
2.2.1 理解图像 24
2.2.2 操作图像 25
2.2.3 旋转 25
2.2.4 灰度转换 26
2.3 使用Flutter开发人脸检测应用程序 27
2.3.1 添加pub依赖项 27
2.3.2 构建应用程序 28
2.3.3 创建个屏幕 30
2.3.4 构建行标题 31
2.3.5 使用按钮小部件构建行 31
2.3.6 创建整个用户界面 34
2.3.7 创建第二个屏幕 35
2.3.8 获取图像文件 35
2.3.9 分析图像以检测人脸 36
2.3.10 标记检测到的人脸 37
2.3.11 在屏幕上显示终图像 39
2.3.12 创建终的应用程序 40
2.4 小结 41
第3章 使用Actions on Google平台开发智能聊天机器人 43
3.1 技术要求 43
3.2 了解可用于创建聊天机器人的工具 44
3.2.1 Wit.ai 44
3.2.2 Dialogflow 45
3.2.3 Dialogflow工作原理 45
3.3 创建Dialogflow账户 47
3.4 创建Dialogflow代理 48
3.5 了解Dialogflow控制台 49
3.5.1 使用Dialogflow控制台 49
3.5.2 创建Intent并抓取实体 50
3.6 创建你的个Google Action 51
3.6.1 Actions on Google平台和Google Assistant的关系 51
3.6.2 Actions on Google平台的意义 51
3.7 创建Actions on Google项目 53
3.7.1 创建Actions on Google项目示例 53
3.7.2 创建与Google Assistant的集成 54
3.8 实现Webhook 56
3.9 将Webhook部署到Cloud Functions 58
3.10 创建一个Actions on Google版本 58
3.11 为对话式应用程序创建用户界面 60
3.11.1 创建文本控制器 61
3.11.2 创建ChatMessage 63
3.12 集成Dialogflow代理 68
3.13 添加与Assistant的音频交互 70
3.13.1 添加插件 70
3.13.2 添加SpeechRecognition 71
3.13.3 添加麦克风按钮 72
3.14 小结 75
第4章 识别植物物种 77
4.1 技术要求 77
4.2 图像分类简介 78
4.3 了解项目架构 78
4.4 Cloud Vision API简介 80
4.5 配置Cloud Vision API以进行图像识别 82
4.5.1 启用Cloud Vision API 82
4.5.2 创建Cloud Vision API密钥 84
4.6 使用SDK/工具构建模型 85
4.6.1 自定义模型的两种方法 85
4.6.2 Google Colaboratory简介 86
4.7 创建用于图像识别的自定义TensorFlow Lite模型 88
4.8 创建Flutter应用程序 93
4.8.1 在两种不同的模型之间进行选择 94
4.8.2 创建第二个屏幕 97
4.8.3 创建用户界面 97
4.8.4 添加功能 99
4.8.5 在屏幕上显示所选图像 100
4.9 运行图像识别程序 102
4.9.1 使用Cloud Vision API 102
4.9.2 使用设备内置的TensorFlow Lite模型 104
4.9.3 使用结果更新用户界面 107
4.10 小结 110
第5章 为摄像头画面生成实时字幕 111
5.1 设计项目架构 111
5.2 理解图像字幕生成器 112
5.2.1 了解数据集 114
5.2.2 构建图像字幕生成模型 116
5.2.3 初始化字幕数据集 116
5.2.4 准备字幕数据集 118
5.2.5 训练 120
5.2.6 测试 126
5.2.7 创建一个简单的一键部署图像字幕生成模型 127
5.3 了解摄像头插件 132
5.3.1 安装摄像头插件 133
5.3.2 添加持久存储和正确执行的方法 133
5.3.3 编写代码 133
5.4 创建摄像头应用程序 134
5.4.1 摄像头应用程序组成部分 134
5.4.2 构建摄像头预览 135
5.4.3 从摄像头生成图像字幕 138
5.5 创建终应用程序 142
5.6 小结 143
第6章 构建人工智能认证系统 145
6.1 技术要求 145
6.2 一个简单的登录应用程序 145
6.2.1 登录应用程序的流程图 145
6.2.2 创建用户界面 147
6.3 添加Firebase身份验证功能 153
6.3.1 创建auth.dart 155
6.3.2 在SignupSigninScreen中添加身份验证功能 158
6.3.3 创建MainScreen 159
6.3.4 创建HomeScreen 161
6.3.5 创建main.dart 163
6.4 了解身份验证的异常检测 164
6.5 用于验证用户的自定义模型 165
6.5.1 为检查身份认证的有效性构建模型 165
6.5.2 托管自定义身份认证的验证模型 168
6.6 实现ReCaptcha以防止垃圾邮件 170
6.6.1 关于ReCaptcha v2 171
6.6.2 获取API密钥 171
6.6.3 代码集成 173
6.7 在Flutter中部署模型 175
6.8 小结 177
第7章 语音/多媒体处理—使用AI生成音乐 179
7.1 设计项目的架构 179
7.2 理解多媒体处理 180
7.2.1 图像处理 181
7.2.2 音频处理 186
7.2.3 Magenta 187
7.2.4 视频处理 189
7.3 开发基于RNN的音乐生成模型 192
7.3.1 创建基于LSTM的模型 193
7.3.2 使用Flask部署模型 196
7.4 在Android和iOS上部署音频生成API 200
7.4.1 创建UI 201
7.4.2 添加音频播放器 204
7.4.3 部署模型 206
7.4.4 创建终应用程序 209
7.5 小结 210
第8章 基于强化神经网络的国际象棋引擎 211
8.1 强化学习简介 211
8.2 手机游戏中的强化学习 213
8.3 探索Google的DeepMind 214
8.3.1 AlphaGo 214
8.3.2 Alpha Zero 215
8.3.3 蒙特卡罗树搜索 216
8.4 用于Connect 4游戏的类Alpha Zero AI 218
8.4.1 创建棋盘的虚拟表示 220
8.4.2 允许根据游戏规则移动 222
8.4.3 状态管理系统 224
8.4.4 生成游戏玩法 225
8.4.5 生成游戏玩法样本 226
8.4.6 系统训练 227
8.4.7 蒙特卡罗树搜索实现 228
8.4.8 神经网络实现 228
8.4.9 创建驱动脚本 229
8.5 基础项目架构 231
8.6 为国际象棋引擎开发GCP托管的REST API 231
8.6.1 了解通用国际象棋接口 233
8.6.2 在GCP上部署 235
8.6.3 请求增加GPU实例的配额 235
8.6.4 创建GPU实例 236
8.6.5 部署脚本 237
8.7 在Android上创建一个简单的国际象棋UI 241
8.7.1 向pubspec.yaml添加依赖项 242
8.7.2 理解映射结构 243
8.7.3 放置棋子的实际图像 245
8.7.4 使棋子可移动 248
8.8 将国际象棋引擎API与UI集成 250
8.8.1 游戏逻辑 250
8.8.2 创建终应用程序 254
8.9 小结 255
第9章 构建超分辨率图像应用程序 257
9.1 基本项目架构 257
9.2 理解GAN 258
9.3 了解图像超分辨率的工作原理 261
9.3.1 理解图像分辨率 262
9.3.2 像素分辨率 262
9.3.3 空间分辨率 262
9.3.4 时间分辨率 263
9.3.5 光谱分辨率 263
9.3.6 辐射分辨率 263
9.3.7 理解SRGAN 264
9.4 为超分辨率创建TensorFlow模型 265
9.4.1 项目目录结构 265
9.4.2 为超分辨率创建SRGAN模型 265
9.5 为应用程序构建UI 267
9.6 从设备的本地存储中获取图片 271
9.7 在DigitalOcean上托管TensorFlow模型 273
9.7.1 创建一个Flask服务器脚本 274
9.7.2 将Flask脚本部署到DigitalOcean Droplet 275
9.8 在Flutter上集成托管的自定义模型 279
9.9 创建终应用程序 282
9.10 小结 283
第10章 未来之路 285
10.1 了解移动应用程序在深度学习方面的趋势 285
10.1.1 Math Solver 285
10.1.2 Netflix 286
10.1.3 Google Map 287
10.1.4 Tinder 287
10.1.5 Snapchat 287
10.2 探索移动设备上深度学习的发展 288
10.2.1 Google MobileNet 288
10.2.2 阿里巴巴移动神经网络 289
10.3 探索移动应用程序中深度学习的当前研究领域 289
10.3.1 时装图像 290
10.3.2 自注意力生成对抗网络 290
10.3.3 图像动态化 291
10.4 小结 292
附录A 293
A.1 在云端虚拟机上设置深度学习环境 293
A.1.1 创建GCP账号并启用结算功能 293
A.1.2 创建项目和GCP计算引擎实例 295
A.1.3 配置VM实例以执行深度学习 296
A.1.4 在虚拟机上安装TensorFlow 299
A.1.5 在虚拟机上安装NLTK并下载数据包 300
A.2 安装Dart SDK 300
A.2.1 Windows 300
A.2.2 macOS 301
A.2.3 Linux 301
A.3 安装Flutter SDK 301
A.3.1 Windows 302
A.3.2 macOS 303
A.3.3 Linux 304
A.4 配置Firebase 305
A.4.1 创建Firebase项目 305
A.4.2 配置Android项目 306
A.4.3 配置iOS项目 308
A.5 设置Visual Studio Code 310
A.5.1 安装Flutter和Dart插件 311
A.5.2 使用flutter doctor验证设置 311
A.5.3 创建个Flutter应用程序 312
A.5.4 运行应用程序 313
A.5.5 尝试热重载 314
猜您喜欢