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