深度學(xué)習(xí)與目標檢測:工具、原理與算法
定 價:89 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:涂銘,金智勇
- 出版時間:2021/9/1
- ISBN:9787111690344
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
內(nèi)容簡介
這是一本從工具、原理、算法3個維度指導(dǎo)讀者零基礎(chǔ)快速掌握目標檢測技術(shù)及其應(yīng)用的入門書。
兩位作者是資深的AI技術(shù)專家和計算機視覺算法專家,在阿里、騰訊、百度、三星等大企業(yè)從事計算機視覺相關(guān)的工作多年,不僅理論功底扎實、實踐經(jīng)驗豐富,而且知道初學(xué)者進入計算機視覺領(lǐng)域的痛點和難點。據(jù)此,兩位作者編寫了這本針對目標檢測初學(xué)者的入門書,希望從知識體系和工程實踐的角度幫助讀者少走彎路。
第1~2章是目標檢測的準備工作,主要介紹了目標檢測的常識、深度學(xué)習(xí)框架的選型、開發(fā)環(huán)境的搭建以及數(shù)據(jù)處理工具的使用。
第3~5章是目標檢測的技術(shù)基礎(chǔ),主要講解了數(shù)據(jù)預(yù)處理和卷積神經(jīng)網(wǎng)絡(luò)等圖像分類技術(shù)的基礎(chǔ)知識。
第6章比較詳細地介紹了香港中文大學(xué)的開源算法庫mmdetection。
第7~10章詳細地講解了目標檢測的概念、原理、一階段算法、二階段算法以及提升算法性能的常用方法。
第11章簡單介紹了目標檢測的相關(guān)案例(以工業(yè)為背景),以幫助讀者構(gòu)建一個更完整的知識體系。
(1)作者背景深厚:兩位作者是AI和計算機視覺方面的專家,在阿里、騰訊、百度等企業(yè)有超過10年的相關(guān)工作經(jīng)驗;(2)內(nèi)容結(jié)構(gòu)講究:針對初學(xué)者需求精心安排,從預(yù)備知識、深度學(xué)習(xí)基礎(chǔ),到目標檢測算法和工程案例,由淺入深,理論與實踐結(jié)合;(3)內(nèi)容通俗易懂:語言通俗,邏輯性強;盡量繞開復(fù)雜的數(shù)學(xué)公式推導(dǎo),無需數(shù)學(xué)基礎(chǔ),降低讀者的閱讀門檻;(4)豐富實戰(zhàn)案例:內(nèi)容遵循知識點背景介紹→原理講解→案例分析的思路,提供大量案例;(5)提供源碼下載:第2~11章均提供源數(shù)據(jù)和完整代碼,代碼均經(jīng)過嚴格測試,可直接在Github上下載。
為什么要寫這本書
隨著深度學(xué)習(xí)技術(shù)的發(fā)展、計算能力的提升和視覺數(shù)據(jù)的增加,計算機視覺技術(shù)在圖像搜索、智能相冊、人臉閘機、城市智能交通管理、智慧醫(yī)療等諸多領(lǐng)域都取得了令人矚目的成績。越來越多的人開始關(guān)注這個領(lǐng)域。計算機視覺包含多個分支,其中圖像分類、目標檢測、圖像分割、目標跟蹤等是計算機視覺領(lǐng)域重要的幾個研究課題。本書介紹的目標檢測技術(shù),本質(zhì)上就是通過計算機運行特定的算法,檢測圖像中一些受關(guān)注的目標。當(dāng)今時代,我們很容易在互聯(lián)網(wǎng)上找到目標檢測算法的開源代碼,運行代碼并不是什么難事,但理解其中的原理卻有一定的難度。我們編寫本書的目的就是由淺入深地向讀者講解目標檢測技術(shù),用相對通俗的語言來介紹算法的背景和原理,在讀者“似懂非懂”時給出實戰(zhàn)案例。實戰(zhàn)案例的代碼已全部通過線下驗證,代碼并不復(fù)雜,可以很好地幫助讀者理解算法細節(jié),希望讀者在學(xué)習(xí)理論之后可以親自動手實踐。目標檢測的理論和實踐是相輔相成的,希望本書可以帶領(lǐng)讀者走進目標檢測的世界。
本書具有以下兩個特點。
1)本書默認讀者具備大學(xué)本科水平的數(shù)學(xué)基礎(chǔ)。因為圖像分類是目標檢測的基礎(chǔ),所以本書前幾章講解了圖像分類算法,為后續(xù)讀者理解目標檢測算法打下基礎(chǔ)。本書盡量繞開復(fù)雜的數(shù)學(xué)證明和推導(dǎo),從問題的前因后果、思考過程和簡單數(shù)學(xué)計算的角度做模型分析和講解,目的是以更通俗易懂的方式帶領(lǐng)讀者入門。
2)本書附有實戰(zhàn)案例,讀者可以結(jié)合案例,通過實踐驗證思路。本書內(nèi)容是按照知識點背景—原理剖析—實戰(zhàn)案例的順序展開的,代碼會在書中詳細列出或者上傳到GitHub,以方便讀者下載與調(diào)試,快速掌握知識點,快速上手。這些代碼也可以應(yīng)用到讀者自己的項目中,以提升開發(fā)效率。本書還介紹了目前比較流行的開源算法庫mmdetection,旨在幫助讀者降低實際項目的開發(fā)難度。
本書第1、8、9、10章,以及6.1~6.4節(jié),由金智勇撰寫,其余各章節(jié)由涂銘撰寫。
讀者對象
本書適合以下幾類讀者閱讀:
1)統(tǒng)計學(xué)、計算機科學(xué)技術(shù)等相關(guān)專業(yè)的學(xué)生:本書的寫作初衷是面向相關(guān)專業(yè)的學(xué)生—擁有大量理論知識卻缺乏實戰(zhàn)經(jīng)驗的人員,讓其在有理論積累的基礎(chǔ)上深入了解目標檢測。讀者可以跟隨本書的教程進行操作練習(xí),從而對自己使用的人工智能工具、算法和技術(shù)“知其然亦知其所以然”。
2)信息科學(xué)和計算機科學(xué)愛好者:通過本書可以了解人工智能領(lǐng)域的前輩們在探索的道路上做出的努力和思考。理解他們的觀點和思路,有助于讀者開拓自己的思維和視野。
3)人工智能相關(guān)專業(yè)的研究人員:本書詳細介紹了目標檢測的相關(guān)知識,閱讀本書可以了解理論知識,了解哪些才是項目所需內(nèi)容以及如何在項目中實現(xiàn)。
如何閱讀本書
本書從以下幾個方面介紹目標檢測的相關(guān)技術(shù)。
第1章簡述了目標檢測的定義及應(yīng)用場景,并介紹了20年來目標檢測技術(shù)的發(fā)展歷程。
第2章主要對目標檢測的前置技術(shù)做簡單的介紹,同時介紹了本書后續(xù)章節(jié)實戰(zhàn)案例中會用到的環(huán)境。
第3~5章介紹圖像分類技術(shù)的基礎(chǔ)知識,包括數(shù)據(jù)預(yù)處理、卷積神經(jīng)網(wǎng)絡(luò)等。該部分的代碼主要使用PyTorch實現(xiàn)。沒有圖像分類基礎(chǔ)的讀者需要理解這幾章的內(nèi)容之后再學(xué)習(xí)后續(xù)章節(jié),有卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)的讀者可以有選擇地學(xué)習(xí)。
第6 章比較詳細地介紹了香港中文大學(xué)的開源算法庫mmdetection。
第7章主要介紹了目標檢測的基本概念,在進入代碼實戰(zhàn)之前,我們必須先理解基本原理。
第8~10章是本書的核心內(nèi)容,詳細講解了目標檢測技術(shù)的一階段算法、兩階段算法以及提升算法性能的常用方法。
第11章簡單介紹了目標檢測的相關(guān)案例(以工業(yè)為背景),以幫助讀者構(gòu)建更完整的知識體系。
本書第2~11章都有對應(yīng)的源數(shù)據(jù)和完整代碼。需要注意的是,為了讓讀者更好地了解代碼的含義,在注釋信息中使用了部分中文說明,每個程序文件的編碼格式都是UTF-8。
勘誤和支持
由于筆者水平及撰稿時間有限,書中難免會出現(xiàn)一些錯誤或者不準確的地方,懇請讀者批評指正。讀者可以發(fā)送電子郵件到j(luò)inzhiyong123@163.com反饋建議或意見。
致謝
在受邀撰寫本書時,從未想到過程會如此艱辛。這里需要感謝一路陪我走來的所有人。
感謝家人在我寫作本書時給予了理解和支持。
感謝我的合著者—金智勇,與他合作十分愉快,他給予了我很多的理解和包容。
感謝參與審閱、編輯等工作的楊福川老師和韓蕊老師,是他們在幕后的辛勤付出保證了本書的順利出版。
在寫作期間,我也得到了很多專業(yè)領(lǐng)域?qū)<业闹笇?dǎo)。例如,我在撰寫第11章的時候,得到了騰訊云工業(yè)AI首席架構(gòu)師周永良博士的大力幫助,感謝他提供的豐富的行業(yè)經(jīng)驗和獨到理解。
再次感謝大家!
涂銘
2021年9月
作者簡介
涂銘
? 資深數(shù)據(jù)架構(gòu)師和人工智能技術(shù)專家,現(xiàn)就職于騰訊,曾就職于阿里。對大數(shù)據(jù)、自然語言處理、圖像識別、Python、Java等相關(guān)技術(shù)有深入的研究,積累了豐富的實踐經(jīng)驗。
? 在工業(yè)領(lǐng)域曾參與了燃煤優(yōu)化、設(shè)備故障診斷以及正泰光伏電池片和組件EL圖像檢測項目;在自然語言處理方面,曾擔(dān)任導(dǎo)購機器人項目的架構(gòu)師,主導(dǎo)開發(fā)機器人的語義理解、短文本相似度匹配、上下文理解,以及通過自然語言檢索產(chǎn)品庫,在項目中構(gòu)建了NoSQL+文本檢索等大數(shù)據(jù)架構(gòu),同時負責(zé)問答對的整理和商品屬性的提取,帶領(lǐng)NLP團隊構(gòu)建了語義解析層。
? 合著有暢銷書《Python自然語言處理實戰(zhàn):核心技術(shù)與算法》《深度學(xué)習(xí)與圖像識別:原理與實踐》《會話式AI:自然語言處理與人機交互》。
? 金智勇
? 計算機視覺算法專家,在計算機視覺領(lǐng)域深耕12年,F(xiàn)就職于百度,曾就職于阿里和三星等知名高新技術(shù)企業(yè)。業(yè)務(wù)領(lǐng)域涵蓋增強現(xiàn)實、人臉識別、圖像美化、智能交通、工業(yè)質(zhì)檢等多個方向,具有豐富的算法研究與落地經(jīng)驗。
前言
第1章 目標檢測概述 1
1.1 什么是目標檢測 1
1.2 典型的應(yīng)用場景 2
1.2.1 人臉識別 2
1.2.2 智慧交通 2
1.2.3 工業(yè)檢測 3
1.3 目標檢測技術(shù)發(fā)展簡史 3
1.3.1 傳統(tǒng)算法 4
1.3.2 深度學(xué)習(xí)算法 5
1.4 目標檢測領(lǐng)域重要的公開評測集 8
1.5 本章小結(jié) 11
第2章 目標檢測前置技術(shù) 12
2.1 深度學(xué)習(xí)框架 12
2.1.1 Theano 12
2.1.2 TensorFlow 13
2.1.3 MXNet 14
2.1.4 Keras 15
2.1.5 PyTorch 15
2.1.6 Caffe 16
2.2 搭建開發(fā)環(huán)境 17
2.2.1 Anaconda 17
2.2.2 Conda 19
2.2.3 PyTorch的下載與安裝 21
2.3 NumPy使用詳解 22
2.3.1 創(chuàng)建數(shù)組 22
2.3.2 創(chuàng)建NumPy數(shù)組 24
2.3.3 獲取NumPy屬性 27
2.3.4 NumPy數(shù)組索引 28
2.3.5 切片 28
2.3.6 NumPy中的矩陣運算 29
2.3.7 數(shù)據(jù)類型轉(zhuǎn)換 31
2.3.8 NumPy的統(tǒng)計計算方法 31
2.3.9 NumPy中的arg運算 32
2.3.10 FancyIndexing 33
2.3.11 NumPy數(shù)組比較 33
2.4 本章小結(jié) 35
第3章 卷積神經(jīng)網(wǎng)絡(luò) 36
3.1 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 36
3.1.1 全連接層 36
3.1.2 卷積層 37
3.1.3 池化層 42
3.1.4 三維數(shù)據(jù)的卷積運算 44
3.1.5 批規(guī)范化層 45
3.1.6 Dropout層 47
3.2 本章小結(jié) 48
第4章 數(shù)據(jù)預(yù)處理 49
4.1 數(shù)據(jù)增強 49
4.1.1 resize操作 50
4.1.2 crop操作 51
4.1.3 隨機的水平和豎直翻轉(zhuǎn) 52
4.1.4 隨機角度的旋轉(zhuǎn) 53
4.1.5 亮度、對比度和顏色的隨機變化 54
4.1.6 彩色圖轉(zhuǎn)灰度圖 55
4.2 數(shù)據(jù)的探索—Kaggle貓狗大戰(zhàn) 56
4.3 本章小結(jié) 64
第5章 常見卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 65
5.1 LeNet神經(jīng)網(wǎng)絡(luò) 65
5.2 AlexNet神經(jīng)網(wǎng)絡(luò) 70
5.3 VGGNet神經(jīng)網(wǎng)絡(luò) 77
5.4 GoogLeNet神經(jīng)網(wǎng)絡(luò) 81
5.4.1 inception模塊 83
5.4.2 GoogLeNet的實現(xiàn) 85
5.4.3 GoogLeNet的演變 88
5.5 ResNet 89
5.5.1 殘差模塊 90
5.5.2 ResNet模型 92
5.6 DenseNet 92
5.7 其他網(wǎng)絡(luò)結(jié)構(gòu) 95
5.8 實戰(zhàn)案例 96
5.9 計算圖像數(shù)據(jù)集的RGB均值和方差 98
5.10 本章小結(jié) 99
第6章 mmdetection工具包介紹 100
6.1 mmdetection概要 100
6.2 mmdetection支持的檢測框架和算法實現(xiàn) 101
6.3 搭建mmdetection開發(fā)環(huán)境 102
6.4 使用入門 103
6.4.1 使用預(yù)訓(xùn)練模型進行推理 103
6.4.2 訓(xùn)練模型 105
6.4.3 有用的工具 106
6.4.4 如何使用mmdetection 108
6.5 標注圖像 110
6.6 實戰(zhàn)案例 112
6.6.1 檢測人體 113
6.6.2 檢測貓和狗 115
6.7 本章小結(jié) 120
第7章 目標檢測的基本概念 121
7.1 概念詳解 121
7.1.1 IoU計算 122
7.1.2 NMS操作 122
7.1.3 感受野 124
7.1.4 空洞卷積 128
7.1.5 評價指標mAP 129
7.2 本章小結(jié) 131
第8章 兩階段檢測方法 132
8.1 R-CNN算法 132
8.1.1 生成候選區(qū)域 132
8.1.2 類別判定 133
8.1.3 位置修正 136
8.1.4 檢測過程 137
8.1.5 R-CNN算法的重要意義 138
8.2 SPP-Net算法 139
8.2.1 空間金字塔采樣 139
8.2.2 網(wǎng)絡(luò)訓(xùn)練 141
8.2.3 測試過程 142
8.3 Fast R-CNN算法及訓(xùn)練過程 143
8.3.1 ROI池化層 144
8.3.2 模型訓(xùn)練 144
8.3.3 測試過程 147
8.4 Faster R-CNN算法及訓(xùn)練過程 147
8.4.1 候選框提取網(wǎng)絡(luò) 148
8.4.2 RPN和Fast R-CNN共享特征的方法 152
8.5 Faster R-CNN代碼解析 153
8.5.1 代碼整體結(jié)構(gòu) 153
8.5.2 數(shù)據(jù)加載 158
8.5.3 構(gòu)建主干網(wǎng)絡(luò) 160
8.5.4 候選框提取網(wǎng)絡(luò) 161
8.5.5 對候選框進行分類和位置校正 163
8.5.6 算法模型架構(gòu)圖 165
8.6 本章小結(jié) 165
第9章 檢測算法的進一步改進 167
9.1 特征金字塔 167
9.1.1 特征金字塔結(jié)構(gòu) 167
9.1.2 FPN代碼解析 170
9.2 焦點損失函數(shù) 174
9.3 本章小結(jié) 175
第10章 一階段檢測算法 176
10.1 YOLO算法 176
10.1.1 YOLO版 176
10.1.2 YOLO第二版 182
10.1.3 YOLO第三版 185
10.2 SSD算法 196
10.2.1 SSD算法原理 197
10.2.2 訓(xùn)練方法 197
10.2.3 SSD代碼解析 201
10.3 FCOS算法 208
10.3.1 FCOS算法原理 208
10.3.2 FCOS源碼解析 213
10.4 本章小結(jié) 217
第11章 工業(yè)AI的發(fā)展 218
11.1 工業(yè)AI的概念和互聯(lián)網(wǎng) 218
11.2 工業(yè)AI落地應(yīng)用 219
11.2.1 工業(yè)AI的典型場景 220
11.2.2 工業(yè)AI落地背后的本質(zhì) 221
11.2.3 展望 221
11.3 工業(yè)生產(chǎn)