日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SSD网络原理解析[通俗易懂](固态硬盘SSD天梯图)

發(fā)布時間:2023/12/24 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 SSD网络原理解析[通俗易懂](固态硬盘SSD天梯图) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SSD網(wǎng)絡是繼YOLO之后的one-stage目標檢測網(wǎng)絡,是為了改善YOLO網(wǎng)絡設置的anchor設計的太過于粗糙而提出的,其設計思想主要是多尺度多長寬比的密集錨點設計和特征金字塔,下面我將詳細的解析SSD網(wǎng)絡結構

SSD網(wǎng)絡結構

精簡版

詳細版

通過上面這個圖,大家可以清楚的看到SSD的網(wǎng)絡結構主要分為以下幾個部分:

  • VGG16 Base Layer
  • Extra Feature Layer
  • Detection Layer
  • NMS

補充說明:在整個SSD網(wǎng)絡中,其實還隱藏了兩個重要的部分:

  • Anchor
  • MultiBoxLoss

VGG16 Base Layer

SSD網(wǎng)絡以VGG16作為基礎的特征提取層Base Layer,選取其中的Conv4_3作為第一個特征層用于目標檢測,VGG網(wǎng)絡大家都很熟悉我就不多說了,有不了解的小伙伴可以參考博客VGG網(wǎng)絡解析

Extra Feature Layer

在VGG16 Base Layer的基礎上,作者額外的添加了幾個特征層用于目標檢測,將VGG16中的FC7該成了卷積層Conv7,同時增加了Conv8、Conv9、Conv10、Conv11幾個特征層。

說到Conv4_3、Conv7、Conv8、Conv9、Conv10、Conv11這幾個特征層,小伙伴們就要注意了,這里是作者網(wǎng)絡設計的第一個重要思想:特征金字塔,在多個尺度上進行目標檢測以提高檢測精度。

大家看上面這個圖應該就可以理解特征金字塔在多尺度的檢測原理了,它之所以能提高檢測精度,主要有以下幾個方面的原因:

  • 特征層越高,具有的語義信息越豐富,不同特征層代表了不同級別的特征利用,檢測結果必然比只在最后一層進行檢測效果好
  • 特征層從低到高,其感受野由小到大,不同特征層對檢測不同尺寸的目標檢測是有幫助的

Anchor

現(xiàn)在已經(jīng)準備好了特征金字塔來進行目標檢測,又不能像two-stage那樣預先得到一些候選框,那么又該怎么樣才能檢測目標呢?anchor思想自然而然的就產(chǎn)生了,首先可以做的就是預先設定一些框proir box/defaultbox,以他們?yōu)榛荆ㄟ^位移和長寬比改變慢慢的向真實目標位置靠近;那么又該怎么樣保證對整幅圖像的每個地方都有一一的檢測呢?解決辦法就是設計大量的密集的proir box,下面具體說明SSD的proir box是怎么設計的

預備知識:proir box位置的表示形式是以中心點坐標和框的寬、高(cx,cy,w,h)來表示的,同時都轉換成百分比的形式

proir box生成規(guī)則:

  • SSD由6個特征層來檢測目標,在不同特征層上,proir box的尺寸scale大小是不一樣的,最低層的scale=0.2,最高層的scale=0.95,其他層的計算公式如下

  • 在某個特征層上其scale一定,那么會設置不同長寬比ratio=[1, 2, 3, 1/2, 1/3]的proir box,其長和寬的計算公式如下:

  • 在ratio=1的時候,還會根據(jù)該特征層和下一個特征層計算一個特定scale的proir box(長寬比ratio=1),計算公式如下:

  • 每個特征層的每個點都會以上述規(guī)則生成proir box,(cx,cy)由當前點的中心點來確定,由此每個特征層都生成大量密集的proir box,給個圖大家體會一下

Detection Layer

好了,現(xiàn)在proir box都有了,那么就得想辦法對這個proir box中目標的類別進行預測,同時還得預測proir box最終演變的框(該框最接近真實目標的框),所以Detection Layer要實現(xiàn)兩個功能,類別預測和框預測(框的表示由(cx,cy,w,h)來表示)。

說明:實際上對于位置的預測并不是預測最終框(cx,cy,w,h),而是預測proir box到Ground Truth的映射關系offset,如下圖所示,我們通過proir box學習到一種映射關系offset,得到預測框,使得預測框盡可能接近Ground Truth

proir box到Ground Truth的映射關系offset的表達式如下:

Detection Layer結構

Detection Layer首先分成cls分支和loc分支,每個分支中包含6個(因為有6個特征層)卷積層conv,conv的輸出尺寸和輸入尺寸相同,cls分支的輸出通道數(shù)為k*class_num,loc分支的輸出通道數(shù)為k*4,k表示proir box個數(shù)。

NMS

特征層通過Detection Layer將得到8732個proir box的預測結果,可想而知很多proir box的預測結果是無用的,需要對這些預測結果進行篩選:

1.對于某個類別,將分類預測的<置信度閾值的框刪除

2.將該類別篩選后的框按照置信度降序排序

3.對篩選后的框采用NMS:

1)計算置信度最高的框與后面所有框的iou,iou>閾值就刪除

2)找到篩選后的框中除了當前框后面的另一個置信度最高的框,重復步驟1),以此不斷遍歷,直到結束

4.對除了背景類以外的所有類別執(zhí)行步驟1、2、3

MultiBoxLoss

上面的5個部分按順序完成了SSD網(wǎng)絡的整個檢測流程,但是預測之前需要進行訓練啊!訓練就需要損失函數(shù),不同于分類網(wǎng)絡,目標檢測網(wǎng)絡的損失函數(shù)包括類別損失和位置損失兩個部分,其公式如下:

其中N是match到Ground Truth的proir box數(shù)量;而alpha參數(shù)用于調整confidence loss和location loss之間的比例,默認alpha=1。位置損失則是采用 Smooth L1 回歸loss,類別損失是典型的softmax loss,損失函數(shù)看著很簡單,但是實際計算過程包括Ground Truth和proir box匹配負樣本獲取幾個主要部分

匹配策略:訓練階段建立真實標簽和默認框對應關系,真實標簽從默認框中選擇。開始先匹配每個真實標簽框與默認框最好的jaccard重疊,確保每個真實標簽框有一個匹配的默認框,然后匹配與真實框jaccard重疊高于閾值0.5的默認框。這樣就允許網(wǎng)絡對多個重疊的默認框預測獲得高置信度,而不是只選擇最大重疊的一個。
Matching strategy:

上面得到的8732個目標框經(jīng)過Jaccard Overlap篩選剩下幾個了;其中不滿足的框標記為負數(shù),其余留下的標為正數(shù)框。緊隨其后:

在訓練時,groundtruth boxes 與 default boxes(就是prior boxes) 按照如下方式進行配對:

  • 首先,尋找與每一個ground truth box有最大的jaccard overlap的default box,這樣就能保證每一個groundtruth box與唯一的一個default box對應起來(所謂的jaccard overlap就是IoU,如下圖)。
  • SSD之后將剩余還沒有配對的default box與任意一個groundtruth box嘗試配對,只要兩者之間的jaccard overlap大于閾值,就認為match(SSD 300 閾值為0.5)。
  • 顯然配對到GT的default box就是候選正樣本集,沒有配對到GT的default box就是候選負樣本集。

負樣本獲得(這是一個難例挖掘的過程)
在目標檢測中我們會事先標記好ground_truth,接下來在圖片中隨機提取一系列sample,與ground_truth重疊率IoU超過一定閾值的(比如0.5),則認為它是positive sample,否則為negative sample,考慮到實際負樣本數(shù)>>正樣本數(shù),我們?yōu)榱吮苊鈔etwork的預測值少數(shù)服從多數(shù)而向負樣本靠攏,取正樣本數(shù):負樣本數(shù)大約為1:3,顯而易見,用來訓練網(wǎng)絡的負樣本為提取的負樣本的子集,那么,我們當然選擇負樣本中容易被分錯類的困難負樣本來進行網(wǎng)絡訓練。

困難負樣本是指容易被網(wǎng)絡預測為正樣本的proposal,即假陽性(false positive),如roi里有二分之一個目標時,雖然它仍是負樣本,卻容易被判斷為正樣本,這塊roi即為hard negative,訓練hard negative對提升網(wǎng)絡的分類性能具有極大幫助,因為它相當于一個錯題集。

如何判斷它為困難負樣本呢?也很簡單,我們先用初始樣本集(即第一幀隨機選擇的正負樣本)去訓練網(wǎng)絡,再用訓練好的網(wǎng)絡去預測負樣本集中剩余的負樣本,選擇其中得分最高,即最容易被判斷為正樣本的負樣本為困難樣本,加入負樣本集中,重新訓練網(wǎng)絡,循環(huán)往復,然后我們會發(fā)現(xiàn):我們的網(wǎng)絡的分類性能越來越強了。

在生成 prior boxes 之后,會產(chǎn)生很多個符合 ground truth box 的 positive boxes(候選正樣本集),但同時,不符合 ground truth boxes 也很多,而且這個 negative boxes(候選負樣本集),遠多于 positive boxes。這會造成 negative boxes、positive boxes 之間的不均衡。訓練時難以收斂。因此對default boxes以confidence loss由高到低排序,取最高的一些值,把將正負樣本控制在3:1的范圍。

將每一個GT上對應prior boxes的分類loss進行排序:

對于候選正樣本集:選擇loss最高的m個 prior box 與候選正樣本集匹配 (box 索引同時存在于這兩個集合里則匹配成功),匹配不成功則從候選正樣本集中刪除這個正樣本(因為這個正樣本loss太低,易被識別,已經(jīng)很接近 ground truth box 了,不需要再訓練);

對于候選負樣本集:選擇最高的m個 prior box 與候選負樣本集匹配,匹配成功的則留下來作為最后的負樣本,不成功剔除出這個候選負樣本,因為他們loss不夠大,易被識別為背景,訓練起來沒難度沒提升空間。

舉例:假設在這 8732 個 default box 里,經(jīng)過FindMatches后得到候選正樣本P個,候選負樣本那就有8732?P個。將 prior box 的 prediction loss 按照從大到小順序排列后選擇最高的M個 prior box。如果這P個候選正樣本里有a個 box 不在這M個 prior box 里(說明這a個box誤差小,與真實框很接近),將這 a個 box 從候選正樣本集中踢出去。如果這8732?P個候選負樣本集中有 b個在這M個 prior box(說明這b個box誤差大,與真實框很遠),則將這b個候選負樣本作為正式負樣本。即刪除易識別的正樣本,同時留下典型的負樣本,組成1:3的prior boxes樣本集合。SSD 算法中通過這種方式來保證positives、negatives 的比例。

總結

以上是生活随笔為你收集整理的SSD网络原理解析[通俗易懂](固态硬盘SSD天梯图)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。