【论文精读】Multi-scale Neighbourhood Feature Interaction Network
摘要(ABSTRACT)
光伏发电是工业领域的关键组成部分,其能量转换效率受光伏电池表面缺陷的显著影响。近年来,深度学习模型的广泛应用推动了缺陷检测技术的进步。然而,由于光伏电池缺陷尺寸差异较大(尤其是微小缺陷),多尺度缺陷检测仍具挑战性。此外,图像中存在的显著噪声进一步增加了可区分特征提取的难度。为解决这些问题,本研究提出了一种新型单阶段多尺度邻域特征交互网络(MNFI-Net),旨在复杂背景下检测不同尺寸的缺陷。MNFI-Net架构包含以下核心组件:
- Ghost跨阶段模块(GCSM):通过线性变换减少冗余信息;
- 邻域特征交互模块(NFIM):增强模型对不同尺寸缺陷的检测能力;
- 全局注意力机制(GAM):聚焦融合特征图中的关键特征。
此外,针对多尺度缺陷检测任务,我们提出了一种平衡高效损失函数(BE Loss)。在公开的光伏电致发光图像数据集上的大量对比实验与消融研究表明,MNFI-Net实现了94.0%的精确率与95.5%的平均精度均值(mAP),在缺陷分类与检测任务中优于现有先进方法。本研究的代码与模型可通过以下链接获取:https://github.com/lyc686/MNFI-Net。
1. 引言(Introduction)
实现碳达峰与碳中和是推动全球能源结构从化石燃料向清洁能源转型的关键,也是应对全球变暖的重要举措。在此背景下,光伏(PV)发电系统的开发占据核心地位[1]。光伏系统的效率高度依赖于光伏组件的输出功率,而组件上的任何缺陷都会显著影响未来发电量的预测[2–4]。因此,准确检测光伏电池模块的缺陷对保障系统性能至关重要,也是光伏技术持续发展的关键因素[5,6]。
光伏电池缺陷会极大影响发电效率。例如,材料老化或运行中产生的表面裂纹可能导致功率下降,仅裂纹一项即可造成效率降低0.5%–19.7%(随裂纹尺寸增大)[7,8]。及时、精准的缺陷检测对延长光伏系统寿命、维持发电能力至关重要[9,10]。
工业应用中的缺陷检测是确保产品质量的核心流程,需专业人员识别缺陷类型并定位缺陷区域。光伏电池的电流-电压(I-V)特性曲线是评估其功能的常用方法,但微小缺陷(如裂纹)难以通过此方法检测[11]。此类微小裂纹通常随时间累积,逐步降低组件发电效率。除I-V曲线法外,电致发光(EL)成像等先进方法可通过高分辨率图像检测表面裂纹(表现为暗灰色线条)[12],但其性能受限于人工设计的实验方案。为突破传统限制,基于机器学习的缺陷检测方法被提出,例如主成分分析[13]与傅里叶图像重建[14],但这些方法依赖人工特征设计,导致较高的实现成本。
由于人工检测耗时费力,研究者转向深度学习技术。基于深度卷积神经网络(CNN)的缺陷检测方法可同时识别缺陷类型与位置,自然适用于目标检测任务。当前深度学习检测模型主要分为三类:两阶段检测器(如Cascade R-CNN[39])、单阶段检测器(如YOLO系列[44–52])与基于Transformer的检测器(如DETR[53])。尽管已有进展,两大挑战依然存在:
- 多尺度缺陷检测:光伏缺陷尺寸差异大(如图1所示),现有模型难以同时准确检测不同尺寸(尤其是微小)缺陷;
- 复杂背景噪声:光伏图像中噪声(如污渍)与缺陷特征相似,干扰检测精度[18]。
本文提出以下创新模块以应对上述问题:
- Ghost跨阶段模块(GCSM):结合线性变换与卷积,抑制噪声干扰并增强有效特征提取;
- 邻域特征交互模块(NFIM):自适应学习相邻特征层的空间与语义信息,通过多尺度特征融合提升检测能力;
- 全局注意力机制(GAM):引入注意力机制优化特征权重分配,提升模型鲁棒性。
本文主要贡献包括:
- 提出GCSM模块,抑制噪声特征并减少冗余信息干扰;
- 设计NFIM模块,捕获相邻层特征的多尺度信息;
- 构建的MNFI-Net显著提升光伏电池多尺度缺陷检测精度,助力可持续能源发展。
2. 相关工作(Related Work)
2.1 光伏电池缺陷检测
现有方法可分为三类:
- 光子学方法:如红外热成像[19]与EL成像[12],但成本高且可能损伤电池;
- 传统机器学习方法:依赖人工特征(如灰度共生矩阵[25])或算法(如SVM与随机森林[26]),泛化能力有限;
- 深度学习方法:基于LeNet5[29]、VGG16[30]与Faster R-CNN[31]的模型提升了检测效率,而YOLO系列[34–38]因其轻量化与实时性成为工业检测首选。
2.2 深度学习检测器
- 两阶段检测器(如Cascade R-CNN[39])精度高但速度慢;
- 单阶段检测器(如YOLO)直接回归目标位置与尺寸,适合实时应用;
- Transformer检测器(如DETR[53])擅长全局上下文建模,但计算资源需求大。
2.3 多尺度特征融合方法
特征金字塔网络(FPN[56])通过自上而下结构融合多尺度特征,但其单向结构限制了特征增强能力。本文提出的邻域特征交互结构通过双向上下文信息提取,结合多粒度卷积,实现更全面的特征融合。
3. MNFI-Net架构(MNFI-net)
如图2所示,MNFI-Net由GCSM、NFIM、GAM与BE Loss四部分组成:
3.1 GCSM模块
在特征提取过程中,多尺度特征需通过非线性层捕获复杂语义信息。然而,随着网络深度增加,参数量与计算需求急剧上升,导致冗余特征图的生成。受Ghost卷积[63]在缺陷检测中的成功应用启发,GCSM模块(图3(a))通过替换YOLOv5的C3模块(图3(b))解决此问题。具体而言,GCSM采用低成本线性变换生成幻影特征图(Ghost feature maps),有效捕捉本质特征信息,避免传统堆叠卷积引入的冗余。
Ghost卷积网络架构(图4)旨在高效生成特征图并降低参数量:
- 输入通过常规卷积提取嵌入特征图;
- 利用深度可分离卷积(DWConv)对特征图进行线性变换生成幻影特征图;
- 融合两部分特征图。
Ghost卷积参数量压缩至常规卷积的1/n由以下公式定义:
- 计算流程:
其中,( P_c )和( P_g )分别为常规卷积与Ghost卷积的参数量,( c )为输入通道数,( k )为卷积核尺寸,( c’ )为输出通道数,( h’ )和( w’ )为输出特征图尺寸,( n )为深度卷积数量(( n \ll c )),( d )为线性变换卷积核的平均尺寸。
GCSM的计算流程由以下公式定义:
其中,( \ast )表示卷积操作,( b )为偏置项,GhostConv(·)与DWConv(·)分别表示Ghost卷积与深度可分离卷积,ADD(·)为特征图像素级相加。
3.2 NFIM模块
如图5(a)所示,特征金字塔中的多尺度特征包含多粒度信息,相邻层特征具有强相关性。深层特征具有丰富的语义信息与大感受野,适合检测大尺寸缺陷;浅层特征保留细节信息,适合检测小尺寸缺陷。通过融合深浅层特征,可提取全面的多尺度特征表达。
NFIM实现细节(图5(b)):
-如图5(b)所示,对于特征图 F l ∈ R C × H × W F_l \in \mathbb{R}^{C \times H \times W} Fl∈RC×H×W,通过主干网络生成的相邻层特征图 F l − 1 F_{l-1} Fl−1与 F l + 1 F_{l+1} Fl+1,分别经过上采样(upper layers)与下采样(lower layers)操作后,与 F l F_l Fl共同输入至RGOD模块(残差全维度动态卷积模块)。为缓解特征提取过程中的细节丢失问题,引入自适应融合模块,动态表征融合特征的上下文信息。
引入全维度动态卷积(ODConv)[64](公式7),通过注意力机制动态加权个卷积核,实现自适应特征融合:
Y o d c o n v = ∑ i = 0 n ( α w i ⊙ α f i ⊙ α c i ⊙ α s i ⊙ W i ) ∗ X ( 7 ) Y_{odconv} = \sum_{i=0}^{n} \left( \alpha_{wi} \odot \alpha_{fi} \odot \alpha_{ci} \odot \alpha_{si} \odot W_i \right) \ast X \quad (7) Yodconv=i=0∑n(αwi⊙αfi⊙αci⊙αsi⊙Wi)∗X(7)
α w i \alpha_{wi} αwi、 α s i \alpha_{si} αsi、 α c i \alpha_{ci} αci 、 α f i \alpha_{fi} αfi为超参数,分别控制卷积核维度、空间维度、输入通道维度与输出通道维度的权重; W i W _{i} Wi为卷积核权重;⊙表示逐元素相乘(element-wise multiplication)。
在进行全维动态卷积之后,特征图被分为四个分支,用 𝑋 表示,其中 𝑖 ∈ {1, 2…,}。每个 𝑥 的大小相同。除了 𝑋 之外,每个 𝑋 都被输入到其对应的 GOD 卷积层。用 𝑦 表示 𝑘(.). 的输出。(图5 (c d)),除第一分支外,其余分支依次通过GOD卷积层(公式8):
其中, K i ( ⋅ ) K_i(·) Ki(⋅)为采用全维度动态卷积的GOD卷积层,通过多粒度分割与动态卷积融合跨层特征,扩大感受野并减少参数量。最终输出为多粒度特征的组合。
NFIM利用主干网络提供的多尺度特征 { F 1 , F 2 , F 3 , F 4 , F 5 } \{F_1, F_2, F_3, F_4, F_5\} {F1,F2,F3,F4,F5},通过GCSM过滤冗余特征,经上/下采样融合相邻层特征,生成优化后的特征图 { F ~ 1 , F ~ 2 , F ~ 3 } \{\tilde{F}_1, \tilde{F}_2, \tilde{F}_3\} {F~1,F~2,F~3}供后续检测头分析。
3.3 GAM模块
检测头模块包含三个组件:锚框生成(定义多尺寸检测框)、分类器(判定检测框类别)和回归器(预测缺陷位置与尺寸)。针对光伏图像中的噪声干扰(如污渍、灰尘),引入全局注意力机制(GAM)[62](图6),通过通道与空间注意力聚焦关键特征:
- 通道注意力(图6(b)):使用两层MLP增强通道间相关性;
- 空间注意力(图6©):通过卷积层整合空间特征。
整体流程(图6(a))中, M c ( ⋅ ) M_c(·) Mc(⋅)与 M s ( ⋅ ) M_s(·) Ms(⋅)分别表示通道与空间注意力操作, ⊗ \otimes ⊗为逐元素相乘。
3.4 BE Loss
检测任务的损失函数由三部分组成:
L a l l = λ c o n f L c o n f + λ c l s L c l s + λ l o c L l o c ( 9 ) L_{all} = \lambda_{conf} L_{conf} + \lambda_{cls} L_{cls} + \lambda_{loc} L_{loc} \quad (9) Lall=λconfLconf+λclsLcls+λlocLloc(9)
其中, λ c o n f \lambda_{conf} λconf、 λ c l s \lambda_{cls} λcls、 λ l o c \lambda_{loc} λloc为超参数。为优化多尺度缺陷检测,提出平衡高效损失(BE Loss),结合EIoU Loss[65]与NWD Loss[66]:
L B E = I o U γ ( β L E I o U + ( 1 − β ) L N W D ) ( 10 ) L_{BE} = IoU^{\gamma} \left( \beta L_{EIoU} + (1-\beta) L_{NWD} \right) \quad (10) LBE=IoUγ(βLEIoU+(1−β)LNWD)(10)
EIoU Loss(公式11)通过中心点距离、宽高比损失增强边界框回归:
L E I o U = 1 − I o U + ρ 2 ( b , b g t ) w c 2 + h c 2 + ρ 2 ( w , w g t ) w c 2 + ρ 2 ( h , h g t ) h c 2 ( 11 ) L_{EIoU} = 1 - IoU + \frac{\rho^2(b, b^{gt})}{w_c^2 + h_c^2} + \frac{\rho^2(w, w^{gt})}{w_c^2} + \frac{\rho^2(h, h^{gt})}{h_c^2} \quad (11) LEIoU=1−IoU+wc2+hc2ρ2(b,bgt)+wc2ρ2(w,wgt)+hc2ρ2(h,hgt)(11)
NWD Loss(公式12)基于Wasserstein距离优化小目标检测:
L N W D = 1 − exp ( − W 2 2 ( N p , N g ) C ) ( 12 ) L_{NWD} = 1 - \exp\left( -\frac{\sqrt{W_2^2(N_p, N_g)}}{C} \right) \quad (12) LNWD=1−exp(−CW22(Np,Ng))(12)
其中, N p N_p Np 与 N g N_g Ng为预测框与真实框的高斯分布, W 2 2 W_2^2 W22)为二阶Wasserstein距离。
注,本文中的损失函数专篇细讲
4. 实验(Experiments)
4.1 实验设置与评估指标
- 数据集划分:公开光伏数据集按70%训练、10%验证、20%测试划分,结果取300次平均。
- 硬件配置:Intel Xeon Gold 6234 CPU与NVIDIA 3090 GPU,图像分辨率640×640。
- 超参数:( \lambda_{conf}=1.0 )、( \lambda_{cls}=0.5 )、( \lambda_{loc}=0.05 ),动量0.937,学习率0.001。
评估指标:
- 精确率(Precision)、召回率(Recall)、F1分数:
P r e c i s i o n = T p T p + F p ( 13 ) R e c a l l = T p T p + F n ( 14 ) F 1 _ S c o r e = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l ( 15 ) Precision = \frac{T_p}{T_p + F_p} \quad (13) \\ Recall = \frac{T_p}{T_p + F_n} \quad (14) \\ F1\_Score = \frac{2 \cdot Precision \cdot Recall}{Precision + Recall} \quad (15) Precision=Tp+FpTp(13)Recall=Tp+FnTp(14)F1_Score=Precision+Recall2⋅Precision⋅Recall(15) - 平均精度(AP)与mAP:
A P = ∑ k = 1 n ( R e c a l l k − R e c a l l k − 1 ) ⋅ P r e c i s i o n k ( 16 ) m A P = 1 n ∑ k = 1 n A P k ( 17 ) AP = \sum_{k=1}^{n} (Recall_k - Recall_{k-1}) \cdot Precision_k \quad (16) \\ mAP = \frac{1}{n} \sum_{k=1}^{n} AP_k \quad (17) AP=k=1∑n(Recallk−Recallk−1)⋅Precisionk(16)mAP=n1k=1∑nAPk(17)
4.2 数据集
- PVEL-AD数据集:包含star_crack、finger、black_core等8类缺陷,选取2153张图像。
- 多晶硅数据集:背景更复杂,缺陷尺度变化更大(图7)。
4.3 结果与讨论
MNFI-Net的性能与当前先进的光伏缺陷检测模型进行了对比,涵盖两阶段模型(如Sparse R-CNN)、单阶段模型(如YOLO系列)和基于Transformer的模型(如DETR)。实验以CSPDarknet53为骨干网络、PAN为颈部网络构建基线模型(表1)。结果表明:
- PVEL-AD数据集:MNFI-Net在复杂背景下仍表现出色,精确率达94.0%,mAP0.5达95.5%,较现有方法提升1.9%–25.2%。其多尺度邻域特征交互与自适应融合策略显著提升了特征表达能力。
- 实时性:尽管MNFI-Net的FPS(69.1)略低于YOLOv8(147.1),但其精度优势显著,更适用于工业质检场景。
- 轻量化:参数量仅10.9M,较两阶段模型(如Sparse R-CNN的106M)减少95.1MB,计算量降低75.9GB。
训练过程分析(图8):
- MNFI-Net(红色曲线)在迭代过程中始终保持最高验证精度,稳定性优于其他模型。
按缺陷类别的检测性能(表2):
- 两阶段模型(如Cascade RPN)对中大型缺陷(如black_core)检测效果良好,但对小缺陷(如finger、star_crack)表现较差;
- 单阶段模型(如YOLOv5)依赖多尺度检测头,但对小目标定位仍存在误差;
- Transformer模型(如DETR)擅长检测大目标(如short_circuit),但小目标检测能力有限;
- MNFI-Net在小缺陷(crack、finger、star_crack)上达到最优F1分数(86.9%、95.3%、85.8%),在中大型缺陷(如thick_line、horizontal_dislocation)上接近最佳性能。
多晶硅数据集验证(表3):
- 在背景更复杂、缺陷尺度变化更大的多晶硅数据集上,MNFI-Net的F1分数提升1.5%,mAP提升2.8%,进一步验证其鲁棒性。
4.4 消融实验
4.4.1 模块贡献分析
-
实验设计:逐步添加GCSM、NFIM、GAM与BE Loss至基线模型(CSPDarknet53+PAN)。
-
热力图可视化(图9):
- 加入GCSM后,冗余噪声显著减少;
- NFIM增强了邻域空间特征融合;
- GAM通过全局加权聚焦关键区域。
-
定量结果(表4):
- 基线模型(F1:88.6%, mAP0.5:93.1%)经模块叠加后,F1提升至93.4%,mAP0.5提升至95.5%;
- GAM对性能提升贡献最大(F1:+2.1%,mAP:+0.8%)。
翻译结果
如图10所示,我们通过计算混淆矩阵分析了MNFI-Net的缺陷检测性能。结果表明,相较于基线模型,MNFI-Net在检测裂纹(cracks)、指状缺陷(fingers) 和 粗线缺陷(thick_lines) 时均有显著提升,其F1分数分别提高了0.13、0.03和0.1。这表明:
- 多尺度特征融合:MNFI-Net能有效整合不同尺寸缺陷的特征信息;
- 抗干扰能力:减少复杂背景噪声对检测的干扰;
- 综合性能提升:精确率(Precision)提升4.4%,召回率(Recall)提升5.3%。
关键数据解读
缺陷类型 | F1分数提升 |
---|---|
裂纹(Cracks) | +0.13 |
指状缺陷(Fingers) | +0.03 |
粗线缺陷(Thick Lines) | +0.1 |
4.4.2 多尺度检测有效性验证
-
多尺度特征融合对比(表5):
- 提出的NFIM模块在小目标(mAP:33.1%)、大目标(mAP:61.3%)检测上均优于FPN、PAN与BiFPN;
- 提出的NFIM模块在小目标(mAP:33.1%)、大目标(mAP:61.3%)检测上均优于FPN、PAN与BiFPN;
-
跨模型对比(表6):
- MNFI-Net在小(33.2%)、中(45.8%)、大(63.3%)缺陷检测任务中全面领先,尤其在工业场景关键指标(大目标mAP)上较RT-DETR提升1.2%。
- MNFI-Net在小(33.2%)、中(45.8%)、大(63.3%)缺陷检测任务中全面领先,尤其在工业场景关键指标(大目标mAP)上较RT-DETR提升1.2%。
-
可视化分析(图11-12):
- MNFI-Net的检测框更贴近真实标注(图11);
- 类激活热力图(Grad-CAM)显示模型能准确定位多尺度缺陷区域(图12)。
4.4.3 模块移植性评估
为验证所提模块(NFIM、GCSM、GAM与BE Loss)在单阶段检测模型中的泛化能力,我们在YOLOv7与YOLOv8框架中进行了光伏缺陷检测的定量评估。这两个模型分别代表YOLO系列的第七代与第八代,以高精度与速度著称。实验中,我们将其原始颈部模块替换为NFIM,并集成GCSM、GAM与BE Loss。
实验结果(表7):
- YOLOv7:引入模块后,mAP0.5从69.0%提升至95.0%(+26.0%),F1分数从71.7%提升至91.7%(+20.0%);
- YOLOv8:mAP0.5从80.9%提升至95.1%(+14.2%),F1分数从76.2%提升至91.4%(+15.2%)。
精度-召回曲线分析(图13):
- 引入模块后,曲线整体右上方偏移,表明模型在保持高召回率的同时显著提升检测精度。
- 结果证明,所提模块具有强泛化性,可无缝集成至其他检测框架。
5. 结论
本研究提出了一种面向复杂背景的MNFI-Net,用于光伏电池多尺度缺陷检测。其核心创新包括:
- 多粒度特征交互:通过NFIM模块融合深浅层双向上下文信息,增强多尺度缺陷表达能力;
- 全局注意力机制(GAM):抑制背景噪声,聚焦关键特征;
- 平衡高效损失(BE Loss):结合EIoU与NWD损失,优化多尺度目标检测。
在公开数据集(PVEL-AD与多晶硅数据集)上的实验表明,MNFI-Net以94.0%精确率与95.5% mAP0.5显著优于现有模型。模块化设计使其可灵活移植至YOLO系列(如YOLOv7/v8),提升检测性能。
未来工作:
- 优化实时性,提升推理速度;
- 探索模型在其他工业检测任务(如半导体缺陷检测)中的泛化能力。
附图说明:
- 图11:MNFI-Net与对比模型在PVEL-AD数据集上的检测结果可视化;
- 图12:MNFI-Net与对比模型的类激活热力图对比;
- 图13:模块移植后的精度-召回曲线对比。
相关文章:
【论文精读】Multi-scale Neighbourhood Feature Interaction Network
摘要(ABSTRACT) 光伏发电是工业领域的关键组成部分,其能量转换效率受光伏电池表面缺陷的显著影响。近年来,深度学习模型的广泛应用推动了缺陷检测技术的进步。然而,由于光伏电池缺陷尺寸差异较大(尤其是微…...
C++ 蓝桥云课代码练习
代码一 ,小明的背包1,代码见下 #include <iostream> #include <cstring> using namespace std;#define maxn 110 #define maxm 1001 #define inf -1int w[maxn], v[maxn]; int dp[maxn][maxm];int main() {memset(dp, inf, sizeof(dp));dp[…...
微软庆祝它成立整整50周年
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
android 启动四大组件
在 Android 开发中,启动通常是指启动一个 Activity、Service、BroadcastReceiver 或其他组件。以下是一些常见的启动方式: 1. 启动一个 Activity 要启动一个 Activity,可以使用 Intent。以下是一个示例代码: 示例:启…...
C# 串口通信
1. 导入 using System.IO.Ports;2. 初始化定义 SerialPort sp new SerialPort(); // 设置串口 sp.PortName "COM3"; // 串口 sp.BaudRate 9600; // 波特率 sp.Parity Parity.None; // 校验位 sp.DataBits 8; // 数据位 sp.StopBits StopBits.One; // 停…...
Spring事务详解
一、Spring对事务的支持 1.事务概述 什么是事务 在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。 多…...
单片机FreeRTOSTickless低功耗模式应用示例
Tickless低功耗模式在很多需要延长电池寿命或减少能耗的场景中非常有用,特别是在那些大部分时间处于空闲状态的系统中。 以下是一些使用Tickless模式的场景和例子: 1.传感器节点在物联网(IoT)中,许多传感器节点需要长…...
2025.4.9总结
今天周三,晚上默认不加班,每到闲暇的时候,总会瞎想。 如今想想,是要多提升提升自身的软实力了。硬实力,是你的专业技能,是你吃饭的东西,而软实力则体现在人际交往,表达能力等方面。…...
Ceph异地数据同步之-Cephfs异地同步复制
#作者:闫乾苓 文章目录 1.核心原理2.部署步骤3.cephfs同步测试4.查看cephfs文件同步状态5.优化cephfs文件系统同步的时间间隔 1.核心原理 Cephfs异地同步基于CephFS-mirror,其工作原理是基于CephFS的快照功能和cephfs-mirror工具的异步复制机制。它通过…...
大数据专业学习路线
大数据专业学习路线 目录 基础知识核心技术进阶技能实战项目职业发展学习资源学习计划常见问题 1. 基础知识 1.1 编程语言 Python:大数据分析的基础语言 基础语法和数据类型函数和模块面向对象编程文件操作和异常处理常用库:NumPy, Pandas, Matplot…...
每日文献(十)——Part two
今天从第四部分 级联RCNN开始介绍。 目录 四、级联RCNN 4.1 级联边界框回归 4.2 级联检测 五、实验结果 5.1 实现细节 5.1.1 基准工作 5.2 质量不匹配 5.3 与迭代bbox和积分损失的比较 5.4 消融实验 5.5 与最先进的方法对比 5.6 泛化能力 5.7 PASCAL VOC数据集结果…...
8.3.1 MenuStrip(菜单)控件
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的 MenuStrip控件提供了程序窗体的主菜单,即显示于窗体顶端部分的菜单。 MenuStrip常用属性: ImageScalingSize…...
仿真每日一练 | ABAQUS子程序DLOAD
ABAQUS中用户子程序DLOAD可用于定义分布载荷幅值随坐标、时间、单元编号、积分点编号等的变化,该功能主要应用于定义复杂的载荷工况,今天给大家举一个简单的例子介绍其使用方式: 图1 模型认识 回顾一下ABAQUS的有限元分析流程: 图…...
Kubernetes(k8s)-备份Etcd介绍
作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是K…...
[leetcode]求最大公约数和最小公倍数(gcd和lcm算法)
求最大公约数和最小公倍数 Coding : 使用C的库 #include<iostream> #include<algorithm> using namespace std; int main() { int a, b; cout << "cin a and b of gcd : "; cin >> a >> b; int res __gcd(a, b);…...
B-tree 的原理源码分析及应用场景等
B-tree(B树)是一种自平衡的多路搜索树,广泛用于文件系统、数据库索引、键值存储系统等对大规模数据的高效插入、查找和删除有高要求的场景。相比于二叉搜索树(BST),B-tree 可以减少磁盘I/O次数,…...
MySQL 中的聚簇索引和非聚簇索引有什么区别?
MySQL 中的聚簇索引和非聚簇索引有什么区别? 1. 从不同存储引擎去考虑 在MySIAM存储引擎中,索引和数据是分开存储的,包括主键索引在内的所有索引都是“非聚簇”的,每个索引的叶子节点存储的是数据记录的物理地址(指针…...
重构居家养老安全网:从 “被动响应” 到 “主动守护”
随着全球老龄化加剧,居家养老安全成为社会关注的核心议题。 传统养老模式依赖人工巡检或单一传感器,存在响应滞后、隐私泄露、场景覆盖不足等问题。 由此智绅科技应运而生,七彩喜智慧养老系统构筑居家养老安全网。 而物联网(Io…...
从静态绑定驱动模型到现代设备模型 —— 一次驱动架构的进化之旅
🔍 B站相应的视屏教程: 📌 内核:博文视频 - 从静态绑定驱动模型到现代设备模型 在 Linux 内核的发展历程中,设备驱动结构经历了从"硬编码 手动注册"的早期实现方式,到"设备模型统一管理&qu…...
MySQL学习笔记十五
第十七章组合查询 17.1组合查询 MySQL允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这些组合查询通常称为并(union)或复合查询(compound query)。 以下几种情况需要使…...
NLP基础知识 与 词向量的转化方法 发展
目录 1.NLP 基础知识点 为什么需要自然语言处理? 自然语言处理有哪些分类? 自然语言处理有哪些实际应用? 为什么需要自然语言处理? 自然语言处理有哪些分类? 自然语言处理有哪些实际应用? 自然语言处理的技术/工作原理是什么? 2.NLP文本转化为词向量的方法 2…...
VectorBT量化入门系列:第四章 高级策略开发与优化
VectorBT量化入门系列:第四章 高级策略开发与优化 本教程专为中高级开发者设计,系统讲解VectorBT技术在量化交易中的应用。通过结合Tushare数据源和TA-Lib技术指标,深度探索策略开发、回测优化与风险评估的核心方法。从数据获取到策略部署&am…...
JVM虚拟机篇(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解
JVM垃圾回收器全面解析与G1深度探秘及四种引用详解 JVM虚拟机(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解一、JVM有哪些垃圾回收器1. Serial回收器2. ParNew回收器3. Parallel Scavenge回收器4. Serial Old回收器5. Parallel Old回…...
【蓝桥杯】15届JAVA研究生组F回文字符串
一、思路 1.这题去年考的时候想的是使用全排列进行尝试,实际不用这么麻烦,只用找到第一个和最后一个非特殊字符串的位置,然后分别向内检查是否对称,向外检查是否对称直到左指针小于0(可以通过添加使其对称) 2.至于如何找到第一个…...
TDengine 语言连接器(Python )
简介 taospy 是 TDengine 数据库面向 Python 语言提供的官方连接器,连接器对外提供对数据库写入、查询、订阅等多种访问接口。 安装连接器命令如下: # 原生连接和 REST 连接 pip3 install taospy# WebSocket 连接,可选装 pip3 install tao…...
Android compose源码浅析——Modifier
Modifier浅析 Modifier的使用foldOutfoldInanyall总结Modifier的使用 先来一段代码1: @Preview(showBackground = true) @Composable fun GreetingPreview() {ComposeTestTheme {Box(modifier = Modifier.size(DpSize(Dp(100f),Dp(100f))).padding(Dp(10f)).background(Colo…...
基于机器视觉的多孔零件边缘缺陷检测(源码C++、opencv、凸包、凸缺陷检测)
👑主页:吾名招财 👓简介:工科学硕,研究方向机器视觉,爱好较广泛… 💫签名:面朝大海,春暖花开! 基于机器视觉的多孔零件边缘缺陷检测(源码C、ope…...
JAVAWeb_Servlet:前置准备与理论简易介绍
要写JAVA_Web:首先就得建个项目——如何在Eclipse新建一个Web项目-CSDN博客 然后我们考虑具体的代码细节(接下来就是我们的前置准备) 一、导包: 在 Eclipse 中,如果需要快速导入缺失的包(例如࿰…...
反射 tcp
反射 临时越过权限 获取成员变量1并进行修改 成员方法 TCP客户端...
UML综合实验四
1. 计算机包含内存(RAM)、CPU等硬件设备,根据下面的“产品等级结构-产品族”示意图,使用抽象工厂模式实现计算机设备创建过程并绘制相应的类图。 2. 电脑组装工厂可以将CPU、内存、硬盘、主机、显示器等硬件设备组装在一起构成一台完整的电脑,…...
<《AI大模型应知应会100篇》第8篇:大模型的知识获取方式及其局限性
第8篇:大模型的知识获取方式及其局限性 摘要 大模型(如GPT、BERT、Qwen、DeepSeek等)凭借其卓越的自然语言处理能力,已经成为人工智能领域的明星。然而,这些模型“知道”什么?它们如何获取知识?…...
【回眸】Linux 内核 (十六) 之 多线程编程 下
前言 前面介绍了互斥锁,本篇博文介绍死锁及其他多线程遇到的情况。 什么情况会造成死锁 死锁指的是两个或两个以上的运算单元(进程、线程或协程),互相持有对方所需的资源,导致它们都无法向前推进,从而导…...
学习笔记083——Java Stream API
文章目录 1、过滤数据 filter()2、转换元素 map()3、排序 sorted()3.1、自定义排序规则 4、去重 distinct()5、限制元素数量 limit()6、收集结果 collect()6.1、收集为List6.2、收集为Set6.3、转为Map6.4、基本用法(注意键冲突会抛异常)6.5、处理键冲突&…...
逍遥模拟器ARM过检测技术全解析
逍遥模拟器ARM框架安装magisk和修改设备型号隐藏应用隐藏root过检测 逍遥模拟器ARMmagisk改设备型号隐藏应用隐藏root 引言 逍遥模拟器以其出色的性能和丰富的功能,深受广大用户喜爱,让用户能在电脑上轻松运行各类安卓应用和游戏。然而,为保…...
Easysearch VS Opensearch 数据写入与存储性能对比
本文记录 Easysearch 和 Opensearch 数据写入和数据存储方面的性能对比。 准备 压测工具:INFINI Loadgen 对比版本: Easysearch 1.11.1(lucene 8.11.4)Opensearch 2.19.1(lucene 9.12.1) 节点 JVM 配置…...
C++中STL学习(一)——向量、栈、堆、集合
#include “bits/stdc.h” using namespace std; int main() { // -------------------- 1、向量vector:可以替换数组,不需要事先指定长度 // ------------------------- vector arr; // 构建int数组 vector arr1(100); // 构建初始长度100的int向量 ve…...
柑橘病虫害图像分类数据集OrangeFruitDataset-8600
文章目录 1. 前言2. 数据类别介绍3. 数据集地址 1. 前言 柑橘,作为水果界的 “宠儿”,不仅以其酸甜可口的味道深受大众喜爱,更是在全球水果产业中占据着举足轻重的地位。无论是早餐中的一杯橙汁,还是下午茶里的柑橘甜点ÿ…...
leetcode刷题-单调栈
代码随想录单调栈|739. 每日温度、496.下一个更大元素 I、503.下一个更大元素II、42. 接雨水、84.柱状图中最大的矩形 739. 每日温度496.下一个更大元素 I503.下一个更大元素II42. 接雨水 -- 面试常考题84.柱状图中最大的矩形 739. 每日温度 leetcode题目链接 代码随想录文档讲…...
【设计模式】访问者模式
**简介 假设你有一个购物车(对象结构),里面有多种商品(元素),如苹果、牛奶、书籍。每个商品的计价规则不同: 水果按重量计价牛奶按数量计价书籍按固定价格计价 现在需要实现两种功能࿱…...
【ISP】ISP pipeline(AI)
ISP Pipeline 全流程概览 ISP(Image Signal Processing,图像信号处理)流程通常从原始 Bayer 数据出发,经过一系列模块处理,逐步完成图像校正和增强,最终生成用于显示或编码的标准图像。常见处理模块包括&a…...
【设计模式】模板模式
简介 假设你要冲泡咖啡和茶,两者的流程相似但部分步骤不同: 烧水(公共步骤)加入主材料(咖啡粉/茶叶)添加调料(糖/牛奶)→ 可选步骤倒进杯子(公共步骤) 模板…...
GDB调试程序的基本命令和用法(Qt程序为例)
1. 引言 GDB(GNU Debugger)是一个强大的命令行调试工具,它可以帮助开发者在程序运行时查找和修复错误。当调试Qt程序时,GDB同样适用,并且能够帮助开发者定位诸如数组越界挂死等复杂问题。 2. 基本命令 2.1 启动GDB …...
vue3腾讯云直播 前端推流
1、在index.html文件中引入(在body体中) <script src"https://video.sdk.qcloudecdn.com/web/TXLivePusher-2.1.1.min.js" charset"utf-8"></script> 2、vue文件中,添加video推流(我用的推流地…...
DP_AUX辅助通道介绍
DisplayPort(简称DP)是一个由PC及芯片制造商联盟开发,视频电子标准协会(VESA)标准化的数字式视频接口标准。该接口免认证、免授权金,主要用于视频源与显示器等设备的连接,并也支持携带音频、USB…...
【微机及接口技术】- 第九章 串行通信与串行接口(下)
文章目录 第二节 串行通信协议一、异步串行通信协议二、同步串行通信协议 第三节 串行接口标准RS-232C一、RS-232C信号线定义二、电气特性 第四节 可编程串行接口芯片8251A一、基本性能二、内部结构三、外部引脚功能1. 同CPU的连接信号2. MODEM控制信号(4个…...
人形机器人制造—3D打印推动微型化与轻量化设计
在人形机器人仿生架构的构建中,多模态传感器集群与仿生关节矩阵的拓扑融合,正催生第三代具身智能的力学革命。通过分布式触觉薄膜、双目视觉惯性测量单元(200Hz采样率)与肌电模拟传感器的三重耦合,机器人获得了超越人类…...
前端性能优化高频面试题解析与实战指南(2025版)
一、前端性能优化核心面试题汇总 1. 浏览器加载优化相关问题 Q1:浏览器从输入URL到页面渲染的完整流程中,有哪些关键性能节点? 核心流程:DNS解析 → TCP连接(TLS握手)→ HTTP请求 → 资源下载 → 解析HT…...
【教程】xrdp修改远程桌面环境为xfce4
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 xfce4 vs GNOME对比 配置教程 1. 安装 xfce4 桌面环境 2. 安装 xrdp 3. 配置 xrdp 使用 xfce4 4. 重启 xrdp 服务 5. 配置防火墙ÿ…...
递增子序列
递增子序列 难点: 结果集如何加:每次进入递归都判断是否sub中的个数>2;不允许对数组排序,如何在每层去重:不可以再用nums[i] nums[i-1](没有意义,重复的元素不一定挨着)&#x…...
Linux磁盘管理双雄:lsblk与df深度解析
在Linux系统管理的日常工作里,磁盘管理占据着极为重要的地位,这里重点介绍lsblk和df这两个命令。 一、lsblk命令:呈现磁盘物理架构 lsblk是用于罗列块设备信息的实用命令,它以直观的树状结构呈现系统中的块设备,帮助…...