深度學(xué)習(xí)與目標(biāo)檢測(cè):工具、原理與算法
定 價(jià):89 元
叢書名:智能系統(tǒng)與技術(shù)叢書
- 作者:涂銘,金智勇
- 出版時(shí)間:2021/9/1
- ISBN:9787111690344
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
內(nèi)容簡介
這是一本從工具、原理、算法3個(gè)維度指導(dǎo)讀者零基礎(chǔ)快速掌握目標(biāo)檢測(cè)技術(shù)及其應(yīng)用的入門書。
兩位作者是資深的AI技術(shù)專家和計(jì)算機(jī)視覺算法專家,在阿里、騰訊、百度、三星等大企業(yè)從事計(jì)算機(jī)視覺相關(guān)的工作多年,不僅理論功底扎實(shí)、實(shí)踐經(jīng)驗(yàn)豐富,而且知道初學(xué)者進(jìn)入計(jì)算機(jī)視覺領(lǐng)域的痛點(diǎn)和難點(diǎn)。據(jù)此,兩位作者編寫了這本針對(duì)目標(biāo)檢測(cè)初學(xué)者的入門書,希望從知識(shí)體系和工程實(shí)踐的角度幫助讀者少走彎路。
第1~2章是目標(biāo)檢測(cè)的準(zhǔn)備工作,主要介紹了目標(biāo)檢測(cè)的常識(shí)、深度學(xué)習(xí)框架的選型、開發(fā)環(huán)境的搭建以及數(shù)據(jù)處理工具的使用。
第3~5章是目標(biāo)檢測(cè)的技術(shù)基礎(chǔ),主要講解了數(shù)據(jù)預(yù)處理和卷積神經(jīng)網(wǎng)絡(luò)等圖像分類技術(shù)的基礎(chǔ)知識(shí)。
第6章比較詳細(xì)地介紹了香港中文大學(xué)的開源算法庫mmdetection。
第7~10章詳細(xì)地講解了目標(biāo)檢測(cè)的概念、原理、一階段算法、二階段算法以及提升算法性能的常用方法。
第11章簡單介紹了目標(biāo)檢測(cè)的相關(guān)案例(以工業(yè)為背景),以幫助讀者構(gòu)建一個(gè)更完整的知識(shí)體系。
(1)作者背景深厚:兩位作者是AI和計(jì)算機(jī)視覺方面的專家,在阿里、騰訊、百度等企業(yè)有超過10年的相關(guān)工作經(jīng)驗(yàn);(2)內(nèi)容結(jié)構(gòu)講究:針對(duì)初學(xué)者需求精心安排,從預(yù)備知識(shí)、深度學(xué)習(xí)基礎(chǔ),到目標(biāo)檢測(cè)算法和工程案例,由淺入深,理論與實(shí)踐結(jié)合;(3)內(nèi)容通俗易懂:語言通俗,邏輯性強(qiáng);盡量繞開復(fù)雜的數(shù)學(xué)公式推導(dǎo),無需數(shù)學(xué)基礎(chǔ),降低讀者的閱讀門檻;(4)豐富實(shí)戰(zhàn)案例:內(nèi)容遵循知識(shí)點(diǎn)背景介紹→原理講解→案例分析的思路,提供大量案例;(5)提供源碼下載:第2~11章均提供源數(shù)據(jù)和完整代碼,代碼均經(jīng)過嚴(yán)格測(cè)試,可直接在Github上下載。
為什么要寫這本書
隨著深度學(xué)習(xí)技術(shù)的發(fā)展、計(jì)算能力的提升和視覺數(shù)據(jù)的增加,計(jì)算機(jī)視覺技術(shù)在圖像搜索、智能相冊(cè)、人臉閘機(jī)、城市智能交通管理、智慧醫(yī)療等諸多領(lǐng)域都取得了令人矚目的成績。越來越多的人開始關(guān)注這個(gè)領(lǐng)域。計(jì)算機(jī)視覺包含多個(gè)分支,其中圖像分類、目標(biāo)檢測(cè)、圖像分割、目標(biāo)跟蹤等是計(jì)算機(jī)視覺領(lǐng)域重要的幾個(gè)研究課題。本書介紹的目標(biāo)檢測(cè)技術(shù),本質(zhì)上就是通過計(jì)算機(jī)運(yùn)行特定的算法,檢測(cè)圖像中一些受關(guān)注的目標(biāo)。當(dāng)今時(shí)代,我們很容易在互聯(lián)網(wǎng)上找到目標(biāo)檢測(cè)算法的開源代碼,運(yùn)行代碼并不是什么難事,但理解其中的原理卻有一定的難度。我們編寫本書的目的就是由淺入深地向讀者講解目標(biāo)檢測(cè)技術(shù),用相對(duì)通俗的語言來介紹算法的背景和原理,在讀者“似懂非懂”時(shí)給出實(shí)戰(zhàn)案例。實(shí)戰(zhàn)案例的代碼已全部通過線下驗(yàn)證,代碼并不復(fù)雜,可以很好地幫助讀者理解算法細(xì)節(jié),希望讀者在學(xué)習(xí)理論之后可以親自動(dòng)手實(shí)踐。目標(biāo)檢測(cè)的理論和實(shí)踐是相輔相成的,希望本書可以帶領(lǐng)讀者走進(jìn)目標(biāo)檢測(cè)的世界。
本書具有以下兩個(gè)特點(diǎn)。
1)本書默認(rèn)讀者具備大學(xué)本科水平的數(shù)學(xué)基礎(chǔ)。因?yàn)閳D像分類是目標(biāo)檢測(cè)的基礎(chǔ),所以本書前幾章講解了圖像分類算法,為后續(xù)讀者理解目標(biāo)檢測(cè)算法打下基礎(chǔ)。本書盡量繞開復(fù)雜的數(shù)學(xué)證明和推導(dǎo),從問題的前因后果、思考過程和簡單數(shù)學(xué)計(jì)算的角度做模型分析和講解,目的是以更通俗易懂的方式帶領(lǐng)讀者入門。
2)本書附有實(shí)戰(zhàn)案例,讀者可以結(jié)合案例,通過實(shí)踐驗(yàn)證思路。本書內(nèi)容是按照知識(shí)點(diǎn)背景—原理剖析—實(shí)戰(zhàn)案例的順序展開的,代碼會(huì)在書中詳細(xì)列出或者上傳到GitHub,以方便讀者下載與調(diào)試,快速掌握知識(shí)點(diǎn),快速上手。這些代碼也可以應(yīng)用到讀者自己的項(xiàng)目中,以提升開發(fā)效率。本書還介紹了目前比較流行的開源算法庫mmdetection,旨在幫助讀者降低實(shí)際項(xiàng)目的開發(fā)難度。
本書第1、8、9、10章,以及6.1~6.4節(jié),由金智勇撰寫,其余各章節(jié)由涂銘撰寫。
讀者對(duì)象
本書適合以下幾類讀者閱讀:
1)統(tǒng)計(jì)學(xué)、計(jì)算機(jī)科學(xué)技術(shù)等相關(guān)專業(yè)的學(xué)生:本書的寫作初衷是面向相關(guān)專業(yè)的學(xué)生—擁有大量理論知識(shí)卻缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)的人員,讓其在有理論積累的基礎(chǔ)上深入了解目標(biāo)檢測(cè)。讀者可以跟隨本書的教程進(jìn)行操作練習(xí),從而對(duì)自己使用的人工智能工具、算法和技術(shù)“知其然亦知其所以然”。
2)信息科學(xué)和計(jì)算機(jī)科學(xué)愛好者:通過本書可以了解人工智能領(lǐng)域的前輩們?cè)谔剿鞯牡缆飞献龀龅呐退伎。理解他們的觀點(diǎn)和思路,有助于讀者開拓自己的思維和視野。
3)人工智能相關(guān)專業(yè)的研究人員:本書詳細(xì)介紹了目標(biāo)檢測(cè)的相關(guān)知識(shí),閱讀本書可以了解理論知識(shí),了解哪些才是項(xiàng)目所需內(nèi)容以及如何在項(xiàng)目中實(shí)現(xiàn)。
如何閱讀本書
本書從以下幾個(gè)方面介紹目標(biāo)檢測(cè)的相關(guān)技術(shù)。
第1章簡述了目標(biāo)檢測(cè)的定義及應(yīng)用場(chǎng)景,并介紹了20年來目標(biāo)檢測(cè)技術(shù)的發(fā)展歷程。
第2章主要對(duì)目標(biāo)檢測(cè)的前置技術(shù)做簡單的介紹,同時(shí)介紹了本書后續(xù)章節(jié)實(shí)戰(zhàn)案例中會(huì)用到的環(huán)境。
第3~5章介紹圖像分類技術(shù)的基礎(chǔ)知識(shí),包括數(shù)據(jù)預(yù)處理、卷積神經(jīng)網(wǎng)絡(luò)等。該部分的代碼主要使用PyTorch實(shí)現(xiàn)。沒有圖像分類基礎(chǔ)的讀者需要理解這幾章的內(nèi)容之后再學(xué)習(xí)后續(xù)章節(jié),有卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)的讀者可以有選擇地學(xué)習(xí)。
第6 章比較詳細(xì)地介紹了香港中文大學(xué)的開源算法庫mmdetection。
第7章主要介紹了目標(biāo)檢測(cè)的基本概念,在進(jìn)入代碼實(shí)戰(zhàn)之前,我們必須先理解基本原理。
第8~10章是本書的核心內(nèi)容,詳細(xì)講解了目標(biāo)檢測(cè)技術(shù)的一階段算法、兩階段算法以及提升算法性能的常用方法。
第11章簡單介紹了目標(biāo)檢測(cè)的相關(guān)案例(以工業(yè)為背景),以幫助讀者構(gòu)建更完整的知識(shí)體系。
本書第2~11章都有對(duì)應(yīng)的源數(shù)據(jù)和完整代碼。需要注意的是,為了讓讀者更好地了解代碼的含義,在注釋信息中使用了部分中文說明,每個(gè)程序文件的編碼格式都是UTF-8。
勘誤和支持
由于筆者水平及撰稿時(shí)間有限,書中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正。讀者可以發(fā)送電子郵件到j(luò)inzhiyong123@163.com反饋建議或意見。
致謝
在受邀撰寫本書時(shí),從未想到過程會(huì)如此艱辛。這里需要感謝一路陪我走來的所有人。
感謝家人在我寫作本書時(shí)給予了理解和支持。
感謝我的合著者—金智勇,與他合作十分愉快,他給予了我很多的理解和包容。
感謝參與審閱、編輯等工作的楊福川老師和韓蕊老師,是他們?cè)谀缓蟮男燎诟冻霰WC了本書的順利出版。
在寫作期間,我也得到了很多專業(yè)領(lǐng)域?qū)<业闹笇?dǎo)。例如,我在撰寫第11章的時(shí)候,得到了騰訊云工業(yè)AI首席架構(gòu)師周永良博士的大力幫助,感謝他提供的豐富的行業(yè)經(jīng)驗(yàn)和獨(dú)到理解。
再次感謝大家!
涂銘
2021年9月
作者簡介
涂銘
? 資深數(shù)據(jù)架構(gòu)師和人工智能技術(shù)專家,現(xiàn)就職于騰訊,曾就職于阿里。對(duì)大數(shù)據(jù)、自然語言處理、圖像識(shí)別、Python、Java等相關(guān)技術(shù)有深入的研究,積累了豐富的實(shí)踐經(jīng)驗(yàn)。
? 在工業(yè)領(lǐng)域曾參與了燃煤優(yōu)化、設(shè)備故障診斷以及正泰光伏電池片和組件EL圖像檢測(cè)項(xiàng)目;在自然語言處理方面,曾擔(dān)任導(dǎo)購機(jī)器人項(xiàng)目的架構(gòu)師,主導(dǎo)開發(fā)機(jī)器人的語義理解、短文本相似度匹配、上下文理解,以及通過自然語言檢索產(chǎn)品庫,在項(xiàng)目中構(gòu)建了NoSQL+文本檢索等大數(shù)據(jù)架構(gòu),同時(shí)負(fù)責(zé)問答對(duì)的整理和商品屬性的提取,帶領(lǐng)NLP團(tuán)隊(duì)構(gòu)建了語義解析層。
? 合著有暢銷書《Python自然語言處理實(shí)戰(zhàn):核心技術(shù)與算法》《深度學(xué)習(xí)與圖像識(shí)別:原理與實(shí)踐》《會(huì)話式AI:自然語言處理與人機(jī)交互》。
? 金智勇
? 計(jì)算機(jī)視覺算法專家,在計(jì)算機(jī)視覺領(lǐng)域深耕12年,F(xiàn)就職于百度,曾就職于阿里和三星等知名高新技術(shù)企業(yè)。業(yè)務(wù)領(lǐng)域涵蓋增強(qiáng)現(xiàn)實(shí)、人臉識(shí)別、圖像美化、智能交通、工業(yè)質(zhì)檢等多個(gè)方向,具有豐富的算法研究與落地經(jīng)驗(yàn)。
前言
第1章 目標(biāo)檢測(cè)概述 1
1.1 什么是目標(biāo)檢測(cè) 1
1.2 典型的應(yīng)用場(chǎng)景 2
1.2.1 人臉識(shí)別 2
1.2.2 智慧交通 2
1.2.3 工業(yè)檢測(cè) 3
1.3 目標(biāo)檢測(cè)技術(shù)發(fā)展簡史 3
1.3.1 傳統(tǒng)算法 4
1.3.2 深度學(xué)習(xí)算法 5
1.4 目標(biāo)檢測(cè)領(lǐng)域重要的公開評(píng)測(cè)集 8
1.5 本章小結(jié) 11
第2章 目標(biāo)檢測(cè)前置技術(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中的矩陣運(yùn)算 29
2.3.7 數(shù)據(jù)類型轉(zhuǎn)換 31
2.3.8 NumPy的統(tǒng)計(jì)計(jì)算方法 31
2.3.9 NumPy中的arg運(yùn)算 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ù)的卷積運(yùn)算 44
3.1.5 批規(guī)范化層 45
3.1.6 Dropout層 47
3.2 本章小結(jié) 48
第4章 數(shù)據(jù)預(yù)處理 49
4.1 數(shù)據(jù)增強(qiáng) 49
4.1.1 resize操作 50
4.1.2 crop操作 51
4.1.3 隨機(jī)的水平和豎直翻轉(zhuǎn) 52
4.1.4 隨機(jī)角度的旋轉(zhuǎn) 53
4.1.5 亮度、對(duì)比度和顏色的隨機(jī)變化 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的實(shí)現(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 實(shí)戰(zhàn)案例 96
5.9 計(jì)算圖像數(shù)據(jù)集的RGB均值和方差 98
5.10 本章小結(jié) 99
第6章 mmdetection工具包介紹 100
6.1 mmdetection概要 100
6.2 mmdetection支持的檢測(cè)框架和算法實(shí)現(xiàn) 101
6.3 搭建mmdetection開發(fā)環(huán)境 102
6.4 使用入門 103
6.4.1 使用預(yù)訓(xùn)練模型進(jìn)行推理 103
6.4.2 訓(xùn)練模型 105
6.4.3 有用的工具 106
6.4.4 如何使用mmdetection 108
6.5 標(biāo)注圖像 110
6.6 實(shí)戰(zhàn)案例 112
6.6.1 檢測(cè)人體 113
6.6.2 檢測(cè)貓和狗 115
6.7 本章小結(jié) 120
第7章 目標(biāo)檢測(cè)的基本概念 121
7.1 概念詳解 121
7.1.1 IoU計(jì)算 122
7.1.2 NMS操作 122
7.1.3 感受野 124
7.1.4 空洞卷積 128
7.1.5 評(píng)價(jià)指標(biāo)mAP 129
7.2 本章小結(jié) 131
第8章 兩階段檢測(cè)方法 132
8.1 R-CNN算法 132
8.1.1 生成候選區(qū)域 132
8.1.2 類別判定 133
8.1.3 位置修正 136
8.1.4 檢測(cè)過程 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 測(cè)試過程 142
8.3 Fast R-CNN算法及訓(xùn)練過程 143
8.3.1 ROI池化層 144
8.3.2 模型訓(xùn)練 144
8.3.3 測(cè)試過程 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 對(duì)候選框進(jìn)行分類和位置校正 163
8.5.6 算法模型架構(gòu)圖 165
8.6 本章小結(jié) 165
第9章 檢測(cè)算法的進(jìn)一步改進(jìn) 167
9.1 特征金字塔 167
9.1.1 特征金字塔結(jié)構(gòu) 167
9.1.2 FPN代碼解析 170
9.2 焦點(diǎn)損失函數(shù) 174
9.3 本章小結(jié) 175
第10章 一階段檢測(cè)算法 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的典型場(chǎng)景 220
11.2.2 工業(yè)AI落地背后的本質(zhì) 221
11.2.3 展望 221
11.3 工業(yè)生產(chǎn)