YOLOv9
YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
keypoint:Existing methods ignore a fact that when input data undergoes layer-by-layer feature extraction and spatial transformation, large amount of information will be lost.

Main Contributions
- programmable gradient information (PGI)
- Generalized Efficient Layer Aggregation Network (GELAN)
PGI
首先需要先提理论:信息损失
直观一点:

概括地说:随着网络的不断加深,所提取得到的特征信息越来越语义化,越接近于下游的监督真值,信息丢失(提纯)的现象就越严重,但是作为一个主干网络或对于上游任务而言,应当不失偏颇地尽可能多地提取到图像地各种信息。
Ref:REVERSIBLE COLUMN NETWORKS(RevCol)

keypoints:
- reversible;
- Column stack


宏观来看:
微观结构:

yolov9:

GELAN


Experiments
summary

tensorRT

on onnx

ELAN


PGI

some details
train

- mosaic 早停
- 由于采用了PGI,因此不需要使用预训练模型,train-from-scratch可以获取更好的效果。
- auxiliary head(from yolov7):
yolov7:

yolov9中并未将辅助头的结果进行融合,采用了©indepent assigner的方式
export
Reparameterization(from yolov7):
通过重参数化将main branch & aux branch的参数进行重组,以及最终的预测头只输出main branch的结果,从而节省计算成本

在yolov9的源码中,提供了三种训练方式,分别对应单独主干训练,结合一条辅助分支训练,结合两条辅助分支训练,最高使用3+3+3个检测头计算loss,对应不同尺度的网络,使用对应的权重融合策略即可,以yolov9-c为例,
remove from index 23 to index 37:

重计算代码:

rknn test:
pc测试,非量化(rknn_toolkit2)

yolov5-s 55.06M
yolov9-c-converted57.83M

1万+

被折叠的 条评论
为什么被折叠?



