本書系統(tǒng)地講述如何基于TensorFlow Lite和Core ML構(gòu)建Android與iOS應(yīng)用程序。本書共9章。第1章介紹機器學(xué)習(xí)的基礎(chǔ)知識以及TensorFlow Lite和Core ML框架。第2~8章介紹如何開發(fā)7款常見應(yīng)用程序,分別是一款預(yù)測人物年齡和性別的應(yīng)用程序,一款在照片上應(yīng)用藝術(shù)風(fēng)格遷移的應(yīng)用程序,一款用于面部檢測和條形碼掃描的應(yīng)用程序,一款類似于Snapchat的應(yīng)用程序,一款識別手寫數(shù)字的應(yīng)用程序,一款流行的在線換臉應(yīng)用程序,一款利用遷移學(xué)習(xí)完成食物分類的應(yīng)用程序。第9章總結(jié)全書,并介紹基于機器學(xué)習(xí)的云服務(wù)。 本書適合機器學(xué)習(xí)、深度學(xué)習(xí)和人工智能等方面的專業(yè)人士閱讀。
機器學(xué)習(xí)主要研究如何使計算機模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,從而獲取新的知識或技能,是人工智能領(lǐng)域的核心技術(shù)。基于機器學(xué)習(xí)開發(fā)的應(yīng)用程序可以靈活地處理新數(shù)據(jù)。本書將展示如何將機器學(xué)習(xí)技術(shù)應(yīng)用于移動端的應(yīng)用程序開發(fā)中。 本書首先介紹TensorFlow Lite和Core ML的基礎(chǔ)知識,然后講述7個常見應(yīng)用程序的開發(fā),*后討論基于機器學(xué)習(xí)的云服務(wù)。通過本書,讀者可以學(xué)會如何開發(fā)一個預(yù)測年齡和性別的應(yīng)用程序,如何對圖片進行藝術(shù)風(fēng)格遷移,如何實現(xiàn)面部檢測和條形碼掃描,如何構(gòu)建一個用于美化的AR濾鏡,如何在移動設(shè)備上檢測手寫的數(shù)字,如何實現(xiàn)可以換臉的應(yīng)用程序,如何利用遷移學(xué)習(xí)對食物進行分類。 本書有助于讀者掌握機器學(xué)習(xí)的概念,學(xué)會使用TensorFlow Lite和Core ML在手機上開發(fā)功能強大的應(yīng)用程序。
Karthikeyan NG是印度的一名工程和技術(shù)主管。之前他曾經(jīng)在Symantec公司擔(dān)任軟件工程師,之后就職于兩家總部位于美國的初創(chuàng)企業(yè),參與過各種類型的產(chǎn)品開發(fā)。他在開發(fā)各種可擴展的產(chǎn)品方面擁有超過9年的經(jīng)驗,這些產(chǎn)品使用了Web、Mobile、機器學(xué)習(xí)(Machine Learning,ML)、增強現(xiàn)實以及虛擬現(xiàn)實技術(shù)。他是一名有抱負(fù)的企業(yè)家和技術(shù)傳播者,他勇于探索新技術(shù)并使用創(chuàng)新理念來解決問題。同時,他還是班加羅爾大學(xué)的客座教授。
第 1章 機器學(xué)習(xí)在移動端的使用情況 1
1.1 機器學(xué)習(xí)的基礎(chǔ) 3
1.1.1 監(jiān)督式學(xué)習(xí) 3
1.1.2 非監(jiān)督式學(xué)習(xí) 3
1.1.3 線性回歸監(jiān)督式學(xué)習(xí) 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預(yù)測年齡與性別 25
2.1 年齡和性別預(yù)測 26
2.1.1 年齡預(yù)測 27
2.1.2 性別預(yù)測 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完成年齡和性別預(yù)測 33
2.3 在iOS上使用Core ML實現(xiàn)應(yīng)用程序 35
2.4 本章小結(jié) 44
第3章 在照片上應(yīng)用
藝術(shù)神經(jīng)風(fēng)格遷移 45
3.1 藝術(shù)神經(jīng)風(fē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章 使用對抗學(xué)習(xí)構(gòu)建手寫數(shù)字分類器 135
6.1 生成式對抗網(wǎng)絡(luò) 136
6.2 MNIST數(shù)據(jù)庫 137
6.3 構(gòu)建TensorFlow模型 138
6.4 訓(xùn)練神經(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章 使用遷移學(xué)習(xí)完成食物分類 181
8.1 遷移學(xué)習(xí) 182
8.2 訓(xùn)練TensorFlow模型 184
8.2.1 安裝TensorFlow 184
8.2.2 訓(xùn)練圖片 184
8.2.3 使用圖片重新訓(xùn)練 185
8.2.4 構(gòu)建iOS應(yīng)用程序 191
8.3 本章小結(jié) 198
第9章 接下來做什么 199
9.1 溫故而知新 200
9.1.1 當(dāng)開發(fā)機器學(xué)習(xí)應(yīng)用程序時從何處入手 201
9.1.2 構(gòu)建自己的模型 203
9.2 本章小結(jié) 206
9.3 進一步閱讀 206