论文题目: Multiscale Feature Fusion Network Incorporating 3D Self-Attention for Hyperspectral Image Classification
作者: 中北大学

期刊: 中科院二区 Remote Sensing
摘要:
近年来,基于深度学习的高光谱图像(HSI)分类方法取得了巨大成功,卷积神经网络(CNN)方法在HSI分类任务中取得了良好的分类性能。然而,卷积操作仅适用于局部邻域,并且在提取局部特征方面是有效的。长距离的交互特征难以捕捉,在一定程度上影响了分类的准确性。同时,来自HSI的数据具有三维、冗余和噪声的特点。为了解决这些问题,我们提出了一种集成了 3D 多头自注意力的 3D 自注意力多尺度特征融合网络(3DSA-MFN)。 3DSA-MFN首先使用不同大小的卷积核提取多尺度特征,对特征图的不同粒度进行采样,有效融合特征图的空间和光谱特征。然后,我们提出了一种改进的 3D 多头自注意力机制,为自注意力分支提供局部特征细节,并充分利用输入矩阵的上下文。为了验证所提出方法的性能,我们将其与三个公共数据集上的六种当前方法进行了比较。实验结果表明,所提出的3DSA-MFN实现了有竞争力的分类并突出了HSI分类任务。
贡献:

3DSA-MFN 网络框架。该方法通过降维和窗口裁剪对原始数据进行预处理,然后将处理后的数据发送到多尺度特征融合、3DCOV_attention等模块进行特征提取,最后在多个全连接层上输出分类结果。
我们首先将处理后的数据样本通过两个多尺度特征融合模块来提取高光谱图像的特征,同时减少特征图的形状并增加特征图的数量。然后,我们不断地将输出特征图通过三个 3DCOV_attention 模块传递,以在对全局依赖关系建模的同时进一步提取高光谱图像特征。同时,我们在不同的 3DCOV_attention 模块中使用步骤 2 中的 3D 卷积来改变特征图形状。最后,输出的特征图经过多个全连接层,输出最终的分类结果。
我们使用不同大小的卷积核对输入特征图进行多尺度特征提取,最后将不同分支提取的特征结果添加到输出,对特征图的不同粒度进行采样,有效融合特征图的空间和光谱特征。

当我们输入大小为{H, W, C, D}的特征图时,首先将特征图发送到卷积核大小为1×1×1、3×3×3、5×5×的CBR模块中的5(依次执行3D卷积、BatchNorm、Relu激活函数),filters为D/2,得到大小为{H, W, C, D/2}的特征图。将得到的特征图发送到卷积核大小分别为1×1×1、3×3×3和5×5×5的CBR模块,滤波器为D。此时,三个特征图为得到sizes {H, W, C, D},最后将三个结果加到输入中,得到最终的输出特征图。

如图3所示,P由三个随机位置码相加得到,其中H、W、C、Q矩阵相同。进行reshape操作后,位置码乘以Q矩阵得到位置码P。
给定形状{H, W, C, D}的特征图x,我们首先通过三个大小为1×1×1的卷积核和一个步长为1×1×1的三维卷积得到三个形状为 {H, W, C, D} 的特征图。对它们进行reshape操作后,我们得到三个矩阵Q、K和V,大小为{N, D/N, HWC},其中保留了上下文信息和局部特征细节,N是个数的头。然后,矩阵 Q 和 K 相乘,得到一个大小为 {N, HWC, HWC } 的注意力矩阵。为了确认图像之间的位置信息,我们在这里引入位置编码信息。初始化三个大小为 {N, D/N, H, 1,1}, {N, D/N, 1, W,1}, {N, D/N, 1, 1,C} 的矩阵。需要注意的是,这里的H、W、C是Q矩阵的H、W、C。如图3所示,我们首先将三个位置矩阵相加得到一个大小为{N, D/N, H, W, C}的矩阵,进行整形操作,乘以Q矩阵得到最终位置编码矩阵P。位置编码矩阵P加入注意矩阵,在Softmax激活函数后乘以矩阵V,输出一个形状为{N, D/N, HWC}的矩阵。执行整形操作后,输出为大小为 {H, W, C, D} 的特征图。
在卷积神经网络(CNN)中,卷积运算基于离散卷积算子。它具有空间局部性和变化的特性,例如平移和共享权重。它现在被广泛用于计算机视觉任务。然而,卷积操作只在局部邻域起作用,在提取局部特征方面是有效的。反过来,有限的感受域阻碍了全局依赖的建模,难以捕捉全局表示,导致全局特征的丢失。然而,由于自注意力可以捕获远距离的交互,因此它被广泛用于计算机视觉。
创建了一个 3DCOV_attention 块,它将提取局部特征的卷积图与可以建立全局依赖关系的自注意力特征图相结合,以增强局部感受野,同时捕获长距离的交互。其中CBR 模块依次执行三维卷积、BatchNorm 和激活函数 (Relu) 等。
如图4所示,整个模块由三维卷积、BatchNorm、激活函数(Relu)、LayerNorm、concatenate、3DMHSA等组件组成。

我们使用了三个广泛使用的公共数据集:




(略)


在这项研究中,我们为 HSI 分类任务提出了一种称为 3DSA-MFN 的网络模型。该网络包括三维多头注意力机制、多尺度特征融合等模块。我们首先使用 PCA 算法来降低频谱的维数并去除噪声和冗余数据。在特征提取阶段,我们首先使用多尺度特征融合模块,首先从不同尺度提取HSI的特征信息。然后,我们将多头自注意力从二维推广到三维,并对其进行有效改进,使其能够充分利用输入矩阵的上下文信息。然后,我们使用改进的 3D-MHSA 对卷积神经网络进行改进,得到 3DCOV_attention 模块。该模块在提取局部特征的同时建立远程依赖,可以同时提高局部感受野,捕捉远距离交互,提高模型的分类性能。为了测试所提出方法的有效性,我们在三个公共数据集上进行了实验。与 SVM、3D-CNN、SSAN、SSRN、HSI-BERT 和 SAT 等方法相比,3DSA-MFN 在 SA 和 UP 数据集上取得了最好的分类性能。对于 IN 数据集,分类性能略低于 HSI-BERT,达到了与 SAT 相当的分类性能。具体而言,对于 SA、IN 和 UP 数据集,3DSA-MFN 的 OA 值分别为 99.92%、99.52% 和 99.77%,AA 值分别为 99.84%、99.32% 和 99.68%。在未来的工作中,我们将专注于优化 HSI 分类任务中的注意力机制和对 HSI 的小样本进行分类。
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01 客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02 数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
之前说过10之后的版本没有3dScan了,所以还是9.8的版本或者之前更早的版本。 3d物体扫描需要先下载扫描的APK进行扫面。首先要在手机上装一个扫描程序,扫描现实中的三维物体,然后上传高通官网,在下载成UnityPackage类型让Unity能够使用这个扫描程序可以从高通官网上进行下载,是一个安卓程序。点到Tools往下滑,找到VuforiaObjectScanner下载后解压数据线连接手机,将apk文件拷入手机安装然后刚才解压文件中的Media文件夹打开,两个PDF图打印第一张A4-ObjectScanningTarget.pdf,主要是用来辅助扫描的。好了,接下来就是扫描三维物体。将瓶
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案
我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG