【计算机视觉】上游任务和下游任务的理解

一、前言概述

计算机视觉中有常见的四大任务:

  • 分类(解决"what")
  • 定位(解决"where")
  • 检测(解决"what"和"where")
  • 分割(实例分割、语义分割和场景分割等像素级别的处理)

二、上游任务

预训练模型。一般就是利用上游数据进行预训练,以生成一个包含视觉表征能力的模型。

比如,我们想要的是一个能够提取图片特征能力的卷积神经网络或者Transformer我们会用大量图片用图片分类这个下游任务或者其他比如自监督的方法(可以参考CLIP)去进行训练,得到一个权重合适的模型(能够很好地提取出图像的特征),那么最后我们把得到的这个模型最后一层的FC层(原本用于图片分类输出类别)去掉,这个模型就成为了一个很好的预训练模型,输入一张图,就能够提取出图像的特征,就可以用于我们的下游任务(在这个模型后面加一些诸如检测头之类的模块,处理我们想要的下游任务,或者修改下FC层,用于另外一堆类别的图像分类)。

上游任务一般称为backbone,主干网络。

三、下游任务

下游任务是计算机视觉应用程序,用于评估通过自监督学习学习到的特征的质量。当训练数据稀缺时,这些应用程序可以极大地受益于预训练模型。

下游任务更多的是评估任务,相当于项目落地,需要去做具体任务来评价模型好坏。如图像分类,目标检测、语义分割等具体任务。

下游上游的取名就在于下游任务往往是先用上游任务得到的模型(一般会称为backbone,主干网络)提取图像特征,然后再从这些特征中得到我们想要的结果。

猜你喜欢

转载自blog.csdn.net/wzk4869/article/details/129376020