YOLOv6: A Single-Stage Object Detection Framework for IndustrialApplications
paper地址:https://arxiv.org/abs/2209.02976
源碼github地址:GitHub - meituan/YOLOv6: YOLOv6: a single-stage object detection framework dedicated to industrial applications.
6月底發(fā)布的源碼,9月初終于發(fā)布了技術(shù)報(bào)告。細(xì)節(jié)部分歡迎去原文中扣,這里只做各部分的一些講解和個(gè)人理解。
目錄
摘要
一、介紹
二、方法介紹
2.1 網(wǎng)絡(luò)設(shè)計(jì)
2.2?標(biāo)簽分配
2.3 損失函數(shù)
2.4 為了工業(yè)部署便利的相關(guān)tricks
2.5 量化和部署
摘要
? ? ? ? 上來先說,yolov6大量地吸收了最近的網(wǎng)絡(luò)設(shè)計(jì)、訓(xùn)練策略、測試技術(shù)、量化和優(yōu)化方法的想法,就是說沒有什么很吸睛的創(chuàng)新,就是一堆縫合。然后說明,yolo作者已經(jīng)慷慨許可了他們把這個(gè)算法命名為yolov6(因此不要說他們蹭熱度了)。
? ? ? ? ?關(guān)于精度和性能對比,看下面這張圖就差不多明白了。
一、介紹
? ? ? ? 介紹了yolov6出來的動機(jī)和背景:
? ? ? ? (1)來自RepVGG的重參數(shù)化是一種優(yōu)越的技術(shù),在檢測(已有的yolo版本)中尚未得到很好的利用(實(shí)際上同時(shí)期的yolov7里也用到了)。同時(shí),作者認(rèn)為小型網(wǎng)絡(luò)和大型網(wǎng)絡(luò)不一樣,對大型網(wǎng)絡(luò)來說,對RepVGG塊進(jìn)行簡單地模型縮放不切實(shí)際。
? ? ? ? (2)基于重參數(shù)化的檢測器的量化也要調(diào)整
? ? ? ? (3)考慮真正的服務(wù)環(huán)境中的部署(以前的算法往往在高功耗的v100上比),我要換個(gè)平臺賽道比比
? ? ? ? (4)新的標(biāo)簽分配和損失函數(shù)出來啦,得試試
? ? ? ? (5)加點(diǎn)新的策略tricks,不增加推理時(shí)間就行
? ? ? ? 總結(jié)yolov6的貢獻(xiàn):
- ? ? ? ? 同時(shí)在分類和回歸中加入了自蒸餾策略
- ? ? ? ? 做了很多實(shí)驗(yàn)驗(yàn)證不同的標(biāo)簽分配策略、損失函數(shù)、數(shù)據(jù)增強(qiáng)技術(shù),找到了最好的組合
二、方法介紹
????????YOLOv6的新設(shè)計(jì)包括以下組件:網(wǎng)絡(luò)設(shè)計(jì)、標(biāo)簽分配、損失函數(shù)、數(shù)據(jù)增強(qiáng)、為了工業(yè)方便的改進(jìn)、量化和部署:
2.1 網(wǎng)絡(luò)設(shè)計(jì)
- ? ? ? ? Backbone:yolov6的小型網(wǎng)絡(luò)(跟v5和其他的版本一樣,yolov6提供yolov6-n、yolov6-s等好幾個(gè)規(guī)模的網(wǎng)絡(luò))中,使用RepBlock為基本模塊;yolov6的大型網(wǎng)絡(luò),用了他們自己修改的一個(gè)高效CSP塊,取名叫CSPStackRep塊。
????????
(a)和(b)表示了RepBlock,(a)表示訓(xùn)練的時(shí)候,RepVGG block接一個(gè)ReLU,(b)表示推理的時(shí)候,RepVGG塊被替換成了RepConv
(c)CSPStackRep塊的結(jié)構(gòu)?
- ? ? ? ? Neck:參考YOLOv4和v5用的PAN,結(jié)合backbone里的RepBlock或者CSPStackRep,提出了一個(gè)Rep-PAN
- ? ? ? ? Head:類似YOLOX的解耦頭,更高效化了(微調(diào))。YOLOv6里采用的是anchor-free的檢測頭(YOLOX、FCOS),是anchor point-based,而不是keypoint-based
2.2?標(biāo)簽分配
? ? ? ?SimOTA的訓(xùn)練太慢,而且容易陷入不穩(wěn)定的訓(xùn)練。 實(shí)驗(yàn)發(fā)現(xiàn)TAL(Task alignment learning)更好。
2.3 損失函數(shù)
? ? ? ? 分類損失用的是VFL(VariFocal Loss),回歸損失用的是SIoU/GIoU
2.4 為了工業(yè)部署便利的相關(guān)tricks
? ? ? ? 更多的epoch、自蒸餾、圖片邊緣放置灰色邊界(有助于檢測邊界的object)
2.5 量化和部署
? ? ? ? 用了 訓(xùn)練后量化(PTQ)和量化感知訓(xùn)練(QAT)
總結(jié)
以上是生活随笔為你收集整理的YOLOv6: A Single-Stage Object Detection Framework for IndustrialApplications的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DataBricks从开源到商业化踩过的
- 下一篇: 单下划线和双下划线