CV中的上游任务和下游任务是什么?

cv中常常会提到上游任务和下游任务,下面本作者结合资料和自己的理解对这两个概念进行总结。

上游任务:

上游任务就是一种网络框架或网络结构,这种网络是用大量的数据训练出来的模型,我们一般称之为预训练模型(也可称之为模型,预训练模型是一个相对概念,因为上游训练的模型供下游使用,因此对下游来说,上游的模型就是预训练的模型。),常见的预训练模型包括CNN、Transformer等,这类神经网络我们又可以叫backbone,backbone主要是用来提取图像特征的。当我们得到backbone后,我们可以直接用backbone做一些具体的应用,例如图像分类,检测之类的。

上游任务主要是设计模型,训练模型,得到模型权重参数的。一般来讲,在上游训练好的模型不能直接用于下游任务供用户使用,因为预训练模型的网络结构包括一些分类头,这些分类头可能跟下游任务所需要的分类头不一样(例如,上游训练模型的分类类别是1000类,上游fc层的输出是1000个向量,但是下游任务所需要的分类类别是500类,因此上下游fc层的结构不一致,直接用会报错),所以研究者们还需要将预训练模型的某些分类头去掉,例如去掉预训练模型的FC层,只保留主干特征提取网络的权重参数。最终去掉分类头的模型,就是可以用于下游的预训练模型。

注意:预训练模型对下游任务至关重要,没有预训练参数,下游的性能会大打折扣,下游任务可以借助预训练模型进行更好的实现特定任务要求。

下游任务:

下游任务就是CV的应用端,用上游预训练好的模型(backbone)去做目标检测、实例分割、语义分割等任务,相当于去解决一个问题,项目的落地,下游是用来检测上游模型的好坏。

下游任务就相当于一个迁移学习,在上游任务得到预训练模型的基础上,利用该预训练模型训练一个可以完成自己项目的模型。
 

总结:

上游任务是研究者,下游任务是应用者。上游在研究模型,为用户提供模型;下游在研究如何提升模型在具体应用中的各项性能指标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值