本書系統(tǒng)地講述如何基于TensorFlow Lite和Core ML構建Android與iOS應用程序。本書共9章。第1章介紹機器學習的基礎知識以及TensorFlow Lite和Core ML框架。第2~8章介紹如何開發(fā)7款常見應用程序,分別是一款預測人物年齡和性別的應用程序,一款在照片上應用藝術風格遷移的應用程序,一款用于面部檢測和條形碼掃描的應用程序,一款類似于Snapchat的應用程序,一款識別手寫數(shù)字的應用程序,一款流行的在線換臉應用程序,一款利用遷移學習完成食物分類的應用程序。第9章總結全書,并介紹基于機器學習的云服務。 本書適合機器學習、深度學習和人工智能等方面的專業(yè)人士閱讀。
機器學習主要研究如何使計算機模擬或實現(xiàn)人類的學習行為,從而獲取新的知識或技能,是人工智能領域的核心技術;跈C器學習開發(fā)的應用程序可以靈活地處理新數(shù)據(jù)。本書將展示如何將機器學習技術應用于移動端的應用程序開發(fā)中。 本書首先介紹TensorFlow Lite和Core ML的基礎知識,然后講述7個常見應用程序的開發(fā),*后討論基于機器學習的云服務。通過本書,讀者可以學會如何開發(fā)一個預測年齡和性別的應用程序,如何對圖片進行藝術風格遷移,如何實現(xiàn)面部檢測和條形碼掃描,如何構建一個用于美化的AR濾鏡,如何在移動設備上檢測手寫的數(shù)字,如何實現(xiàn)可以換臉的應用程序,如何利用遷移學習對食物進行分類。 本書有助于讀者掌握機器學習的概念,學會使用TensorFlow Lite和Core ML在手機上開發(fā)功能強大的應用程序。
Karthikeyan NG是印度的一名工程和技術主管。之前他曾經(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)實技術。他是一名有抱負的企業(yè)家和技術傳播者,他勇于探索新技術并使用創(chuàng)新理念來解決問題。同時,他還是班加羅爾大學的客座教授。
第 1章 機器學習在移動端的使用情況 1
1.1 機器學習的基礎 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轉換為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模型轉換 21
1.4.2 iOS應用程序中的Core ML 22
1.5 本章小結 24
第 2章 使用Core ML和CNN預測年齡與性別 25
2.1 年齡和性別預測 26
2.1.1 年齡預測 27
2.1.2 性別預測 27
2.2 卷積神經(jīng)網(wǎng)絡 28
2.2.1 發(fā)現(xiàn)模式 28
2.2.2 找出圖片中的特征值 29
2.2.3 池化層 31
2.2.4 ReLU層 31
2.2.5 局部響應歸一化層 32
2.2.6 dropout層 32
2.2.7 全連接層 33
2.2.8 使用CNN完成年齡和性別預測 33
2.3 在iOS上使用Core ML實現(xiàn)應用程序 35
2.4 本章小結 44
第3章 在照片上應用
藝術神經(jīng)風格遷移 45
3.1 藝術神經(jīng)風格遷移 46
3.1.1 背景 47
3.1.2 VGG網(wǎng)絡 48
3.2 構建應用程序 49
3.2.1 TensorFlow-to-Core ML轉換 52
3.2.2 iOS應用程序 55
3.2.3 Android應用程序 57
3.3 本章小結 77
3.4 參考網(wǎng)站 77
第4章 基于Firebase的ML Kit 78
4.1 ML Kit的基礎 79
4.1.1 基本特征集 80
4.1.2 構建應用程序 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 基于設備的文本識別 105
4.4.2 基于云端的文本識別 107
4.5 本章小結 109
第5章 在Android上的AR濾鏡 110
5.1 MobileNet模型 111
5.2 構建Android應用程序 116
5.3 參考網(wǎng)站 134
5.4 問題 134
5.5 本章小結 134
第6章 使用對抗學習構建手寫數(shù)字分類器 135
6.1 生成式對抗網(wǎng)絡 136
6.2 MNIST數(shù)據(jù)庫 137
6.3 構建TensorFlow模型 138
6.4 訓練神經(jīng)網(wǎng)絡 140
6.4.1 構建Android應用程序 143
6.4.2 用于手寫的FreeHandView 144
6.4.3 數(shù)字分類器 150
6.5 本章小結 153
第7章 使用OpenCV與朋友換臉 154
7.1 換臉 155
7.1.1 換臉的步驟 157
7.1.2 構建Android應用程序 160
7.1.3 構建本地的臉交換器庫 161
7.1.4 構建應用程序 167
7.2 本章小結 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 構建iOS應用程序 191
8.3 本章小結 198
第9章 接下來做什么 199
9.1 溫故而知新 200
9.1.1 當開發(fā)機器學習應用程序時從何處入手 201
9.1.2 構建自己的模型 203
9.2 本章小結 206
9.3 進一步閱讀 206