图像分类,目标检测,语义分割的FC的区别

还有半个月就要过年啦,提前给大伙拜个年哈哈,快放假了又进入了划水的阶段啥都不太想干,但是就算是划水也不能中断思考啊,谁让咱是搞技术的呢,过去的几个月里把语义分割,目标检测和图像分类都稍微了解了一下,因为是入门阶段所以聊得东西都比较简单,这篇博客就聊一聊这几个任务在全连接层上的不同。

首先讲一下图像分类,我们都知道分类是所有深度学习任务的基础,就拿vgg16这个网络打个比方,当输入图像的crop_size是227的时候,batchsize是32,fc6层的output是4096时,那么fc6层的输出向量纬度是4906*512*7*7,512是pool5层的输出向量纬度,就是输出了512个特征图每个特征图的大小是7*7.

再讲一下目标检测,就以faster rcnn为例子,faster rcnn先检测出最优的300个目标窗口,然后fc层就将这300个目标作为300个图像再进行图像分类。

最后讲一下语义分割,比如说deeplab和FCN语义分割呢是像素级别的分割,简单说就是将每一个像素作为一个图像进行分类。

就先这样啦,再有多的理解再补充

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像级Transformer弱监督语义分割是一种利用Transformer模型进行图像分割的方法,它可以在没有像素级标注的情况下进行语义分割。下面是一个简单的步骤: 1.首先,使用一个预训练的卷积神经网络(CNN)提取图像特征。 2.然后,将这些特征输入到Transformer模型中,以学习像素之间的关系。 3.在训练过程中,使用图像级别的标签来指导模型进行学习,而不是使用像素级别的标注。 4.最后,使用训练好的模型对新的图像进行分割。 下面是一个示例代码: ```python import torch import torch.nn as nn import torch.nn.functional as F from transformers import TransformerEncoder, TransformerEncoderLayer class ImageTransformer(nn.Module): def __init__(self, input_dim, hidden_dim, num_layers, num_heads): super(ImageTransformer, self).__init__() self.input_dim = input_dim self.hidden_dim = hidden_dim self.num_layers = num_layers self.num_heads = num_heads self.encoder_layer = TransformerEncoderLayer(d_model=input_dim, nhead=num_heads) self.transformer_encoder = TransformerEncoder(encoder_layer=self.encoder_layer, num_layers=num_layers) self.fc = nn.Linear(input_dim, 1) def forward(self, x): x = x.permute(0, 2, 3, 1) # 将通道维度放到最后 b, h, w, c = x.shape x = x.reshape(b*h*w, c) # 将空间维度展平 x = self.transformer_encoder(x) x = self.fc(x) x = x.reshape(b, h, w) return x # 定义模型 model = ImageTransformer(input_dim=512, hidden_dim=256, num_layers=4, num_heads=8) # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) # 训练模型 for epoch in range(num_epochs): for images, labels in train_loader: optimizer.zero_grad() outputs = model(images) loss = criterion(outputs, labels) loss.backward() optimizer.step() # 对新图像进行分割 with torch.no_grad(): outputs = model(new_image) predicted_labels = torch.argmax(outputs, dim=1) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值