端側AI模型部署入門、原理和進階實戰
董偉
- 出版商: 東南大學
- 出版日期: 2024-11-01
- 語言: 簡體中文
- 頁數: 347
- ISBN: 757661577X
- ISBN-13: 9787576615777
下單後立即進貨 (約4週~6週)
商品描述
本書系統地講解各種模型在端側平臺(含嵌入式設備、移動端設備)中的工程化實踐,重點討論模型優化、模型輕量化設計、高性能計算、Neon編程、ARM處理器OpenCV編程、基於TFLite的端側模型部署和性能優化、NPU和GPU推理加速等。通過本書的閱讀,讀者可以理解端側AI模型部署內容,包括算法及算子優化和對模型的精度、性能的評估和調優,能夠幫助讀者朋友找到正確的學習和研究方向,以及正確的工程方法。 本書可作為高等院校計算機應用、人工智能、智能感知、元宇宙工程、機器人工程、信號處理、圖像處理、嵌入式開發、電子信息工程、軟件工程、集成電路設計與集成系統、微電子科學與工程等專業及學科的本科生及研究生教材,也可以供相關領域的科研和工程技術人員的參考書籍。
作者簡介
葳葳,碩士研究生,算法工程師。專註計算機視覺領域研究和開發十多年,具有多個成功產品的落地經驗。 研究領域和方向:圖像處理和深度學習算法開發;3D視覺和機器人;算法優化:模型壓縮、算法高性能計算、算法端雲協同、端側部署;嵌入式系統開發等。 汗水和激情:無數個畫面縈繞,記得研究3D手勢識別算法時,一個又一個邊角情況出現,苦於得不到好的效果,感慨“路漫漫其修遠兮,吾將上下而求索”;也曾為某個算法找不到落地場景而苦惱,關上電腦,去圍繞幾個小區奔跑一大圈,還是沒有想法,於是傻笑!當然也有攻剋一個技術難點後,頓覺“山重水覆疑無路,柳暗花明又一村”,如釋重負大約幾秒後,又一個新的問題出現……哈哈,我們工程師一直在升級打怪、不斷探索的路上!
目錄大綱
第1章 端側AI概述
1.1 什麽是端側AI
1.2 端側模型性能優化
1.3 端側模型低功耗設計
1.4 端側模型加固
第2章 端側AI芯片
2.1 中央處理器體系結構
2.2 指令集架構
2.3 處理器架構及異構計算芯片
2.4 端側AI芯片
2.4.1 ARM
2.4.2 DSP
2.4.3 GPU
2.4.4 FPGA
2.4.5 NPU
2.4.6 類腦芯片
第3章 Linux開發環境及工具介紹
3.1 Shell命令解釋器和腳本
3.2 環境變量配置
3.3 編譯器GCC
3.4 CMake項目構建、Make編譯
3.5 LLVM和Clang
3.6 AndroidSDK和NDK配置
3.7 Clang/Clang++編譯C/C++/Neon程序和終端運行
3.8 GDB調試
3.9 ADB工具
第4章 算子和圖優化
4.1 算法層優化
4.1.1 Img2col+GEMM優化捲積
4.1.2 Winograd優化捲積
4.2 硬件層優化
4.2.1 SIMD指令向量化
4.2.2 多核CPU中OpenMP編程
4.2.3 GPU並行計算
4.2.4 Cache優化
4.3 圖優化
4.4 AI編譯器
第5章 模型壓縮
5.1 輕量化網絡模型設計
5.1.1 下採樣
5.1.2 上採樣
5.1.3 全局池化
5.1.4 分組捲積
5.1.5 全局加權池化
5.1.61 ×1捲積
5.1.7 深度捲積
5.1.8 逐點捲積
5.1.9 異構捲積
5.1.10 深度可分離捲積
5.1.11 空洞捲積
5.1.12 跳躍連接
5.1.13 Flatten
5.1.14 BatchNormalization
5.1.15 Dropout
5.1.16 全連接層
5.1.17 SENet
5.1.18 MobileNet
5.1.19 註意力機制
5.1.20 新算子和模型的探索
5.2 剪枝
5.2.1 結構化剪枝
5.2.2 非結構化剪枝
5.3 網絡架構搜索
5.4 低秩分解
5.5 知識蒸餾
5.6 量化
5.6.1 量化原理
5.6.2 對稱量化/非對稱量化
5.6.3 偽量化節點
5.6.4 訓練後量化/量化感知訓練
5.6.5 量化提升策略
5.6.6 量化感知訓練框架介紹
第6章 端側模型部署框架
6.1 ARMComputeLibray/ArmNN
6.2 NNAPI
6.3 TensorRT
6.4 TNN/NCNN
6.5 OpenVINO
6.6 TFLite
6.7 CoreML
6.8 RKNNSDK
6.9 SNPE/QNN
6.10 MNN
6.11 MediaPipe
6.12 NeuroPilot
第7章 ARM處理器OpenCV編程
7.1 ARM平臺移植OpenCV庫
7.2 OpenCV庫編譯錯誤及解決方法
7.3 ARM平臺C/C++圖像處理實例
7.3.1 圖像淺拷貝和深拷貝
7.3.2 顏色空間轉換
7.3.3 圖像二值化
7.3.4 圖像翻轉/旋轉/縮放/裁剪
7.3.5 二維碼檢測和解碼
第8章 Neon指令集加速算法和算子底層指令加速
8.1 Neon寄存器和數據類型
8.2 Neon指令類型
8.3 Neon編程方式和內聯函數
8.3.1 Neon匯編指令
8.3.2 編譯器自動向量化
8.3.3 Neon第三方庫
8.3.4 Neon內聯函數
8.4 Neon常用內聯函數介紹
8.4.1 類型轉換指令
8.4.2 加載存儲指令
8.4.3 算術運算指令
8.4.4 數據處理指令
8.4.5 向量乘法指令
8.4.6 邏輯和比較運算指令
8.4.7 浮點指令
8.4.8 移位指令
8.4.9 置換指令
8.4.10 其他指令
8.5 Neon編程優化算法實例
8.5.1 RGB轉Gray顏色空間
8.5.2 RGB內存空間解交織和交織
8.5.3 矩陣乘法性能優化
8.6 NEON2SSE介紹
第9章 基於TFLite的端側模型部署和性能優化
9.1 TFLite委托
9.2 TFLite交叉編譯和部署——基於ARM平臺
9.2.1 用CMake工具構建TFLite
9.2.2 XNNPACK編譯問題定位和解決
9.3 YOLOv8模型端側部署——低空無人機巡檢
9.3.1 TFLiteFlatBuffer模型文件轉換和驗證
9.3.2 ARM平臺模型部署——C語言版
9.3.3 部署性能優化
第10章 NPU推理加速——無人機採茶機器人研發實踐
10.1 基於ONNX格式模型轉換和驗證
10.2 模型量化誤差評估
10.3 NPU推理性能和內存使用情況評估
第11章 端側GPU硬件加速模型推理——智能水下攝像機器人研發實踐
11.1 水下圖像增強模型——Transformer模型端側部署評估
11.1.1 水下圖像增強模型網絡結構和可視化分析
11.1.2 基於QNN推理框架GPU核部署評估
11.2 水下目標檢測模型——YOLOv8模型端側部署評估
第12章 安全智能——以隱私OCR為實例
12.1 OCR的四個矛盾
12.2 OCR模塊
12.2.1 識別主體區域檢測
12.2.2 文本定位
12.2.3 字符識別
12.3 隱私OCR
12.3.1 隱私OCR流程
12.3.2 端側敏感信息智能脫敏方法
參考文獻
後記