機器視覺及深度學習——經(jīng)典算法與系統(tǒng)搭建
定 價:118 元
- 作者:陳兵旗、譚彧 主編
- 出版時間:2022/8/1
- ISBN:9787122411457
- 出 版 社:化學工業(yè)出版社
- 中圖法分類:TP302.7
- 頁碼:264
- 紙張:
- 版次:01
- 開本:16開
深度學習和傳統(tǒng)機器視覺技術(shù)相融合,可以大大提高AI 技術(shù)的效率和精度。本書分上、下兩篇,共19 章內(nèi)容,詳細講解了機器視覺及深度學習的理論和編程實踐。
上篇介紹理論算法。包括機器視覺的經(jīng)典圖像處理算法、深度學習的理論基礎(chǔ)和目前常用的深度學習框架。
下篇介紹編程環(huán)境及系統(tǒng)搭建。講解了機器視覺圖像處理算法及深度學習的編程工具 VC++、Python 和 OpenCV;利用 VC++和 Python 工具,搭建圖像處理的工程界面;介紹了常用的9 種深度學習框架的獲得方法、安裝設(shè)置、工程創(chuàng)建,以及深度學習工程的編譯、訓練、評估與部署方法。
每一個搭建的工程,都提供一套可下載的源代碼程序,方便讀者下載學習。
本書理論與實踐兼顧,可為從事機器視覺技術(shù)及人工智能研究和應用的工程技術(shù)人員提供幫助,也可供高等院校相關(guān)專業(yè)師生學習參考。
機器視覺及深度學習是人工智能的主要技術(shù)手段,已經(jīng)廣泛應用于各個領(lǐng)域。傳統(tǒng)機器視覺技術(shù),一般需要有較深的研發(fā)經(jīng)驗才能進行相關(guān)應用項目的開發(fā),處理算法的通用性較差,學習門檻較高。深度學習需要搭建很多神經(jīng)網(wǎng)絡層次結(jié)構(gòu),一般人不具備搭建深度學習框架的能力,好在有不少大公司和專業(yè)機構(gòu)根據(jù)不同的需求設(shè)計了一些深度學習框架并對外開放,一般人可以利用這些深度學習框架,實現(xiàn)自己的圖像檢測目的,學習門檻較低。
在功能方面,傳統(tǒng)機器視覺技術(shù)更適合精確檢測與定位,處理速度快,對硬件處理能力要求不高。深度學習更適合目標分類,需要對大量檢測目標樣本進行訓練,處理量大,自然環(huán)境下的檢測精度一般在 80%左右,需要采用高性能的GPU 處理設(shè)備提高檢測速度。如果能夠?qū)⑸疃葘W習和傳統(tǒng)機器視覺技術(shù)相融合,針對深度學習的檢測結(jié)果,再通過傳統(tǒng)機器視覺技術(shù)進行精確檢測和定位,就可以大大提高AI 技術(shù)的效率和精度。
為了幫助讀者迅速理解和掌握機器視覺與深度學習的理論和編程實踐,本書分為上、下兩篇共 19章內(nèi)容。上篇介紹理論算法,包括機器視覺的經(jīng)典圖像處理算法、深度學習的理論基礎(chǔ)和目前常用的深度學習框架。下篇介紹編程環(huán)境及系統(tǒng)搭建,首先介紹機器視覺圖像處理算法及深度學習的編程工具VC 、Python和OpenCV;然后利用VC 和Python 工具,搭建圖像處理的工程界面;后介紹常用的 9 種深度學習框架的獲得方法、安裝設(shè)置、工程創(chuàng)建,以及深度學習工程的編譯、訓練、評估與部署方法。每一個搭建的工程,都提供一套可下載的源代碼程序,方便讀者下載學習。部分實例的程序可登錄北京現(xiàn)代富博科技有限公司的官網(wǎng)進行下載。
為了確保讀者順利搭建系統(tǒng),本書編寫完成后,由沒有經(jīng)驗的人員根據(jù)書中內(nèi)容進行了試用并提出修改意見。為了完成深度學習框架的搭建,需要讀者配置具有高性能 GPU 處理器的計算機。
本書由陳兵旗、譚彧主編,梁習卉子、張亞偉、劉星星、尹彥鑫、胡標、蘇道畢力格、田文斌、陳建參與編寫。具體分工如下:
陳兵旗(中國農(nóng)業(yè)大學,fbcbq@163.com):負責內(nèi)容策劃并編寫第1章基礎(chǔ)知識、和吃在2章目標提取、第8章平臺軟件、第9章VC 圖像處理工程和第10章Python 圖像處理工程。
譚彧(中國農(nóng)業(yè)大學,tanyu@cau.edu.cn):負責組織實施,審閱全部書稿和定稿。
梁習卉子(蘇州健雄職業(yè)技術(shù)學院,liangxihuizi@sina.com):編寫第3章邊緣檢測、第4章去噪聲處理和第5章幾何參數(shù)檢測。
張亞偉(中國農(nóng)業(yè)大學,zywcu@cau.edu.cn):編寫第6章直線檢測。
劉星星(中國農(nóng)業(yè)大學,liuxingxing56285@163.com):編寫第7章深度學習框架介紹和第18章 YoloV4 深度學習工程。
尹彥鑫(北京農(nóng)業(yè)智能裝備技術(shù)研究中心,yinyx@nercita.org.cn):編寫第11章TensorFlow 深度學習工程。
胡標(中國農(nóng)業(yè)大學,hubiao@cau.edu.cn):編寫第12章Keras 深度學習工程和第17章Theano 深度學習工程。
蘇道畢力格( 中國農(nóng)業(yè)大學, sudao@cau.edu.cn ): 編寫第13章PyTorch 深度學習工程。
田文斌(中國農(nóng)業(yè)大學,wenbin.tian@cau.edu.cn):編寫第14章Caffe深度學習工程、第15章MXNet 深度學習工程和第16章CNTK 深度學習工程。
陳建(中國農(nóng)業(yè)大學,jchen@cau.edu.cn):編寫第19章PaddlePaddle深度學習工程。
讀者在利用本書進行編程學習和實踐的過程中,如果遇到問題,可以通過郵件獲得相關(guān)作者的幫助。
雖然編寫過程中付出了很大努力,但是在內(nèi)容結(jié)構(gòu)和文字表述方面難免有不妥之處,敬請廣大讀者批評指正。
主 編
陳兵旗,中國農(nóng)業(yè)大學,教授,中國農(nóng)業(yè)機械學會基礎(chǔ)技術(shù)分會理事,美國國際農(nóng)業(yè)生物工程學會ASABE會員,海外華人農(nóng)業(yè)工程學會AOC會員。Transaction of ASABE, Biosystems Engineering, IEEE Transactions on Automation Science and Engineering, 中國農(nóng)機學報、中國農(nóng)業(yè)工程學報等多家國內(nèi)外權(quán)威學術(shù)期刊論文審稿人。國家自然基金以及多個省市基金項目評審專家。
上篇 理論算法 1
第1章 基礎(chǔ)知識 2
1.1 圖像與顏色 2
1.1.1 彩色圖像 2
1.1.2 灰度圖像 3
1.1.3 顏色變換 3
1.2 機器視覺 4
1.2.1 機器視覺構(gòu)成 4
1.2.2 數(shù)字圖像處理 6
1.3 深度學習 9
1.3.1 基本概念 9
1.3.2 基本思想 10
1.3.3 深度學習常用方法 10
第2章 目標提取 21
2.1 灰度目標 21
2.1.1 閾值分割 21
2.1.2 自動二值化處理 22
2.2 彩色圖像 24
2.2.1 果樹上紅色桃子的提取 24
2.2.2 綠色麥苗的提取 26
2.3 運動圖像 27
2.3.1 幀間差分 27
2.3.2 背景差分 27
2.4 C 語言實現(xiàn) 28
2.4.1 二值化處理 28
2.4.2 雙閾值二值化處理 29
2.4.3 直方圖 30
2.4.4 直方圖平滑化 31
2.4.5 大津法二值化處理 31
第3章 邊緣檢測 34
3.1 圖像邊緣 34
3.2 微分處理 35
3.2.1 一階微分 35
3.2.2 二階微分 36
3.3 模板匹配 37
3.4 C 語言實現(xiàn) 39
3.4.1 一階微分邊緣檢測 39
3.4.2 二階微分邊緣檢測 40
3.4.3 Prewitt 算子邊緣檢測 41
3.4.4 二值圖像的細線化處理 43
第4章 去噪聲處理 46
4.1 移動平均 46
4.2 中值濾波 47
4.3 二值圖像去噪聲 49
4.4 C 語言實現(xiàn) 50
4.4.1 移動平均法 50
4.4.2 中值濾波 51
4.4.3 腐蝕處理 52
4.4.4 膨脹處理 53
第5章 幾何參數(shù)檢測 55
5.1 圖像的幾何參數(shù) 55
5.2 區(qū)域標記 58
5.3 幾何參數(shù)檢測與提取 59
5.4 C 語言實現(xiàn) 60
5.4.1 區(qū)域標記 60
5.4.2 計算圖像特征參數(shù) 62
5.4.3 根據(jù)圓形度抽出物體 66
5.4.4 復制掩模領(lǐng)域的原始圖像 67
5.4.5 根據(jù)面積提取對象物 67
第6章 直線檢測 69
6.1 傳統(tǒng) Hough 變換的直線檢測 69
6.2 最小二乘法的直線檢測 71
6.3 C 語言實現(xiàn) 72
6.3.1 傳統(tǒng) Hough 變換的直線檢測 72
6.3.2 最小二乘法的直線檢測 74
第7章 深度學習框架介紹 77
7.1 TensorFlow 78
7.1.1 TensorFlow 的優(yōu)勢 78
7.1.2 TensorFlow 應用場景 79
7.1.3 TensorFlow 開發(fā)環(huán)境安裝 79
7.2 Keras 80
7.2.1 Keras 的優(yōu)勢 81
7.2.2 Keras 應用 81
7.2.3 Keras 與 TensorFlow2 的關(guān)系 81
7.2.4 Keras 的安裝 82
7.3 PyTorch 82
7.3.1 PyTorch 的優(yōu)勢 82
7.3.2 PyTorch 的典型應用 83
7.3.3 PyTorch 和 TensorFlow 的比較 83
7.3.4 PyTorch 的安裝 84
7.4 其他深度學習框架 85
7.4.1 Caffe 85
7.4.2 MXNet 85
7.4.3 CNTK 86
7.4.4 Theano 86
7.4.5 Darknet 87
7.4.6 PaddlePaddle 87
下篇 編移環(huán)境及系統(tǒng)搭建 89
第8章 平臺軟件 90
8.1 OpenCV 90
8.1.1 基本功能介紹 90
8.1.2 獲取與安裝 91
8.2 VC++ 92
8.2.1 基本功能介紹 92
8.2.2 獲取與安裝 93
8.3 Python 95
8.3.1 基本功能介紹 95
8.3.2 獲取與安裝 95
第9章 VC++圖像處理工程 98
9.1 工程創(chuàng)建 98
9.1.1 啟動 Visual Studio 2010 98
9.1.2 創(chuàng)建新建工程 99
9.2 系統(tǒng)設(shè)置 115
9.3 編譯執(zhí)行 117
第10章 Python 圖像處理系統(tǒng) 119
10.1 工程創(chuàng)建 119
10.2 系統(tǒng)設(shè)置 121
10.3 編譯執(zhí)行 127
第11章 TensorFlow 深度學習工程 134
11.1 框架獲得 134
11.2 安裝設(shè)置 134
11.3 案例 135
11.3.1 數(shù)據(jù)準備 135
11.3.2 訓練模型 137
11.3.3 驗證準確率 139
11.3.4 導出模型并對圖片分類 139
第12章 Keras 深度學習工程 142
12.1 框架獲得 142
12.2 安裝設(shè)置步驟 143
12.3 工程創(chuàng)建 146
12.4 編譯、訓練、評估與部署 148
第13章 PyTorch 深度學習工程 152
13.1 框架獲得 152
13.2 安裝設(shè)置 153
13.2.1 CPU 版本安裝 153
13.2.2 GPU 版本安裝 153
13.3 工程創(chuàng)建 155
13.4 訓練、評估與部署 157
13.4.1 訓練 157
13.4.2 評估 158
13.4.3 部署 159
第14章 Caffe 深度學習工程 166
14.1 安裝環(huán)境和依賴項獲得 166
14.2 框架的獲取 167
14.3 編譯 Caffe 及其與 Python 的接口 167
14.3.1 OpenCV 的安裝 167
14.3.2 Caffe 編譯 170
14.4 目標分類測試 181
14.4.1 數(shù)據(jù)集準備 181
14.4.2 訓練模型 186
14.4.3 用訓練好的模型對數(shù)據(jù)進行預測 188
第15章 MXNet 深度學習工程 190
15.1 框架獲取及環(huán)境設(shè)置 190
15.1.1 環(huán)境準備 190
15.1.2 利用 Anaconda 創(chuàng)建運行環(huán)境 191
15.2 基于笑臉目標檢測的 MXNet 框架測試 192
15.2.1 創(chuàng)建訓練數(shù)據(jù)集 192
15.2.2 訓練模型 197
15.2.3 測試模型 200
第16章 CNTK 深度學習工程 202
16.1 框架的獲取 202
16.2 編譯 202
16.2.1 CPU 版本編譯 202
16.2.2 基于 Linux 系統(tǒng)的 GPU 版本編譯 206
16.3 CNTK 測試 208
16.3.1 創(chuàng)建數(shù)據(jù)集 208
16.3.2 模型訓練 211
16.3.3 模型測試 213
第17章 Theano 深度學習工程 216
17.1 框架獲得 216
17.2 安裝設(shè)置 217
17.3 工程創(chuàng)建 220
17.4 編譯、訓練、評估與部署 222
第18章 YoloV4 深度學習工程 226
18.1 框架的獲取 226
18.2 框架源碼編譯及環(huán)境設(shè)置 226
18.2.1 CPU 版本編譯 226
18.2.2 GPU 版本編譯 227
18.2.3 Darknet 測試 230
18.3 創(chuàng)建 Yolo 訓練數(shù)據(jù)集 231
18.4 訓練 YoloV4 模型 235
18.5 測試 YoloV4 模型 237
第19章 PaddlePaddle 深度學習工程 238
19.1 框架獲得 240
19.2 安裝設(shè)置 240
19.3 工程創(chuàng)建、編譯、訓練、評估與測試 243
19.4 基于高層 API 的任務快速實現(xiàn) 261
參考文獻 263