基于MMDet的Swin Transformer遥感图像检测

本文详细介绍了如何利用SwinTransformer在舰船SSDD数据集和地面目标MSTAR数据集上进行目标检测。首先,通过MMDet框架安装和配置环境,然后创建配置文件以调整学习率和迭代次数。接着,自定义模型文件,使用SwinTransformer的大型模型并设置PAFPN作为neck。数据集部分涉及COCO和MSTAR的数据加载及Albu数据增强。最后,训练和测试模型,并给出了评估指标。
摘要由CSDN通过智能技术生成

主要使用swin trasnsformer试了一下sar图像的目标检测,用了舰船ssdd数据集和地面目标MSTAR数据集。

MMDet安装

MMDet地址:https://github.com/open-mmlab/mmdetection
直接pull下来后按照官方文档进行安装环境即可。
记得如果克隆环境或转移到别的环境,需要重新setup一下

python setup.py develop

Swin Transformer代码

1.创建configs下的配置文件

configs/swin下创建一个faster_rcnn_swin_l-p4-w12_coco.py
在这个文件中可以修改学习率、迭代次数等参数。

_base_ = [
    '../_base_/models/faster_rcnn_swin_large_fpn.py',
    '../_base_/datasets/faster_rcnn_coco_instance.py',
    '../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py'
]

optimizer = dict(
    _delete_=True,
    type='AdamW',
    # lr=0.0001,
    lr=0.000051,
    betas=(0.9, 0.999),
    weight_decay=0.05,
    paramwise_cfg=dict(
        custom_keys={
   
            'absolute_pos_embed': dict(decay_mult=0.),
            'relative_position_bias_table': dict(decay_mult=0.),
            'norm': dict(decay_mult=0.)
        }))
lr_config = dict(warmup_iters=1000, step=[27, 33])
runner = dict(type='EpochBasedRunner', max_epochs=36)

2.创建model文件

在/base/models/中新建faster_rcnn_swin_large_fpn.py文件
在文件中可以修改网络backbone、neck等配置,这里使用swin的large模型,PAFPN为neck。

# model settings
pretrained = 'D:/Project/mmdetection-master/checkpoints/swin_large_patch4_window12_384_22k.pth'

# 1. ROI 0.5-0.7
# 2. pafpn
# 3. albu_train_transforms
# 4. 多尺度

model = dict(
    type='FasterRCNN',
    backbone=dict(
        type='SwinTransformer',
        embed_dims=192,
        depths=[2, 2, 18, 2],
        num_heads=[6, 12, 24, 48],
        window_size=12,
        mlp_ratio=4,
        qkv_bias=True,
        qk_scale=None,
        drop_rate=0.,
        attn_drop_rate=0.,
        drop_path_rate=0.2,
        patch_norm=True,
        out_indices=(0, 1, 2, 3),
        with_cp=False,
        convert_weights=True,
        init_cfg=dict(type='Pretrained', checkpoint=pretrained)),
    neck=dict(
        type='PAFPN',
        in_channels=[192, 384, 768, 1536],
        out_channels=256,
        num_outs=5),
    rpn_head=dict(
        type='RPNHead',
        in_channels=256,
        feat_channels=256,
        anchor_generator=dict(
            
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于Swin Transformer的图像理解是指利用Swin Transformer模型对图像进行分析和理解的任务。Swin Transformer是一种基于注意力机制的深度学习模型,它采用了分级的视觉Transformer和平移窗口的思想。 Swin Transformer模型的架构图显示了它的各个模块。首先,输入图像会被分成多个小的图像块,这个过程被称为Patch Partition。然后,这些图像块将通过Swin Transformer Block进行处理。Swin Transformer Block是Swin Transformer的核心部分,它由两个结构组成:W-MSA和SW-MSA。其中,W-MSA表示普通的多头自注意力机制,而SW-MSA表示带有平移窗口的多头自注意力机制。这两个结构是成对使用的,通过左侧的W-MSA结构处理后,再经过右侧的SW-MSA结构进行处理。 通过这样的处理过程,Swin Transformer模型能够在图像中捕捉到全局和局部的视觉关系,从而实现对图像的理解和分析。这种模型在图像分类、目标检测和图像分割等任务中已经取得了很好的效果,并且在一些大规模图像数据集上具有很高的性能。因此,基于Swin Transformer的图像理解是指利用这种模型对图像进行高级的语义理解和分析。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【图像分类】Swin Transformer理论解读+实践测试](https://blog.csdn.net/qq1198768105/article/details/126269534)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值