医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室

医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室

    • 语义分割网络
      • FCN:通过将全连接层替换为卷积层并使用反卷积上采样,实现了第一个端到端的像素级分割网络
      • U-Net:采用对称的U形编解码器结构,并通过跳跃连接融合不同层级特征,在保留细节的同时获取语义信息。
      • DeepLab:使用空洞卷积和ASPP模块高效扩大感受野,并结合CRF后处理优化边界,实现多尺度特征提取。
      • PSPNet:引入金字塔池化模块聚合多尺度全局上下文信息,通过特征融合提升场景理解能力。
      • SegNet:基于对称编解码器结构,利用最大池化索引进行高效上采样,实现内存友好的实时分割。
      • DeconvNet:采用深度编码器和分阶段反卷积解码,通过非对称上采样路径精确重建目标形状细节。
      • RefineNet:设计多路径精炼结构和级联残差连接,通过自适应特征融合模块整合多层级信息。
      • P-Seg:金字塔特征提取(多尺度特征) + 特征融合网络(特征连接) + 分割头设计(边界优化)
      • nnU-Net:一个自适应的医学图像分割框架,通过自动分析数据特征来优化网络架构和训练策略,实现"即插即用"的通用分割方案
      • TransUNet:结合Transformer的全局建模能力和CNN的局部特征提取优势,在保持精细结构的同时获得更好的长程依赖关系理解。
      • BOWDA-Net:专注于前列腺分割的双向域适应网络,通过边界感知和域适应机制解决边界模糊和设备差异问题。
      • Attention U-Net:在U-Net基础上引入注意力机制,通过学习空间注意力权重来突出关键区域特征,提升分割精度。
      • 对比
  • 医学影像
    • 前列腺肿瘤 MRI
      • 分治
    • 颅脑肿瘤 MRI
    • 肝脏
    • 心室
    • 腹部多脏器 MRI

 


语义分割网络

图像语义分割 = 对每个像素点分类。

只需要把传统神经网络,最后全连接层变成全卷积网络(得到 2 维特征图),再接 softmax 获取每个像素点的分类信息。

输出:从一维类别分类,变成二维像素点分类。

 

FCN:通过将全连接层替换为卷积层并使用反卷积上采样,实现了第一个端到端的像素级分割网络

FCN (全卷积网络)

  • 目的:实现端到端的像素级分类
  • 问题:如何将分类网络转换为分割网络
  • 解法:
    1. 全连接层转换为卷积层(因为需要保持空间信息)
    2. 上采样恢复分辨率(因为需要与原图尺寸对应)
      • 之所以用反卷积上采样,是因为需要学习如何恢复分辨率
      • 例如:将16x16特征图上采样到32x32,每个点扩展为2x2区域

 

U-Net:采用对称的U形编解码器结构,并通过跳跃连接融合不同层级特征,在保留细节的同时获取语义信息。

U-Net

  • 目的:提高分割精度,尤其是边缘细节
  • 问题:如何在上采样过程中减少信息损失
  • 解法:
    1. 对称编码器-解码器结构(因为需要逐层还原特征)
    2. 跳跃连接(因为需要融合低层次和高层次特征)
      • 之所以用跳跃连接,是因为需要保留早期层的细节信息
      • 例如:在医学图像分割中,细胞边界信息在浅层网络中保留得更好

 

DeepLab:使用空洞卷积和ASPP模块高效扩大感受野,并结合CRF后处理优化边界,实现多尺度特征提取。

DeepLab系列

  • 目的:扩大感受野,获取多尺度特征
  • 问题:如何在不增加参数量的情况下扩大感受野
  • 解法:
    1. 空洞卷积(因为需要以较小的计算代价获得更大的感受野)
    2. ASPP模块(因为需要捕获多尺度上下文信息)
    3. CRF后处理(因为需要优化分割边界)
      • 之所以用空洞卷积,是因为可以在不增加参数量的情况下扩大感受野
      • 例如:检测不同大小的物体时,需要不同尺度的感受野

 

PSPNet:引入金字塔池化模块聚合多尺度全局上下文信息,通过特征融合提升场景理解能力。

PSPNet

  • 目的:整合全局场景信息
  • 问题:如何有效融合不同尺度的上下文信息
  • 解法:
    1. 金字塔池化模块(因为需要获取多尺度全局信息)
    2. 特征融合(因为需要组合局部和全局信息)
      • 之所以用金字塔池化,是因为可以获取不同尺度的上下文信息
      • 例如:理解道路场景时,需要同时考虑车辆细节和整体路况

 

SegNet:基于对称编解码器结构,利用最大池化索引进行高效上采样,实现内存友好的实时分割。

SegNet

  • 目的:实现高效的实时语义分割
  • 问题:如何在保持准确率的同时降低内存消耗
  • 解法:
    1. 对称编码器-解码器结构(因为需要逐步恢复空间信息)
    2. 最大池化索引上采样(因为需要节省内存同时保留位置信息)
      • 之所以用最大池化索引,是因为可以精确还原特征位置而无需存储完整特征图
      • 例如:在自动驾驶场景中,需要实时分割道路和障碍物,同时内存受限

 

DeconvNet:采用深度编码器和分阶段反卷积解码,通过非对称上采样路径精确重建目标形状细节。

DeconvNet

  • 目的:提高分割的细节准确度
  • 问题:如何更好地恢复目标的形状细节
  • 解法:
    1. 深度编码器(因为需要提取丰富的语义特征)
    2. 分阶段反卷积解码(因为需要渐进式恢复空间细节)
    3. 非对称上采样路径(因为需要灵活处理不同尺度的特征)
      • 之所以用分阶段反卷积,是因为可以更细致地控制特征重建过程
      • 例如:分割人体轮廓时,需要逐步恢复从大体轮廓到细节纹理

 

RefineNet:设计多路径精炼结构和级联残差连接,通过自适应特征融合模块整合多层级信息。

RefineNet

  • 目的:融合多尺度特征以提高分割精度
  • 问题:如何有效利用不同层级的特征信息
  • 解法:
    1. 多路径精炼(因为需要处理不同分辨率的特征)
    2. 级联残差连接(因为需要保证信息流动和梯度传播)
    3. 自适应融合模块(因为需要动态调整不同特征的权重)
      • 之所以用级联残差连接,是因为可以在长距离特征传递中保持信息完整性
      • 例如:分割复杂场景时,需要同时利用浅层的边缘信息和深层的语义信息

 

P-Seg:金字塔特征提取(多尺度特征) + 特征融合网络(特征连接) + 分割头设计(边界优化)

(1) 金字塔特征提取

  • 子解法1.1:自底向上的主干网络提取 (ResNet/ResNeXt)
    • 因为:图像包含多层次语义信息,需要逐层提取
  • 子解法1.2:多尺度特征图构建
    • 因为:不同尺度目标需要不同感受野

(2) 特征融合网络

  • 子解法2.1:横向连接
    • 因为:需要融合相同分辨率的特征
  • 子解法2.2:自顶向下路径增强
    • 因为:高层语义信息需要传递给低层特征

(3) 分割头设计

  • 子解法3.1:多层特征聚合
    • 因为:需要综合不同层级的特征信息
  • 子解法3.2:边界细化模块
    • 因为:提高分割边界的准确性

例子:
在自动驾驶场景中分割道路、车辆、行人等目标:

  • 道路是大尺度目标,主要利用深层特征
  • 远处的行人是小尺度目标,主要利用浅层特征
  • 通过特征融合实现不同目标的精确分割
  1. 逻辑链分析:
P-Seg
├── 特征提取(Backbone)
│   ├── 浅层特征提取
│   └── 深层特征提取
├── 特征融合(FPN)
│   ├── 横向连接
│   │   └── 同分辨率特征融合
│   └── 自顶向下融合
│       └── 高层语义增强
└── 分割预测(Head)
    ├── 特征聚合
    └── 边界优化

这是一个混合型的逻辑网络,既有链式结构(特征提取→融合→预测),也有并行结构(多尺度特征的同时处理)。

 

nnU-Net:一个自适应的医学图像分割框架,通过自动分析数据特征来优化网络架构和训练策略,实现"即插即用"的通用分割方案

  1. nnU-Net (no-new-U-Net)

目的:实现医学图像分割的自动化适应性优化
问题:不同医学数据集特征差异大,难以用单一固定架构获得最佳效果
解法:自适应优化方案

  • 子解法1(数据特征自适应)

    • 自动数据分析和预处理
    • 根据数据特征选择2D/3D架构
    • 动态patch大小选择
      因为:医学数据分辨率、维度、组织对比度差异大
  • 子解法2(训练策略自适应)

    • 自动学习率调整
    • 动态损失函数选择
    • 自适应优化器配置
      因为:不同任务对训练参数敏感度不同

示例:脑肿瘤分割任务中,自动选择3D架构并调整patch size适应肿瘤大小

 

TransUNet:结合Transformer的全局建模能力和CNN的局部特征提取优势,在保持精细结构的同时获得更好的长程依赖关系理解。

  1. TransUNet

目的:提升医学图像分割的全局信息获取能力
问题:传统CNN难以捕获长距离依赖关系
解法:Transformer与CNN结合

  • 子解法1(全局特征提取)

    • Transformer编码器捕获长程依赖
    • 多头自注意力机制
      因为:医学图像中器官位置和形状关系复杂
  • 子解法2(局部细节优化)

    • CNN处理局部特征
    • Skip connection保留细节
      因为:医学图像需要同时保证全局准确性和局部精细度

示例:前列腺MRI分割中,可以同时关注整体形状和局部边界细节

 

BOWDA-Net:专注于前列腺分割的双向域适应网络,通过边界感知和域适应机制解决边界模糊和设备差异问题。

  1. BOWDA-Net

目的:提升前列腺分割的边界准确性和域适应能力
问题:前列腺边界模糊,不同设备间图像差异大
解法:边界感知与域适应结合

  • 子解法1(边界增强)

    • 多尺度边界特征提取
    • 边界注意力机制
      因为:前列腺边界与周围组织对比度低
  • 子解法2(域适应)

    • 双向特征对齐
    • 对抗学习策略
      因为:不同设备、不同医院的图像存在域差异

示例:在不同机构获取的前列腺MRI数据上保持稳定性能

 

Attention U-Net:在U-Net基础上引入注意力机制,通过学习空间注意力权重来突出关键区域特征,提升分割精度。

  1. Attention U-Net

目的:提升分割模型对关键区域的注意力
问题:传统U-Net对所有区域权重相同,忽视重要性差异
解法:注意力机制增强

  • 子解法(空间注意力)
    • 门控注意力单元
    • 多层级注意力特征融合
      因为:医学图像中目标区域与背景重要性差异大

示例:前列腺癌灶分割中,重点关注异常区域

 

医学图像分割
├── 数据特征处理
│   ├── 自适应优化 (nnU-Net)
│   └── 域适应对齐 (BOWDA-Net)
├── 特征提取策略
│   ├── 全局信息获取 (TransUNet)
│   └── 局部细节优化 (TransUNet, Attention U-Net)
└── 目标区域定位
    ├── 边界增强 (BOWDA-Net)
    └── 注意力机制 (Attention U-Net)

 


对比

A. 叠加形态 (从基础到高级的演进):

第一层(把分类变成分割):
- FCN:全卷积+反卷积的基础架构
- SegNet:对称编解码器架构

第二层(解决细节丢失问题):
- U-Net:跳跃连接增强细节
- DeconvNet:分阶段反卷积精细形状重建

第三层(解决上下文信息缺失):
- DeepLab:空洞卷积扩大感受野
- PSPNet:多尺度上下文聚合

第四层(解决全局场景理解):
- RefineNet:多路径精炼和级联融合
- P-Seg:金字塔特征提取和融合

第五层(智能适应):
- nnU-Net:自适应优化
- TransUNet:Transformer全局建模
- BOWDA-Net:域适应和边界感知
- Attention U-Net:注意力增强
          局部特征  全局特征  边界处理  适应性
传统模型     强        弱        中      弱
注意力模型   强        中        强      中
自适应模型   强        强        强      强

 

B. 构成形态 (小部件组成大系统):

输入图像 → [特征提取] → [特征融合] → [上采样] → 输出分割图

完整分割系统
├── 特征提取子系统
│   ├── 基础特征模块 (卷积层)
│   ├── 中层特征模块 (池化层)
│   └── 高层语义模块 (深层网络)
├── 特征融合子系统
│   ├── 跳跃连接 (U-Net)
│   ├── 金字塔池化 (PSPNet)
│   └── 多路径精炼 (RefineNet)
└── 上采样子系统
    ├── 反卷积 (FCN, DeconvNet)
    ├── 最大池化索引 (SegNet)
    └── 渐进式重建 (RefineNet)
特征提取:学习图像特征
├── 浅层:边缘、纹理(卷积层)
├── 中层:形状、部件(池化层)
└── 深层:语义、类别(深层网络)

特征融合:综合各层信息
├── 简单跳跃连接(U-Net)
├── 多尺度融合(PSPNet)
└── 多路径融合(RefineNet)

上采样:还原分辨率
├── 简单反卷积(FCN)
├── 索引上采样(SegNet,省内存)
└── 渐进式还原(RefineNet,更精细)

C. 分化形态 (功能特化):

最初目标:把图像分割成不同区域

分化方向1:追求精度
├── 做细节
│   ├── U-Net:医学图像(细胞、器官)
│   └── RefineNet:复杂场景(多个目标)
└── 做语义
    ├── DeepLab:不同尺度目标
    └── PSPNet:整体场景关系

分化方向2:追求效率
├── 算得快:SegNet(实时处理)
└── 内存少:SegNet(存储效率)
语义分割
├── 精度导向
│   ├── 边缘细节优化
│   │   ├── U-Net (医学图像)
│   │   └── RefineNet (复杂场景)
│   └── 语义理解优化
│       ├── DeepLab (场景分割)
│       └── PSPNet (场景解析)
└── 效率导向
    ├── 计算效率
    │   ├── SegNet (实时处理)
    │   └── FCN (基础架构)
    └── 内存效率
        └── SegNet (索引上采样)
  1. 原始问题:把图像每个像素都分类(FCN)
  2. 遇到的挑战:
    • 细节模糊 → U-Net解决
    • 目标大小不一 → DeepLab解决
    • 场景关系复杂 → PSPNet解决
    • 计算资源受限 → SegNet解决
  3. 最终形成:
    • 高精度流派:U-Net、RefineNet(精细分割)
    • 场景理解流派:DeepLab、PSPNet(复杂场景)
    • 效率流派:SegNet(实时应用)

 

  1. 线性结构分析 (发展趋势):
FCN (2015) → U-Net (2015)SegNet (2016)DeconvNet (2016)DeepLab (2017)PSPNet (2017)RefineNet (2017)

演进特征:
- 结构:简单结构 → 对称结构 → 多分支结构
- 特征融合:无融合 → 简单融合 → 多尺度融合
- 上下文信息:局部信息 → 多尺度信息 → 全局信息
- 计算效率:未优化 → 部分优化 → 高效设计
  1. 矩阵结构分析:
             精度  速度  内存  易用性  适应性
FCN          中    快    中    高     中
U-Net        高    中    中    中     中
SegNet       中    快    低    高     中
DeconvNet    高    慢    高    低     中
DeepLab      高    慢    高    低     高
PSPNet       高    慢    高    低     高
RefineNet    高    慢    高    低     高    
  1. 系统动力学分析:

关键变量:

  • 输入:图像分辨率、场景复杂度
  • 内部状态:特征图大小、参数量
  • 输出:分割精度、推理速度

反馈循环:

正向循环:
特征提取深度 ↑ → 语义理解能力 ↑ → 分割精度 ↑ → 模型复杂度 ↑

负向循环:
模型复杂度 ↑ → 计算开销 ↑ → 处理速度 ↓ → 实用性 ↓

不同网络针对不同问题域进行了特化:

  • FCN:通用基础架构
  • U-Net:医学图像精细分割
  • SegNet:实时应用场景
  • DeepLab/PSPNet:复杂场景理解
  • RefineNet:高精度要求场景
语义分割任务
├── 是否有实时性要求?
│   ├── 是 ──┐ 
│   │   ├── 内存是否受限?
│   │   │   ├── 是 → SegNet
│   │   │   └── 否 → 简化版FCN
│   │   
│   └── 否 ──┐
│       ├── 场景复杂度高?
│       │   ├── 是 ──┐
│       │   │   ├── 计算资源充足?
│       │   │   │   ├── 是 ──┐ 
│       │   │   │   │   ├── 多尺度目标为主 → DeepLab
│       │   │   │   │   └── 需要全局场景理解 → PSPNet
│       │   │   │   └── 否 → 简化版DeepLab
│       │   │   │
│       │   │   └── 需要精细结构?
│       │   │       ├── 是 → RefineNet
│       │   │       └── 否 → DeepLab/PSPNet
│       │   │
│       │   └── 否 ──┐
│       │       ├── 需要精确边界?
│       │       │   ├── 是 ──┐
│       │       │   │   ├── 医学图像类任务 → U-Net
│       │       │   │   └── 普通场景 → DeconvNet
│       │       │   └── 否 → FCN
│       │       │
│       │       └── 资源受限?
│       │           ├── 是 → FCN
│       │           └── 否 → U-Net

关键决策点说明:

  1. 实时性 + 内存限制:

    • 严格限制 → SegNet(最大池化索引上采样更节省内存)
    • 较松限制 → 简化FCN
  2. 复杂场景 + 充足资源:

    • 多尺度目标 → DeepLab(空洞卷积优势)
    • 全局场景理解 → PSPNet(金字塔池化优势)
    • 精细结构需求 → RefineNet(多路径精炼优势)
  3. 简单场景:

    • 医学图像 → U-Net(跳跃连接保留细节)
    • 普通精确边界需求 → DeconvNet
    • 基础分割需求 → FCN

 


医学影像

医学影像数据集搜索:

  • 飞桨 AI Studio :搜索医学影像
  • CANCER:需要自己标注
  • Kaggle:搜索英文关键词
  • 吴恩达网站:注册一下
  • 阿里天池:搜索医学影像

 

前列腺肿瘤 MRI

  1. 前列腺MRI图像特征:

A. 图像特点

- 组织对比度低(前列腺与周围软组织区分度不高)
- 边界模糊(特别是基底部和尖部)
- 形状变化大(个体差异、病变影响)
- 多序列特征(T1WI、T2WI、DWI等)

B. 分割难点

- 边界识别困难(与周围组织界限不清)
- 内部结构复杂(中央腺体、外周区等)
- 尺度变化(不同切片上前列腺大小不同)
- 病变影响(如肿瘤导致的形态改变)
  1. 需要解决的关键问题:

A. 精确度要求

- 边缘精确定位(手术规划需要)
- 内部分区识别(癌症诊断需要)
- 体积准确计算(病情评估需要)

B. 特征提取需求

- 局部细节(边界信息)
- 区域特征(内部结构)
- 空间关系(与周围器官位置关系)
  1. 最佳网络选择:

综合分析,适合采用 U-Net 架构为基础,结合DeepLab的特性:

A. 为什么选U-Net为基础:

优势匹配:
1. 跳跃连接保留边界细节
   - 有助于精确定位前列腺边界
   - 保留内部结构细节信息

2. 对称编解码结构
   - 适合处理医学图像
   - 特征提取和重建平衡

3. 在小数据集上表现好
   - 医学数据集通常较小
   - 减少过拟合风险

B. 为什么需要DeepLab特性:

互补优势:
1. 空洞卷积
   - 扩大感受野,看到更多上下文
   - 有助于理解前列腺与周围组织关系

2. ASPP模块
   - 捕获多尺度特征
   - 适应不同切片上前列腺大小变化
  1. 具体架构建议:
改进的U-Net架构:
1. 编码器部分:
   - 加入空洞卷积
   - 增加感受野

2. 解码器部分:
   - 保持原始U-Net结构
   - 保证细节重建

3. 跳跃连接:
   - 多尺度特征融合
   - 注意力机制选择关键信息

4. 输出层:
   - 多任务输出(分割+分区)
   - 边界增强约束
  1. 可能的改进方向:

A. 数据层面

- 多序列融合(T1、T2、DWI)
- 数据增强(形状变化、强度变化)
- 边界增强(手动标注重点关注)

不同模态优势互补:

  • T2序列:提供最佳的解剖结构细节
  • ADC序列:反映组织扩散特性,有助于区分良恶性病变
  • DWI序列:对肿瘤组织高度敏感

单一模态局限性:

  • 仅依赖单一模态容易出现假阳性/假阴性
  • 难以准确判断病变边界和性质

B. 网络层面

- 注意力机制(关注关键区域)
- 边界增强模块(提高边界准确性)
- 3D信息利用(考虑切片间关系)

C. 损失函数

- 边界感知损失
- 形状先验约束
- 区域特异性权重
  1. 实践建议:

A. 基础版本

标准U-Net + 空洞卷积
- 适合数据集较小
- 计算资源有限
- 快速实现验证

B. 进阶版本

U-Net + DeepLab特性 + 注意力机制
- 数据集充足
- 有较强算力
- 追求更高精度

C. 完整版本

多模态融合 + 3D信息 + 多任务学习
- 临床应用要求高
- 资源充足
- 长期优化方案

这个方案特别适合前列腺MRI分割任务,因为它:

  1. 保持了边界精确性(U-Net优势)
  2. 提供了足够的感受野(DeepLab特性)
  3. 平衡了精度和复杂度
  4. 留有优化和扩展空间

 

分治

医学影像的特殊性(图像特征模糊、区域边界不清晰、组织结构复杂、病变形态多样)决定了直接检测准确率低,而分步处理既能通过逐步细化提高精度,又能满足医疗实践中对诊断过程可解释、可干预、可验证的刚性需求。

就像医生看片子一样,先找到前列腺在哪里,再仔细看是否有病变,每一步都通过多种影像互相印证,确保诊断准确性。

 

一、预处理阶段(数据准备)

想象您在拍照前的准备工作:

  1. 中央区域切割

    • 就像裁剪照片,只保留重要部分
    • 去掉周围无关的区域,只关注前列腺区域
  2. 统一尺寸

    • 就像把所有照片都调整成相同大小
    • 确保所有图像尺寸一致,便于后续处理
  3. 正规化处理

    • 就像调整照片的亮度对比度
    • 使不同设备拍摄的图像达到相同标准
  4. 数据增强

    • 就像用一张照片生成多个角度的照片
    • 解决医学数据样本少的问题
  5. 去噪处理

    • 就像给照片去除杂点
    • 提高图像清晰度

 
就像使用望远镜,先粗调(大致范围),再精调(模糊图像变清晰)。

二、粗调(找到目标)

就像在整张照片中找人脸的位置:

  • 使用 YOLO 快速定位前列腺区域位置
  • 只需要知道大致在哪里

 

三、精细分割阶段(精确描绘)
就像给人脸画轮廓:

  1. 先精确划分前列腺中央区域
  2. 再精确标出可疑病变部位
  3. 使用多种MRI图像确保准确性

 
四、结果融合阶段(综合判断)

就像医生看多张检查结果做诊断:

  1. 综合分析多种MRI图像的结果
  2. 让专家确认结果是否准确
  3. 生成最终的诊断建议报告

为什么要分这么多步骤?

  1. 降低难度

    • 把复杂问题拆分成简单步骤
    • 每个步骤专注解决一个问题
  2. 提高准确性

    • 从粗到细逐步提高精度
    • 多重验证减少错误
  3. 实用性强

    • 每个步骤都可以单独优化
    • 出问题容易定位和修复

 


颅脑肿瘤 MRI

 


肝脏

 


心室

 


腹部多脏器 MRI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/921313.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPF窗体基本知识-笔记-命名空间

窗体程序关闭方式 命名空间:可以理解命名空间的作用为引用下面的控件对象 给控件命名:一般都用x:Name,也可以用Name但是有的控件不支持 布局控件(容器)的类型 布局控件继承于Panel的控件,其中下面的border不是布局控件,panel是抽象类 在重叠的情况下,Zindex值越大的就在上面 Z…

pytorch官方FasterRCNN代码详解

本博文转自捋一捋pytorch官方FasterRCNN代码 - 知乎 (zhihu.com),增加了其中代码的更详细的解读,以帮助自己理解该代码。 代码理解的参考Faster-RCNN全面解读(手把手带你分析代码实现)---前向传播部分_手把手faster rcnn-CSDN博客 1. 代码结构 作为 to…

大数运算(加减乘除和输入、输出模块)

为什么会有大数呢?因为long long通常为64位范围约为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807,最多也就19位,那么超过19位的如何计算呢?这就引申出来大数了。 本博客适合思考过这道题,但是没做出来或…

Excel的图表使用和导出准备

目的 导出Excel图表是很多软件要求的功能之一,那如何导出Excel图表呢?或者说如何使用Excel图表。 一种方法是软件生成图片,然后把图片写到Excel上,这种方式,因为格式种种原因,导出的图片不漂亮&#xff0c…

LLM: AI Mathematical Olympiad (下)

文章目录 一、SC-TIR策略(工具整合推理)二、SC-TIR原理三、避免过拟合四、代码分析1、Main函数2、SC-TIR control flow3、Extract answer4、Execute completion 总结 本文较长分成两个部分分析 | ू•ૅω•́)ᵎᵎᵎ 第一部分:预备知识介绍和…

06、Spring AOP

在我们接下来聊Spring AOP之前我们先了解一下设计模式中的代理模式。 一、代理模式 代理模式是23种设计模式中的一种,它属于结构型设计模式。 对于代理模式的理解: 程序中对象A与对象B无法直接交互,如:有人要找某个公司的老总得先打前台登记传达程序中某个功能需要在原基…

前端vue调试样式方法

1.选中要修改的下拉框&#xff0c;找到对应的标签的class样式 2.在浏览器中添加width宽度样式覆盖原有的样式&#xff0c;如果生效后说明class对了&#xff0c;则到vue页面的strye中添加覆盖样式 <style> :deep(.el-select){width: 180px; } </style>3.寻找自定义…

刷写树莓派系统

一. 树莓派做smb文件服务器参考视频 click here 二. 在官网上下载适合自己树莓派型号的镜像文件 三. 使用官方的riprpi-imager刷写软件 可以自动将TF卡(micro sd卡)格式化为适合树莓派系统运行的文件格式Fat32。就无需自己手动格式化进行刷写。 四. 出现文件验证失败 先把…

Python中的XGBOOST算法实现详解

文章目录 Python中的XGBOOST算法实现详解一、引言二、XGBoost算法原理与Python实现1、XGBoost算法原理1.1、目标函数的二阶泰勒展开 2、Python实现XGBoost2.1、环境准备2.2、导入库2.3、数据准备2.4、数据拆分2.5、模型训练2.6、模型预测与评估2.7、特征重要性可视化 三、总结 …

android 使用MediaPlayer实现音乐播放--权限请求

在Android应用中&#xff0c;获取本地音乐文件的权限是实现音乐扫描功能的关键步骤之一。随着Android版本的不断更新&#xff0c;从Android 6.0&#xff08;API级别23&#xff09;开始&#xff0c;应用需要动态请求权限&#xff0c;而到了android 13以上需要的权限又做了进一步…

Docker 容器化开发 应用

Docker 常用命令 存储 - 目录挂载 存储 卷映射 自定义网络 Docker Compose语法 Dockerfile - 制作镜像 镜像分层机制 完结

Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存

excel保存数据的三种方式&#xff1a; 1、pandas保存excel数据&#xff0c;后缀名为xlsx; 举例&#xff1a; import pandas as pddic {姓名: [张三, 李四, 王五, 赵六],年龄: [18, 19, 20, 21],住址: [广州, 青岛, 南京, 重庆] } dic_file pd.DataFrame(dic) dic_file…

【Unity How】Unity中如何实现物体的匀速往返移动

直接上代码 using UnityEngine;public class CubeBouncePingPong : MonoBehaviour {[Header("移动参数")][Tooltip("移动速度")]public float moveSpeed 2f; // 控制移动的速度[Tooltip("最大移动距离")]public float maxDistance 5f; // 最大…

面向对象-接口的使用

1. 接口的概述 为什么有接口&#xff1f; 借口是一种规则&#xff0c;对于继承而言&#xff0c;部分子类之间有共同的方法&#xff0c;为了约束方法的使用&#xff0c;使用接口。 接口的应用&#xff1a; 接口不是一类事物&#xff0c;它是对行为的抽象。 2. 接口的定义和使…

理论结合实践:用Umami构建网站分析系统

个人博客地址&#xff08;欢迎大家访问&#xff09;&#xff1a;理论结合实践&#xff1a;用Umami构建网站分析系统 1. 引言 网站统计分析是一种通过收集、处理和分析网站数据来评估网站性能、用户行为和流量来源的综合方法。通过分析用户访问模式、页面浏览量、访问时长、用户…

【AI最前线】DP双像素sensor相关的AI算法全集:深度估计、图像去模糊去雨去雾恢复、图像重建、自动对焦

Dual Pixel 简介 双像素是成像系统的感光元器件中单帧同时生成的图像&#xff1a;通过双像素可以实现&#xff1a;深度估计、图像去模糊去雨去雾恢复、图像重建 成像原理来源如上&#xff0c;也有遮罩等方式的pd生成&#xff0c;如图双像素视图可以看到光圈的不同一半&#x…

sysbench压测DM的高可用切换测试

一、配置集群 1. 配置svc.conf [rootlocalhost dm]# cat /etc/dm_svc.conf TIME_ZONE(480) LANGUAGE(CN)DM(192.168.112.139:5236,192.168.112.140:5236) [DM] LOGIN_MODE(1) SWITCH_TIME(300) SWITCH_INTERVAL(200)二、编译sysbench 2.1 配置环境变量 [dmdba~]# vi ~/.bas…

高性能linux服务器运维实战小结 性能调优工具

性能指标 进程指标 进程关系 父进程创子进程时&#xff0c;调fork系统调用。调用时&#xff0c;父给子获取一个进程描述符&#xff0c;并设置新的pid&#xff0c;同事复制父进程的进程描述符给子进程&#xff0c;此时不会复制父进程地址空间&#xff0c;而是父子用相同地址空…

pcb元器件选型与焊接测试时的一些个人经验

元件选型 在嘉立创生成bom表&#xff0c;对照bom表买 1、买电容时有50V或者100V是它的耐压值&#xff0c;注意耐压值 2、在买1117等降压芯片时注意它降压后的固定输出&#xff0c;有那种可调降压比如如下&#xff0c;别买错了 贴片元件焊接 我建议先薄薄的在引脚上涂上锡膏…

【zookeeper03】消息队列与微服务之zookeeper集群部署

ZooKeeper 集群部署 1.ZooKeeper 集群介绍 ZooKeeper集群用于解决单点和单机性能及数据高可用等问题。 集群结构 Zookeeper集群基于Master/Slave的模型 处于主要地位负责处理写操作)的主机称为Leader节点&#xff0c;处于次要地位主要负责处理读操作的主机称为 follower 节点…