国产熟女一区二区五月婷-又爽又黄又无遮挡网站-亚洲国产精品视频在线播放-国内偷拍国内精品网999

當前位置:首頁 > 最新資訊 > 行業(yè)資訊

九種深度學習算法簡介

一.兩階段算法

兩階段算法包含選擇候選框和修正目標分類/位置兩個階段,對這兩個階段的不同處理方式,構成了不同的算法方案。

1.R-CNN算法

2014年,R.Girshick等人提出了R-CNN算法。R-CNN算法的思路非常簡單,首先基于Selective Search方法從原始圖像中篩選出若干候選框,然后將每個候選框中的圖像縮放的固定尺度送入卷積網(wǎng)絡提取特征,最后通過支持向量機(SVM)方法對特征進行分類,判斷候選框中的圖像是背景還是我們關注的目標類型。

在VOC2007數(shù)據(jù)集上,R-CNN算法相比之前的檢測算法,在性能有了顯著的提升(從33.7%提升到58.5%),是檢測算法的一個里程碑式的突破。

雖然R-CNN在算法性能上取得了巨大的進展,但弊端也非常明顯,因為需要分別從2000多個候選框中提取特征,所以效率非常低,后續(xù)各種算法正是為了解決這一問題而提出的一系列改進方案。

2.SPP-Net算法

2014年,何愷明等人提出了SPP-Net(Spatial Pyramid Pooling Networks,空間金字塔池化網(wǎng)絡)算法。

R-CNN算法要求輸入卷積網(wǎng)絡用來提取特征的子圖像尺寸固定,比如Alex-Net就要求輸入的圖像大小為固定的224像素×224像素,而SPP-Net算法則去掉了這一限制。SPP-Net算法基于一個空間金字塔池化層(SPP layer),無論輸入的子圖像大小如何,都會將子圖像采樣成固定大小的圖像。

在使用SPP-Net進行檢測的過程中,對原始圖像只需要進行一次卷積網(wǎng)絡計算,在得到整幅圖像的特征圖之后,通過空間金字塔池化層將每個候選框區(qū)域(ROI)都分別采樣成相同尺寸的子圖像,將相同尺寸的各個子圖像送入后續(xù)的網(wǎng)絡進行特征提取,提取的特征具有相同的維數(shù),最后送入全連接層進行分類。

SPP-Net不需要進行多次卷積網(wǎng)絡計算,與R-CNN相比,在算法精度不變的情況下,算法的速度有了20倍的大幅提升。

3.Fast R-CNN算法

2015年,R.Girshick等人提出了Fast R-CNN算法,其本質是在R-CNN和SPP-Net的基礎上進行了進一步改進。Fast R-CNN可以在網(wǎng)絡里同時預測目標的分類概率和位置偏移。

在VOC2007數(shù)據(jù)集上,F(xiàn)ast R-CNN將mAP(mean Average Precision,平均精度均值)從58.5%提升至70.0%,算法速度也比R-CNN有了200倍的提升。雖然Fast R-CNN的性能和速度相比R-CNN和SPP-Net有了明顯的改善,但整體速度仍然受到候選框檢測算法的制約,為了解決這個問題,F(xiàn)aster R-CNN算法誕生了。

4.Faster R-CNN算法

2015年,S.Ren等人提出了Faster R-CNN算法,F(xiàn)aster R-CNN是第一個端到端算法,也是第一個接近實時深度學習的目標檢測算法。使用ZF-Net網(wǎng)絡骨架,在VOC2007數(shù)據(jù)集上,mAP達到了73.2%,算法速度達到了17fps。

Faster R-CNN最主要的貢獻是使用卷積網(wǎng)絡檢測候選框。檢測候選框、預測目標的類別、回歸目標位置的偏移量,共享底層卷積特征,整個算法流程融合成了一個完整的端到端學習框架。Faster R-CNN突破了候選框檢測的速度瓶頸,是一種十分重要的兩階段算法。

5.FPN算法

2017年,Lin等人在Faster R-CNN的基礎上提出了FPN(Feature Pyramid Net works,特征金字塔策略)算法。

在FPN之前,絕大多數(shù)深度學習檢測器都是基于卷積網(wǎng)絡最頂層的特征圖進行計算的。深層特征包含全局信息,卻弱化了細節(jié)信息,使用深層特征在小目標檢測,尤其是精準定位方面,有著較大的劣勢。FPN采用top-down結構以及側連方法,將深層特征和淺層特征進行融合,使得特征既包含全局信息又包含細節(jié)信息。

另外,檢測計算也基于特征金字塔的多層特征圖,具有更強的多尺度適應性?;贔PN的Faster R-CNN算法在COCO數(shù)據(jù)集上取得了最優(yōu)的性能。當前,F(xiàn)PN已經(jīng)成為構建檢測算法的基礎策略。

二.一階段算法

一階段算法和兩階段算法最主要的區(qū)別,就是沒有單獨的候選框篩選階段,而是直接回歸目標的位置坐標和分類概率。常用的一階段算法如下。

1.YOLO算法

2015年,R.Joseph等人提出了YOLO(You Look Only Once)算法,這是首個深度學習領域的一階段算法。

從名字就可以看出,YOLO沒有兩階段算法中提取候選框和驗證分類兩個步驟,圖像送入一個神經(jīng)網(wǎng)絡就能完成整個預測過程。YOLO算法的實現(xiàn)方案是,先把原始圖像劃分成網(wǎng)格,然后基于網(wǎng)格的每個單元格回歸目標的類別概率和位置坐標。

作為一階段算法,YOLO的一個最大優(yōu)點就是速度快,在VOC2007數(shù)據(jù)集上,mAP為63.4%,檢測算法速度可以達到45fps;YOLO的加速版本mAP為52.7%,速度甚至可以達到驚人的155fps。

不過,YOLO也有不盡如人意的地方,在目標位置的精度上比兩階段算法有所降低,尤其是在對一些小目標的檢測方面,效果明顯變差。正因為存在這些問題,后續(xù)YOLO的版本以及其他一階段算法,都致力于更好地解決上述問題。

2.SSD算法

2015年,W.Liu等人提出了SSD(Single Shot MultiBox Detector)算法,這是深度學習領域的第二個一階段算法。

與僅使用最頂層特征圖進行預測的方法不同,SSD最主要的貢獻是引入了基于多尺度特征圖的檢測策略,顯著提升了算法的性能,尤其是在小目標檢測方面,相比YOLO有了明顯的改善,在VOC2007數(shù)據(jù)集上,mAP達到了76.8%。

3.Retina-Net算法

Retina-Net算法的主要目的是解決正負樣本不平衡的問題。常規(guī)的一階段算法在提取訓練樣本的過程中,背景樣本的比例遠大于目標樣本的比例。正負樣本的極度不平衡會導致訓練過程中模型較少關注目標樣本,這也是一階段算法的精度低于兩階段算法的主要原因。

Retina-Net算法引入了損失函數(shù),其核心思想是在訓練過程中,對傳統(tǒng)的交叉熵損失加上權重,使得錯分的樣本產生的損失在最終損失中占有更大的比例。引入損失函數(shù),使得一階段算法在保持速度優(yōu)勢的前提下,保證了目標檢測的精度。

4.FCOS算法

2019年,沈春華團隊提出了FCOS(Fully Convolutional One-Stage)算法。和SSD等一階段算法不同,F(xiàn)COS是一種“anchor free”方法,回歸目標位置不需要預先設定anchor,在待檢測目標尺度和形態(tài)變化較大的場景中有重要的應用。

另外,F(xiàn)COS算法在具體實現(xiàn)的過程中也使用了FPN策略,對于多尺度的目標有更好的檢測效果。

關于作者:涂銘,資深數(shù)據(jù)架構師和AI技術專家,現(xiàn)就職于騰訊,曾就職于阿里。對大數(shù)據(jù)、自然語言處理、圖像識別、Python、Java等相關技術有深入的研究,積累了豐富的實踐經(jīng)驗。

金智勇,計算機視覺算法專家,在計算機視覺領域深耕12年。現(xiàn)就職于百度,曾就職于阿里和三星等知名高新技術企業(yè)。業(yè)務領域涵蓋AR、人臉識別、圖像美化、智能交通、工業(yè)質檢等多個方向,具有豐富的算法研究與落地經(jīng)驗。

猜你喜歡