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

(即插即用模块-特征处理部分) 四十四、(2024 TGRS) FEM 特征增强模块

在这里插入图片描述

文章目录

  • 1、Feature Enhancement Module
  • 2、代码实现

paper:FFCA-YOLO for Small Object Detection in Remote Sensing Images

Code:https://github.com/yemu1138178251/FFCA-YOLO


1、Feature Enhancement Module

遥感图像中,小目标的特征通常很微弱,且容易受到背景干扰。这篇论文提出一种 特征增强模块(Feature Enhancement Module),FFCA-YOLO 的特征增强模块 (FEM) 旨在通过以下两种方式增强小目标的特征表示:增加特征丰富度: 利用多分支结构提取更多具有判别性的语义信息;扩大感受野: 应用扩张卷积获取更丰富的局部上下文信息,从而更好地理解小目标的周围环境。

实现过程:

  1. 输入特征图经过 1x1 卷积调整通道数。
  2. 第一分支进行残差连接,保留关键特征信息。
  3. 第二分支和第三分支进行级联的标准卷积操作,并通过扩张卷积层提取更多上下文信息。
  4. 将三个分支的输出特征图进行拼接,并与原始输入特征图进行元素级加法,得到 FEM 的输出特征图。

Feature Enhancement Module 结构图:
在这里插入图片描述


2、代码实现

import torch
import torch.nn as nn""" 官方github里没找到代码,但结构不复杂,复现了一下 """
class FEM(nn.Module):def __init__(self, in_channels):super(FEM, self).__init__()# 1x1卷积,用于初步调整通道数self.conv1x1 = nn.Conv2d(in_channels, in_channels, kernel_size=1, stride=1, padding=0)# 第一个分支:3x3标准卷积self.branch1 = nn.Conv2d(in_channels, in_channels, kernel_size=3, stride=1, padding=1)# 第二个分支:包含空洞卷积的一系列卷积self.branch2 = nn.Sequential(nn.Conv2d(in_channels, in_channels, kernel_size=(1,3), stride=1, padding=(0,1)),nn.Conv2d(in_channels, in_channels, kernel_size=(3,1), stride=1, padding=(1,0)),nn.Conv2d(in_channels, in_channels, kernel_size=3, stride=1, padding=5, dilation=5),)# 第三个分支:与第二个分支结构类似,但卷积核顺序不同self.branch3 = nn.Sequential(nn.Conv2d(in_channels, in_channels, kernel_size=(3,1), stride=1, padding=(1,0)),nn.Conv2d(in_channels, in_channels, kernel_size=(1,3), stride=1, padding=(0,1)),nn.Conv2d(in_channels, in_channels, kernel_size=3, stride=1, padding=5, dilation=5),)self.cat = nn.Conv2d(in_channels * 3, in_channels, kernel_size=1, stride=1)def forward(self, x):# 1x1卷积调整通道数x_1x1 = self.conv1x1(x)# 各分支进行卷积操作branch1_out = self.branch1(x_1x1)branch2_out = self.branch2(x_1x1)branch3_out = self.branch3(x_1x1)# 特征图拼接cat_out = torch.cat([branch1_out, branch2_out, branch3_out], dim=1)# 与原始输入的1x1卷积结果相加out = self.cat(cat_out) + x_1x1return outif __name__ == '__main__':x = torch.randn(4, 64, 128, 128).cuda()model = FEM(64).cuda()out = model(x)print(out.shape)

相关文章:

(即插即用模块-特征处理部分) 四十四、(2024 TGRS) FEM 特征增强模块

文章目录 1、Feature Enhancement Module2、代码实现 paper:FFCA-YOLO for Small Object Detection in Remote Sensing Images Code:https://github.com/yemu1138178251/FFCA-YOLO 1、Feature Enhancement Module 遥感图像中,小目标的特征通…...

“情况说明“以后,Unity XR 开发者如何选择?

Unity自4月7日发布了一系列“情况说明”,点进来的朋友应该都是看过的,此处不再赘述。此后引发了开发者社区的广泛关注和讨论。作为细分领域的XR开发者,此时也会面临着工具和版本的抉择或迷茫。笔者同样面临这些问题,因为要确定未来…...

c#版yolo可视化标注和一键免环境训练系统0429更新介绍

yolo免环境一键训练工具c#版yolo标注工具 ## 更新日志 - 2025.4.1: 1、软件上线 - 2025.4.6 1、调整界面,修复用户在1920*1080不能全部显示问题 2、修复 刷新当前目录 无法加载新增图片问题 3、新增 下一张图片快捷键 Enter或者ctrl↓&…...

Leetcode 3533. Concatenated Divisibility

Leetcode 3533. Concatenated Divisibility 1. 解题思路2. 代码实现 题目链接:3533. Concatenated Divisibility 1. 解题思路 这一题的话事实上如果我们原始的数组有序排列一下,然后依次考察每个元素是否可以被选用,此时,我们得…...

CosyVoice、F5-TTS、GPT-SoVITS、Fish-Speech声音模型项目深度对比:选型指南

在数字人、虚拟助手、智能客服等应用快速发展的背景下,文本转语音(TTS)和语音克隆技术已成为AI领域的核心技术之一。本文将对目前主流的四个开源语音合成项目——CosyVoice、F5-TTS、GPT-SoVITS 和 Fish-Speech进行全方位对比分析&#xff0c…...

什么是DNS缓存?怎么清理DNS缓存?

在网络世界中,当我们输入一个网址想要访问某个网站时,计算机并不能直接识别“www.example.com”这样的网址,而是需要将其转换为对应的IP地址才能进行通信。这个转换过程由域名系统(DomainNameSystem,简称DNS&#xff0…...

基于STM32、HAL库的ATECC508A安全验证及加密芯片驱动程序设计

一、简介: ATECC508A是Microchip公司生产的一款加密认证芯片,提供以下主要特性: 基于硬件的ECDSA (Elliptic Curve Digital Signature Algorithm) 加密 支持SHA-256哈希算法 内置真随机数生成器(TRNG) 16个密钥存储槽位,可配置多种用途 支持I2C接口,最高1MHz时钟频率 超低…...

初中九年级学生体测准考证照片采集软件使用说明

随着中考体育测试的临近,各校陆续开始组织学生进行准考证照片、中考报名照片的采集工作。为方便学校集中采集和学生自主完成照片拍摄,本文将详细介绍使用"校园证件照采集平台"进行手机拍照线上采集的操作方法,帮助学校轻松完成体测…...

提供一些其他常见的字符串处理算法的Java示例

以下为你提供几种常见字符串处理算法的 Java 示例: 1. 字符串反转 反转字符串即把字符串中的字符顺序颠倒。 public class RemoveSpaces {public static String removeSpaces(String str) {return str.replaceAll("\\s", "");}public static…...

软件设计师-软考知识复习(2)

PERT图详解 PERT(Program Evaluation and Review Technique,计划评审技术)是一种用于项目管理的图形化工具,主要用于分析任务的时间安排、识别关键路径和优化资源分配。它特别适用于复杂项目,其中任务之间存在依赖关系…...

Qwen3快速部署 Qwen3-0.6B、Qwen3-8B、Qwen3-14B,Think Deeper

文章目录 0 Qwen31 平台与环境安装1 模型下载2 模型测试 0 Qwen3 今天,通义千问Qwen团队正式开源推出 Qwen3,这是 Qwen 系列大型语言模型的最新成员。最新的Qwen3系列模型具备双模推理能力(深入思考/快速响应)、支持119种语言及方…...

【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十七章 IO流:超越FILE*的维度战争

一、从C文件操作到Java流的进化 1.1 C文件操作的原始挑战 C语言通过FILE*和低级文件描述符进行I/O操作&#xff0c;存在诸多限制&#xff1a; 典型文件复制代码&#xff1a; #include <stdio.h> int copy_file(const char* src, const char* dst) { FILE* in fope…...

Leetcode刷题记录22——滑动窗口最大值

题源&#xff1a;https://leetcode.cn/problems/sliding-window-maximum/description/?envTypestudy-plan-v2&envIdtop-100-liked 题目描述&#xff1a; 思路一&#xff1a; 暴力遍历法&#xff0c;通过一个长度为k的滑动窗口遍历nums&#xff0c;将其中最大的数依次记…...

React 第三十四节 Router 开发中 useLocation Hook 的用法以及案例详解

一、useLocation基础用法 作用&#xff1a;获取当前路由的 location 对象 返回对象结构&#xff1a; {pathname: "/about", // 当前路径search: "?namejohn", // 查询参数&#xff08;URL参数&#xff09;hash: "#contact", …...

BT134-ASEMI机器人功率器件专用BT134

编辑&#xff1a;LL BT134-ASEMI机器人功率器件专用BT134 型号&#xff1a;BT134 品牌&#xff1a;ASEMI 封装&#xff1a;TO-126 批号&#xff1a;最新 引脚数量&#xff1a;3 封装尺寸&#xff1a;如图 特性&#xff1a;双向可控硅 工作结温&#xff1a;-40℃~150℃…...

十五种光电器件综合对比——《器件手册--光电器件》

十五、光电器件 名称 原理 特点 应用 发光二极管&#xff08;LED&#xff09; 基于半导体材料的电致发光效应&#xff0c;当电流通过时&#xff0c;电子与空穴复合&#xff0c;释放出光子。 高效、节能、寿命长、响应速度快、体积小。 广泛用于指示灯、照明、显示&#…...

网络安全攻防演练实训室建设方案

一、引言 在数字化浪潮席卷全球的当下&#xff0c;网络已深度融入社会的各个层面&#xff0c;成为推动经济发展、社会进步和科技创新的关键力量。从日常生活中的移动支付、社交互动&#xff0c;到企业运营中的数据管理、业务拓展&#xff0c;再到国家关键基础设施的运行&#…...

极客天成受邀参加2050大会,共赴人工智能科技盛宴

2025年4月25日&#xff0c;备受瞩目的2050大会在杭州云栖小镇盛大开幕。作为科技领域的佼佼者&#xff0c;北京极客天成科技有限公司受邀参加了此次盛会&#xff0c;与全球科技爱好者共同探索科技的未来。 大会盛况空前&#xff0c;科技盛宴开启 2050大会是由杭州市云栖科技创…...

GUI_DrawPixel 函数详解

GUI_DrawPixel 是嵌入式GUI库中的基础像素绘制函数&#xff0c;用于在指定坐标绘制单个像素点。下面我将详细介绍这个函数的功能、实现和使用方法。 1. 函数功能 在显示屏的指定位置(x,y)绘制一个像素点 使用当前设定的颜色进行绘制 是构建所有高级图形&#xff08;线、圆、…...

AWS MSK 集群升级前配置检查:保障升级平稳进行的关键步骤

在 AWS Managed Streaming for Apache Kafka (MSK) 集群升级之前,进行全面的配置检查至关重要。本文将介绍一个用于 MSK 升级前配置检查的 Bash 脚本,帮助您识别潜在的风险点,确保升级过程的顺利进行。 为什么需要升级前检查? AWS MSK 提供了自动升级功能,但在升级过程中,不…...

leetcode 2516. 每种字符至少取 K 个

题目描述 滑动窗口问题 可以转化为求按照题目要求从两端取走字符后&#xff0c;中间部分的最大长度。中间部分就是一个滑动窗口。 class Solution { public:int takeCharacters(string s, int k) {vector<int> count(3,0);int n s.size();for(int i 0;i <n;i){cou…...

通信原理第七版与第六版区别附pdf

介绍 我用夸克网盘分享了「通信原理 第7版》樊昌信」&#xff0c;链接&#xff1a;https://pan.quark.cn/s/be7c5af4cdce 《通信原理&#xff08;第7版&#xff09;》是在第6版的基础上&#xff0c;为了适应当前通信技术发展和教学需求&#xff0c;并吸取了数十所院校教师的反…...

CPU 空转解析

在编程中&#xff0c;“避免 CPU 空转” 指的是防止程序在等待某个条件满足时&#xff0c;无意义地消耗 CPU 资源。以下是对这一问题的详细解释&#xff1a; 1. 什么是 CPU 空转&#xff1f; 当代码中出现类似以下逻辑时&#xff1a; while not condition_met: # 循环检查条…...

云蝠智能大模型智能呼叫:赋能零售行业服务,助力客户增长

在数字化浪潮席卷全球的今天&#xff0c;零售行业正面临前所未有的变革压力。消费者需求日益个性化、市场竞争愈发激烈&#xff0c;传统的人工客服模式已难以满足企业对高效触达、精准营销和极致体验的需求。而云蝠智能大模型智能呼叫系统&#xff0c;凭借其突破性的AI技术和深…...

Consul安装部署(Windows环境)

部署资料链接&#xff1a;https://download.csdn.net/download/ly1h1/90722829​​​​​ 1.下载 Consul 1.访问 Consul 官方下载页面&#xff1a;Install | Consul | HashiCorp Developer 2.选择适合 Windows 的版本&#xff08;如 consul_1.16.1_windows_amd64.zip&#xff…...

Sql刷题日志(day7)

面试&#xff1a; 1、怎么样的数据挖取能真正对业务起到指导作用&#xff1f; 明确的业务目标&#xff1a;开始之前明确你想通过数据挖掘解决的业务问题。这些问题应具体、可量化&#xff0c;并与业务战略紧密相关。正确的数据集&#xff1a;确保使用的数据与你的业务问题相关…...

【MuJoCo仿真】开源SO100机械臂导入到仿真环境

主要参考&#xff1a;https://github.com/jpata/gym-so100/tree/integration/gym_so100/assets/trs_so_arm100 参考&#xff1a;&#xff08;八&#xff09;lerobot开源项目扩展so100的仿真操控&#xff08;操作记录&#xff09;_so100机械臂 仿真-CSDN博客 下载&#xff1a;…...

redis 有序集合zrange和zrangebyscore的区别

起因是查询数据&#xff0c;用了zrangebyscore 但是一直显示没数据 具体命令zrangebyscore key 0 -1 withscores, 原有印象中一直是这么用的&#xff0c;但是突然查不出来了&#xff0c; 于是搜了下问题所在。 通过分数查看 不能用0和-1表示最小和最大&#xff0c;只能用分数来…...

基于C#窗体+GDI+绘图实现分形树

实验&#xff1a;分形树 一. 引言 实验目的:继续学习C#窗体应用程序的图形化界面设计以及GDI绘图的一些基本指示,通过制作各种类型的分形树增强对于递归的理解,在创造分形图形的过程中感受编程的快乐 Tutorial任务 1.制作不同类型的分形图形(本次演示的是两种不同类型的分…...

使用Langchain+DeepSeep进行测试相关工作

1.使用BaseChatModel实现自定义DeepSeekLLM import json import typing from typing import Optional, Any, List, Dict, Union, Sequence, Callable, Literalimport requests from langchain_core.callbacks import CallbackManagerForLLMRun from langchain_core.language_m…...

Java练习6

一.题目 数字加密与解密 需求: 某系统的数字密码&#xff08;大于 0&#xff09;&#xff0c;比如 1983&#xff0c;采用加密方式进行传输。 规则如下: 先得到每位数&#xff0c;然后每位数都加上 5&#xff0c;再对 10 求余&#xff0c;最后将所有数字反转&#xff0c;得到一…...

二叉树知识点

1、树形结构 1.1概念 二叉树属于树形结构&#xff0c;所以先了解树形结构之后&#xff0c;再学习二叉树。 树形结构是一种非线性的数据结&#xff0c;是由n个有限节点组成的一个具有层次关系的集合&#xff0c;其形状就像一棵到这的树&#xff0c;跟朝上&#xff0c;叶子朝下…...

neo4j暴露公网ip接口——给大模型联通知识图谱

特别鸣谢 我的领导&#xff0c;我的脑子&#xff0c;我的学习能力&#xff0c;感动了 1. 搭建知识图谱数据库&#xff08;见上一章博客&#xff09; 这里不加赘述了&#xff0c;请参考上一篇博客搭建 2. FastApi包装接口 这里注意&#xff1a;NEO4J_URI不得写http:,只能写…...

在阿里云实例上部署通义千问QwQ-32B推理模型

通义千问QwQ-32B是阿里云开源的320亿参数推理模型,通过大规模强化学习在数学推理、编程及通用任务中实现性能突破,支持消费级显卡本地部署,兼顾高效推理与低资源消耗。 本文将介绍如何利用vLLM作为通义千问QwQ-32B模型的推理框架,在一台阿里云GPU实例上构建通义千问QwQ-32…...

GEE进行Theil-Sen Median斜率估计和Mann-Kendall检验

介绍一下Theil-Sen Median斜率估计和Mann-Kendall趋势分析&#xff0c;这两种方法经常结合使用&#xff0c;前者用于估计趋势的斜率&#xff0c;后者用于检验趋势的显著性。如多年NPP或者NDVI的趋势分析。 主要介绍使用GEE实现这一内容的代码方法&#xff0c;若使用python&…...

WSL2下Docker desktop的Cadvisor容器监控

由于WSL2的Docker存放是在Linux的docker-desktop目录下&#xff0c;需要从这里面挂载到WSL2里的/var/lib/docker&#xff0c;并且正确挂载启动&#xff0c;才能使 Cadvisor 识别到docker容器并且监控资源。 首先需要在WSL2终端进行挂载操作&#xff1a; sudo mount -t drvfs \…...

深度学习---pytorch搭建深度学习模型(附带图片五分类实例)

一、PyTorch搭建深度学习模型流程 1. 环境准备 安装PyTorch及相关库&#xff1a; pip install torch torchvision numpy matplotlib2. 数据准备 数据集加载&#xff1a;使用内置数据集&#xff08;如CIFAR-10&#xff09;或自定义数据集。数据预处理&#xff1a;包括归一化…...

基于 STM32 的智慧图书馆智能控制系统设计与实现

一、系统架构概述 智慧图书馆智能控制系统集成环境调控、安全监控、借阅管理与信息推送功能,通过 STM32 主控芯片联动传感器、执行器及云平台,实现图书馆智能化管理。系统架构分为感知层(传感器)、控制层(STM32 主控)、执行层(继电器 / 显示屏)及云端层(数据交互),…...

4. python3基本数据类型

Python3 中有六个标准的数据类型&#xff1a; Number&#xff08;数字&#xff09; String&#xff08;字符串&#xff09; List&#xff08;列表&#xff09; Tuple&#xff08;元组&#xff09; Set&#xff08;集合&#xff09; Dictionary&#xff08;字典&#xff09; Pyt…...

什么是缓冲区溢出?NGINX是如何防止缓冲区溢出攻击的?

大家好&#xff0c;我是锋哥。今天分享关于【什么是缓冲区溢出&#xff1f;NGINX是如何防止缓冲区溢出攻击的&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是缓冲区溢出&#xff1f;NGINX是如何防止缓冲区溢出攻击的&#xff1f; 缓冲区溢出是指程序试图向一个固定…...

4.27搭建用户界面

更新 router下面的index.js添加新的children 先区分一下views文件夹下的不同vue文件&#xff1a; Home.vue是绘制home页面的所有的表格。 Main.vue是架构头部和左侧目录的框架的。 研究一下这个routes对象&#xff0c;就可以发现重定向redirect的奥妙所在&#xff0c;我们先把…...

常用回环检测算法对比(SLAM)

回环检测本质上是一种数据相似性检测算法,原理是通过识别机器人是否回到历史位置,建立位姿约束以优化全局地图,纠正长期的里程计漂移实现全局地图的一致性,简单讲就是识别场景中的重复特征以修正累积误差。 1. 概述 算法类别原理特点优势劣势词袋模型特征聚类为单词,TF-I…...

《从线性到二维:CSS Grid与Flex的布局范式革命与差异解析》

在前端开发的广袤宇宙中&#xff0c;CSS布局技术宛如闪耀的星辰&#xff0c;不断革新与演进&#xff0c;为构建绚丽多彩的网页世界提供了坚实的支撑。其中&#xff0c;CSS Grid布局与Flex布局作为两颗璀璨的明星&#xff0c;以其独特的魅力和强大的功能&#xff0c;深受开发者们…...

理解 EKS CloudWatch Pod CPU Utilization 指标:与 `kubectl top` 及节点 CPU 的关系

在使用 AWS EKS 时&#xff0c;CloudWatch Container Insights 提供了丰富的容器级别监控指标&#xff0c;帮助我们深入了解应用的运行状态。如下截图中的 ContainerInsights pod_cpu_utilization 指标就是一个非常重要的维度。本文将详细解释这个指标的含义&#xff0c;并将其…...

解读JetBrains ToolBox以及Windows环境AppData的那点事

AppData 顾名思义应用程序数据&#xff0c;指的就是程序运行实例数据。用于存储应用程序的自定义设置和缓存数据。这些数据不仅包括程序个性化的配置&#xff0c;还涵盖了在应用程序运行过程中产生的临时文件和日志信息。 本身它是一个隐藏文件夹&#xff0c;位于每个用户的个人…...

Elasticsearch:ES|QL lookup JOIN 介绍 - 8.18/9.0

警告&#xff1a;此功能在 8.18/9.0 中刚推出。此功能处于技术预览阶段&#xff0c;未来版本可能会更改或删除。Elastic 会努力修复任何问题&#xff0c;但技术预览中的功能不受正式 正式发布功能支持 SLA 的约束。 ES|QL LOOKUP JOIN 处理命令将你的 ES|QL 查询结果表中的数据…...

基于开闭原则优化数据库查询语句拼接方法

背景 在开发实践中&#xff0c;曾有同事在实现新功能时&#xff0c;因直接修改一段数据库查询条件拼接方法的代码逻辑&#xff0c;导致生产环境出现故障。 具体来看&#xff0c;该方法通过在函数内部直接编写条件判断语句实现查询拼接&#xff0c;尽管从面向对象设计的开闭原…...

无人机航拍牛只检测数据集VOC+YOLO格式906张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;906 标注数量(xml文件个数)&#xff1a;906 标注数量(txt文件个数)&#xff1a;906 标注…...

【LeetCode 560】和为K的子数组(前缀和+哈希)

题面&#xff1a; 思路&#xff1a; 看到连续非空序列之和&#xff0c;容易想到前缀和计算差分&#xff0c; n u m s nums nums 区间 [ j , i ] [j,i] [j,i] 的和即为&#xff1a; s u m ( i , j ) p r e [ i ] − p r e [ j − 1 ] sum(i, j) pre[i] - pre[j-1] sum(i,j)…...

手术中评估帕金森患者手部运动的无接触式系统

南开大学韩建达教授研究团队提出一种针对帕金森病手术治疗的评估系统&#xff0c;可在手术中对患者手部运动进行实时监测&#xff0c;实现无接触式运动特征提取&#xff0c;并结合可视化数据分析辅助临床决策。相关研究论文“A non-contact system for intraoperative quantita…...