本書適合那些對人工智能感興趣,且具備一定移動終端應用程序開發(fā)經驗的讀者。如果您掌握一定的JAVA 、C++或Python語言開發(fā)知識,同時具備Android操作系統(tǒng)或IOS操作系統(tǒng)的應用的開發(fā)經驗,將能迅速掌握基本的移動終端人工智能應用開發(fā)方法。如果您只是對人工智能技術感興趣,相信本書也能帶您了解人工智能技術是如何在移動終端上部署和運行的。
1.本書是一本介紹移動終端人工智能應用開發(fā)和性能評測的工具書,包含了移動終端人工智能技術架構、神經網絡模型、AI推理框架和深度學習編譯器等內容,匯聚了多個主流供應商的移動終端AI技術框架和工具,通過應用實例系統(tǒng)地闡述了移動終端AI應用的開發(fā)、調試,以及AI應用性能的專業(yè)評測方法。對于移動終端AI應用開發(fā)者和愛好者是一本不錯的入門指南;
2.讀者可從機械工業(yè)出版社華章分社圖書網站下載書中實例源代碼:http://www.hzbook.com。
從2017年開始,人工智能(Artificial Intelligence,AI)技術已經不再是前沿科技或實驗室中的概念產物,而是實實在在落地為產品出現(xiàn)在人們的日常生活中,為用戶提供智慧化的服務,F(xiàn)在我們每天接觸的智能手機和平板電腦等移動終端設備也越來越多地被冠以AI終端的名頭,而且出現(xiàn)了越來越多的AI應用或服務。目前這些在移動終端上運行的AI應用主要使用基于神經網絡的深度學習技術。這項技術需要大量的算力支持,所以在發(fā)展初期主要在云端實現(xiàn),通過移動互聯(lián)網為用戶提供服務。但隨著終端軟硬件技術的不斷發(fā)展,業(yè)界越來越重視在移動終端上直接運行神經網絡,以此獲得更快的響應速度和更高的安全性。為此,各互聯(lián)網廠商、終端廠商和芯片廠商陸續(xù)推出了各種深度學習推理框架,用于在移動終端設備上通過設備的AI芯片運行人工智能推理任務,比如Google公司的TensorFlow Lite、華為公司的HiAI Foundation、高通公司的SNPE等。未來,在終端上部署的人工智能技術將隨著這些推理框架和AI芯片的不斷發(fā)展,為移動終端AI應用和服務加速。本書圍繞著如何在移動智能終端上通過深度學習推理框架進行人工智能應用開發(fā)而展開,不僅向讀者介紹相關概念和原理,還提供應用開發(fā)的入門級指導,相信讀者能夠通過自己動手實現(xiàn)移動端人工智能應用來加深對移動終端人工智能技術的理解。
本書適合對人工智能感興趣,且具備一定移動終端應用程序開發(fā)經驗的讀者閱讀。只要擁有一定的Java、C++或Python語言開發(fā)知識,同時具備Android操作系統(tǒng)或iOS操作系統(tǒng)的應用開發(fā)經驗,就可以通過本書迅速掌握基本的移動終端人工智能應用開發(fā)方法。如果你只是對人工智能技術感興趣,相信本書也能帶你了解人工智能技術是如何在移動終端上部署和運行的。
本書共分為10章,第1章主要介紹移動終端人工智能技術應用的現(xiàn)狀和發(fā)展態(tài)勢,對深度學習與軟件框架等相關基礎知識進行了闡述,分析了移動終端推理應用的發(fā)展趨勢;第2章從總體上介紹移動終端AI技術架構,包括移動終端人工智能技術的特點和架構全貌,從而讓讀者初步了解移動終端人工智能技術的原理和各要素組件。第3~5章詳細剖析移動終端人工智能技術的分層架構,分別介紹了神經網絡模型、移動終端推理框架以及深度學習編譯器等內容,讓讀者理解移動終端人工智能技術的底層邏輯,掌握在移動終端進行人工智能推理的方法;第6~8章介紹如何開發(fā)移動終端AI推理應用,幫助讀者從需求分析、功能設計、編碼開發(fā)到調試優(yōu)化等環(huán)節(jié)了解整個開發(fā)過程;第9章則通過移動終端AI基準(Benchmark)性能測試的介紹,讓讀者了解不同移動終端和終端推理框架的性能區(qū)別;第10章面向未來,向讀者介紹移動終端人工智能技術最新的發(fā)展情況和未來趨勢,包括移動終端的訓練和聯(lián)邦學習等前沿技術,并對其他人工智能終端產品進行了簡要介紹。本書還給出了第7章中每個示例的完整代碼,讀者需要掃描封底二維碼下載包含代碼文件的壓縮包,并根據附錄提供的路徑找到相關代碼文件。這些代碼可以為讀者開發(fā)應用提供參考。
在編撰本書的過程中得到了業(yè)界多方支持,在此表示感謝:感謝華為公司、曠視科技公司、vivo公司和百度公司分別為本書HiAI Foundation、曠視天元(MegEngine)、VCAP和Paddle Lite部分的編寫提供技術資料,感謝高通公司對本書編寫提出寶貴意見。此外,我們還得到了魏然、曹宇瓊、戈志勇、國煒、周佳琳等專家和老師的幫助,在此一并感謝。
雖然本書的編寫歷經一年,但我們仍然略感倉促。我們盡可能提供最新版本的資料給讀者,但是移動終端人工智能技術發(fā)展迅速,在編寫過程中就出現(xiàn)了多次軟件版本升級的情況,所以對于本書的部分內容,尤其是第4章和第7章關于技術和開發(fā)的部分,讀者可以通過本書提供的網址在互聯(lián)網上參考官方新版操作手冊以了解最新的技術進展。我們希望讀者能通過本書基本掌握移動終端人工智能技術的原理和方法。對于本書中未闡明的部分或錯漏之處,讀者也可以通過郵件zhangrui@caict.ac.cn進行反饋,不勝感激!
前言
第1章 移動終端人工智能技術概述1
1.1 人工智能技術發(fā)展概況1
1.1.1 人工智能技術的發(fā)展歷程1
1.1.2 數(shù)據和算法成為主要驅動力3
1.1.3 人工智能技術的應用趨勢6
1.2 機器學習與軟件框架技術概述8
1.2.1 機器學習8
1.2.2 深度學習10
1.2.3 深度學習為多個應用技術領域
帶來突破11
1.2.4 自動化機器學習12
1.2.5 算法與模型14
1.2.6 訓練與推理16
1.2.7 深度學習框架18
1.3 移動終端人工智能應用22
1.3.1 AI移動終端快速發(fā)展22
1.3.2 移動終端的典型AI應用24
1.3.3 移動終端的AI推理26
1.4 小結28
參考文獻28
第2章 移動終端人工智能技術架構30
2.1 移動終端人工智能技術的特點和
分層架構30
2.2 各層功能概述32
2.2.1 應用層32
2.2.2 框架層32
2.2.3 驅動層35
2.2.4 硬件層36
2.3 小結42
參考文獻42
第3章 神經網絡模型44
3.1 神經網絡模型概述44
3.1.1 神經網絡算法44
3.1.2 神經網絡模型的構成46
3.1.3 獲取移動終端神經網絡
模型48
3.2 典型神經網絡模型介紹54
3.2.1 圖像分類54
3.2.2 目標檢測63
3.2.3 圖像分割66
3.2.4 其他神經網絡模型簡介74
3.3 小結77
參考文獻78
第4章 移動終端推理框架79
4.1 推理框架的工作原理79
4.1.1 神經網絡模型轉換原理79
4.1.2 深度學習編譯器執(zhí)行原理84
4.2 推理框架的工作流程86
4.2.1 模型轉換86
4.2.2 數(shù)據預處理86
4.2.3 執(zhí)行推理86
4.2.4 結果輸出87
4.3 主要移動終端推理框架介紹87
4.3.1 TensorFlow Lite88
4.3.2 PyTorch Mobile97
4.3.3 Paddle Lite 102
4.3.4 VCAP 109
4.3.5 高通SNPE116
4.3.6 華為HiAI Foundation126
4.3.7 曠視天元154
4.3.8 蘋果Core ML框架166
4.3.9 其他深度學習推理框架170
4.4 小結178
參考文獻178
第5章 深度學習編譯器180
5.1 深度學習編譯器的概念180
5.1.1 傳統(tǒng)編譯器180
5.1.2 移動端深度學習編譯器182
5.2 主流編譯器介紹184
5.2.1 Android神經網絡接口
NN API184
5.2.2 高通SNPE編譯技術187
5.2.3 華為HiAI Foundation編譯
技術192
5.2.4 百度Paddle Lite編譯技術194
5.2.5 其他深度學習編譯器195
5.2.6 不同深度學習編譯器的
差異196
5.3 小結197
第6章 移動終端AI推理應用開發(fā)
過程198
6.1 總體開發(fā)過程198
6.2 需求階段199
6.3 設計階段200
6.4 編碼開發(fā)階段202
6.5 調試階段202
6.5.1 功能調試203
6.5.2 性能調試204
6.6 小結205
第7章 移動終端推理應用開發(fā)
實例206
7.1 基于TensorFlow Lite框架的
圖像分類應用206
7.1.1 創(chuàng)建工程206
7.1.2 模型轉換211
7.1.3 模型推理211
7.1.4 結果展示213
7.2 基于PyTorch Mobile框架的應用
實例214
7.2.1 創(chuàng)建工程214
7.2.2 模型轉換215
7.2.3 模型推理216
7.2.4 結果展示217
7.3 基于Paddle Lite引擎的應用
實例218
7.3.1 創(chuàng)建工程218
7.3.2 模型轉換220
7.3.3 模型推理220
7.3.4 結果展示225
7.4 基于vivo VCAP引擎的應用
實例225
7.4.1 創(chuàng)建工程225
7.4.2 模型轉換228
7.4.3 模型推理229
7.4.4 結果展示232
7.5 基于高通SNPE引擎的圖片分類
應用 232
7.5.1 創(chuàng)建工程233
7.5.2 模型轉換235
7.5.3 模型推理236
7.5.4 結果展示238
7.6 基于華為HiAI Foundation的圖片
分類應用239
7.6.1 創(chuàng)建工程239
7.6.2 模型轉換243
7.6.3 模型推理244
7.6.4 結果展示249
7.7 基于蘋果Core ML引擎的應用
實例249
7.7.1 創(chuàng)建工程250
7.7.2 模型轉換252
7.7.3 模型推理253
7.7.4 結果展示255
7.8 基于曠視天元的應用實例255
7.8.1 創(chuàng)建工程255
7.8.2 模型轉換258
7.8.3 模型推理259
7.8.4 結果展示262
7.9 基于MNN引擎的應用實例263
7.9.1 創(chuàng)建工程263
7.9.2 模型轉換265
7.9.3 模型推理265
7.9.4 結果展示271
7.10 小結272
第8章 AI應用性能調試273
8.1 AI應用性能調試方法273
8.2 AI應用性能測試負載275
8.3 AI應用性能評價指標278
8.3.1 模型類指標278
8.3.2 通用指標和硬件性能指標282
8.4 AI應用推理性能差異283
8.5 AI應用性能優(yōu)化284
8.6 小結285
第9章 移動終端的AI推理性能
評價286
9.1 不同移動終端間的AI性能基準
測試286
9.2 AI基準測試應用介紹288
9.3 小結293
第10章 移動終端AI技術發(fā)展
趨勢294
10.1 技術發(fā)展趨勢294
10.1.1 移動終端的AI訓練294
10.1.2 移動終端的聯(lián)邦學習300
10.2 產品發(fā)展趨勢307
10.2.1 智能語音終端307
10.2.2 自然語言處理終端 308
10.2.3 智能機器人產品309
10.2.4 智能無人機310
10.2.5 智能家居產品311
10.2.6 智能醫(yī)療產品 311
10.2.7 智能安防產品 312
10.2.8 智能交通產品 313
參考文獻314
附錄一 移動終端推理應用開發(fā)
示例315
附錄A TensorFlow Lite示例代碼315
附錄B PyTorch示例代碼315
附錄C Paddle Lite示例代碼316
附錄D VCAP示例代碼