深度學習計算機視覺實戰( 簡體 字) | |
作者:肖鈴,劉東 | 類別:1. -> 程式設計 -> 深度學習 2. -> 教材 -> 數位影像處理 |
出版社:電子工業出版社 | 3dWoo書號: 55120 詢問書籍請說出此書號! 有庫存 NT售價: 495 元 |
出版日:11/1/2021 | |
頁數:300 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121417597 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 深度學習基礎 1
1.1 神經網絡 1 1.1.1 感知機 1 1.1.2 神經網絡原理 2 1.2 卷積神經網絡 3 1.2.1 CNN基本操作 3 1.2.2 CNN原理 6 1.3 循環神經網絡 7 1.3.1 RNN 7 1.3.2 LSTM與GRU 8 1.4 經典網絡 9 1.4.1 AlexNet 9 1.4.2 VGG 10 1.4.3 GoogLeNet 11 1.4.4 ResNet 12 1.4.5 MobileNet 13 1.5 進階必備:如何學習深度學習 并“落地”求職 16 1.5.1 深度學習如何快速入門 16 1.5.2 深度學習行業求職技巧 17 第2章 計算機視覺基礎 18 2.1 目標檢測Two-stage算法 18 2.1.1 R-CNN算法 18 2.1.2 Fast R-CNN算法 20 2.1.3 Faster R-CNN算法 21 2.2 目標檢測One-stage算法 23 2.2.1 YOLO系列算法 23 2.2.2 SSD算法 29 2.3 圖像分割算法 31 2.3.1 FCN算法 31 2.3.2 U-Net算法 33 2.3.3 DeepLab系列算法 34 2.3.4 Mask R-CNN算法 37 2.4 進階必備:計算機視覺方向知多少 38 第3章 基礎圖像處理 40 3.1 線性濾波 40 3.1.1 案例1:使用方框濾波 41 3.1.2 案例2:使用均值濾波 46 3.1.3 案例3:使用高斯濾波 48 3.2 非線性濾波 50 3.2.1 案例4:使用中值濾波例 50 3.2.2 案例5:使用雙邊濾波 52 3.3 OpenCV形態學運算 54 3.3.1 案例6:進行膨脹操作 55 3.3.2 案例7:進行腐蝕操作 57 3.3.3 案例8:使用形態學運算 58 3.4 案例9:使用漫水填充 63 3.5 圖像金字塔 67 3.5.1 案例10:使用高斯金字塔 67 3.5.2 案例11:使用拉普拉斯 金字塔 70 3.6 閾值化 73 3.6.1 案例12:使用基本閾值 74 3.6.2 案例13:使用自適應閾值 78 3.7 進階必備:選擇一款合適的圖像處理工具 80 3.7.1 OpenCV 80 3.7.2 Matlab 81 第4章 圖像變換 83 4.1 邊緣檢測 83 4.1.1 案例14:Sobel算法 83 4.1.2 案例15:Scharr算法 87 4.1.3 案例16:Laplacian算法 90 4.1.4 案例17:Canny算法 91 4.2 案例18:繪制輪廓 94 4.3 霍夫變換 97 4.3.1 案例19:霍夫線變換 97 4.3.2 案例20:霍夫圓變換 101 4.4 案例21:重映射 103 4.5 案例22:仿射變換 106 4.6 案例23:透視變換 109 4.7 直方圖 111 4.7.1 案例24:直方圖的計算 與繪制 111 4.7.2 案例25:直方圖均衡化 113 4.8 進階必備:圖像變換應用之文本 圖像矯正 114 4.8.1 圖像變換知識總結 114 4.8.2 案例26:文本圖像矯正 115 第5章 角點檢測 117 5.1 案例27:Harris角點檢測 117 5.2 案例28:Shi-Tomasi角點檢測 119 5.3 案例29:亞像素級角點檢測 122 5.4 進階必備:角點檢測知識總結 125 第6章 特征點檢測與匹配 127 6.1 特征點檢測 127 6.1.1 opencv-contrib環境安裝 127 6.1.2 案例30:SIFT特征點檢測 130 6.1.3 案例31:SURF特征點檢測 137 6.2 特征匹配 139 6.2.1 案例32:BruteForce匹配 139 6.2.2 案例33:FLANN匹配 146 6.3 案例34:ORB特征提取 148 6.4 進階必備:利用特征點拼接圖像 151 6.4.1 特征點檢測算法匯總 151 6.4.2 案例35:基于特征點檢測與 匹配的圖像拼接 151 第7章 手寫數字識別 155 7.1 Keras的應用 155 7.1.1 Keras模型 155 7.1.2 Keras層 156 7.1.3 模型編譯 157 7.1.4 模型訓練 158 7.2 LeNet算法 159 7.3 案例36:使用Keras實現手寫數字識別 160 7.3.1 模型訓練 160 7.3.2 手寫數字識別模型推理 164 7.4 進階必備:算法模型開發流程 167 7.4.1 數據準備 167 7.4.2 網絡搭建 169 7.4.3 模型訓練 170 第8章 CIFAR-10圖像分類 171 8.1 圖像分類數據集 171 8.1.1 CIFAR-10數據集和 CIFAR-100數據集 171 8.1.2 ImageNet數據集 172 8.1.3 PASCAL VOC數據集 173 8.2 案例37:CIFAR-10圖像分類 173 8.2.1 模型訓練過程 174 8.2.2 模型推理 179 8.3 進階必備:COCO數據集與使用 HOGTSVM方法實現圖像分類 180 8.3.1 COCO數據集 180 8.3.2 案例38:使用HOG+SVM 方法實現圖像分類 180 第9章 驗證碼識別 184 9.1 TensorFlow應用 184 9.1.1 案例39:TensorFlow的 基本使用 184 9.1.2 TensorFlow的常用模塊 186 9.2 案例40:驗證碼識別 188 9.2.1 生成驗證碼圖片 188 9.2.2 基于TensorFlow的 驗證碼識別 189 9.3 進階必備:算法模型開發技巧 194 9.3.1 數據預處理技巧 194 9.3.2 網絡搭建技巧 195 9.3.3 模型訓練技巧 196 第10章 文本檢測實戰 197 10.1 文本檢測算法 197 10.1.1 CTPN算法 198 10.1.2 EAST算法 200 10.2 案例41:基于EAST算法的文本檢測 202 10.2.1 數據預處理 202 10.2.2 網絡搭建 205 10.2.3 模型訓練 212 10.2.4 文本檢測驗證 217 10.3 進階必備:在不同場景下文本檢測的 應對方式 218 10.3.1 復雜場景文本檢測 219 10.3.2 案例42:使用形態學運算 實現簡單場景文本檢測 220 10.3.3 案例43:使用MSER+NMS 實現簡單場景文本檢測 223 第11章 文本識別實戰 226 11.1 文本識別算法 226 11.1.1 CRNN算法 226 11.1.2 Attention OCR算法 229 11.2 案例44:基于C-RNN算法的 文本識別 231 11.2.1 數據預處理 231 11.2.2 網絡搭建 232 11.2.3 模型訓練 236 11.2.4 文本識別驗證 237 11.3 進階必備:單字OCR 238 11.3.1 OCR探究 238 11.3.2 案例45:文本圖片 字符切割 238 第12章 TensorFlow Lite 244 12.1 TensorFlow Lite介紹 244 12.1.1 TensorFlow Lite基礎 245 12.1.2 TensorFlow Lite源碼分析 246 12.2 模型轉換 248 12.2.1 FlatBuffers文件格式 248 12.2.2 案例46:其他格式 轉換為.tflite模型 250 12.3 模型量化 252 12.3.1 案例47:量化感知訓練 252 12.3.2 案例48:訓練后量化 255 12.4 進階必備:模型轉換與 模型部署優化答疑 257 12.4.1 模型轉換問題 257 12.4.2 模型部署優化 258 第13章 基于TensorFlow Lite的AI 功能部署實戰 260 13.1 部署流程 260 13.2 案例49:移動端部署 261 13.2.1 搭建開發環境 262 13.2.2 編譯運行項目 262 13.2.3 調用過程解析 264 13.3 PC端部署 266 13.3.1 案例50:Windows端部署 266 13.3.2 案例51:Linux端部署 278 13.3.3 案例52:ARM平臺部署 282 13.3.4 案例53:MIPS平臺部署 285 13.4 進階必備:推理框架拓展與 OpenCV編譯部署 286 13.4.1 其他深度學習推理框架 286 13.4.2 OpenCV編譯 286 本書是一本看懂計算機視覺的實戰指南,使用理論與實踐相結合的思想,真正一站式搞定理論學習、算法開發到模型部署上線。 全書內容共分為四個部分。第一部分包括第1、2章,主要講解深度學習和計算機視覺基礎,如計算機視覺領域的經典網絡和常見的目標檢測算法;第二部分包括第3~6章,主要講解圖像處理知識,結合應用案例,對知識點進行分析說明;第三部分包括第7~11章,主要講解計算機視覺中的實戰項目,對實現細節做了追本溯源的講解;第四部分包括第12~13章,主要講解模型的落地部署,該部分的講解基于TensorFlow Lite框架,該框架受眾廣、熱度高,且在各種平臺都有對應的支持與優化加速方案,方便讀者使用。 本書中的上百個知識點與50多個案例都是作者工程應用中的經驗總結,每章末尾均有"進階必備”,給讀者提供更多的拓展知識。本書適合計算機視覺的初學者、計算機視覺算法開發人員、對深度學習有興趣的用戶或者亟須工程落地使用的用戶,也適合作為高校相關專業的學生教材使用。
寫作目的
猶記數年之前,自己在學習深度學習技術時的苦惱。那時,有一款能識別不同的植物的App 帶給我很大的震撼,于是想弄明白圖像處理的原理及其實現方法,結果不甚理想。后來,才知道這個App 是通過AI 技術實現的,自己也萌生了將其復現出來的想法。當時的我沒有任何AI 技術基礎,于是買了很多書來學習,但這些書講的都是高深的理論和復雜的公式,即使對我這個從業者而言也很難有讀下去的欲望,常常看了幾頁就沒了興致,甚至懷疑自己可能不適合這個方向。這么斷斷續續地看下去,機器學習常用算法的理論公式推導了不少,但還是不知道怎么去做出一款App。 通過跌跌撞撞的學習,我開始對機器學習、深度學習有了一個模糊的輪廓,然后明確了自己的學習方向——鉆研計算機視覺。然而,這個方向的圖書絕大部分是長篇累牘地講某種深度學習框架的使用,如TensorFlow、PyTorch,或者是將某個功能模型的搭建代碼貼出來而鮮有詳細說明,在給出訓練結果后草草結束。至于這些訓練出來的模型怎么使用,以及為什么這么搭建,書中并沒有詳細說明,很多讀者想入門而不得。因此,寫作本書的目的是讓讀者不重蹈覆轍,為讀者指明學習的方向,幫助初學者快速入門,為工程應用提供相應的落地解決方案。 主要內容 本書從算法實現到最后的落地部署都有詳細的介紹,全書內容可分為四個部分。 第一部分包括第1~2 章,主要講解深度學習基礎和計算機視覺基礎。本部分講解計算機視覺領域的經典網絡,這些網絡是很多視覺算法模型的主干網絡,用于特征的提取;還講解常見的目標檢測算法,有關的算法論文在介紹時都有指出,讀者可以查看論文原文,了解更多的算法細節。 第二部分包括第3~6 章,主要講解圖像處理知識。對每個知識的作用點進行分析,說明OpenCV 中Python 和C++接口的詳情,并給出多個應用案例,讓讀者能夠清晰地看到圖像處理的 效果,增加對知識點的理解。 第三部分包括第7~11 章,主要講解計算機視覺中的實戰項目。這些應用是計算機視覺方向的常見任務,有很多開源代碼可供參考。本書在講解時依照相同的結構講解,包括數據預處理、網絡搭建和模型訓練三個模塊,這些算法模型經過轉換之后的應用效果在本書中也有介紹。在進行項目介紹時,本書對代碼做了詳細的注釋,對于實現細節也做了追本溯源的講解,讓讀者能夠理解設計意圖。 第四部分包括第12~13 章,主要講解模型的落地部署。本書基于TensorFlow Lite 進行模型 部署的講解,選用此框架一方面是因為TensorFlow 的受眾較廣、熱度很高;另一方面是因為該框 架在各平臺都有對應的支持與優化加速,性能較高,文檔完備,比較容易使用。本部分講解部署中 的模型轉換、模型優化、部署中可能遇到的問題及解決辦法,這些都是我在工程應用中的經驗總結, 遇到的問題也是在部署過程中親歷并順利解決的,在此講解是希望幫助讀者少走彎路,以最小的代 價實現自己的需求。 本書每章末尾設置了“進階必備”,作為擴展閱讀給讀者提供更多的知識,其形式多樣,既有 學習方向的指引與選擇(如第1、2 章)、工具或開發庫的講解(第3 章),也有對比于深度學習 方法而使用傳統圖像處理算法實現的任務案例(第8、10 章),還有經驗的總結與分享(第9、12 章)等。全書共有近60 個案例,使用理論與實踐相結合的思想,真正實現理論學習、算法開發、模 型部署上線的一站式搞定。 學習建議 對于本書的使用,有以下一些建議可供參考。 (1)對于初學者,可按照本書寫作的順序閱讀,對不熟悉的算法不需要深究,可以在動手完成 案例的過程中加深理解。從案例中學習,不僅有助于學習理解,還能增加學習的信心與成就感。 (2)對于計算機視覺算法開發人員,本書的算法部分可以作為參考閱讀,部署部分可以幫助算 法工程師了解模型研發出來后的部署詳情。了解了部署過程中的資源受限情況,可以在算法研發過 程中做一些優化,如模型量化的量化感知訓練就是在模型的訓練階段完成的。如果存儲或執行速度 受限,算法工程師在選擇算法時就應該評估訓練出的模型參數量,進而選擇合適的算法以匹配存儲 或執行速度的要求。另外,執行性能與準確率之間的權衡最好在算法研發的過程中就有所考量。 (3)對于對深度學習有興趣的用戶或者亟須工程落地使用的用戶來說,可能只是想通過AI 技術實現某一個功能,這些功能可能使用開源的模型就能滿足,那么這些用戶只需要參考閱讀部署章節。因為這些用戶需要考慮的是如何將手上的模型轉換為適合部署的模型,以及將這個模型部署到自己負責的端側設備上去。 最后,希望本書能給予正在學習的讀者一些幫助,這將是筆者莫大的榮幸。由于能力有限,書 中可能存在一些疏漏之處,懇請讀者不吝賜教。 |