当前位置: 首页 > article >正文

RT-DETR融合[AAAI2025]的ConSeg中的模块


RT-DETR使用教程: RT-DETR使用教程

RT-DETR改进汇总贴:RT-DETR更新汇总贴


《ConDSeg: A General Medical Image Segmentation Framework via Contrast-Driven Feature Enhancement》

一、 模块介绍

        论文链接:https://arxiv.org/abs/2412.08345

        代码链接:https://github.com/Mengqi-Lei/ConDSeg

论文速览:

        医学图像分割在临床决策、治疗计划、疾病跟踪等方面发挥着重要作用。然而,它仍面临两大挑战。一方面,医学图像的前景和背景之间往往存在“软边界”,较差的照度和较低的对比度进一步降低了图像内前景和背景的可分辨性。另一方面,医学图像中普遍存在共现现象,学习这些特征会对模型的判断产生误导。为了解决这些挑战,我们提出了一个称为对比度驱动医学图像分割(ConDSeg)的通用框架。首先,我们开发了一种称为一致性强化的对比训练策略。它旨在提高编码器在各种光照和对比度场景下的鲁棒性,使模型即使在恶劣环境下也能提取高质量的特征。其次,我们引入了语义信息解耦模块,该模块能够将编码器的特征解耦到前景、背景和不确定区域,在训练过程中逐渐获得减少不确定性的能力。对比驱动特征聚合模块通过对比前景和背景特征,引导多层次特征融合和关键特征增强,进一步区分待分割的实体。为了解决解码器的尺度奇异性问题,我们还提出了一种尺寸感知解码器。它可以准确地定位图像中不同大小的实体,从而避免错误地学习共现特征。在五个医学图像数据集上进行的三种场景的大量实验表明,我们的方法具有最先进的性能,证明了其先进性和对各种医学图像分割场景的普遍适用性。

总结:其中的ContrastDrivenFeatureAggregation模块与DecoupleLayer可以结合使用。


⭐⭐本文二创模块仅更新于付费群中,往期免费教程可看下方链接⭐⭐

RT-DETR更新汇总贴(含免费教程)文章浏览阅读264次。RT-DETR使用教程:缝合教程: RT-DETR中的yaml文件详解:labelimg使用教程:_rt-deterhttps://xy2668825911.blog.csdn.net/article/details/143696113 ⭐⭐付费项目简介:融合上百种顶刊顶会模块的YOLO项目仅119,此外含高性能自研模型与本文模块融合进行二创三创,最快1-2周完成小论文改进实验,代码每周更新(上周更新超20+二创模块),欢迎QQ:2668825911(点击下方小卡片扫二维码)加我了解。⭐⭐

⭐⭐本项目并非简单的模块插入,平均每个文章对应4-6个二创或自研融合模块,有效果即可写论文或三创。本文项目使用ultralytics框架,兼容YOLOv3\5\6\8\9\10\world与RT-DETR。⭐⭐

        已进群小伙伴可以先用下文二创及自研模块在自己的数据集上测试,有效果再进行模块结构分析或继续改进。


二、二创融合模块

2.1 相关二创模块及所需参数

       本文暂无二创模块。

2.2 更改yaml文件 (以自研模型加入为例)

yam文件解读:YOLO系列 “.yaml“文件解读_yolo yaml文件-CSDN博客

       打开更改ultralytics/cfg/models/rt-detr路径下的rtdetr-l.yaml文件,替换原有模块。

# Ultralytics YOLO 🚀, AGPL-3.0 license
# RT-DETR-l object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/rtdetr
# ⭐⭐Powered by https://blog.csdn.net/StopAndGoyyy,  技术指导QQ:2668825911⭐⭐

# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n-cls.yaml' will call yolov8-cls.yaml with scale 'n'
  # [depth, width, max_channels]
  l: [1.00, 1.00, 512]
#  n: [ 0.33, 0.25, 1024 ]
#  s: [ 0.33, 0.50, 1024 ]
#  m: [ 0.67, 0.75, 768 ]
#  l: [ 1.00, 1.00, 512 ]
#  x: [ 1.00, 1.25, 512 ]
# ⭐⭐Powered by https://blog.csdn.net/StopAndGoyyy,  技术指导QQ:2668825911⭐⭐

backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  - [-1, 2, CCRI, [128, 5, True, False]]
  - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  - [-1, 4, CCRI, [256, 3, True, True]]
  - [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
  - [-1, 1, ConDSeg_model, [512]]
  - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  - [-1, 2, CCRI, [1024, 3, True, False]]

head:
  - [-1, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 9 input_proj.2
  - [-1, 1, AIFI, [1024, 8]]
  - [-1, 1, Conv, [256, 1, 1]] # 11, Y5, lateral_convs.0

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [6, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 13 input_proj.1
  - [[-2, -1], 1, Concat, [1]]
  - [-1, 2, RepC4, [256]] # 15, fpn_blocks.0
  - [-1, 1, Conv, [256, 1, 1]] # 16, Y4, lateral_convs.1

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [4, 1, Conv, [256, 1, 1, None, 1, 1, False]] # 18 input_proj.0
  - [[-2, -1], 1, Concat, [1]] # cat backbone P4
  - [-1, 2, RepC4, [256]] # X3 (20), fpn_blocks.1

  - [-1, 1, Conv, [256, 3, 2]] # 22, downsample_convs.0
  - [[-1, 16], 1, Concat, [1]] # cat Y4
  - [-1, 2, RepC4, [256]] # F4 (23), pan_blocks.0

  - [-1, 1, Conv, [256, 3, 2]] # 24, downsample_convs.1
  - [[-1, 11], 1, Concat, [1]] # cat Y5
  - [-1, 2, RepC4, [256]] # F5 (26), pan_blocks.1

  - [[20, 23, 26], 1, RTDETRDecoder, [nc]] # Detect(P3, P4, P5)
# ⭐⭐Powered by https://blog.csdn.net/StopAndGoyyy,  技术指导QQ:2668825911⭐⭐

 2.2 修改train.py文件

       创建Train_RT脚本用于训练。

from ultralytics.models import RTDETR
import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'

if __name__ == '__main__':
    model = RTDETR(model='ultralytics/cfg/models/rt-detr/rtdetr-l.yaml')
    # model.load('yolov8n.pt')
    model.train(data='./data.yaml', epochs=2, batch=1, device='0', imgsz=640, workers=2, cache=False,
                amp=True, mosaic=False, project='runs/train', name='exp')

         在train.py脚本中填入修改好的yaml路径,运行即可训。



http://www.kler.cn/a/488243.html

相关文章:

  • 基类指针指向派生类对象,基类指针的首地址永远指向子类从基类继承的基类首地址
  • 4 $ 符号
  • HTB:Topology[WriteUP]
  • ubuntu20下编译linux1.0 (part1)
  • matlab编写分段Hermite插值多项式
  • 透明部署、旁路逻辑串联的区别
  • 慧知开源充电桩平台:优势与国际化之路
  • Java 原型模式、建造者模式、单例模式
  • ESP32作为Wi-Fi STA模式的测试
  • CLIP代码相关问题
  • Python中用Open3D 可视化的点云窗口快捷键
  • 荒腔走板Mac电脑本地部署 LLM
  • MySQL使用C语言连接
  • 使用SPI机制加载实现类
  • 一文流:Maven精讲
  • 深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
  • ASP.NET Core 实现微服务 -- Polly 服务降级熔断
  • 深入浅出负载均衡:理解其原理并选择最适合你的实现方式
  • Node 之 Stream 深度剖析:从原理到项目实战应用场景全解
  • 网络安全有哪些细分方向?零基础学Web安全需要掌握的知识(附系统路线+工具笔记)
  • Vue3+TS+vite项目笔记1
  • 实战设计模式之桥接模式
  • Gin框架中间件原理
  • 24级 秋季学期期末考试安排(专升本)
  • 计算机网络(二)——物理层和数据链路层
  • Lua语言的文件IO