基于改进RoI Transformer的遥感图像多尺度旋转目标检测

2023-12-19

源自:应用光学

作者:刘敏豪, 王堃, 金睿蛟, 卢天, 李璋

“人工智能技术与咨询”  发布

摘 要

旋转目标检测是遥感图像处理领域中的重要任务,其存在的目标尺度变化大和目标方向任意等问题给自动目标检测带来了挑战。针对上述问题,提出了一种改进的RoI Transformer旋转目标检测框架:首先,利用RoI Transformer检测框架获取旋转的感兴趣区域特征(rotated region of interest, RRoI)用于鲁棒的几何特征提取;其次,在检测器中引入高分辨率网络(high-resolution network, HRNet)提取多分辨率特征图,在保持高分辨率特征同时适应目标的多尺度变化;最后,引入KLD(Kullback-Leibler divergence)损失,解决旋转目标表示的角度周期性的问题,提高检测方法对任意方向目标的适应性,并通过旋转目标边界框参数的联合优化提升目标定位精度。本文提出的旋转目标检测方法,即HRD-ROI Transformer (HRNet + KLD ROI Transformer),在DOTAv1.0和DIOR-R两个公开数据集上与典型的旋转目标检测方法进行了比较。结果显示:相比于传统的RoI Transformer检测框架,本文方法在DOTAv1.0和DIOR-R数据集上检测结果的mAP(mean-average-precision)分别提高了3.7%和4%。

关键词

旋转目标检测 /  RoI Transformer / 高分辨率网络 / 遥感图像目标检测

引 言

基于深度学习的目标检测技术在遥感领域已广泛应用[1]。不同于前视图像中的目标,俯视的遥感图像中的目标具有方向任意的特点(如图1所示),依赖于水平感兴趣区域(horizontal region of interest, HRoI)的通用目标深度学习检测方法通常会引起预测边界框和真实边界框之间的错位[2],在检测大长宽比(如桥梁、大船等)且具有任意角度目标时会包含大量冗余的背景信息。此外,遥感图像中复杂背景、目标的形态变化[3]、目标的密集分布[4]进一步增加了旋转目标检测的难度,针对遥感图像的高精度的旋转目标检测依然具有挑战。

图片

图  1  遥感图像(第1行)和自然图像(第2行)对比图

近年来,在基于深度学习的通用目标检测基础上发展出了多种旋转目标检测方法。通用目标检测主要回归目标区域的(x,y,z,ℎ),其中(x,y)表示HRoI的中心,z和ℎ分别表示HRoI的长度和宽度,而旋转目标检测额外回归一个方向值

图片

,并输出目标区域旋转框(x,y,z,ℎ,

图片

)。MA J Q等学者设计了RRPN(rotated region proposal network)[5],通过对特征提取网络预定义的每一个anchor位置添加一些方向参数,以此生成大量不同尺度、长宽比、方向的anchors,其还提出了RRoIs (rotated region of interest),可以将任意旋转候选区域投影到特征图。RRPN方法可以获得旋转的候选目标区域,提升旋转目标的检测精度,但是这些密集的旋转anchors消耗了大量的计算和存储资源[6]。DING J等人提出了RoI Transformer[3],该方法使用空间变换将水平边界框表示的候选区域转换为旋转框,可以大大减少旋转anchor的数量并提高了检测精度。在RoI Transformer的基础上,HAN J M等提出了ReDet来提取目标的旋转不变特征[7],其以旋转等变网络为骨干网络生成旋转等变特征,可以准确预测目标方向,降低对方向变化建模的复杂性,其还提出了RiRoIAlign(rotation-invariant RoI Align)算法,对每个候选区域提取旋转不变特征,进一步提高了旋转目标的检测精度。RoI Transformer已成为当前最典型的旋转目标检测框架,然而,RoI Transformer采用的骨干网络ResNet[8]会在提取特征时逐渐减小特征图的空间大小[3],因此它对目标的尺度变化非常敏感,对于不同分辨率图像的目标检测适应性不足。此外,RoI Transformer使用基于Smooth L1损失的回归方法来预测目标旋转角度,其无法解决旋转目标表示带来的角度周期性问题,其表现为角度边界不连续性[9-10]以及类正方形问题。

基于RoI Transformer的旋转目标检测常用于双阶段(two-stage)目标检测,其包含生成目标候选区域和目标检测分类两个步骤。最近有学者提出了一些单阶段(one-stage)旋转目标检测方法,例如R3Det(refined rotation RetinaNet)[11],一种基于RetinaNet的端到端精细化旋转目标检测器,它采用从粗到精的渐进回归形式,首先使用水平anchor以达到更高的召回率,然后在后续精细化阶段使用精细的旋转anchor以获得更精确的定位。SASM (shape-adaptive selection and measurement) reppoints[12]方法提出样本自适应选择和分配策略,根据目标的形状信息和特征分布动态选择样本。Oriented reppoints[13]方法提出一种高效的质量评估和样本分类方法,还引入了一种空间约束来惩罚离群点,以实现鲁棒的自适应学习。其他典型的单阶段方法还包括SSD(single shot multibox detector)、YOLO(you only look once)及其改进方法[14]等。在单阶段目标检测中,一种基于高斯分布的回归损失被提出,用来解决目标表示的角度周期性问题,提高了旋转目标的检测精度,其核心步骤是将旋转边界框转换为二维高斯分布,采用的损失包括GWD(Gaussian Wasserstein distance)[9]、KLD(Kullback -Leibler divergence) [15]和KFIoU(Kalman filtering intersection over union)[16]等。单阶段方法一般可以获得比双阶段方法更高的检测效率,但其检测精度也会受到一定的损失[17]。

针对RoI Transformer对多尺度遥感图像旋转目标检测精度不足的问题,本文提出了HRD-ROI Transformer (HRNet + KLD ROI Transformer)方法。首先,采用原始的RoI Transformer检测框架获取RRoI,用于鲁棒的几何特征提取;其次,使用HRNet[18]作为骨干网络,提升模型对多尺度目标检测的适应能力;最后,借鉴单阶段目标检测的损失函数设计思路,以KLD损失代替RoI Transformer检测框架中的Smooth L1损失,解决旋转目标表示带来的角度周期性问题,进一步提高ROI Transformer框架对旋转目标检测能力。

1.   HRD-ROI Transformer

HRD-ROI Transformer使用RoI Transformer作为基本框架。其采用HRNet作为骨干网络,将高分辨率卷积和低分辨率卷积流并行连接,可在保持高分辨率特征提取的前提下提升模型对多尺度目标检测的适应能力。KLD损失用来代替Smooth L1损失,解决度目标表示周期性带来的角度边界不连续性和类正方形问题。

1.1 检测网络整体架构

HRD-ROI Transformer的整体架构如图2所示,主要包含4个部分。

图片

图  2  HRD-ROI Transformer结构图

特征提取模块 采用带有特征金字塔的HRNet提取多层高分辨率特征(见1.2节)。

RPN模块 RPN模块将任意大小的特征图作为输入,生成一系列粗略的HRoIs。

RoI Transformer模块 RoI Transformer模块用于从HRoIs的特征图中生成RRoIs。首先,通过RoI Pooling或RoI Align对不同大小的HRoIs进行RoI提取,得到固定大小(默认为7×7)的RoI特征,然后将每个HRoI特征输入到全连接层中,并对其进行解码,得到相应的粗略RRoIs。

基于KLD损失的RCNN模块 类似于RoI Transformer模块,通过旋转RoI Pooling、旋转RoI warping或旋转RoI Align将不同尺寸的RRoIs进行旋转,RoI提取得到固定尺寸的RoI特征,再输入到全连接层进行分类和更加精细的边界框回归,其中以KLD损失调整边界框回归的结果,最终输出结果。

1.2 高分辨率网络

为了提升检测网络对不同尺度目标的适应性,本文采用高分辨率网络HRNet代替ResNet 作为骨干网络。HRNet的基本结构如图3所示,包含并行多分辨率卷积和重复多分辨率融合。

图片

图  3  HRNet结构图[18]

图3中conv. unit表示步长为1的3×3卷积,strided. conv表示步长为2的3×3卷积,upsample表示双线性上采样后进行1×1卷积。并行多分辨率卷积是指以一个高分辨率子网络作为第一阶段,并逐步增加一个由高分辨率到低分辨率的子网络,形成新的阶段,并将这些多分辨率子网络并行连接起来。重复多分辨率融合是指在各个并行子网络之间引入交换单元,使每个子网络能重复地从其他并行子网络接收信息。

该模型的主要特点是整个过程中特征图始终保持高分辨率,通过在高分辨率特征图主网络中逐渐并行加入低分辨率特征图子网络,不断进行不同网络分支之间的信息交互,同时保持强语义信息和精准位置信息。在RoI Transformer网络的基本结构中,FPN(feature pyramid networks)作为特征提取中重要的一个环节,是将低分辨率强语义的深层特征和高分辨率弱语义的浅层特征通过一种自上而下的方式进行特征融合,使得不同层次的特征增强[19],而HRNet并非是FPN的扩展,它不仅有逐层的特征融合,还有子网络之间多次重复地交换信息,可以持续保持高分辨率的特征。

1.3 基于KLD的参数联合优化

尽管RoI Transformer方法在旋转目标检测中具有良好的效率和精度,但由于其旋转目标表示方式带来的角度周期性,会存在角度边界不连续性(图4)和类正方形问题(图5),导致模型训练的不稳定。此外,其采用的smooth L1 回归损失对目标表示的各个参数是进行独立优化的,使得损失对任何参数的欠拟合都很敏感,影响了旋转目标的检测精度。本文引入的KLD损失,将旋转目标表示为高斯分布基础上,采用联合优化的策略,可有效解决角度周期性问题,提高目标的检测精度。

图片

图  4  角度边界不连续性示意图

图片

图  5  类正方形问题示意图

1.3.1   旋转目标表示的角度周期性

图4(a)是目标预测框的理想表示形式,黄色旋转框和绿色加粗旋转框分别表示目标的预测值和真值,其目标框的表示分别为

图片

,两者只存在角度和中心点的细微差别。旋转目标表示一般有OpenCV表示方法[20]和长边定义法[21]。若采用OpenCV定义表示旋转框(图4(b)),会存在长短边交换的问题。由于OpenCV表示方法的定义中,

图片

,其锐角的一侧定义为w,因此,图4(b)中的预测框角度

图片

是短边与水平轴正方向的夹角,与图4(a)中的理想形式的

图片

相差π /2,且预测框的长宽与真值相反,这种旋转框定义方式有可能会造成较大的回归损失,导致模型训练不稳定,尤其大长宽比目标,该问题会更加突出。若采用长边定义法表示旋转框(图4(c)),由于定义中长边与水平轴正方向的夹角,

图片

,图4(c)中与图4(a)中的预测角度

图片

相差π ,因此

图片

存在较大差异。

对于类正方形的目标(如图5中的棒球场,其长宽比接近于1),若预测框的长边正好与真值的长边相反,对于长边定义法的目标表示方式,

图片

会相差π /2,同样会导致模型训练不稳定。

1.3.2   KLD损失

为解决ROI Transformer原有的目标表示方式存在角度周期性问题,本文在RoI Transformer框架中引入KLD损失。首先,将目标表示的旋转框

图片

图片

(1)

式中:R表示旋转矩阵;

图片

表示特征值的对角矩阵。在式( 1 )中,高斯分布具有以下几个属性[10]:

图片

根据属性1,旋转目标的OpenCV表示方法造成的长短边的交换问题得以避免。根据属性2和3,旋转目标的长边定义法造成的类正方形问题也可以得到解决。综上,角度周期性因高斯分布的三角函数表示方式得以避免,表现出边界连续性。

图片

图片

(2)

显然,Dkld(Nt∥Np) 中的每一项都是由部分参数耦合组成的,所有旋转框参数(x,y,z,ℎ,

图片

)都形成了一种链式耦合关系,使其在训练过程中相互影响,联合优化和自动调节。

最后,为了保证评估测度和回归损失之间的一致性,采用非线性变换将Dkld(Nt∥Np)转换为近似IoU损失:

图片

(3)

式中:f(⋅)表示一个非线性函数,对距离Dkld(Nt∥Np)进行变换,如

图片

;r是一个超参数,用来调节整体损失。

上述分析表明,基于KLD的损失可以保证旋转框参数(x,y,z,ℎ,

图片

)在训练过程中联合优化,优化一个参数,其余参数可以作为其权重动态调整,并且通过非线性变换使得该损失可以和评估测度保持一致性。相比Smooth L1损失的参数独立优化,基于KLD的损失理论上可以得到更高的目标检测精度。

2.   实验和讨论

2.1 数据集

本文使用带有旋转目标标签的DOTA v1.0[22]和DIOR-R[23]数据集进行方法的测试和比较。DOTAv1.0 数据集的图像大小从800×800像素到20 000×20 000像素不等,包含各类具有各种方向、尺度和外观的目标,是迄今为止最具挑战性的旋转目标检测数据集,共包含2806张图片,将188282个目标实例分为飞机(plane, PL)、船舶(ship)和储罐(storage tank, ST)等15类,其中训练集、验证集和测试集的比例分别为1/2、1/6和1/3,更多有关各个类别的统计数据可以参考文献[22]。DIOR-R数据集是DIOR[24]数据集的扩展,与DIOR数据集共享相同的图像,主要用于旋转目标检测。该数据集中有 23463 张图像和192518个实例,涵盖各类典型场景和 20 个常见目标类。DIOR-R中的目标类别包括飞机(airplane, APL)、机场(airport, APO)、棒球场(baseball field, BF)和篮球场(basketball court, BC)等。

2.2 评估标准

本文的目标检测结果主要采用精度 (precision, P)、召回率(recall, R)、平均精度均值 (mAP)、检测速度作为评价标准。精度及召回率公式如下:

图片

(4)

式中:Tp是真正例(true positive)数量;Fp为假正例 (false positive) 数量;FN为假反例 (false negative) 数量。mAP是一种综合了准确率和召回率的评价标准:每个类别都可得到一条PR(precision-recall)曲线。计算曲线下的面积可得到该类别的平均精度AP(average precision),mAP 则为各个类别 AP 的均值,是评判目标检测网络整体性能最常用的指标之一。

2.3 实现细节

实验基于i9-10920X 处理器,使用4个NVIDIA GeForce RTX-2080Ti GPU,内存为256 GB,利用mmrotate平台[25],以ImageNet数据集预训练好的模型进行骨干网络参数初始化。采用随机梯度下降算法(stochastic gradient descent,SGD)对模型进行训练,momentum为0.9,权重衰减为0.0001,初始学习率为0.005,共训练12 epochs,在第8和11个epoch时学习率衰减为前一阶段的1/10[26]。

对于DOTAv1.0数据集,本文将所有训练集和验证集的原始图像以824的步长裁剪出1 024×1024像素大小的图像块(其中为避免目标在切割图像时被分割,保留图像重叠度为200)。对于DIOR-R数据集,图像大小保持800 × 800像素的原始大小。

训练集的图像块通过一组图像归一化、随机翻转、随机裁剪等数据增强预处理方式之后,输入到模型中用于训练。在DOTAv1.0数据集的实验中,使用训练集对模型进行训练,使用验证集对模型进行评价。对于DIOR-R数据集,则使用训练验证集进行训练,使用测试集对模型进行评价。

2.4 实验结果分析

表1和表2分别展示了HRD-ROI Transformer与典型的旋转目标检测方法在DOTAv1.0和DIOR-R数据集上的对比。针对旋转目标检测,双阶段算法的检测精度一般会高于单阶段算法[17],因为双阶段算法能在第一阶段提取的特定候选区域的基础上进行旋转框的精细化回归,而且相比于单阶段算法,正负样本更加均衡。

图片

表  1  不同方法在DOTAv1.0数据集上的表现对比

RoI Transformer[3]由于提取了更为精准RRoI特征,所以达到了比Rotated Faster RCNN[19]更好的性能。如表1所示,ReDet[7]在DOTAv1.0数据集上的mAP相较于RoI Transformer提高了0.9%,它是一种基于RoI Transformer的检测方法,可以提取旋转不变特征。本文所提方法的mAP达到了72.5%,相较于RoI Transformer提高了3.7%,相较于ReDet 提高了2.8%。

本文用DIOR-R数据集评估HRD-ROI Transformer模型的适应性。根据DIOR-R数据集的特性,将用于DOTAv1.0数据集模型的的输入图像大小调整为800 × 800像素,检测目标类别调整为20,并使用DIOR-R数据集重新训练和测试模型。结果如表2所示,本文方法仍然是所有双阶段算法中性能最好的,mAP达到了64.7%,比RoI Transformer高4%,比ReDet高5.1%。SASM reppoints[12]和Oriented reppoints[13]也在DIOR-R数据集上取得了较好的检测效果,但mAP仍分别比我们的模型低2.7%和1.2%。

图片

表  2  不同方法在DIOR-R数据集上的表现对比

尽管ReDet采用ReResNet提取旋转不变特征,但它的高分辨率特征语义信息很弱,对于小目标的检测效果不佳。而本文方法中使用的HRNet保持了高分辨率表示,保持强语义信息的同时,提高了网络对各种尺度目标的鲁棒性。如表3所示,DIOR-R数据集中的船舶(SH)、车辆(VE)、风车(WM)和DOTAv1.0数据集中的小型车辆(SV)、船舶(SH)是典型的小目标,本文方法的检测结果均优于ReDet。

图片

表  3  DOTAv1.0和DIOR-R数据集的小目标检测效果

图6(来自DIOR-R数据集)和图7(来自DOTAv1.0数据集) 主要展示了双阶段检测方法在典型场景旋转目标检测的结果。图6第1列是Rotated Faster RCNN的检测结果,第2列是Oriented RCNN的检测结果,第3列是RoI Transformer的检测结果,第4列是ReDet的检测结果,第5列是本文方法的结果。图6第1行的机场区域检测结果中,前4列的方法各有不同程度的误检,Rotated Faster RCNN将航站楼误检为立交桥,将飞机误检为风车;Oriented RCNN[6]、RoI Transformer和ReDet均将飞机误检为风车。本文方法没有出现这种误检,是因为HRNet提取了尺度适应性更强的特征,能很好地分辨风车和飞机,而且对于第1行图中航站楼、第2行中的桥梁这两种大长宽比的目标,KLD损失规避了角度周期性带来的问题,提升了检测性能。图7展示了不同检测方法的漏检情况,可以看到,KLD损失对于港口、大型车辆这类大长宽比目标效果良好。

图片

图  6  检测结果对比(误检)

图片

图  7  检测结果对比(漏检)

此外,RoI Transformer对于大长宽比的目标定位不够精准。如图8所示,大坝是典型的大长宽比的目标,可以清楚地看到,本文方法在检测精度方面明显优于其他4种方法。这证明KLD损失的参数联合优化是有效的,在检测大长宽比目标时表现出良好的性能,这在消融实验中将进一步讨论。

图片

图  8  检测结果对比(大长宽比目标)

2.5 消融实验

本文利用消融实验分别测试KLD损失函数和HRNet对模型性能的影响,并对比了GWD、KLD和KFIoU 3种用于旋转目标检测的损失函数的性能。

模型(a)是RoI Transformer框架中仅以KLD损失函数替换Smooth L1损失函数,模型(b)是RoI Transformer框架融合HRNet特征提取网络,模型(c)即为本文提出的HRD-ROI Transformer方法。表4和表5展示了消融实验的结果。

图片

表  4  KLD和HRNet在DOTAv1.0上的有效性对比

在DOTAv1.0数据集上,RoI Transformer的mAP达到68.8%,而仅使用KLD损失的模型(a)达到了70.3%,仅使用HRNet的模型(b)达到了71.7%,相比于RoI Transformer分别提升了1.5%和2.9%。这表明这两个部分对于最终的检测结果都有贡献。结合KLD损失和HRNet的模型(c)的mAP进一步达到了72.5%。上述结果充分验证了基于KLD损失和HRNet的有效性。模型(a)、(b)和(c)在DIOR-R数据集上的mAP分别比原始RoI Transformer高0.8%、3.2%和4%,也验证了本文模型的适应性。

图片

表  5  KLD和HRNet在DIOR-R上的有效性对比

模型(a)和RoI Transformer的检测结果对比如图9所示,其中第1行是RoI Transformer的检测结果,第2行是模型(a)的检测结果。港口、立交桥和桥梁是DIOR-R数据集中典型的大长宽比目标。造成检测精度不高的主要原因之一就是目标回归的中心定位不准,与RoI Transformer相比,模型(a)对目标的定位更加准确。

图片

图  9  KLD在DIOR-R上的有效性

2.6 HRD-ROI Transformer误检样本分析

表2所示的DIOR-R数据集的检测结果中,机场(APO)和高尔夫球场(GF)的检测效果欠佳,其真值(ground truth)和检测结果的对比如图10和图11所示。

图片

图  10  机场检测结果

图片

图  11  高尔夫球场检测结果

图10中第1行的红色框表示本文方法检测出的机场区域,第2行红色框表示机场区域的真值,可以看到,第1列两张对比图中,检测的机场的定位不精准;第2列两张对比图中,检测到了真值没有标注的机场区域;第3列两张对比图中,将道路误检为了机场。机场的典型特征一般是跑道,其形状容易和道路混淆,且机场的边界特征不清晰,会导致回归的旋转框不准确。

图11中第1行的玫红色框表示本文方法检测出的高尔夫球场,第2行玫红色框表示高尔夫球场的真值。图11中第1列和第2列的两张对比图的农田均被误检为高尔夫球场,且均有高尔夫球场被漏检;第3列两张对比图中,3个高尔夫球场均被漏检。当图像分辨率较低时,高尔夫球场的纹理特征急剧变弱,与农田等绿色植被相似度过高,检测过程中很容易混淆。

3.   结 论

本文提出了一种基于RoI Transformer的遥感图像多尺度旋转目标检测方法HRD-ROI Transformer,该方法采用HRNet作为骨干网络,提高了模型对目标尺度变化的适应性,在小目标检测效果上优于现有典型旋转目标检测方法;此外,本文所提方法引入KLD损失,可对旋转边界框参数进行联合优化,提高了模型对旋转目标,特别是大长宽比旋转目标的检测精度。在两个公共数据集的的比较试验证明了HRD-ROI Transformer可以适应目标尺度变化,并解决了角度周期性问题,在旋转目标的检测精度方面优于当前主流的方法。

本文方法对DIOR-R数据集中的机场(APO)和高尔夫球场(GF)检测效果欠佳,后续将根据这类目标的特性做数据增强,并将SAM(segmenting anything model)嵌入检测模型中[27],以SAM分割的高细粒度结果指导目标检测中低细粒度的边界框的生成,提升模型对这类目标的检测能力。针对小目标的检测问题,本文方法的检测精度有所提升,后续还可以通过引入特征层注意力机制[28],增强模型对小目标的关注,或者采用优化的低耦合网络(optimized low coupling network, OLCN)[29]避免小目标的丢失。此外,使用的HRNet包含多个特征融合,可能会造成较大的训练存储成本,因此,网络轻量化也将是未来重要的研究方向。

声明: 公众号转载的文章及图片出于非商业性的教育和科研目的供大家参考和探讨,并不意味着支持其观点或证实其内容的真实性。版权归原作者所有,如转载稿涉及版权等问题,请立即联系我们删除。

“人工智能技术与咨询”  发布

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于改进RoI Transformer的遥感图像多尺度旋转目标检测 的相关文章

随机推荐

  • HONEYWELL 05701-A-0351 数字量扩展模块

    HONEYWELL 05701 A 0351 数字量扩展模块 HONEYWELL 05701 A 0351 数字量扩展模块产品详情 HONEYWELL 05701 A 0351 数字量扩展模块一般用于工业自动化系统中 主要用于扩展数字输入和
  • 基于SpringBoot+Vue的老年一站式服务平台演示设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • 利用夜莺开源版对H3C无线设备监控

    编者荐语 真正搞监控的人肯定知道 SNMP 水有多深 有时我甚至腹黑猜测 这些厂商是故意的吧 指标不标准 格式各异 只能靠一款灵活的采集器了 本文是夜莺社区用户写的文章 转给大家参考 author 网络小斐 关于夜莺SNMP插件 前文说明了
  • 企业办公加密系统中——全透明加密和半透明加密的区别

    PC端访问地址 www drhchina com 天锐绿盾数据防泄密系统中的全透明加密和半透明加密的区别如下 全透明加密是采用驱动层动态加解密技术 对企业内部所有涉密文档进行强制加密处理 从文件创建开始即可自动加密保护 加密文档在加密前后对
  • 图像相关知识点及属性介绍

    图像常用属性指标 图像的常用属性指标有以下几个 分辨率 分辨率是指图像中可以显示的水平和垂直像素数 较高的分辨率意味着图像具有更多的细节和更高的清晰度 常用单位有像素 px 或者万像素 MP 色彩深度 色彩深度是指图像中每个像素可以表示的不
  • MyBatis:一文带你全面了解

    MyBatis 一文带你全面了解 1 概述 1 1 MyBatis简介 MyBatis是一个基于Java语言的持久层框架 它通过XML描述符或注解将对象与存储过程或SQL语句进行映射 并提供了普通SQL查询 存储过程和高级映射等操作方式 使
  • 三维模型的顶层合并构建中纹理色彩匀色技术方法分析

    三维模型的顶层合并构建中纹理色彩匀色技术方法分析 多块相邻倾斜摄影三维模型的顶层合并构建中 纹理色彩匀色技术是一种常用的方法 可以使不同块之间的纹理色彩更加一致和连贯 本文将对这种技术进行浅谈 在多块相邻倾斜摄影三维模型的顶层合并构建过程中
  • mysql无法连接问题及其环境变量配置

    问题 Can t connect to MySQL server on localhost 3306 10061 方案一 不推荐 第一 在环境变量 系统变量的path中添加mysql的bin目录 我的是D mysql mysql 8 0 2
  • 程序员必知!接口隔离原则的实战应用与案例分析

    接口隔离原则 Interface Segregation Principle ISP 是指客户端不应该依赖它不需要的接口 或者说一个类对另一个类的依赖应该建立在最小的接口上 定义 接口隔离原则的核心思想是系统解耦和可复用性的提高 它鼓励将臃
  • 通过 Navicat 连接数据库 2003 - can‘t connect to MySQL server on ‘localhost‘ (10061 “Unknown error“)

    报错原因 2003 can t connect to MySQL server on localhost 10061 Unknown error 由于 MySQL 无法连接导致 解决方法 win R 输入services msc 将 mys
  • 基于SpringBoot+Vue的智慧生活商城系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • Java 中单例模式的常见实现方式

    一 什么是单例模式 单例模式是一种创建型设计模式 它确保类只有一个实例 并提供全局访问点让外部代码可以访问该实例 在 Java 中 可以 使用单例模式来实现 一些全局性的操作 例如 配置文件管理 线程池管理 数据库连接池管理 等等 这些操作
  • 故障排除: Vcenter Root user password expires in 0 days.

    故障排除 Vcenter Root user password expires in 0 days 1 故障现象 登录Vsphere Client显示报错信息如下 Vcenter Root user password expires in
  • VUE实践优化:轮询机制与代码结构升级

    前言 我们之前探讨过 对于包含处理状态的表格数据 我们可以通过轮询的方式进行处理 轮询更新进度条 JavaScript中的定时器和异步编程技巧 然而 当我们离开页面时 定时器仍会继续触发请求 这会造成资源的浪费 因为返回的数据并没有被渲染出
  • 【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载

    列表下拉刷新 上拉加载更多 不管在web时代还是鸿蒙应用都是一个非常常用的功能 基于ArkUI中TS扩展的声明式开发范式实现一个下拉刷新 上拉加载 上拉加载 下拉刷新 如果数据量过大 可以使用 LazyForEach 代替 ForEach
  • SpringIOC之ApplicationEventMulticaster

    博主介绍 全网粉丝5W 全栈开发工程师 从事多年软件开发 在大厂呆过 持有软件中级 六级等证书 可提供微服务项目搭建与毕业项目实战 博主也曾写过优秀论文 查重率极低 在这方面有丰富的经验 博主作品 Java项目案例 主要基于SpringBo
  • python_批量筛选指定目录下的gga&pos文件

    小工具 在指定的目录下 批量筛选出符合要求的gga或者pos文件 import sys import os from datetime import datetime from PyQt5 QtWidgets import QApplica
  • echart折线+柱状 +双轴

    option color d4e1ffa3 green 37A2FF FF0087 FFBF00 title text Gradient Stacked Area Chart tooltip trigger axis axisPointer
  • Redis10大性能优化策略

    1 Redis为什么变慢了 1 Redis真的变慢了吗 对 Redis 进行基准性能测试 例如 我的机器配置比较低 当延迟为 2ms 时 我就认为 Redis 变慢了 但是如果你的硬件配置比较高 那么在你的运行环境下 可能延迟是 0 5ms
  • 基于改进RoI Transformer的遥感图像多尺度旋转目标检测

    源自 应用光学 作者 刘敏豪 王堃 金睿蛟 卢天 李璋 人工智能技术与咨询 发布 摘 要 旋转目标检测是遥感图像处理领域中的重要任务 其存在的目标尺度变化大和目标方向任意等问题给自动目标检测带来了挑战 针对上述问题 提出了一种改进的RoI