首页 >热点 > > 正文

每日简讯:YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8,必卷!

程序员客栈 2023-01-10 11:59:01
点击下方名片关注【集智书童】,后台回复【YOLOv8】获取YOLOv8源码以及书童亲自绘制的YOLOv8结构图原图。回顾一下YOLOv5,不然没机会了

这里粗略回顾一下,这里直接提供YOLOv5的整理的结构图吧:

Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方;PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后的scale优化等等,这里除了上采样、CBS卷积模块,最为主要的还有C3模块(记住这个C3模块哦);Head:Coupled Head+Anchor-base,毫无疑问,YOLOv3、YOLOv4、YOLOv5、YOLOv7都是Anchor-Base的,后面会变吗?Loss:分类用BEC Loss,回归用CIoU Loss。话不多说,直接YOLOv8吧!

直接上YOLOv8的结构图吧,小伙伴们可以直接和YOLOv5进行对比,看看能找到或者猜到有什么不同的地方?


(相关资料图)

下面就直接揭晓答案吧,具体改进如下:

Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式。1、C2f模块是什么?与C3有什么区别?

我们不着急,先看一下C3模块的结构图,然后再对比与C2f的具体的区别。针对C3模块,其主要是借助CSPNet提取分流的思想,同时结合残差结构的思想,设计了所谓的C3 Block,这里的CSP主分支梯度模块为BottleNeck模块,也就是所谓的残差模块。同时堆叠的个数由参数n来进行控制,也就是说不同规模的模型,n的值是有变化的。

其实这里的梯度流主分支,可以是任何之前你学习过的模块,比如,美团提出的YOLOv6中就是用来重参模块RepVGGBlock来替换BottleNeck Block来作为主要的梯度流分支,而百度提出的PP-YOLOE则是使用了RepResNet-Block来替换BottleNeck Block来作为主要的梯度流分支。而YOLOv7则是使用了ELAN Block来替换BottleNeck Block来作为主要的梯度流分支。

C3模块的Pytorch的实现如下:

classC3(nn.Module):#CSPBottleneckwith3convolutionsdef__init__(self,c1,c2,n=1,shortcut=True,g=1,e=0.5):#ch_in,ch_out,number,shortcut,groups,expansionsuper().__init__()c_=int(c2*e)#hiddenchannelsself.cv1=Conv(c1,c_,1,1)self.cv2=Conv(c1,c_,1,1)self.cv3=Conv(2*c_,c2,1)#optionalact=FReLU(c2)self.m=nn.Sequential(*(Bottleneck(c_,c_,shortcut,g,e=1.0)for_inrange(n)))defforward(self,x):returnself.cv3(torch.cat((self.m(self.cv1(x)),self.cv2(x)),1))

下面就简单说一下C2f模块,通过C3模块的代码以及结构图可以看到,C3模块和名字思路一致,在模块中使用了3个卷积模块(Conv+BN+SiLU),以及n个BottleNeck。

通过C3代码可以看出,对于cv1卷积和cv2卷积的通道数是一致的,而cv3的输入通道数是前者的2倍,因为cv3的输入是由主梯度流分支(BottleNeck分支)依旧次梯度流分支(CBS,cv2分支)cat得到的,因此是2倍的通道数,而输出则是一样的。

不妨我们再看一下YOLOv7中的模块:

YOLOv7通过并行更多的梯度流分支,放ELAN模块可以获得更丰富的梯度信息,进而或者更高的精度和更合理的延迟。

C2f模块的结构图如下:

我们可以很容易的看出,C2f模块就是参考了C3模块以及ELAN的思想进行的设计,让YOLOv8可以在保证轻量化的同时获得更加丰富的梯度流信息。

C2f模块对应的Pytorch实现如下:

classC2f(nn.Module):#CSPBottleneckwith2convolutionsdef__init__(self,c1,c2,n=1,shortcut=False,g=1,e=0.5):#ch_in,ch_out,number,shortcut,groups,expansionsuper().__init__()self.c=int(c2*e)#hiddenchannelsself.cv1=Conv(c1,2*self.c,1,1)self.cv2=Conv((2+n)*self.c,c2,1)#optionalact=FReLU(c2)self.m=nn.ModuleList(Bottleneck(self.c,self.c,shortcut,g,k=((3,3),(3,3)),e=1.0)for_inrange(n))defforward(self,x):y=list(self.cv1(x).split((self.c,self.c),1))y.extend(m(y[-1])forminself.m)returnself.cv2(torch.cat(y,1))

SPPF改进了什么?

这里讲解的文章就很多了,这里也就不具体描述了,直接给出对比图了

上图中,左边是SPP,右边是SPPF。

PAN-FPN改进了什么?

我们先看一下YOLOv5以及YOLOv6的PAN-FPN部分的结构图:

YOLOv5的Neck部分的结构图如下:

YOLOv6的Neck部分的结构图如下:

我们再看YOLOv8的结构图:

可以看到,相对于YOLOv5或者YOLOv6,YOLOv8将C3模块以及RepBlock替换为了C2f,同时细心可以发现,相对于YOLOv5和YOLOv6,YOLOv8选择将上采样之前的1×1卷积去除了,将Backbone不同阶段输出的特征直接送入了上采样操作。

Head部分都变了什么呢?

先看一下YOLOv5本身的Head(Coupled-Head):

而YOLOv8则是使用了Decoupled-Head,同时由于使用了DFL 的思想,因此回归头的通道数也变成了4*reg_max的形式:

对比一下YOLOv5与YOLOv8的YAML损失函数

对于YOLOv8,其分类损失为VFL Loss,其回归损失为CIOU Loss+DFL的形式,这里Reg_max默认为16。

VFL主要改进是提出了非对称的加权操作,FL和QFL都是对称的。而非对称加权的思想来源于论文PISA,该论文指出首先正负样本有不平衡问题,即使在正样本中也存在不等权问题,因为mAP的计算是主正样本。

q是label,正样本时候q为bbox和gt的IoU,负样本时候q=0,当为正样本时候其实没有采用FL,而是普通的BCE,只不过多了一个自适应IoU加权,用于突出主样本。而为负样本时候就是标准的FL了。可以明显发现VFL比QFL更加简单,主要特点是正负样本非对称加权、突出正样本为主样本。

针对这里的DFL(Distribution Focal Loss),其主要是将框的位置建模成一个 general distribution,让网络快速的聚焦于和目标位置距离近的位置的分布。

DFL 能够让网络更快地聚焦于目标 y 附近的值,增大它们的概率;

DFL的含义是以交叉熵的形式去优化与标签y最接近的一左一右2个位置的概率,从而让网络更快的聚焦到目标位置的邻近区域的分布;也就是说学出来的分布理论上是在真实浮点坐标的附近,并且以线性插值的模式得到距离左右整数坐标的权重。

样本的匹配

标签分配是目标检测非常重要的一环,在YOLOv5的早期版本中使用了MaxIOU作为标签分配方法。然而,在实践中发现直接使用边长比也可以达到一阿姨你的效果。而YOLOv8则是抛弃了Anchor-Base方法使用Anchor-Free方法,找到了一个替代边长比例的匹配方法,TaskAligned。

为与NMS搭配,训练样例的Anchor分配需要满足以下两个规则:

正常对齐的Anchor应当可以预测高分类得分,同时具有精确定位;不对齐的Anchor应当具有低分类得分,并在NMS阶段被抑制。基于上述两个目标,TaskAligned设计了一个新的Anchor alignment metric 来在Anchor level 衡量Task-Alignment的水平。并且,Alignment metric 被集成在了 sample 分配和 loss function里来动态的优化每个 Anchor 的预测。Anchor alignment metric:

分类得分和 IoU表示了这两个任务的预测效果,所以,TaskAligned使用分类得分和IoU的高阶组合来衡量Task-Alignment的程度。使用下列的方式来对每个实例计算Anchor-level 的对齐程度:

s 和 u 分别为分类得分和 IoU 值,α 和 β 为权重超参。从上边的公式可以看出来,t 可以同时控制分类得分和IoU 的优化来实现 Task-Alignment,可以引导网络动态的关注于高质量的Anchor。

Training sample Assignment:

为提升两个任务的对齐性,TOOD聚焦于Task-Alignment Anchor,采用一种简单的分配规则选择训练样本:对每个实例,选择m个具有最大t值的Anchor作为正样本,选择其余的Anchor作为负样本。然后,通过损失函数(针对分类与定位的对齐而设计的损失函数)进行训练。

参考

[1].https://github.com/uyolo1314/ultralytics.[2].https://github.com/meituan/YOLOv6.[3].https://arxiv.org/abs/2209.02976.[4].https://github.com/PaddlePaddle/PaddleDetection.[5].https://github.com/PaddlePaddle/PaddleYOLO.[6].https://github.com/open-mmlab/mmyolo.

推荐阅读

书童改进 | YOLOv5之架构改进、样本匹配升级、量化部署、剪枝、自蒸馏以及异构蒸馏

目标检测模型设计准则 | YOLOv7参考的ELAN模型解读,YOLO系列模型思想的设计源头

目标检测Trick | SEA方法轻松抹平One-Stage与Two-Stage目标检测之间的差距

扫描上方二维码可联系小书童加入交流群~

想要了解更多前沿AI视觉感知全栈知识【分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF】、行业技术方案【AI安防、AI医疗、AI自动驾驶】、AI模型部署落地实战【CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架等】,欢迎扫描下方二维码,加入集智书童知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

上一篇: 下一篇:
x
推荐阅读

每日简讯:YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8,必卷!

2023-01-10

镇平卢医镇:多举措治理“空心村” 促“五星支部创建” 每日讯息

2023-01-10

ST大集:2022年累计发生的诉讼、仲裁金额合计约10亿元

2023-01-10

甘肃:搭建政企沟通渠道_焦点报道

2023-01-10

留给威马的时间不多了

2023-01-09

全球热点评!衬衣怎么穿才好看?

2023-01-09

海象新材:截至2023年1月9日 沈财兴先生尚未减持公司股份|当前速看

2023-01-09

环球今日讯!谁会用抖音桌面端聊天软件?

2023-01-09

隐性债务:谁家的孩子谁抱走,也许会对银行板块带来短暂性利空-每日时讯

2023-01-09

当前观点:臭氧层破坏导致生物大灭绝的直接证据被发现

2023-01-09

文化和旅游部:2023年将推出第一批中国特品级旅游资源名录|世界讯息

2023-01-07

国网河南电力:2022年累计投产主网工程306项、配网工程1.5万项_今日关注

2023-01-07

新人新岗新启航 展现青春新力量-天天关注

2023-01-06

每日速讯:证监会确定菜籽油、菜籽粕、花生期货和期权为境内特定品种

2023-01-06

2023年太岁交班 2023年太岁交班是立春之日2月4号 世界讯息

2023-01-06

农业银行:1月5日获融资买入3.25亿元,占当日流入资金比例98.5%_环球报道

2023-01-06

阳康后如何修复您的肺?推荐给大家一套实用的呼吸训练康复方法 全球最资讯

2023-01-06

环球热议:平安新一贷网贷逾期46年不还会不会上征信

2023-01-05

煮鸡蛋除水垢的方法是什么?

2023-01-05

天天看点:苏试试验: 关于提前赎回苏试转债的第十三次提示性公告

2023-01-04

华联期货:预期向好叠加高成本支撑 预计钢价高位震荡为主 环球即时看

2023-01-04

天风证券:维持新东方在线(01797.HK)“买入”评级 主账号销售转化率持续向上

2023-01-04

2022年最佳健康科普作品(图文类):节气养生:白露凉风至,气温变化要注意

2023-01-04

经济日报:监管和保障应跑在热搜前面 天天播报

2023-01-04

形容人在花海中的作文(优选53篇)

2023-01-03

鼎阳科技(688112.SH)发预增,年度净利1.3亿元-1.46亿元,同比增长60%-80%

2023-01-03

当前动态:丰安股份(870508)1月3日散户资金净卖出6.41万元

2023-01-03

新大正:公司拟支付现金收购13名自然人合计持有的沧恒投资80%股权-环球快报

2023-01-03

华润医药(03320.HK)发布公告,有关建议收购昆药集团股份有限公司(昆药)的权益

2023-01-03

再说一遍,真的没有必要抢购止泻药 | 新京报快评 环球新动态

2023-01-03

国美零售公布债转股方案 控股股东黄光裕持股比例将降至19.33%

2023-01-02

如何简单高效地定制自己的文本作画模型?

2023-01-02

羊头可以和牛肉丸炖到一块么?_世界热点评

2023-01-02

鹅绒被是盖在被子上吗|环球快播报

2023-01-01

九江2019工伤赔偿标准怎么查询?

2022-12-31

中国建材(03323.HK):资产重组事项获联交所批准

2022-12-30

圣农发展(002299.SZ):董事兼副总经理陈榕已减持20.8605万股 今日热讯

2022-12-30

镇平柳泉铺镇:筑牢安全稳定防线 确保“双节”平安祥和|速读

2022-12-30

【天天速看料】2023北京海淀区永靓家园共有产权房选房注意事项

2022-12-30

博彩公司遭黑客攻击,67000账户被窃,损失超30万!公司称登录信息由第三方泄露

2022-12-30

每日观察!精测电子(300567.SZ):拟以8050万元转让苏州科韵激光5.88%股权

2022-12-29

北京高速元旦假期正常收费_世界讯息

2022-12-29

土榨茶油香万家

2022-12-29

武商集团12月28日被深股通减持18.16万股

2022-12-29

大为股份:拟约220亿元投建锂矿产资源综合利用等项目

2022-12-29

【机器学习】集成学习代码练习(随机森林、GBDT、XGBoost、LightGBM等) 全球快资讯

2022-12-29

12月19日-25日 中国LNG综合进口到岸价格指数217.96点 环比下跌19.32%|天天微资讯

2022-12-28

贝肯能源(002828)12月28日主力资金净卖出664.85万元

2022-12-28

世界热议:鹏欣资源董秘回复:因海外疫情等因素对海外矿业生产造成一定影响,相关工作仍在推进中,请持续关注公司公告

2022-12-28

全球简讯:云路股份:融资余额4425.11万元,创历史新低(12-27)

2022-12-28

上海港湾: 中原证券股份有限公司关于上海港湾基础建设(集团)股份有限公司预计2023年日常性关联交易的核查意见

2022-12-27

支持开票 | Python实证指标构建与文本分析

2022-12-27

太平洋证券2023年风电策略:海陆装机增速共振 即将开启新的高增周期|全球今热点

2022-12-27

易借速贷逾期几天上征信呢

2022-12-27

豪森股份: 独立董事候选人声明(张令荣)

2022-12-26

全球滚动:记一次QQ找回经历

2022-12-26

川宁生物(301301.SZ)将于12月27日在创业板上市_滚动

2022-12-26

翼龙贷网贷20万逾期不还会面临起诉吗_世界热议

2022-12-25

2022埃媒年终盘点:欧洲经历二战后最危险变革期 报资讯

2022-12-24

中微半导: 中信证券股份有限公司关于中微半导体(深圳)股份有限公司2022年持续督导工作现场检查报告 新消息

2022-12-23

当前速读:本周盘点(12.19-12.23):欧亚集团周跌4.43%,主力资金合计净流出136.82万元

2022-12-23

泰格医药:12月22日获融资买入2757.44万元,占当日流入资金比例7.27%-全球最资讯

2022-12-23

考完中级会计考试需要参加评审吗

2022-12-22

冠龙节能:公司四季度生产运营正常,详细财务数据,请持续关注公司定期报告

2022-12-22

环球微头条丨逾期5年延迟还款影响征信吗

2022-12-22

3小时!开发ChatGPT微信小程序 焦点精选

2022-12-21

中国工业百强区揭晓 深圳市龙岗区再次位列全国工业百强区榜首

2022-12-21

西陇科学: 第五届监事会第十四次会议决议公告

2022-12-07

汉嘉设计:近期公司作为联合体成员之一中标了钱潮嘉苑共有产权房项目EPC工程总承包工程_每日观点

2022-12-06

山东推出文化体验主题旅游产品 推出多种旅游惠民措施

2022-05-22

唐山加快验收时间 为建筑工地开复工保驾护航

2022-03-19

消费者“身材焦虑” 减肥市场疯狂吸金

2022-03-19

2月份秦皇岛新建商品住宅销售价格环比下降0.2% 同比下降4%

2022-03-19

深圳技术进出口全年合同数量共1347项 同比增长2.51%

2022-03-19

邢台柏乡:打造羊肚菌产业示范带 引领村级集体经济发展

2022-03-19

胡金秋32分17板 浙江广厦男篮“双杀”稠州金租

2022-03-19

新疆北部有降雪 湖北、湖南等地出现大雾

2021-12-13

黑龙江新增本土核酸检测初筛阳性人员5例 均在讷河市

2021-12-13

“恋爱盲盒”抽的不是爱情,是急功近利的心

2021-12-13

北京12月12日新增2例境外输入确诊病例

2021-12-13

满洲里本轮疫情社会面“清零”,迎来拐点!

2021-12-13

北京今日晴冷在线气温低 本周中后期或再遭冷空气侵袭

2021-12-13

近六成受访大学生表示自己不能脱离表情包

2021-12-13

停车费上涨,昆明部分医院停车难缓解了吗?

2021-12-13

救人快递小哥:我不想成为网红 将继续踏实工作

2021-12-13

野猪拟从“三有”野生动物名录中除名

2021-12-13

“三有”名录删除野猪,要把握好捕杀与保护的度

2021-12-13

齐齐哈尔讷河发现5例核酸检测初筛阳性人员

2021-12-13

野猪退出“三有”名录不是一道“滥捕滥杀令”

2021-12-13

网红蹭“遗孤”流量是变相吃“血馒头”

2021-12-13

演员涂们病逝 曾被称为“草原王爷专业户”

2021-12-13

被偷走的那些年:被拐14年后他们成夹在中间的孩子

2021-12-13

文峰道歉:官微官网整改,10个工作日内对接预付卡备案

2021-12-13

山东烟台海域货船沉没已致9人遇难 搜救仍在进行

2021-12-13

浙江绍兴累计报告确诊病例107例 无症状感染者1例

2021-12-13

第三届国际白鹤论坛举办 中外专家聚焦生物多样性保护

2021-12-13

浙江绍兴本轮疫情已累计报告107例确诊病例

2021-12-13

“零容忍” 浙江宁波公安机关将严厉打击涉疫违法犯罪行为

2021-12-13

宁波镇海疫情未发生外溢 44例感染者均在蛟川街道管控区内

2021-12-13

来华留学生游梵净山 感知贵州多彩文化

2021-12-13