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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PP-YOLO

發布時間:2023/12/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PP-YOLO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PP-YOLOv2

目錄

PP-YOLOv2的改進點

數據增強?:+ MixUp

Backbone?:換R50 + Better Pre-Train + dcn

Neck?:+ SPP +?CoordConv + DropBlock + PAN + MISH

Loss?:+ IoU Loss + IoU Aware Loss

其他?:+ Large Batch Size + Grid Sensitive + EMA + Matrix NMS + Large Input Size

PP-YOLO Tiny

優化方法 - Backbone 的選擇

優化方法 - head 優化(Neck + Head)

優化方法 - 后訓練量化

(黑色為PP-YOLOv1版本添加的內容,紅色為 PP-YOLOv2 版本新添加的內容)

數據增強

PP-YOLO 沒有探究各種復雜的 backbone 和數據增廣手段,也不是靠 NAS 暴力搜索得到一個結構。模型在 ResNet 骨干網絡系列,僅靠 mixup,通過合理的 tricks 組合,提升模型性能。(NAS 是給定一個搜索空間的候選神經網絡結構集合,用某種策略從中搜索出最優網絡結構。)

MixUp(ICLR2018)

背后的直覺:平滑了數據集

影響:增加精度,不減少速度

補充:

當訓練集中的圖片比較少時,容易造成網絡的過擬合。為了避免這種情況,一般要經過圖像處理,人為地去增加些圖片數據,這樣就會增加可用圖片的數目,減少過擬合的可能性。

可以通過像素級的剪裁(Crop)、旋轉(Rotation)、反轉(Flip)、色調(Hue)、飽和度(Saturation)、曝光量(Exposure)、寬高比(Aspect)來做數據增強。另外還可以在圖片級數據增強,比如 MixUp、CurMix、Mosaic、Blur。

Mixup(2017):在一張狗的圖片中,疊加一只貓的圖片,經過兩幅圖片的加權運算可以看到圖片上既有狗又有貓。

Cutout(2017):將圖片中某一塊區域,填充為某種顏色。

CutMix(2019):將圖片某一塊區域剪裁掉,然后用另外一幅圖像來填充剪裁區域。

Mosaic 數據增強(2020):它把 4 幅圖片拼成一幅圖,YOLOv5 中數據增強就是采用 Mosaic 方法,該方法由 YOLOv5 作者提出。YOLOv5 在訓練過程中,將4幅小圖拼成一幅大圖,4幅小圖在拼接時做了隨機的處理,所以4幅小圖的大小形狀是不一樣的。

Backbone

DarkNet53 -> ResNet50 + Better PreTrain(ResNet 是比較成熟的 backbone,并且優化過。)

增加 DCN(可變形卷積 2017)(通用的漲點方式,加一點點,PP-YOLO 僅加一層)

背后的直覺:參與計算的點應該集中在物體上

影響:漲點但掉速度

補充

什么是可變形卷積?

可變形卷積指卷積核在每個元素上增加了一個參數方向參數,這樣卷積核就能在訓練過程中擴展到很大的范圍。

(a)傳統的標準卷積核,尺寸為3x3(圖中綠色的點);
(b)可變形卷積,通過在圖(a)的基礎上給每個卷積核的參數添加一個方向向量(圖b中的淺藍色箭頭),使卷積核變為任意形狀;
(c)和(d)是可變形卷積的特殊形式。

為什么要可變形卷積?

卷積核的目的是為了提取輸入物的特征。傳統的卷積核通常是固定尺寸、固定大小的。這種卷積核存在的最大問題就是,對于未知的變化適應性差,泛化能力差。

  • 卷積單元對輸入的特征圖在固定的位置進行采樣;
  • 池化層不斷減小著特征圖的尺寸;
  • RoI 池化層產生空間位置受限的 RoI。

網絡內部缺乏能夠解決這些問題的模塊,這會產生顯著的問題,同一 CNN 層的激活單元的感受野尺寸都相同,這對于編碼位置信息的淺層神經網絡并不可取,因為不同的位置可能對應有不同尺度或者不同形變的物體,這些層需要能夠自動調整尺度或者感受野的方法。再比如,目標檢測雖然效果很好但是都依賴于基于特征提取的邊界框,這并不是最優的方法,尤其是對于非網格狀的物體而言。

因此,希望卷積核可以根據實際情況調整本身的形狀,更好的提取輸入的特征。

Neck

增加 SPP(2015)

背后的直覺:獲得不同的感受野

影響:加一點點參數,漲性能

增加 CoordConv(2018)

背后的直覺:Conv 做不好 one-hot 轉坐標這種任務所以把坐標信息傳進去

影響:加一點點參數,漲性能

它在輸入特征圖,添加了兩個通道,一個表征 i 坐標,一個表征 j 坐標。這兩個通道帶有坐標信息,從而允許網絡學習完全平移不變性和變化平移相關度。
為了平衡帶來的額外參數和 FLOPS,PP-YOLO 只替換掉 FPN 的1x1卷積層以及 detection head 的第一層卷積。

傳統卷積具備平移不變性,這使得其在應對分類等任務時可以更好的學習本質特征。不過,當需要感知位置信息時,傳統卷積有點力不從心。為了使得卷積能夠感知空間信息,作者在輸入 feature map 后面增加了兩個 coordinate 通道,分別表示原始輸入的 x 和 y 坐標,然后再進行傳統卷積,從而使得卷積過程可以感知 feature map 的空間信息,該方法稱之為CoordConv。使用了 CoordConv 之后,能夠使得網絡可以根據不同任務需求學習平移不變性或者一定程度的平移依賴性。(平移不變性意味著系統產生完全相同的響應(輸出),不管它的輸入是如何平移的 。)

+ DropBlock(2018)

Dropout 被廣泛的使用作為一種正則化技術在全連接層中,但在卷積層中卻收效甚微。作者認為卷積層中的激活單元(特征圖上元素)在空間中是相關的,所有盡管 Dropout 可以進行信息丟失,但信息仍然可以通過卷積網絡流通。

作者提出了 DropBlock,一種結構化的 Dropout 形式,特征圖上的鄰域單元被一起丟棄,這樣可以提高準確率。大量的實驗表明,DropBlock 在正則化的卷積網絡中性能優于 Dropout。

DropBlock 是谷歌提的一個漲點神器,但是適用范圍不大。在 PP-YOLO 模型中發現給 BackBone 直接加 DropBlock 會帶來精度下降,于是只在檢測頭部分添加。

+ PAN

背后的直覺:增強 Neck 部分的特征融合能力

影響:掉速度,漲性能

FPN 層自頂向下傳達強語義特征(高層語義是經過特征提取后得到的特征信息,它的感受野較大,提取的特征抽象,有利于物體的分類,但會丟失細節信息,不利于精確分割。高層語義特征是抽象的特征。),而特征金字塔則自底向上傳達強定位特征,兩兩聯手,從不同的主干層對不同的檢測層進行參數聚合。FPN+PAN 借鑒的是 18 年 CVPR 的 PANet,當時主要應用于圖像分割領域,但 Alexey 將其拆分應用到 Yolov4 中,進一步提高特征提取的能力。

使用 MISH

背后的直覺:處處平滑,<0部分也應該有值

影響:漲性能,幾乎不掉速度

Mish Activation Function?已有研究 YOLOv4 與 YOLOv5 表明:Mish 對于改進目標檢測器的性能非常有效。由于百度已經有了一個非常強有力的預訓練骨干模型(82.4% top1 精度),為保持骨干結構不變,僅將 Mish 用到了 Neck 部分。

Loss

+ IoU Loss

背后的直覺:定位時,x,y,w,h 的 loss 應該一同計算

影響:漲性能,不掉速度

+ IoU Aware Loss

背后的直覺:直接預測 IoU?

影響:漲性能,輕微掉速度

其他

+ Large Batch Size

+ Grid Sensitive

背后的直覺:Sigmoid 后 0,1 很難出,需要調整一下

影響:漲性能,不掉速度

預測時,定位的物體中心點 x,y,首先經過 sigmoid,再加上 grid 的 Cx,Cy。若物體的中心在 grid 的交點處,sigmoid 需要出 0 或 1 才能夠很準,但 sigmoid 出 0/1 比較困難。

原始 YOLOv3 對應中間點的調整公式:其中 σ 表示 sigmoid 函數。

由于 sigmoid 函數兩端趨于平滑,中心點很難根據公式調節到網格上面,因此改進公式為:α 設為 1.05,能幫助中心點回歸到網格線上。

?

+ 指數滑動平均EMA,直接作用于指數 W 上

背后的直覺:平均一下更容易到最優解

影響:漲性能,不掉速度

在訓練參數更新上也做了滑動平均策略。

滑動平均可以使模型在測試數據上更健壯。對神經網絡邊的權重 weights 使用滑動平均,得到對應的影子變量 shadow_weights。在訓練過程仍然使用原來不帶滑動平均的權重 weights,之后在測試過程中使用 shadow_weights 來代替 weights 作為神經網絡邊的權重,這樣在測試數據上效果更好。因為 shadow_weights 的更新更加平滑,對于隨機梯度下降而言,更平滑的更新說明不會偏離最優點很遠;對于梯度下降 batch gradient decent,我感覺影子變量作用不大,因為梯度下降的方向已經是最優的了,loss 一定減小;對于 mini-batch gradient decent,可以嘗試滑動平均,畢竟 mini-batch gradient decent 對參數的更新也存在抖動。

+ Matrix NMS

背后的直覺:Soft NMS 的并行處理版本

影響:漲性能,加速度

非極大值抑制問題,解決同一個物體有多于一個候選框輸出的問題,用于過濾掉重疊的候選框。

  • 算法輸入:包含各框的位置坐標,以及置信度得分
  • 算法步驟:設定 IOU 閾值;對種類進行循環;對同一種類類別而言,將所有邊框按照置信度進行排序,取得分最高的邊框并保存,使其與其余邊框計算 IOU,去掉計算結果中大于閾值的結果;未處理的邊框中繼續選一個類別得分最高的,直到處理完所有的邊框為止。保留下來的候選框即為檢測結果。

存在問題:

  • 強制去掉得分較低的邊框,影響召回率。
  • IOU 閾值難以人為確定。
  • 得分高的邊框位置不一定更優。
  • 速度有點慢

Soft NMS:對于得分小于閾值的邊框,不再直接舍棄,而是降低其得分,設其原本得分為S:S = S ×(1 - IOUs),其實是對于 IOU 中較小的一部分框,其1-IOU較大,得分衰減不會很厲害。

+ Large Input Size

大 Batch 還是大 Input size?

背后的直覺:大 Batch 穩定訓練,大 Input size 對小物體好

影響:漲性能,不影響速度

PPYOLO 總結

PPYOLO 實際上是 YOLOv3 的一個魔改增強版本,在 YOLOv3 的基礎上,嘗試了非常多的小改進方法,最終拿到了這樣的結果。PP-YOLOv2 在同等速度下,精度超越 YOLOv5!

PP-YOLO Tiny

模型設計和優化(PP-YOLO Tiny 選擇第一種大類)

  • 網絡結構
    • 小型高性價比 Backbone
    • Head 優化(減小個數,小型化設計,不同 head 特征復用等)
    • 深度可分離卷積
  • 數據增強
    • Image Mixup / Mosaic
    • Random Crop
    • Auto Augment
  • 訓練策略
    • IoU Loss
    • EMA
    • Sync Batch norm
    • 調整正負樣本 assign 方式

模型壓縮

  • 卷積通道裁剪
    • Uniform
    • Sensitive
    • FPGM
  • 知識蒸餾
    • L2 Loss
    • Soft Label
    • FSP
  • 量化
    • 在線量化
    • 離線量化
    • PACT
  • 搜索
    • NAS?

優化方法 - Backbone 的選擇

Mobilenet V3 是 Google 使用模型搜索的方法搜索出來高性價比的模型,繼承了?Mobilenet V1 和Mobilenet V2 模型的特點。

0.5x 指將原來的模型縮小了一半,即將所有的 channel 數×0.5。

目標檢測領域使用圖像分類作為 backbone 時,一般都會將 fc 層排除掉

優化方法 - head 優化(Neck + Head)

模型輸入尺寸GFLOPs

YOLOv3-

MobileNetV3

608×60817.7
512×51212.6
416×4168.3
320×3204.9
特征變小,影響召回率

提升召回率
  • ignore threshold 0.7->0.5
    • 減少負例數目
    • 更多非正非負樣本
  • iou threshold = 0.25
    • 增加正例數目
    • 更多回歸正例的預測框
優化方法效果
數據增強Image Mixup增強背景信息,平滑數據集,提高抗干擾能力
模型特征SPP多尺度特征
DropBlock隨機丟棄特征快,減小過擬合
后處理Grid Sensitive中心坐標回歸上的 label smooth,減小過擬合
損失優化IoU Loss-IoU 加入 loss 中,提升定位精度
訓練優化Sync Batch Norm卡間同步均值和方差
EMA歷史梯度平滑,訓練更加穩定
Larger Batch Size8 × 32,訓練更加穩定

服務器端效果好,而移動端不適用:

  • Coord Conv
    • 增加兩個通道表示 x,y 坐標,獲取全局信息
    • 移動端 CPU 計算,通道數為 8 的倍數性能最優
  • Matrix NMS
    • GPU 并行計算各預測框間的 IoU
    • 移動端 CPU 無法發揮并行計算優勢,計算量增大
  • IoU Aware
    • 學習預測框和真實框間的 IoU,調整預測排序
    • 新增很多細粒度算子,移動端速度影響較大

優化方法 - 后訓練量化

模型已經訓練好,權重已經存儲下來,它是 float32 的權重。通過一個算法,把 float32 映射到 int8 上,讓存儲的權重以 int8 的形式來存儲。在加載 int8 的權重的進行預測時,通過映射函數,將其加載回 float32 的權重。

對精度基本沒有損失,壓縮了模型體積。

卷積通道裁剪:裁剪冗余通道、減小模型大小、降低 FLOPs,提升預測速度、邊裁剪邊訓練。

知識蒸餾:精度高模型 – teacher、teacher 學習到的預測結果指導student、提升模型精度、不影響 FLOPs 和預測速度。

知識蒸餾是模型壓縮的一種常用的方法,不同于模型壓縮中的剪枝和量化,知識蒸餾是通過構建一個輕量化的小模型,利用性能更好的大模型的監督信息,來訓練這個小模型,以期達到更好的性能和精度。最早是由 Hinton 在 2015年 首次提出并應用在分類任務上面,這個大模型我們稱之為 teacher(教師模型),小模型我們稱之為Student(學生模型)。來自Teacher 模型輸出的監督信息稱之為 knowledge(知識),而 student 學習遷移來自 teacher 的監督信息的過程稱之為 Distillation(蒸餾)。

YOLOv3 剪裁+蒸餾

  • ?PaddleDetection 提供一鍵式剪裁 + 蒸餾腳本
  • ?YOLOv3-MobileNetV1 剪裁67% FLOPs,精度基本無損,移動端加速 2.3 倍,GPU 加速 60%
  • ?YOLOv3-ResNet50vd-DCN 剪裁 43% FLOPs,精度提升 0.6,GPU加速20%
模型數據集策略mAPFLOPsTesla P4推理時延

高通855

推理時延

YOLOv3-MobileNetV1COCO29.3321.35 ms
YOLOv3-MobileNetV1COCO

剪裁+

YOLOv3-ResNet34蒸餾

29.0-67.56%139.71ms
YOLOv3-MobileNetV1VOC76.216.55ms289.87ms
YOLOv3-MobileNetV1VOC

剪裁+

YOLOv3-ResNet34蒸餾

78.8-69.57%10.06ms123.41ms
YOLOv3-ResNet50vd-DCNCOCO39.135.20ms
YOLOv3-ResNet50vd-DCNCOCO

剪裁+

YOLOv3-ResNet34蒸餾

39.7-43.69%29.13ms

YOLOv3-MobileNetV3 剪裁+蒸餾

????????–MobileNetV3,精度速度更優的骨干網絡

????????–剪裁:更優的剪裁方式FPGM,減少模型大小和計算量

????????–蒸餾:精度更高的YOLOv3-ResNet34作為teacher模型

????????–PaddleDetection提供了一鍵式剪裁+蒸餾腳本及教程

Backbone策略剪裁率mAP

320×320

推理時延

MobileNetv3baseline-27.1319ms
MobileNetv3剪裁+蒸餾50%,75%,87.5%25.9107ms
MobileNetv3剪裁+蒸餾75%,75%,87.5%24.689ms
注:剪裁率為 YOLOv3 模型 head 部分三個輸出分支對應的剪裁率

移動端模型庫

–低端算力:SSDLite模型 + 量化

–中端算力:兼顧速度和精度的YOLOv3壓縮模型

–高端算力:高精度的Cascade Faster RCNN模型

模型主干網絡模型大小

COCO

mAP

推理時延

(曉龍845)

SSDLiteMobileNetV3 small11M16.641ms
MobileNetV3 large21M22.892ms
SSDLite+量化MobileNetV3 small2.8M16.134ms
MobileNetV3 large5.3M22.780ms
YOLOv3+剪裁+蒸餾MobileNetV3 large28MB25.9107ms
MobileNetV3 large16MB24.689ms
Cascade Faster-RCNNMobileNetV3 large15MB25.087ms
MobileNetV3 large15MB30.2351ms

總結

以上是生活随笔為你收集整理的PP-YOLO的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧日韩不卡视频 | 日韩精品一二三四 | 成都免费高清电影 | 国产又粗又黄又爽的视频 | 免费高清毛片 | 国产96在线 | 亚洲 | 久久免费黄色网址 | 国产操 | 国产精品扒开腿做爽爽爽a片唱戏 | 久久蜜桃视频 | 国产福利不卡视频 | 久久久久久久久免费视频 | 久久久久久久久久网 | 国产成人在线看 | 性感美女视频一二三 | 国产裸体视频 | 狠操av| 成人在线一区二区三区 | aa黄色大片 | 亚洲色图25p | 91在线视频网址 | 国产精品成av人在线视午夜片 | 综合久久一区二区 | 国产淫语 | 免费看污黄网站在线观看 | 色av吧 | 黄色一级片一级片 | jizz黑人| 国产经典久久 | 97影院在线午夜 | 波多野吉衣在线视频 | 鲁一鲁一鲁一鲁一av | av在线首页 | 国产性色视频 | 日本性久久 | 日本少妇吞精囗交 | 日韩精品视频一区二区 | 国产精品美女久久久久久久久 | 亚洲αv | 欧美男女啪啪 | 久久在线看| 136福利视频导航 | 天天操天天爽天天干 | 成年人视频网站 | 欧美中文字幕视频 | 99热一区| 欧美日韩v| 久久咪咪 | 日韩欧美一二三区 | 色人阁在线视频 | 日韩欧美综合视频 | 国内成人在线 | 色就是色亚洲色图 | 天天干夜夜草 | 日韩精品网址 | 六月色婷 | 97精品熟女少妇一区二区三区 | 国产精品4区 | 亚洲人人夜夜澡人人爽 | 99国产精品一区二区三区 | 最新日韩精品 | 亚洲乱码精品久久久久.. | 啪啪自拍| 亚洲第一页夜 | 日本一区二区不卡在线 | 免费成人美女女 | 无码专区久久综合久中文字幕 | 五月天中文字幕 | 天天干夜夜操视频 | 爱情岛论坛亚洲自拍 | 中文字幕无码日韩专区免费 | 亚洲精品aaaa | 亚洲一卡一卡 | 国产精品资源在线 | 国产欧美一区二区三区精华液好吗 | 乱短篇艳辣500篇h文最新章节 | 天天久| 伊人精品视频在线观看 | 麻豆成人精品 | 国产精品免费久久 | 国产无遮挡免费 | 欧美日韩精品一二三区 | 韩国精品视频 | 奇米影视在线 | 噜噜噜精品欧美成人 | 日韩视频在线视频 | 日本女人hd | 美女极度色诱图片www视频 | 麻豆传谋在线观看免费mv | 日韩精品视频一区二区在线观看 | 在线看国产精品 | a视频免费观看 | 村上里沙番号 | 在线色网址 | 中文字幕一区二区三 | 国产成人精品亚洲男人的天堂 | 亚洲国产美女视频 | 黄色免费看视频 | 欧美日韩伦理片 |