計(jì)算機(jī)視覺開發(fā)(慕課版)課件 第7章 目標(biāo)檢測(cè)_第1頁(yè)
計(jì)算機(jī)視覺開發(fā)(慕課版)課件 第7章 目標(biāo)檢測(cè)_第2頁(yè)
計(jì)算機(jī)視覺開發(fā)(慕課版)課件 第7章 目標(biāo)檢測(cè)_第3頁(yè)
計(jì)算機(jī)視覺開發(fā)(慕課版)課件 第7章 目標(biāo)檢測(cè)_第4頁(yè)
計(jì)算機(jī)視覺開發(fā)(慕課版)課件 第7章 目標(biāo)檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章

目標(biāo)檢測(cè)計(jì)算機(jī)視覺開發(fā)葉青松常州信息職業(yè)技術(shù)學(xué)院01目標(biāo)檢測(cè)的基本概念目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具目標(biāo)檢測(cè)常用技術(shù)目錄CONTENTS常用網(wǎng)絡(luò)類型0203040605人臉識(shí)別目標(biāo)檢測(cè)案例(YOLOv3)目標(biāo)檢測(cè)基本概念01第7章

目標(biāo)檢測(cè)7.1目標(biāo)檢測(cè)的基本概念

目標(biāo)檢測(cè)(ObjectDetection)的任務(wù)是找出圖像中所有感興趣的目標(biāo)(物體),確定它們的類別和位置,這是計(jì)算機(jī)視覺領(lǐng)域的核心問題之一。由于各類物體有不同的外觀、形狀和姿態(tài),加上成像時(shí)光照、遮擋等因素的干擾,目標(biāo)檢測(cè)一直是計(jì)算機(jī)視覺領(lǐng)域最具有挑戰(zhàn)性的問題,它是一個(gè)分類、回歸問題的疊加。7.1目標(biāo)檢測(cè)的基本概念

目標(biāo)檢測(cè)(ObjectDectection)的主要任務(wù)。

目標(biāo)檢測(cè)的核心問題,也就是要解決的主要困難,有如下幾個(gè)部分:分類問題:即圖片(或某個(gè)區(qū)域)中的圖像屬于哪個(gè)類別。定位問題:目標(biāo)可能出現(xiàn)在圖像的任何位置。大小問題:目標(biāo)有各種不同的大小。形狀問題:目標(biāo)可能有各種不同的形狀。7.1目標(biāo)檢測(cè)的基本概念

基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為兩類:兩階段法(Twostage)和一階段法(Onestage)。1.兩階段法(Twostage)

先進(jìn)行區(qū)域生成,稱之為regionproposal(簡(jiǎn)稱RP,生成一個(gè)有可能包含待檢物體的預(yù)選框),再通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行樣本分類。2.一階段法(Onestage)

不用區(qū)域生成,直接在圖像中提取特征來預(yù)測(cè)物體分類和位置。7.1目標(biāo)檢測(cè)的基本概念

基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分支。7.1目標(biāo)檢測(cè)的基本概念歡迎提問下次再見7.1目標(biāo)檢測(cè)的基本概念目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具02第7章

目標(biāo)檢測(cè)

為了開發(fā)和比較各種目標(biāo)檢測(cè)算法,需要有標(biāo)注完善的圖像數(shù)據(jù)集,隨著技術(shù)的發(fā)展,目前業(yè)界廣泛使用的數(shù)據(jù)集有如下幾種:1.PASCALVOC(PascalVisualObjectClasses)

VOC數(shù)據(jù)集是目標(biāo)檢測(cè)經(jīng)常用的一個(gè)數(shù)據(jù)集,自2005年起每年舉辦一次比賽,最開始只有4類,到2007年擴(kuò)充為20個(gè)類,共有兩個(gè)常用的版本:2007和2012。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具2.MSCOCO(CommonObjectsinContext)

COCO數(shù)據(jù)集是微軟團(tuán)隊(duì)發(fā)布的一個(gè)圖像數(shù)據(jù)集,該數(shù)據(jù)集收集了80個(gè)對(duì)象類別和各種日常場(chǎng)景的圖片,并提供了像素級(jí)的實(shí)例標(biāo)注以便更精確地評(píng)估檢測(cè)和分割算法的效果。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具

3.OpenImage

OpenImage是谷歌團(tuán)隊(duì)發(fā)布的數(shù)據(jù)集。V5版本OpenImage涵蓋350個(gè)類別,具有280萬個(gè)對(duì)象實(shí)例的分割掩模。與僅識(shí)別所在區(qū)域的邊界框不同,分割掩模標(biāo)記對(duì)象的輪廓,表征更高級(jí)別的細(xì)節(jié)。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具4.ImageNet

ImageNet是一個(gè)計(jì)算機(jī)視覺系統(tǒng)識(shí)別項(xiàng)目,是目前世界上圖像識(shí)別最大的數(shù)據(jù)庫(kù)。ImageNet中目前共有14,197,122幅圖像,總共分為21,841個(gè)類別(synsets),通常我們所說的ImageNet數(shù)據(jù)集其實(shí)是指ISLVRC2012比賽用的子數(shù)據(jù)集,其中train有1,281,167張照片和標(biāo)簽,共1000類,大概每類1300張圖片,val有50,000副圖像,每類50個(gè)數(shù)據(jù),test有100,000副圖片,每類100個(gè)數(shù)據(jù)。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具

常有的圖像標(biāo)注工具有如下幾種:1.LabelImg:是一款開源的圖像標(biāo)注工具,使用Python編寫而成,并使用Qt作為其圖形界面,簡(jiǎn)單好用。2.Labelme:是一款開源的圖像/視頻標(biāo)注工具,它的標(biāo)注可用于目標(biāo)檢測(cè)、分割和分類。3.Labelbox:是一款部分免費(fèi)的數(shù)據(jù)標(biāo)注工具,包含圖像分類和分割、文本和音視頻的注釋。4.RectLabel:是一款在線免費(fèi)圖像標(biāo)注工具,標(biāo)注可用于目標(biāo)檢測(cè)、分割和分類。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具5.CVAT:是一款開源的基于網(wǎng)絡(luò)的交互式視頻和圖像標(biāo)注工具,是對(duì)加州視頻標(biāo)注工具(VideoAnnotationTool)項(xiàng)目的重新設(shè)計(jì)和實(shí)現(xiàn)。6.VIA:VGGImageAnnotator(VIA)是一款簡(jiǎn)單獨(dú)立的手動(dòng)標(biāo)注軟件,適用于圖像、音頻和視頻。7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具歡迎提問下次再見7.2目標(biāo)檢測(cè)常用數(shù)據(jù)集和標(biāo)注工具目標(biāo)檢測(cè)常用技術(shù)03第7章

目標(biāo)檢測(cè)

邊界框本質(zhì)上是一個(gè)圍繞對(duì)象的矩形,它指定了對(duì)象的位置、類別(例如:汽車、人)和置信度(它在該位置的可能性有多大)。邊界框主要用于目標(biāo)檢測(cè)任務(wù),其目的是識(shí)別圖像中多個(gè)目標(biāo)的位置和類型。7.3.1邊界框(Boundingbox)

定義一個(gè)邊界框通常用到如下參數(shù):(1)分類:邊框里面的物體是什么。例如汽車、瓶子、人等。(2)(x1,y1):對(duì)應(yīng)矩形左上角的x和y坐標(biāo)。(3)(x2,y2):對(duì)應(yīng)矩形右下角的x和y坐標(biāo)。(4)置信度(Confidence):表示該對(duì)象實(shí)際存在于該框中的可能性。例如,0.9的置信度表示該框中實(shí)際存在該對(duì)象的可能性為90%。

邊界框也可以用中心點(diǎn)加寬度高度來定義,相關(guān)參數(shù)可以從(x1,y1)和(x2,y2)推算出來。7.3.1邊界框(Boundingbox)

物體邊界框的生成當(dāng)前主要使用的方法有圖像分割法與區(qū)域生長(zhǎng)法?;胺ê瓦x擇性搜索(SelectiveSearch)法是兩種代表性的圖像分割法。7.3.1邊界框(Boundingbox)

滑窗法首先對(duì)輸入圖像進(jìn)行不同窗口大小的滑窗進(jìn)行從左到右、從上到下的滑動(dòng),每次滑動(dòng)時(shí)候?qū)Ξ?dāng)前窗口執(zhí)行分類打分(分類器是事先訓(xùn)練好的),如果當(dāng)前窗口得到較高的分類概率,則認(rèn)為檢測(cè)到了物體。對(duì)每個(gè)不同窗口大小的滑窗都進(jìn)行檢測(cè)后,會(huì)得到不同窗口檢測(cè)到的物體標(biāo)記,然后采用非極大值抑制(Non-MaximumSuppression,NMS)的方法進(jìn)行篩選,獲得檢測(cè)到的物體。7.3.1邊界框(Boundingbox)

滑動(dòng)窗口(SlidingWindows)算法窮盡枚舉所有可能出現(xiàn)物體的位置,由于物體位置、大小都不固定,因此這種算法會(huì)存在大量的冗余框,雖然可以采用非極大值抑制(Non-MaximumSuppression,NMS)的方法進(jìn)行篩選,但是總體計(jì)算復(fù)雜度較高。7.3.1邊界框(Boundingbox)

選擇搜索算法的主要思想是,圖像中物體可能存在的區(qū)域應(yīng)該是有某些相似性或者連續(xù)性的。因此,選擇搜索法基于上面這一思路采用子區(qū)域合并的方法進(jìn)行邊界框提取。選擇性搜索(SelectiveSearch)法:7.3.1邊界框(Boundingbox)

基于圖表示的圖像分割方法《GraphBasedImageSegmentation》是2004年發(fā)表在IJCV上的一篇論文,介紹了一種基于圖表示(graph-based)的圖像分割方法。7.3.1邊界框(Boundingbox)選擇性搜索(SelectiveSearch)法:顏色相似度紋理相似度尺度相似度填充相似度7.3.1邊界框(Boundingbox)anchorbox到底是什么呢?如果我們用一句話概括——就是在圖像上預(yù)設(shè)好的不同大小,不同長(zhǎng)寬比的參照框。歡迎提問下次再見7.3.1邊界框(Boundingbox)目標(biāo)檢測(cè)常用技術(shù)03第7章

目標(biāo)檢測(cè)7.3.2數(shù)據(jù)表示對(duì)于經(jīng)過標(biāo)記后的樣本數(shù)據(jù),可作如下定義:

其中pc為預(yù)測(cè)結(jié)果的置信概率,bx1,by1,bx2,by2為邊框坐標(biāo),C1,C2,C3為屬于某個(gè)類別的概率。通過預(yù)測(cè)結(jié)果、實(shí)際結(jié)果,就可以構(gòu)建損失函數(shù)。損失函數(shù)包含了分類、回歸兩部分組成。7.3.2數(shù)據(jù)表示

VOC數(shù)據(jù)格式的目標(biāo)檢測(cè)數(shù)據(jù),是每個(gè)圖像文件對(duì)應(yīng)一個(gè)同名的xml文件,xml文件中標(biāo)記物體框的坐標(biāo)和類別等信息。object字段,表示每個(gè)物體。包括:name:目標(biāo)物體類別名稱;pose:關(guān)于目標(biāo)物體姿態(tài)描述(非必須字段);truncated:目標(biāo)物體目標(biāo)因?yàn)楦鞣N原因被截?cái)啵ǚ潜仨氉侄危?;occluded:目標(biāo)物體是否被遮擋(非必須字段);difficult:目標(biāo)物體是否是很難識(shí)別(非必須字段);bndbox:物體位置坐標(biāo),用左上角坐標(biāo)和右下角坐標(biāo)表示:xmin、ymin、xmax、ymax7.3.2數(shù)據(jù)表示

coco數(shù)據(jù)格式,是指將所有訓(xùn)練圖像的標(biāo)注都存放到一個(gè)json文件中。數(shù)據(jù)以字典嵌套的形式存放。

標(biāo)注文件中,"images"關(guān)鍵字對(duì)應(yīng)圖片信息,"annotations"關(guān)鍵字對(duì)應(yīng)標(biāo)注信息,"categories"對(duì)應(yīng)類別信息歡迎提問下次再見7.3.2數(shù)據(jù)表示目標(biāo)檢測(cè)常用技術(shù)03第7章

目標(biāo)檢測(cè)7.3.3效果評(píng)估

評(píng)估指標(biāo)是評(píng)價(jià)目標(biāo)檢測(cè)算法方法好壞的重要依據(jù),目標(biāo)檢測(cè)常用的評(píng)價(jià)指標(biāo)有:IoU(交并比)、Precision(精確度)、Recall(召回率)、AP(平均正確率)、mAP(平均類別AP)等。7.3.3效果評(píng)估

通常使用交并比IoU(IntersectionoverUnion)來判斷模型的好壞。所謂交并比,是指預(yù)測(cè)邊框和實(shí)際邊框的交集除以預(yù)測(cè)邊框和實(shí)際邊框的并集,得到的比率。7.3.3效果評(píng)估

Precision:精確度指目標(biāo)檢測(cè)模型判斷該圖片為正類,該圖片確實(shí)是正類的概率。正類就是positive,拿擲硬幣來舉例,正面就是正類,反面就是負(fù)類,拋硬幣猜正反,如果猜是正面,拋出來確實(shí)是正面,就稱為真正例;如果猜是正面,如果拋出來是反面,就稱為假正例,假負(fù)例的道理類似。精確度衡量的是一個(gè)分類器預(yù)測(cè)出的真正例的概率。7.3.3效果評(píng)估

Recall:召回率是指分類器判為正類且真實(shí)類別也是正類的圖像數(shù)量/真實(shí)類別是正類的圖像數(shù)量,衡量的是一個(gè)分類器能把所有的正類都找出來的能力。7.3.3效果評(píng)估

mAP:平均類別AP,meanAveragePrecision,即各類別AP的平均值,計(jì)算出所有類別的AP后除以類別總數(shù),就是mAP。AP:平均正確率就是得出每個(gè)類的檢測(cè)好壞的結(jié)果。歡迎提問下次再見7.3.3效果評(píng)估

常用網(wǎng)絡(luò)類型04第7章

目標(biāo)檢測(cè)

R-CNN系列來源于RossGirshick等人開發(fā)的R-CNN,指具有CNN特征的區(qū)域(“RegionswithCNNFeatures”)或基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(“Region-BasedConvolutionalNeuralNetwork”)。R-CNN系列包括R-CNN、FastR-CNN和Faster-RCNN等模型。7.4.1R-CNN系列

R-CNN模型由三個(gè)模塊組成:模塊1:區(qū)域生成。生成和提取包含獨(dú)立類別的區(qū)域,形成候選邊界框。模塊2:特征提取器。從每個(gè)候選區(qū)域提取特征,例如使用深度卷積神經(jīng)網(wǎng)絡(luò)。模塊3:分類器。將特征分類為已知類別中的一種,采用如線性SVM分類器等模型。7.4.1R-CNN系列

FastR-CNN以圖像的一組候選區(qū)域作為輸入,通過深度卷積神經(jīng)網(wǎng)絡(luò)傳遞,通過預(yù)訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)提取特征。FastR-CNN分為兩個(gè)輸出,一個(gè)用于通過softmax層進(jìn)行類別預(yù)測(cè),另一個(gè)用于邊界框的線性輸出。7.4.1R-CNN系列

FasterR-CNN結(jié)構(gòu)主要包括:(1)ConvLayers。一組基礎(chǔ)的卷積/激活/池化層提取圖像的特征。(2)RegionProposalNetworks(RPN)。RPN網(wǎng)絡(luò)用于生成候選區(qū)域,通過softmax判斷錨點(diǎn)(anchors)屬于前景還是背景,再利用邊框回歸(boundingboxregression)獲得精確的候選區(qū)域。(3)RoIPooling。該層提取候選區(qū)特征圖(proposalfeaturemaps),送入后續(xù)全連接層判定目標(biāo)的類別。(4)Classification。利用取候選區(qū)特征圖計(jì)算所屬類別,并再次使用邊框回歸算法獲得邊框最終的精確位置。7.4.1R-CNN系列歡迎提問下次再見7.4.1R-CNN系列

常用網(wǎng)絡(luò)類型04第7章

目標(biāo)檢測(cè)

YOLO(YouOnlyLookOnce),原作者JosephRedmon,是繼RCNN,F(xiàn)ast-RCNN和Faster-RCNN之后,針對(duì)目標(biāo)檢測(cè)速度問題提出的另一種框架,其核心思想是生成RoI和目標(biāo)檢測(cè)兩階段(two-stage)算法用一套網(wǎng)絡(luò)的一階段(one-stage)算法替代,直接在輸出層回歸邊界框的位置和所屬類別。7.4.2YOLO系列

在YOLOV1中,首先設(shè)定B個(gè)不同尺寸、寬長(zhǎng)比的anchorbox。然后將每張圖片劃分成S×S的網(wǎng)格,每個(gè)格點(diǎn)對(duì)應(yīng)有B個(gè)anchorbox,共S×S×B個(gè)anchorbox,作為初始邊界框。注意這7*7個(gè)網(wǎng)格不是將一張圖片切割成49個(gè)小塊,而是說一個(gè)網(wǎng)格會(huì)對(duì)應(yīng)一個(gè)輸出結(jié)果。7.4.2YOLO系列

通過學(xué)習(xí),預(yù)測(cè)出7*7*2個(gè)目標(biāo)窗口,然后根據(jù)閾值去除可能性比較低的目標(biāo)窗口,最后NMS去除冗余窗口。7.4.2YOLO系列

YOLOv2模型使用了很多改進(jìn)策略,包括:(1)BatchNormalization(批量正則化)(2)HighResolutionClassifier(高分辨率分類器)(3)ConvolutionalWithAnchorBoxes(帶錨點(diǎn)的Boxes卷積)(4)DimensionClusters(維度聚類)(5)NewNetwork(新的網(wǎng)絡(luò))即Darknet-19,它包括19個(gè)卷積層和5個(gè)maxpooling層。(6)DirectlocationPrediction(直接定位預(yù)測(cè))(7)Fine-GrainedFeatures(細(xì)粒度特征)(8)多尺度訓(xùn)練(Multi-ScaleTraining)7.4.2YOLO系列

YOLOv3在之前Darknet-19的基礎(chǔ)上引入了殘差模塊,并進(jìn)一步加深了網(wǎng)絡(luò),改進(jìn)后的網(wǎng)絡(luò)有53個(gè)卷積層,取名為Darknet-53。YOLOv3對(duì)模型進(jìn)行的改進(jìn)包括:(1)新網(wǎng)絡(luò)結(jié)構(gòu):DarkNet-53。(2)用邏輯回歸替代softmax作為分類器。(3)融合FPN(特征金字塔網(wǎng)絡(luò)),實(shí)現(xiàn)多尺度檢測(cè)。

7.4.2YOLO系列歡迎提問下次再見7.4.2YOLO系列

人臉識(shí)別05第7章

目標(biāo)檢測(cè)

使用計(jì)算機(jī)視覺對(duì)人進(jìn)行識(shí)別,是一個(gè)非常有吸引力和挑戰(zhàn)性的課題,中國(guó)科學(xué)家在這一領(lǐng)域取得了令人矚目的成績(jī)。

人臉檢測(cè)是計(jì)算機(jī)視覺中的一個(gè)問題,即在照片中定位一張或多張人臉。人臉是動(dòng)態(tài)的,其外觀具有高度的可變性,受到人臉朝向或角度、光線水平、服裝、配飾、頭發(fā)顏色、面部毛發(fā)、化妝、年齡等等影響,使得人臉檢測(cè)成為計(jì)算機(jī)視覺中的一個(gè)難題。

人臉檢測(cè)是人臉識(shí)別系統(tǒng)中必不可少的第一步,其目的是在背景中定位和提取人臉區(qū)域。7.5.1MTCNN工作原理MTCNN(Multi-taskconvolutionalneuralnetwork,多任務(wù)卷積神經(jīng)網(wǎng)絡(luò))是一個(gè)深度級(jí)聯(lián)多任務(wù)框架。該框架用來解決具有各種姿勢(shì)、照明和遮擋,在不受約束的環(huán)境中進(jìn)行人臉檢測(cè)和對(duì)齊的問題。

MTCNN是2016年中國(guó)科學(xué)院深圳研究院提出的用于人臉檢測(cè)任務(wù)的神經(jīng)網(wǎng)絡(luò)模型,該模型包含三個(gè)級(jí)聯(lián)的網(wǎng)絡(luò),采用候選框加分類器的思想,進(jìn)行快速高效的人臉檢測(cè)。這三個(gè)級(jí)聯(lián)的網(wǎng)絡(luò)分別是快速生成候選窗口的P-Net、進(jìn)行高精度候選窗口過濾選擇的R-Net和生成最終邊界框與人臉關(guān)鍵點(diǎn)的O-Net。7.5.1MTCNN工作原理

MTCNN把原圖按照一定的比例,多次等比縮放,得到多尺度的圖片,很像個(gè)金字塔。這個(gè)縮放比例,基本確定在0.70-0.80之間,如果設(shè)得比較大,容易延長(zhǎng)推理時(shí)間,設(shè)得過小則容易漏掉一些中小型人臉。最后(最小)的圖片尺寸會(huì)大于等于12x12,這些不同大小的圖片,都是要一幅幅輸入到P-net中去處理的。7.5.1MTCNN工作原理

第一階段模型P-Net(ProposalNetwork)提出候選面部區(qū)域,它是用單尺度(12x12)的圖片訓(xùn)練出來的,推斷的時(shí)候,想要更準(zhǔn)確地識(shí)別各種尺度的人臉,需要把待識(shí)別的人臉的尺度先變化到接近模型的尺度(12x12)。P-Net最終將輸出很多個(gè)可能存在人臉的區(qū)域,并將這些區(qū)域輸入R-Net進(jìn)行進(jìn)一步處理。7.5.1MTCNN工作原理

在R-Net中,將對(duì)輸入進(jìn)行細(xì)化選擇,并且舍去大部分的錯(cuò)誤輸入,并再次使用回歸算法和關(guān)鍵點(diǎn)定位器進(jìn)行人臉區(qū)域的邊框回歸以及面部關(guān)鍵點(diǎn)定位,最后輸出較為可信的人臉區(qū)域,供O-Net使用。7.5.1MTCNN工作原理

O-Net基本結(jié)構(gòu)是一個(gè)較為復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò),在網(wǎng)絡(luò)結(jié)構(gòu)的最后部分是一個(gè)256節(jié)點(diǎn)全連接層。O-Net同時(shí)進(jìn)行人臉判別、人臉區(qū)域邊框回歸和人臉關(guān)鍵點(diǎn)定位,最終輸出人臉區(qū)域的坐標(biāo)以及人臉區(qū)域的五個(gè)關(guān)鍵特征點(diǎn)。7.5.1MTCNN工作原理歡迎提問下次再見7.5.1MTCNN工作原理

人臉識(shí)別05第7章

目標(biāo)檢測(cè)

FaceNet模型是由Google提出的人臉識(shí)別模型,它的主要思想是把人臉圖像映射到一個(gè)多維空間,通過空間距離表示人臉的相似度。同個(gè)人的人臉圖像空間距離比較小,不同人的人臉圖像空間距離比較大,這樣通過人臉圖像的空間映射就可以實(shí)現(xiàn)人臉識(shí)別。FaceNet中采用基于深度神經(jīng)網(wǎng)絡(luò)的圖像映射方法和基于三元組(triplets)的損失函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)的輸出為128維的向量。7.5.2FaceNet

Facenet識(shí)別主要步驟如下:(1)輸入一張人臉圖片(2)通過深度學(xué)習(xí)網(wǎng)絡(luò)提取特征(3)L2標(biāo)準(zhǔn)化(4)得到128維特征向量。7.5.2FaceNet

人臉聚類效果,一個(gè)用戶的示例集群案例,F(xiàn)aceNet將用戶個(gè)人照片聚集到每個(gè)個(gè)人的照片集合中。即使有遮擋、光線不同、姿勢(shì)不同甚至年齡差異,同一人都被正確區(qū)分出來了。7.5.2FaceNet

而TripletLoss,就是根據(jù)三元組(Triplet)計(jì)算而來的損失。其中,三元組由Anchor(A),Negative(N),Positive(P)組成,任意一張圖片都可以作為一個(gè)基點(diǎn)(A),然后與它屬于同一人的圖片就是它的P,與它不屬于同一人的圖片就是它的N。網(wǎng)絡(luò)沒經(jīng)過學(xué)習(xí)之前,A和P的歐氏距離可能很大,A和N的歐式距離可能很小,如圖所示。在網(wǎng)絡(luò)的學(xué)習(xí)過程中,A和P的歐式距離會(huì)逐漸減小,而A和N的距離會(huì)逐漸拉大。7.5.2FaceNet歡迎提問下次再見7.5.2FaceNet

人臉識(shí)別05第7章

目標(biāo)檢測(cè)

mtcnn提供了一個(gè)性能極佳的預(yù)訓(xùn)練模型,可以直接進(jìn)行人臉檢測(cè),也可以在新數(shù)據(jù)集上進(jìn)行訓(xùn)練,得到新的訓(xùn)練模型。

我們可以在命令窗口通過pip方法安裝mtcnn庫(kù):7.5.3人臉檢測(cè)實(shí)踐使用MTCNN之前,首先從mtcnn導(dǎo)入相應(yīng)的庫(kù):pipinstallmtcnnfrommtcnn.mtcnnimportMTCNN

準(zhǔn)備兩張測(cè)試圖像,分別加載和顯示它們:7.5.3人臉檢測(cè)實(shí)踐(427,640,3)#加載測(cè)試文件img1=plt.imread('images/test1.jpg')img1.shapeplt.figure(figsize=(10,8))plt.imshow(img1)

用缺省參數(shù)創(chuàng)建MTCNN對(duì)象:7.5.3人臉檢測(cè)實(shí)踐有了這個(gè)模型,我們用它來檢測(cè)圖中的人臉,并輸出所有的結(jié)果:{'box':[373,83,100,129],'confidence':0.9998095631599426,'keypoints':{'left_eye':(392,132),'right_eye':(436,139),'nose':(403,171),'mouth_left':(390,171),'mouth_right':(438,177)}}{'box':[185,68,91,118],'confidence':0.9993304014205933,'keypoints':{'left_eye':(208,110),'right_eye':(252,119),'nose':(220,143),'mouth_left':(200,148),'mouth_right':(245,159)}}#檢測(cè)img1中的人臉faces1=detector.detect_faces(img1)forfaceinfaces1: print(face)#用缺省參數(shù)創(chuàng)建MTCNN對(duì)象detector=MTCNN()

定義一個(gè)函數(shù)draw_boxes(),用于畫出圖像上人臉的邊框和關(guān)鍵點(diǎn)。7.5.3人臉檢測(cè)實(shí)踐#繪制圖像上人臉區(qū)域和關(guān)鍵點(diǎn)defdraw_boxes(img,faces,figsize=(10,8)):plt.figure(figsize=figsize)plt.imshow(img)ax=plt.gca()forresultinfaces:x,y,width,height=result['box']rect=Rectangle((x,y),width,height,fill=False,color='red')ax.add_patch(rect)#drawthedotsforkey,valueinresult['keypoints'].items():#createanddrawdotdot=Circle(value,radius=2,color='red')ax.add_patch(dot)歡迎提問下次再見7.5.3人臉檢測(cè)實(shí)踐目標(biāo)檢測(cè)案例(YOLOv3)06第7章

目標(biāo)檢測(cè)7.6.1YOLOv3模型結(jié)構(gòu)和工作流程

YOLOv3的總體結(jié)構(gòu)如圖所示,其中DBL模塊,也就是卷積+正則化+Leakyrelu,是yolo_v3的基本組件。對(duì)于YOLOv3來說,正則化和激活函數(shù)leakyrelu已經(jīng)是和卷積層不可分離的部分了(最后一層卷積除外),共同構(gòu)成了最小組件。

YOLOv3輸入的圖像尺寸必須寬度和高度相同,且是32的倍數(shù),例如(416,416,3),經(jīng)過一系列卷積殘差模塊之后,分別得出大中小三個(gè)尺度的特征輸出。其中:大尺度輸出:特征形狀13×13×255,負(fù)責(zé)檢測(cè)大物體。中尺度輸出:特征形狀26×26×255,負(fù)責(zé)檢測(cè)中等大小物體。小尺度輸出:特征形狀52×52×255,負(fù)責(zé)檢測(cè)小物體。7.6.1YOLOv3模型結(jié)構(gòu)和工作流程

YOLOv3中使用先驗(yàn)框作檢測(cè)的起點(diǎn),所謂先驗(yàn)框(AnchorBoxes),是使用k-means(均值聚類)對(duì)數(shù)據(jù)集中的標(biāo)簽框進(jìn)行聚類,得到類別中心點(diǎn)的9個(gè)框,再按大小分給三個(gè)輸出尺度。7.6.1YOLOv3模型結(jié)構(gòu)和工作流程

每個(gè)先驗(yàn)框推導(dǎo)出一組特征值,這組特征值前四個(gè)為邊界框的位置(中心坐標(biāo)和寬度高度),第五個(gè)參數(shù)為當(dāng)前單元格包含物體的可能性分?jǐn)?shù),后面80個(gè)參數(shù)是可能為具體某種物體的分值。三個(gè)不同尺度特征圖一共可以解碼出13×13×3+26×26×3+52×52×3=24843個(gè)預(yù)測(cè)框(AnchorBoxes)以及相應(yīng)的類別分?jǐn)?shù)、置信度分?jǐn)?shù)。7.6.1YOLOv3模型結(jié)構(gòu)和工作流程

所有的特征圖經(jīng)過全局正則化后,接入有1000個(gè)神經(jīng)元的全連接層,進(jìn)行最后的分類識(shí)別,輸出所有的邊界框。7.6.1YOLOv3模型結(jié)構(gòu)和工作流程歡迎提問下次再見7.6.1YOLOv3模型結(jié)構(gòu)和工作流程目標(biāo)檢測(cè)案例(YOLOv3)06第7章

目標(biāo)檢測(cè)7.6.2YOLOv3應(yīng)用實(shí)踐

YOLOv3作者開發(fā)了專門的網(wǎng)站,上面提供了網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)置文件和在COCO數(shù)據(jù)集上預(yù)訓(xùn)練好的權(quán)重參數(shù)文件供用戶下載。

引入必要的庫(kù),并定義輔助函數(shù)look_img(),用來輸出圖像。7.6.2YOLOv3應(yīng)用實(shí)踐

OpenCV支持調(diào)用訓(xùn)練好的深度學(xué)習(xí)框架,其中包括YOLOv3模型。blobFromImage主要用來對(duì)圖片進(jìn)行預(yù)處理使它們符合模型要求,共包含兩個(gè)主要過程:整體像素值減去平均值(mean)通過縮放系數(shù)(scalefactor)對(duì)圖片像素值進(jìn)行縮放7.6.2YOLOv3應(yīng)用實(shí)踐blobFromImage(image[,scalefactor[,size[,mean[,swapRB[,crop[,ddepth]]]]]])->retvalimage:這個(gè)就是我們將要輸入神經(jīng)網(wǎng)絡(luò)進(jìn)行處理或者分類的圖片。mean:需要將圖片整體減去的平均值。scalefactor:縮放比例。size:這個(gè)參數(shù)是我們神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的時(shí)候要求輸入的圖片尺寸。

導(dǎo)入預(yù)訓(xùn)練好的YOLOV3模型:7.6.2YOLOv3應(yīng)用實(shí)踐net=cv.dnn.readNet('model_data/yolov3.weights','model_data/yolov3.cfg')#獲取三個(gè)尺度輸出層的名稱layerNames=net.getLayerNames()output_layer_names=[layerNames[i-1]foriinnet.getUnconnectedOutLayers()]output_layer_names['yolo_82','yolo_94','yolo_106']

前向推斷:7.6.2YOLOv3應(yīng)用實(shí)踐prediction=net.forward(output_layer_names)

輸出objectness、class_pred、confidence三者關(guān)系plt.plot(objectness,label='objectness')plt.plot(class_probs,label='class_probs')plt.plot(confidences,label='confidence')plt.legend()plt.show()

經(jīng)過置信度過濾和非極大值抑制NMS,畫出剩下的邊界框。7.6.2YOLOv3應(yīng)用實(shí)踐歡迎提問下次再見7.6.2YOLOv3應(yīng)用實(shí)踐目標(biāo)檢測(cè)案例(YOLOv3)06第7章

目標(biāo)檢測(cè)7.6.3YOLOv3核心功能代碼

YOLOv3主題框架定義在文件yolov3.py文件上。7.6.3YOLOv3核心功能代碼

在文件utils.py上定義了獲取類別名稱、創(chuàng)建模型、加載權(quán)重參數(shù)等輔助函數(shù)。。

YOLOV3骨干網(wǎng)darknet53的定義:defdarknet53(input_data):input_data=convolutional(input_data,(3,3,3,32))input_data=convolutional(input_data,(3,3,32,64),downsample=True)foriinrange(1):input_data=residual_block(input_data,64,32,64)input_data=convolutional(input_data,(3,3,64,128),downsample=True)foriinrange(2):input_data=residual_block(input_data,128,64,128)input_data=convolutional(input_data,(3,3,128,256),downsample=True)foriinrange(8):input_data=residual_block(input_data,256,128,256)route_1=input_datainput_data=convolutional(input_data,(3,3,256,512),downsample=True)foriinrange(8):input_data=residual_block(input_data,512,256,512)route_2=input_datainput_data=convolutional(input_data,(3,3,512,1024),downsample=True)foriinrange(4):input_data=residual_block(input_data,1024,512,1024)returnroute_1,route_2,input_data7.6.3YOLOv3核心功能代碼

由文件輸出預(yù)測(cè)好的圖像:defdetect_image_file(Yolo,image_path,input_size=416,CLASSES=YOLO_COCO_CLASSES,score_threshold=0.3,iou_threshold=0.45,rectangle_colors=''):original_image=cv.imread(image_path)original_image=cv.cvtColor(original_image,cv.COLOR_BGR2RGB)original_image=cv.cvtColor(original_image,cv.COLOR_BGR2RGB)image_data=image_preprocess(np.copy(original_image),[input_size,input_size])image_data=image_data[np.newaxis,...].astype(np.float32)pred_bbox=Yolo.predict(image_data)pred_bbox=[tf.reshape(x,(-1,tf.shape(x)[-1]))forxinpred_bbox]pred_bbox=tf.concat(pred_bbox,axis=0)bboxes=postprocess_boxes(pred_bbox,original_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論