FFCNet:基于傅立叶变换的频率学习和复杂卷积网络用于结肠疾病分类

本文主要是介绍FFCNet:基于傅立叶变换的频率学习和复杂卷积网络用于结肠疾病分类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • FFCNet: Fourier Transform-Based Frequency Learning and Complex Convolutional Network for Colon Disease Classification
    • 摘要
    • 方法
      • Patch Shuffling Module (PSM)
      • Frequency-Domain Complex Network
        • Complex Convolution
        • Complex ReLU
        • Complex BN
    • 实验结果

FFCNet: Fourier Transform-Based Frequency Learning and Complex Convolutional Network for Colon Disease Classification

摘要

提出了一种基于傅立叶的频率复杂网络(FFCNet)用于结肠疾病分类:

  1. 将复杂卷积网络与频率学习相结合,以克服实际卷积操作造成的相位信息损失
  2. 傅立叶变换将图像的平均亮度转移到光谱中的一个点(DC分量),通过解耦图像内容和亮度来减轻亮度不均匀的影响。
  3. FFCNet中的图像补丁加扰模块生成随机局部频谱块,使网络能够学习长期和局部疾病特异性特征,并提高硬样本的判别能力
    代码链接
    在这里插入图片描述
    频域学习在结肠疾病分类任务中具有潜力和局限性。
    a) 潜力:光谱对亮度不敏感,并且具有位移变化性
    b) 限制:缺乏图像局部信息和相位信息

方法

在这里插入图片描述

Patch Shuffling Module (PSM)

所提出的PSM将时域图像转换为频域表示,包括图像切片、DFT和随机混洗。与没有划片的图像光谱相比,由于频域中的一个点可以影响整个图像的光谱特性,该网络将只学习全局信息,这忽略了结肠分类所需的局部特征

Frequency-Domain Complex Network

所提出的频率学习网络可以在训练过程中通过复杂的操作直接学习复值谱图。复杂网络的骨干架构采用ResNet,内部运算由复杂的子组件(复杂卷积、ReLU、批量归一化)代替。每个残差块由两个3*3卷积层和一个连接路径组成。因此,所提出的网络考虑了频率信息特征的优势和复杂操作的丰富表达能力。

Complex Convolution

为了在复域中执行与传统实值2D卷积等效的运算,将谱图中的复矩阵P=a+bi的实部a和虚部b分别输入到网络中。同时,插入两组卷积核c和d来模拟复数卷积核Q=c+di的实部和虚部。复数卷积可以表示为
在这里插入图片描述

Complex ReLU

在这里插入图片描述

Complex BN

在这里插入图片描述
在这里插入图片描述
这篇文章看代码就差不多了

def forward(self, x, target = None):xr = x[:,[0,1,2],:,:]xi = x[:,[3,4,5],:,:]xr, xi = self.conv1(xr, xi)xr, xi = self.bn1(xr, xi)xr, xi = self.relu(xr, xi)xr, xi = self.maxpool(xr, xi)xr, xi = self.conv2_x(xr, xi)xr, xi = self.conv3_x(xr, xi)xr, xi = self.conv4_x(xr, xi)xr, xi = self.conv5_x(xr, xi)xr, xi = self.avg_pool(xr, xi)xr = xr.view(xr.size(0), -1)xi = xi.view(xi.size(0), -1)xr, xi = self.fc(xr, xi)x = torch.sqrt(torch.pow(xr,2)+torch.pow(xi,2))return x

实验结果

在这里插入图片描述
在这里插入图片描述

这篇关于FFCNet:基于傅立叶变换的频率学习和复杂卷积网络用于结肠疾病分类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232925

相关文章

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

SpringBoot+EasyExcel实现自定义复杂样式导入导出

《SpringBoot+EasyExcel实现自定义复杂样式导入导出》这篇文章主要为大家详细介绍了SpringBoot如何结果EasyExcel实现自定义复杂样式导入导出功能,文中的示例代码讲解详细,... 目录安装处理自定义导出复杂场景1、列不固定,动态列2、动态下拉3、自定义锁定行/列,添加密码4、合并

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2