news 2026/10/17 1:05:12

图像分割技术演进路线:从FCN到U-Net与DeepLab的架构变革

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图像分割技术演进路线:从FCN到U-Net与DeepLab的架构变革

1. 为什么要做图像分割综述,以及这篇综述的价值

这两年做深度学习相关的项目,尤其是计算机视觉方向,几乎绕不开图像分割。不管是自动驾驶里的道路与障碍物识别、医疗影像里的器官与病灶勾画,还是电商场景里的商品抠图、工业质检里的缺陷定位,最底层依赖的都是像素级的分类能力,也就是图像分割。

但很多初学者一上来就扎进代码里,今天跑一个U-Net,明天试一下DeepLab,后天又去追最新的Transformer分割模型,学得很零散,对整条技术演进路线没有完整认知。真正到选型的时候,不知道哪些模块是关键,哪个结构解决什么问题,为什么某些改进能带来质的提升,某些只是微小的优化。

这篇标题为《Evolution of Image Segmentation using Deep Convolutional Neural Network: A Survey》的综述,做的正是这件事:把图像分割这条技术主线串起来。从传统方法的局限讲起,分析深度卷积神经网络如何一步步突破这些局限,中间经历了哪些关键架构变革,以及当下的研究趋势和开放问题。

这篇文章的价值,本质上是一份“地图”。它适合三类人阅读:

  • 刚进入CV方向的研究者或学生,需要一个系统框架去理解分割任务的全貌,而不是东拼西凑看碎片化博客。
  • 已经在做相关项目的工程师,想在动手前理清方案选型的依据,知道不同架构的适用范围和性能边界。
  • 需要规划技术路线或调研方向的技术管理者,通过一篇综述快速把握这个领域的技术演进脉络与前沿动态。

我个人的体会是,做应用和做研究有一个共同点:方向感比技巧更重要。读完一篇好的综述,你对“为什么这么做”“下一步能往哪走”的理解,会远超你自己零散看几十篇论文或代码的效果。

2. 图像分割的核心问题与技术坐标定位

2.1 三个容易混淆的任务:语义分割、实例分割、全景分割

在展开技术演进之前,必须先把这个领域的任务坐标系说清楚。很多刚入门的同学会在三个概念之间打转:语义分割、实例分割、全景分割。

语义分割处理的是“像素属于哪个类别”这个问题,它不区分同一类别里的不同个体。比如街景里有三辆车,语义分割把所有车的像素都标成“车”这个类别,不关心它们是车A、车B还是车C。这是最基础的分割任务形态,也是本综述讨论的重心。

实例分割稍微复杂一点,它不仅要告诉像素属于什么类别,还要区分同类别的不同个体。还是街景的例子,实例分割会把三辆车分别标成车1、车2、车3,每个实例都有独立的掩码。这个任务对边界精度和分离能力的要求更高,代表性框架是Mask R-CNN这类“检测+分割”的组合思路。

全景分割是前两者的统一,它要求对场景中的所有像素都进行分割和语义标注,同时区分同类别的不同实例。像街景里天空、道路这种无实例的“stuff”类别按语义分割处理,而车辆、行人这种“thing”类别则按实例分割处理。

理解这个坐标系非常关键,因为在看综述里的网络结构时,很多架构设计会因任务不同而分化。

2.2 分割为什么难:感受野与空间细节的矛盾

从信号处理的角度来看,图像分割本质上面临一对核心矛盾:全局上下文与局部细节之间的张力。

要做准确的像素分类,网络需要足够大的感受野来理解“这个像素属于什么”,比如一个像素周围是路面、车道线还是人行道,决定了它更可能是哪种类别。感受野越大,上下文信息越充分,类别判断越准确。

但同时,分割要求输出与输入同分辨率的逐像素标签,这意味着网络必须保留或恢复精细的空间结构。边缘轮廓、细小纹理、狭长物体,这些细节信息如果被过度下采样,恢复起来就非常困难。

这就解释了一个技术上的常见困惑:为什么不直接用分类网络来做分割。分类网络通过连续的卷积和下采样,不断扩大感受野,把图像逐步压缩成高维特征甚至一个类别概率向量。这个过程对“全局理解”是友好的,但对“空间精度”是致命的。直接拿分类网络改造成分割模型,通常只能得到一团模糊的色块,边缘一塌糊涂。

2.3 深度卷积网络带来的三个根本性变革

这篇综述的核心论点,就是把深度卷积神经网络视为分割任务走向实用的分水岭。与传统方法相比,它带来了三个根本性变革。

第一个是特征表达从人工设计转向自动学习。传统分割方法依赖颜色直方图、纹理特征、手工滤波器等浅层线索,对光照变化、视角变化、遮挡等因素非常敏感。而深度网络能在大规模数据上自动学习从边缘、角点到部件、物体层级的分层特征表达,泛化能力大幅提升。

第二个是端到端的训练范式。传统方法通常是一个流水线:先提特征,再聚类或分类,后处理后融合,每个环节独立调优,误差不断累积。深度分割网络可以把“图像输入”到“分割结果”直接构造成一个可微的整体,用像素级标注进行监督,一步到位地联合优化所有参数。

第三个是数据驱动的持续迭代能力。深度模型的性能提升高度依赖数据和算力,这也使得该领域形成了一个“数据标注越精细、模型能力越强、应用越广泛、进一步推动数据生产”的正向循环。

有了这个坐标系,再往下看具体的架构演进,就会清晰得多。

3. 技术演进路线:从全卷积到多尺度融合

3.1 全卷积网络:分割领域的分水岭

如果说要在这篇综述里选一个“最值得理解透彻”的里程碑,那一定是全卷积网络。它几乎是所有现代深度分割模型的鼻祖,标题里提到的“Deep Convolutional Neural Network”,很重要的一个转折点就是卷积层替换全连接层这个看似简单的改动。

全连接层的问题在于它的输入输出维度是固定的。分类网络最后几个全连接层把特征图拍扁成固定长度的向量,从而丢失了空间位置信息。而全卷积网络把最后的全连接层替换为卷积层,使网络可以接受任意尺寸的输入,并且输出仍然是一张二维的特征图,特征图上的每个位置与输入图像上的位置保持对应关系。

当然,由于网络中间的池化和步长卷积,输出特征图尺寸远小于输入图像,通常是原始尺寸的1/32。为了得到像素级预测,需要把低分辨率的特征图“放大”回原图大小。这里的上采样方式很关键,最朴素的是双线性插值,但缺少可学习能力。

全卷积网络里用了转置卷积,也叫反卷积,它本质上是卷积的逆操作,通过可学习的卷积核将低分辨率特征映射回高分辨率空间。这个设计让上采样过程也能参与梯度反传,从而端到端训练。

但是简单的跳步上采样效果并不理想,这就是综述里会反复讨论的第一个痛点:上采样恢复的边界过于粗糙。原因在于底层空间细节已经在多次下采样中丢失,再好的上采样也无法凭空“变出”细节。全卷积网络当时也尝试了跨层融合,把浅层的高分辨率特征和深层的低分辨率语义特征加在一起,但这只是融合的雏形,远没有后续U-Net、DeepLab系列做得彻底。

3.2 编码器-解码器结构与U-Net的“对称之美”

在解决“低分辨率语义特征与高分辨率细节信息如何结合”这个问题上,U-Net给出了一个非常经典的方案,也因此在医学图像分割领域成为事实标准。

U-Net的名字来自它的结构形状:左侧是编码器,逐层下采样提取特征;右侧是解码器,逐层上采样恢复分辨率。中间通过“跳跃连接”把编码器每一层的特征图直接拼接到解码器对应层。这样每一层解码器不仅能拿到来自深层的语义信息,还能拿到对应尺度的高分辨率空间细节。

这个设计背后的“为什么”值得展开。跳跃连接的动机在于,随着下采样进行,空间细节信息是逐步流失的。编码器最后输出的特征图虽然语义最强,但空间位置已经非常模糊。如果只在最终层做上采样再分割,相当于让一个记忆模糊的人凭感觉给整张图涂色。而有了跳跃连接,解码器的每一层都能“看到”当初编码器经过这一层时的细节快照,相当于一边恢复形状一边参考原图细节。信息通路更短,梯度也能更顺畅地流向浅层。

对称的U型结构还有一个实际好处:参数量和特征图裁剪都很自然,适用于数据量不大的场景。这让U-Net在医学影像这种“标注贵、数据量少”的领域特别受欢迎。后来很多变体,比如残差连接、注意力门控、多层特征融合的U-Net++等,本质都是在进一步优化跳跃连接的融合方式或解码器的特征处理效率。

3.3 空洞卷积与DeepLab系列的密度哲学

另一条重要路线是空洞卷积。它解决的核心问题是:增大感受野的同时,不降低特征图分辨率。

常规做法是通过增加池化或步长卷积来扩大感受野,但这会牺牲分辨率,对分割这种需要稠密输出的任务很不利。空洞卷积通过在卷积核元素之间插入“空洞”来扩大采样范围,用比普通卷积更大的步幅覆盖输入区域,但参数数量和输出尺寸保持不变。通俗地说,就是用同样的参数量,挂着望远镜看更远的区域。

DeepLab系列是这条路线上的代表。早期的DeepLab使用空洞卷积来获得多尺度的上下文信息,并配合全连接条件随机场做后处理,细化分割边界。后面版本则引入了空洞空间金字塔池化,在同一个特征图上用不同扩张率的空洞卷积并行采样,再把结果融合起来,捕捉多尺度上下文。这个设计灵感可以理解为:人的视觉系统看一幅图时,既需要关注整体场景,又需要注意局部细节,多尺度并行采集正是模拟这种能力。

后续DeepLab版本又引入了编码器-解码器结构,解码器逐步恢复空间信息,与空洞空间金字塔池化特征融合。这个演变路径非常清晰地体现了综述强调的趋势:单一主干网络难以同时满足“大感受野”和“高分辨率”两个要求,多分支并行、多尺度融合成为主流解法。

3.4 从卷积到注意力:Transformer分割架构的兴起

综述里关于趋势的讨论,绕不开Transformer架构对分割领域的冲击。注意力机制本质上是一种动态权重分配机制,它让网络在计算某个位置的输出时,不只看固定卷积核覆盖的局部邻域,而是可以按内容自动决定该“关注”全图的哪些位置。

这个机制天然适合分割任务,因为分割对长距离依赖的需求非常强烈。比如一张图像里,同类的像素点可能相隔很远,但它们应当被一致地识别。传统卷积通过层层堆叠来扩大有效感受野,而注意力一步到位建立全局关联,打破局部感受野的物理限制。

实践中比较有代表性的方案有两类思路。一类是像SETR那样把图像切块序列化,用Transformer编码器提取全局特征,再通过解码器恢复逐像素预测。另一类是把Transformer与U型架构结合,编码器部分替换为Transformer结构,同时保留跳跃连接,这种混合思路在医学分割和遥感分割等任务上取得了很好的效果。

不过Transformer也有代价:计算量随序列长度平方增长,对高分辨率输入很不友好。所以很多近期的实践在探索窗口注意力、稀疏注意力、分层Transformer等方案,在效率和性能之间做权衡。

4. 关键机制与训练实战术:如何在工程中做对选择

4.1 主干网络选型:分类网络做特征提取器的原因

在几乎所有深度分割模型里,主干网络用的都是图像分类领域的经典结构,比如各种ResNet变体、MobileNet、EfficientNet等。为什么不直接为分割任务设计全新的主干?

答案是实用主义。分类网络在ImageNet这类大规模数据集上预训练后,已经学到了非常泛化的底层视觉特征,包括边缘、纹理、颜色渐变等。分割任务的数据集往往规模较小,从头训练一个深网络很容易过拟合。用预训练分类网络做主干,再在其上添加分割头或解码器,是大规模迁移学习的经典做法。

选主干有个朴素原则:算力充足、追求精度时选大容量主干,比如ResNet-101或更大的网络;算力受限、追求实时性时选轻量主干,比如MobileNet系列。同一个分割框架替换主干,往往精度和速度的差异非常大,这种模块化的设计是工程里很方便的操作方式。

4.2 特征融合与多尺度上下文:空洞空间金字塔池化的工程变体

空洞空间金字塔池化“多分支并行不同扩张率”的设计,在工程实现时有几个值得注意的参数细节。扩张率到底应该选多大,并不是拍脑袋的事,而是取决于特征图的分辨率和有效感受野。

有一个经验公式可以参考:对于普通卷积核大小为k的空洞卷积,扩张率为r时,等效感受野大小为k+(k-1)×(r-1)。比如3×3卷积核,扩张率为2时等效感受野为5×5,扩张率为4时等效感受野为9×9。设计多分支时,不同分支的扩张率应当覆盖从局部到全局的多个尺度层次。

工程里有一个常见的坑:扩张率设置过大会导致采样过于稀疏,特征图里大量像素根本不在卷积核覆盖范围内,本应关联的位置反而没有关联。更糟的是,某些扩张率组合会导致部分像素永远无法被感受野覆盖,类似棋盘格般的死区。所以在做空洞空间金字塔池化时,通常搭配1×1卷积(等价于扩张率为1),来捕捉精细的局部特征,同时避免空洞卷积带来的网格伪影。

4.3 损失函数设计细节与类别不平衡处理

分割训练里最容易被忽视但影响最大的环节是损失函数。很多初学者直接用交叉熵,发现网络输出一片全背景,不输出前景目标,就以为是模型结构有问题,其实往往是类别不平衡在作祟。

以医学影像分割为例,病灶区域可能只占整张图的百分之几,如果直接用像素级交叉熵,网络只要把所有像素预测为背景,损失就已经很低了。这个时候就体现出Dice损失的价值。Dice系数的本质是预测掩码与真实掩码的重叠度,对类别不平衡天然不敏感,因为它是按区域计算而不是按像素独立计算的。

实际工程中的常见做法是组合损失,把交叉熵和Dice损失按权重相加。交叉熵对每个像素独立监督,梯度密度稳定,收敛平稳;Dice损失则直接优化目标指标,对前景区域敏感。两者互补,往往比单独使用任何一种效果都稳定得多。

边界损失和高斯距离图损失在某些精细分割任务里也很有效。前者惩罚边界预测错误,引导网络精细化边缘;后者将标注点扩展为高斯热图,软化边界监督信号,让网络在模糊区域不那么“激进”。这些设计本质上都是在回答同一个问题:分割评价指标是像素级的,但用户真正关心的是区域和边界的质量。

4.4 后处理与推理技巧:条件随机场还有用吗

在早期分割模型里,条件随机场几乎算是标配。它利用像素之间的空间关系,对分割结果进行图模型推理,平滑杂散的预测区域,锐化边界。但随着深度分割网络的输出质量越来越好,尤其是空洞卷积和注意力机制极大增强了上下文建模能力,条件随机场带来的增益越来越小。

以我在实际项目中的经验,当前条件随机场在深度模型上的提分幅度通常在零点几个百分点以内,却会带来额外的推理复杂度和更长的耗时。除非对边界平滑有非常苛刻的需求,否则不值得在后处理上花太多精力。与其在决策层做条件随机场,不如在特征层做充分的上下文建模,比如空洞空间金字塔池化或注意力融合,这类端到端的优化收益更大、更可控。

推理阶段还有一个实用技巧:多尺度翻转预测。测试时将输入图像缩放成多个尺度分别推理,对每个输出做翻转推理,最后取平均值或最大值。这个技巧能稳定带来一到两个百分点的精度提升,代价是推理时间成倍增加。在离线评估或竞赛冲刺阶段很值得用,但在实时推理场景下要慎重。

5. 典型应用场景与选型对照:拿方案直接落地

5.1 医疗影像分割:U-Net为何至今仍是首选基线

医疗影像分割是一个对精度和鲁棒性要求极高的应用场景。器官轮廓、肿瘤区域、细胞结构的分割结果直接影响后续诊断和治疗规划。医疗影像的固有特点是标注成本极高、数据规模有限、各向异性强、类间差异大。

在这个背景下,U-Net类结构几乎是天然适配:对称的编码器-解码器配合跳跃连接,使得在少量数据下也能高效学习;高分辨率细节保留对器官边界勾画至关重要。我在实际项目中见过一个很有价值的经验:先在公开数据集上预训练主干部分,再用目标医院的小样本数据集微调,比直接小数据量从头训练效果稳定得多。

现代医疗分割框架中,很多都沿用U-Net的整体结构,但替换了特征提取模块,比如引入残差连接、注意力门控、通道注意力等。这些改动的本质,是通过更精细的特征选择和融合,增强网络对结构复杂、边界模糊区域的判别力。

5.2 自动驾驶场景解析:实时性与精度的平衡艺术

自动驾驶场景是另一个典型的分割应用方向,但它对分割模型的要求和医疗影像非常不同。自动驾驶需要处理街景中的多类别、多尺度、多实例目标,同时对推理速度有严格要求。一个分割网络如果精度很高但单帧推理耗时超过500毫秒,在行车场景里几乎不具备落地价值。

这个约束催生了一批轻量级分割网络的研究。它们的核心思路依然是编码器-解码器或空洞卷积路线,但大量使用了深度可分离卷积、通道剪枝、低精度量化等手段,来降低计算量。比较关键的一个认知是:在自动驾驶场景里,类别层面的语义分割通常只是中间步骤,后续还要配合检测、跟踪、预测等模块使用,所以分割模块的相对位置和输出格式需要与整体系统设计协同。

5.3 遥感图像与工业质检:尺度差距最大的分割任务

遥感图像分割和工业质检巡检,是两个相当有代表性的场景。遥感图像的特点是目标尺度跨度极大:整片农田和单栋建筑可能需要同时分割。工业质检则往往目标占比极小,缺陷区域可能只占图像的1%甚至更低。

这两个场景对分割网络有一个共同的挑战:尺度与占比。对遥感图像,必须有非常强的多尺度上下文建模能力,空洞空间金字塔池化、多分支不同扩张率的并行融合、以及最近越来越常见的多尺度输入自适应选择机制,都是有效方案。对工业质检,核心则在于极端的类别不平衡和低对比度缺陷,Dice损失及其变体会成为关键,同时数据增强中针对缺陷区域的裁剪、粘贴增强等操作也很重要。

6. 常见问题与排查经验:综述之外的一线实战记录

6.1 网络训练不收敛或发散,先检查损失与学习率

训练分割网络时最常遇到的崩溃级问题,就是Loss出现NaN或直接发散。这个问题的排查顺序在工程中非常重要。

第一优先级检查损失函数定义。Dice损失在类别完全不存在时,分子分母同时为零,如果实现时没有加平滑因子,就会出现除零导致NaN。第二优先级检查学习率。分割任务通常比分类任务对学习率更敏感,因为解码器部分是重新初始化的,浅层预训练部分的特征分布差异也会影响学习动态。常见的做法是:主干使用较低学习率,新添加的头部使用较高学习率,两套学习率可以差5到10倍。

6.2 小目标分割效果差,问题往往不在解码器

很多项目调试到后期都会问:为什么网络对大目标分割得很好,小目标却频繁漏掉或断开。直觉上会先怀疑解码器细节恢复能力不足,但实际上更常见的原因是下采样阶段把小目标的信息彻底丢弃了。

当小目标只占几个像素时,经过连续的池化和步长卷积后,它们可能直接消失。在这个阶段考虑两个方案:一个是调整下采样倍率,让特征图尺寸更大,比如把1/32的输出改为1/16或1/8;另一个是引入更浅层的高分辨率特征参与融合,在U型结构里把第二层或第三层的特征也拼接进来。这两种做法本质上都是“信息保真度”的考量。

6.3 边界区域模糊,可能是标签本身也有问题

有一类问题和模型无关,很容易被忽略:边界区域模糊,其实来自标注噪声。

不同标注人员在画标注时,对边界的定义本身存在主观差异。尤其是医学影像中不同模态、不同组织之间的过渡带,以及遥感图像中地物之间的过渡,真实边界本身就是一个渐变区域,而不是一条明确线。此时网络输出的“模糊”边界,某种程度上是在学习标注的不确定性分布,并不完全是模型的缺陷。

针对这类情况,一个实用方案是采用软标签训练,把标注边界区域替環为渐变的软概率值,而不是硬性的0或1。还有一些方法是采用标签平滑、边界加权损失,本质上都是让模型在不确定区域不要“过度自信”。

6.4 一个可复现的分割训练流水线参考

把前面讲到的经验汇总成一条完整的可复现流水线,对快速启动一个分割项目很有帮助。我这里整理一个通用流程,适用于大多数语义分割任务。

第一步,数据准备与增强:统一图像与掩码尺寸,归一化,做随机翻转、随机裁剪、颜色抖动、弹性变形等增强。对于类别不平衡严重的任务,加上针对前景区域的裁剪增强。

第二步,模型搭建与预训练:选择合适的主干结构,加载预训练权重;选择U-Net、带空洞空间金字塔池化的结构等作为分割框架;修改输出层类别数。

第三步,训练策略:损失函数采用交叉熵+Dice组合,学习率使用预设策略,主干初始学习率值为新头部的1/10左右,配合Momentum优化器或自适应优化器。每轮评估Dice、交并比等核心指标。

第四步,推理与后处理:多尺度翻转推理,条件随机场按需使用,输出前进行连通域分析和轮廓提取,再接入业务逻辑。

7. 展望与开放问题:综述之外,我看到的真实方向

综述会总结领域已有的成果,而站在从业者的角度,我更关心下一阶段值得投入的方向。

第一个不可回避的方向是多模态融合。当前分割模型大多只在RGB图像上工作,但现实中很多场景已经能同时获取深度图、热红外图像、多光谱数据等。如何让分割网络有效利用这些跨模态信息,是一个潜力非常大且尚未完全解决的问题。医学影像里不同模态的互补性尤其明显,而多模态融合的数据获取在工业现场也已经越来越成熟。

第二个方向是弱监督与少样本分割。像素级标注的成本是分割落地的主要瓶颈之一,因此如何在只有图像级类别标签、边界框标注、点标注甚至涂鸦标注的情况下,训练出接近全监督性能的分割模型,是学术界和工业界都非常关注的。目前基于对比学习、伪标签迭代训练、不确定性建模的方法已有不少进展,但离成熟落地还有一段距离。

第三个方向是开放世界分割。传统分割模型只能识别训练时见过的类别,一旦出现新类别就需要重新收集数据、重新标注、重新训练。而开放世界分割的目标是让模型能在推理时识别未知的新类别,并与已知类别统一输出。这也是把分割模型从“封闭任务工具”变成“持续学习系统”的关键一步。

8. 写在最后:先有地图,再走代码

我个人做图像分割项目这几年最大的经验,恰恰就是这篇综述标题里最朴素的那个词:Evolution。分割技术不是一堆并列的模型集合,而是一连串对矛盾持续求解的演进过程。理解了这个演进逻辑,你会对网络结构中的每一个设计选择有更深层的直觉,而不是人云亦云地调参。

如果让我给一条建议,那就是:不要一开始就对着最新论文里的复杂结构死磕,而是从全卷积网络、U-Net、DeepLab这条主线走一遍,搞清楚“每个阶段为什么这样改、解决了哪个问题、又带来了什么新问题”。这条主线走完之后,你会发现无论是读代码、选框架还是做工程方案,都能迅速抓住要害。

最后分享一个小技巧。读综述时不要只在文字层面理解,建议配合画图的方式,把每个网络结构的“信息流路径”画出来——输入从哪里进来,特征在哪一层被下采样,哪些层之间有跳跃连接,信息如何被融合。一张图胜过十段文字。等你亲手画完这条信息流,你对分割网络的理解,就已经超过绝大多数只看博客的初学者了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 1:04:13

基于MP2642GR-Z与STM32F410RB的两串电池主动均衡方案设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:03:56

开源三国杀引擎开发105天:事件驱动规则引擎与状态机设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:02:54

储能电池主动均衡方案:MP2642GR-Z与MKV42F64VLH16实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:01:58

云盘扩容后df -h不变?三步扩容法与文件系统扩展全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:01:50

基于MP2642GR-Z与STM32F405RG的两串锂电池主动均衡方案设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 0:56:47

Mypal3深度指南:给Windows XP老系统续命的Firefox分支与调优

“Mypal3”这个名字,老折腾系统的人应该不陌生。它就是那批坚持给老系统续命的浏览器分支之一,专为那些跑不动现代浏览器、又被官方彻底抛弃的老机器准备的。Mypal3(9)这个版本号,你可以把它看作是这条分支线里一个非常…

作者头像 李华