本書針對高職教育的特點,緊依據(jù)職業(yè)崗位需求設計建構課程內(nèi)容,在覆蓋基本理論的同時,強調(diào)培養(yǎng)學生具體的實踐操作能力。本書教材內(nèi)容主要包括7個單元:計算機視覺基礎、圖像預處理、BP神經(jīng)網(wǎng)絡、卷積神經(jīng)網(wǎng)絡、Tensorflow2.0基礎、圖像分類、目標檢測。通過關鍵技術以及整體架構的學習,結合案例,要求學生了解人工智能中計算機視覺的發(fā)展狀況與研究內(nèi)容,掌握基本概念、基本原理,了解計算機視覺的一些經(jīng)典場景應用,掌握計算機視覺開發(fā)的一般流程,初步具備計算機視覺開發(fā)的能力。
1.雙高校常州信息職業(yè)技術學院軟件與大數(shù)據(jù)學院副院長撰寫。
2.教材體例體現(xiàn)“立德樹人”,滿足思政育人新需求。
3.校企雙元教材,教材內(nèi)容體現(xiàn)“職業(yè)性”,滿足企業(yè)崗位新需求
4.配套慕課視頻。
主編曾在世界五百強企業(yè)工作多年,具有豐富的企業(yè)工作經(jīng)歷。曾擔任第二代XX衛(wèi)星通信系統(tǒng)等多個大型國防裝備項目軟件定型/鑒定測評負責人。獲得信息系統(tǒng)項目管理師(高級),軍用軟件測評實驗室內(nèi)審員,航空軍用軟件測試師資格。主持編寫企業(yè)標準一項,參與企業(yè)標準編制一項。參與國防”十二五”課題一項。 目前在常州信息職業(yè)技術學院從事人工智能技術服務專業(yè)相關教學和科研工作,主要講授計算機視覺開發(fā)、數(shù)據(jù)結構、python程序設計等課程;參與編寫《python程序設計》、《Docker容器技術》、《信息技術基礎》等專業(yè)教材。參與軟件技術專業(yè)國家教學資源庫、江蘇省品牌專業(yè)建設;全國職業(yè)院校技能大賽優(yōu)秀指導教師、江蘇省技術能手、2021年第四屆江蘇省百萬技能人才技能競賽崗位練兵活動暨江蘇省電信與互聯(lián)網(wǎng)行業(yè)人工智能訓練師職業(yè)技能競賽(職工組)二等獎。指導學生獲2018年全國職業(yè)院校技能大賽軟件測試賽項一等獎、2020年全國大學生軟件測試大賽嵌入式賽項全國一等獎。
目 錄
第 1章 初識計算機視覺 1
1.1 人類視覺系統(tǒng) 1
1.2 計算機視覺 3
1.2.1 計算機視覺的重要性 3
1.2.2 語義鴻溝 3
1.2.3 基于深度學習的計算機視覺工作原理 4
1.3 計算機視覺常見任務 4
1.3.1 圖像分類 5
1.3.2 目標檢測 5
1.3.3 圖像分割 6
1.4 計算機視覺發(fā)展過程 7
1.4.1 20世紀50年代,二維圖像的分析和識別 7
1.4.2 20世紀60年代,理解三維場景 8
1.4.3 20世紀70年代,恢復三維結構 8
1.4.4 20世紀80年代,基于專家系統(tǒng)的計算機視覺 9
1.4.5 20世紀90年代,特征對象識別 9
1.4.6 21世紀初,圖像特征工程 10
1.4.7 2010年至今,深度學習年代 11
1.5 行業(yè)應用 11
1.5.1 在智慧醫(yī)療領域的應用 11
1.5.2 在公共安全領域的應用 12
1.5.3 在無人機與自動駕駛領域的應用 12
1.5.4 在其他社會領域的應用 13
1.6 基礎開發(fā)環(huán)境搭建 13
1.6.1 下載及安裝Anaconda 13
1.6.2 使用Anaconda安裝TensorFlow 17
1.6.3 使用Anaconda安裝Opencv 19
1.6.4 Jupyter Notebook使用 20
1.7 本章小結 23
第 2章 TesnorFlow2.X基礎 24
2.1 數(shù)據(jù)類型 25
2.1.1 數(shù)值類型 25
2.1.2 字符串類型 29
2.1.3 布爾類型 30
2.1.4 數(shù)值精度 31
2.1.5 類型轉換 32
2.2 變量 33
2.3 創(chuàng)建張量 34
2.3.1 從數(shù)組、列表對象創(chuàng)建 34
2.3.2 創(chuàng)建全0或全1張量 35
2.3.3 創(chuàng)建已知分布的張量 36
2.4 索引與切片 37
2.4.1 索引 37
2.4.2 切片 39
2.5 維度變換 40
2.5.1 改變視圖 40
2.5.2 改變維度 42
2.6 數(shù)學運算 46
2.6.1 四則常規(guī)運算 46
2.6.2 指數(shù)和對數(shù)運算 47
2.6.3 矩陣相乘運算 47
2.7 自動求導機制 48
2.8 TensorBoard 可視化組件 49
2.8.1 TensorBoard簡介 50
2.8.2 TensorBoard的基本用法 51
2.9 keras.datasets 52
2.9.1 數(shù)據(jù)集加載 53
2.9.2 數(shù)據(jù)預處理 54
2.10 本章小結 58
第3章 圖像預處理 60
3.1 圖像基礎 60
3.2 圖像數(shù)據(jù)解析 62
3.2.1 圖像編碼 62
3.2.2 圖像解碼 65
3.3 圖像數(shù)據(jù)處理 68
3.3.1 圖像縮放 69
3.3.2 圖像翻轉 70
3.3.3 圖像旋轉 73
3.3.4 圖像色彩調(diào)整 74
3.3.5 圖像增強 77
3.4 本章小結 79
第4章 深度神經(jīng)網(wǎng)絡 80
4.1 人工神經(jīng)網(wǎng)絡(ANN) 81
4.1.1 生物啟發(fā) 81
4.1.2 M-P神經(jīng)元模型 82
4.1.3 單層感知機 84
4.1.4 多層感知機 85
4.1.5 激活函數(shù) 86
4.1.6 參數(shù)初始化 95
4.1.7 tf.keras神經(jīng)網(wǎng)絡模型構建 98
4.2 人工神經(jīng)網(wǎng)絡訓練過程 104
4.2.1 前向傳播 104
4.2.2 損失函數(shù) 105
4.2.3 反向傳播 109
4.2.4 梯度下降算法 109
4.2.5 梯度下降優(yōu)化方法 111
4.2.6 Epoch,Batch size,Iterations 116
4.3 正則化 118
4.3.1 L1與L2正則化 118
4.3.2 Dropout 120
4.3.3 批歸一化 122
4.3.4 提前停止訓練 124
4.4 實戰(zhàn):MNIST手寫數(shù)據(jù)識別 126
4.4.1 數(shù)據(jù)加載 128
4.4.2 數(shù)據(jù)處理 129
4.4.3 模型構建 130
4.4.4 模型編譯 132
4.4.5 模型訓練 132
4.4.6 模型評估 135
4.4.7 模型保存 136
4.5 本章小結 136
第5章 卷積神經(jīng)網(wǎng)絡 138
5.1 全連接神經(jīng)網(wǎng)絡VS卷積神經(jīng)網(wǎng)絡 139
5.1.1 全連接神經(jīng)網(wǎng)絡處理圖像的不足 139
5.1.2 卷積神經(jīng)網(wǎng)絡的解決辦法 140
5.1 卷積神經(jīng)網(wǎng)絡基本結構 142
5.1.1 輸入層 143
5.1.2 卷積層 144
5.1.3 池化層 144
5.1.4 全連接層 144
5.2 卷積 144
5.2.1 卷積計算 145
5.2.2 填充(padding) 146
5.2.3 步長(stride) 148
5.2.4 多通道卷積 149
5.2.5 多卷積核卷積 151
5.2.6 特征圖的大小 151
5.2.7 tf.keras卷積實現(xiàn) 152
5.3 池化 153
5.3.1 池化操作 153
5.3.2 tf.keras池化操作實現(xiàn) 154
5.4 LeNet-5網(wǎng)絡構建 155
5.5 BatchNorm層 157
5.6 常見卷積神經(jīng)網(wǎng)絡模型 159
5.6.1 AlexNet 159
5.6.2 VGGNet 160
5.6.3 GoogLeNet 163
5.7 實戰(zhàn):花朵識別 165
5.7.1 前期工作 166
5.7.2 數(shù)據(jù)預處理 167
5.7.3 構建CNN模型 169
5.7.4 編譯模型 171
5.7.5 訓練模型 171
5.7.6 評估模型 171
5.8 本章小結 172
第6章 圖像分類與遷移學習 174
6.1 圖像分類概述 175
6.2 實戰(zhàn):自定義網(wǎng)絡實現(xiàn)貓狗大戰(zhàn) 176
6.2.1 數(shù)據(jù)集加載 176
6.2.2 數(shù)據(jù)預處理 177
6.2.3 自定義網(wǎng)絡模型 178
6.2.4 編譯模型 180
6.2.5 訓練模型 180
6.2.6 可視化訓練結果 180
6.2.7 數(shù)據(jù)增強 181
6.3 遷移學習 182
6.4 使用遷移學習實現(xiàn)貓狗大戰(zhàn) 184
6.4.1 實例化InceptionV3 185
6.4.2 為模型添加新的層 185
6.4.3 編譯模型 186
6.4.4 訓練模型 186
6.5 TensorFlow Hub介紹 187
6.6 使用TensorFlow Hub進行花卉分類 188
6.6.1 下載數(shù)據(jù) 188
6.6.2 創(chuàng)建數(shù)據(jù)集 189
6.6.3 使數(shù)據(jù)適應模型 189
6.6.4 建立模型 190
6.6.5 訓練與評估 191
6.7 本章小結 193
第7章 目標檢測 194
7.1 目標檢測的基本概念 195
7.2 目標檢測常用數(shù)據(jù)集和標注工具 196
7.3 目標檢測常用技術 199
7.3.1 邊界框(Bounding box) 199
7.3.2 數(shù)據(jù)表示 203
7.3.3 效果評估 203
7.4 常用網(wǎng)絡類型 203
7.4.1 R-CNN系列 204
7.4.2 YOLO系列 207
7.5 人臉識別 211
7.5.1 MTCNN工作原理 212
7.5.2 FaceNet 216
7.5.3 人臉檢測實踐 219
7.6 目標檢測案例(YOLOv3) 224
7.6.1 YOLOv3模型結構和工作流程 224
7.6.2 YOLOv3應用實踐 227
7.6.3 YOLOv3核心功能代碼 235
7.6.4 采用YOLOv3源碼實現(xiàn)目標檢測 238
7.7 本章小結 242