面向移動設備的深度學習——基於TensorFlow Lite,ML Kit 和Flutter Mobile Deep Learning with TensorFlow Lite, ML Kit and Flutter

[印]安努巴哈夫·辛格 等著 張滿婷 譯

  • 面向移動設備的深度學習——基於TensorFlow Lite,ML Kit 和Flutter-preview-1
  • 面向移動設備的深度學習——基於TensorFlow Lite,ML Kit 和Flutter-preview-2
  • 面向移動設備的深度學習——基於TensorFlow Lite,ML Kit 和Flutter-preview-3
面向移動設備的深度學習——基於TensorFlow Lite,ML Kit 和Flutter-preview-1

買這商品的人也買了...

商品描述

《面向移動設備的深度學習—基於TensorFlow Lite,ML Kit和Flutter》詳細闡述了與移動設備深度學習開發相關的基本解決方案,主要包括使用設備內置模型執行人臉檢測、開發智能聊天機器人、識別植物物種、生成實時字幕、構建人工智能認證系統、使用AI生成音樂、基於強化神經網絡的國際象棋引擎、構建超分辨率圖像應用程序等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校電腦及相關專業的教材和教學參考書,也可作為相關開發人員的自學用書和參考手冊。

目錄大綱

目    錄

第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