本書系統(tǒng)地講述如何基于TensorFlow Lite和Core ML構(gòu)建Android與iOS應(yīng)用程序。本書共9章。第1章介紹機器學習的基礎(chǔ)知識以及TensorFlow Lite和Core ML框架。第2~8章介紹如何開發(fā)7款常見應(yīng)用程序,分別是一款預測人物年齡和性別的應(yīng)用程序,一款在照片上應(yīng)用藝術(shù)風格遷移的應(yīng)用程序,一款用于面部檢測和條形碼掃描的應(yīng)用程序,一款類似于Snapchat的應(yīng)用程序,一款識別手寫數(shù)字的應(yīng)用程序,一款流行的在線換臉應(yīng)用程序,一款利用遷移學習完成食物分類的應(yīng)用程序。第9章總結(jié)全書,并介紹基于機器學習的云服務(wù)。 本書適合機器學習、深度學習和人工智能等方面的專業(yè)人士閱讀。
機器學習主要研究如何使計算機模擬或?qū)崿F(xiàn)人類的學習行為,從而獲取新的知識或技能,是人工智能領(lǐng)域的核心技術(shù)。基于機器學習開發(fā)的應(yīng)用程序可以靈活地處理新數(shù)據(jù)。本書將展示如何將機器學習技術(shù)應(yīng)用于移動端的應(yīng)用程序開發(fā)中。 本書首先介紹TensorFlow Lite和Core ML的基礎(chǔ)知識,然后講述7個常見應(yīng)用程序的開發(fā),*后討論基于機器學習的云服務(wù)。通過本書,讀者可以學會如何開發(fā)一個預測年齡和性別的應(yīng)用程序,如何對圖片進行藝術(shù)風格遷移,如何實現(xiàn)面部檢測和條形碼掃描,如何構(gòu)建一個用于美化的AR濾鏡,如何在移動設(shè)備上檢測手寫的數(shù)字,如何實現(xiàn)可以換臉的應(yīng)用程序,如何利用遷移學習對食物進行分類。 本書有助于讀者掌握機器學習的概念,學會使用TensorFlow Lite和Core ML在手機上開發(fā)功能強大的應(yīng)用程序。
Karthikeyan NG是印度的一名工程和技術(shù)主管。之前他曾經(jīng)在Symantec公司擔任軟件工程師,之后就職于兩家總部位于美國的初創(chuàng)企業(yè),參與過各種類型的產(chǎn)品開發(fā)。他在開發(fā)各種可擴展的產(chǎn)品方面擁有超過9年的經(jīng)驗,這些產(chǎn)品使用了Web、Mobile、機器學習(Machine Learning,ML)、增強現(xiàn)實以及虛擬現(xiàn)實技術(shù)。他是一名有抱負的企業(yè)家和技術(shù)傳播者,他勇于探索新技術(shù)并使用創(chuàng)新理念來解決問題。同時,他還是班加羅爾大學的客座教授。
第 1章 機器學習在移動端的使用情況 1
1.1 機器學習的基礎(chǔ) 3
1.1.1 監(jiān)督式學習 3
1.1.2 非監(jiān)督式學習 3
1.1.3 線性回歸監(jiān)督式學習 4
1.2 TensorFlow Lite和Core ML 10
1.3 TensorFlow Lite 11
1.3.1 支持的平臺 12
1.3.2 TensorFlow Lite的內(nèi)存使用情況和性能 13
1.3.3 動手使用TensorFlow Lite 14
1.3.4 將SavedModel轉(zhuǎn)換為TensorFlow Lite格式 15
1.3.5 在Android上使用TensorFlow Lite 16
1.3.6 在iOS上使用TensorFlow Lite 19
1.4 Core ML 20
1.4.1 Core ML模型轉(zhuǎn)換 21
1.4.2 iOS應(yīng)用程序中的Core ML 22
1.5 本章小結(jié) 24
第 2章 使用Core ML和CNN預測年齡與性別 25
2.1 年齡和性別預測 26
2.1.1 年齡預測 27
2.1.2 性別預測 27
2.2 卷積神經(jīng)網(wǎng)絡(luò) 28
2.2.1 發(fā)現(xiàn)模式 28
2.2.2 找出圖片中的特征值 29
2.2.3 池化層 31
2.2.4 ReLU層 31
2.2.5 局部響應(yīng)歸一化層 32
2.2.6 dropout層 32
2.2.7 全連接層 33
2.2.8 使用CNN完成年齡和性別預測 33
2.3 在iOS上使用Core ML實現(xiàn)應(yīng)用程序 35
2.4 本章小結(jié) 44
第3章 在照片上應(yīng)用
藝術(shù)神經(jīng)風格遷移 45
3.1 藝術(shù)神經(jīng)風格遷移 46
3.1.1 背景 47
3.1.2 VGG網(wǎng)絡(luò) 48
3.2 構(gòu)建應(yīng)用程序 49
3.2.1 TensorFlow-to-Core ML轉(zhuǎn)換 52
3.2.2 iOS應(yīng)用程序 55
3.2.3 Android應(yīng)用程序 57
3.3 本章小結(jié) 77
3.4 參考網(wǎng)站 77
第4章 基于Firebase的ML Kit 78
4.1 ML Kit的基礎(chǔ) 79
4.1.1 基本特征集 80
4.1.2 構(gòu)建應(yīng)用程序 81
4.2 人臉檢測 86
4.2.1 面部朝向追蹤 86
4.2.2 運行面部檢測器 91
4.3 條形碼掃描器 98
4.3.1 創(chuàng)建FirebaseVisionImage對象 99
4.3.2 創(chuàng)建FirebaseVisionBarcodeDetector對象 102
4.3.3 條形碼檢測 102
4.4 文本識別 105
4.4.1 基于設(shè)備的文本識別 105
4.4.2 基于云端的文本識別 107
4.5 本章小結(jié) 109
第5章 在Android上的AR濾鏡 110
5.1 MobileNet模型 111
5.2 構(gòu)建Android應(yīng)用程序 116
5.3 參考網(wǎng)站 134
5.4 問題 134
5.5 本章小結(jié) 134
第6章 使用對抗學習構(gòu)建手寫數(shù)字分類器 135
6.1 生成式對抗網(wǎng)絡(luò) 136
6.2 MNIST數(shù)據(jù)庫 137
6.3 構(gòu)建TensorFlow模型 138
6.4 訓練神經(jīng)網(wǎng)絡(luò) 140
6.4.1 構(gòu)建Android應(yīng)用程序 143
6.4.2 用于手寫的FreeHandView 144
6.4.3 數(shù)字分類器 150
6.5 本章小結(jié) 153
第7章 使用OpenCV與朋友換臉 154
7.1 換臉 155
7.1.1 換臉的步驟 157
7.1.2 構(gòu)建Android應(yīng)用程序 160
7.1.3 構(gòu)建本地的臉交換器庫 161
7.1.4 構(gòu)建應(yīng)用程序 167
7.2 本章小結(jié) 179
7.3 參考信息 179
7.4 問題 180
第8章 使用遷移學習完成食物分類 181
8.1 遷移學習 182
8.2 訓練TensorFlow模型 184
8.2.1 安裝TensorFlow 184
8.2.2 訓練圖片 184
8.2.3 使用圖片重新訓練 185
8.2.4 構(gòu)建iOS應(yīng)用程序 191
8.3 本章小結(jié) 198
第9章 接下來做什么 199
9.1 溫故而知新 200
9.1.1 當開發(fā)機器學習應(yīng)用程序時從何處入手 201
9.1.2 構(gòu)建自己的模型 203
9.2 本章小結(jié) 206
9.3 進一步閱讀 206