Mask R-CNN实战:肝脏病变检测与分类的配置拆解与工程经验
肝脏病变的自动检测与分类这些年我前后做过不少相关方向的尝试。说实话医学影像里的目标检测和平时做自然图像里的行人、车辆检测完全是两个世界。自然图像里目标特征鲜明背景丰富但干扰源相对可控肝脏CT里病灶和正常肝实质的灰度差异往往很微弱边界又模糊还伴随着呼吸运动伪影、部分容积效应这些麻烦。这个项目标题——肝脏病变检测与分类_Mask-RCNN_x101-32x4d-SyncBN-GCB-R16-C3-C5_FPN_1x_COCO实现看着是一长串配置拼在一起实际上每一段都对应着一个非常具体的工程决策。x101-32x4d决定骨干网络的容量和感受野SyncBN解决小batch size下的训练稳定性GCB-R16是全局上下文增强C3-C5界定特征层的使用范围FPN负责多尺度融合1x schedule和COCO预训练则定义了训练策略和起步权重。我之前在肝肿瘤分割、肝脏器官检测这类任务上反复对比过不同配置这个组合用在肝脏病灶实例分割和分类上确实是综合表现很稳的一套方案。这篇文章我就按项目标题的拆解顺序把每个组件的意义、实际选型理由、踩过的坑和调参经验都梳理一遍。适合正在做医学影像检测/分割、想用Mask R-CNN做肝脏病变分析或者对mmdetection这套配置逻辑还不熟悉的同学参考。1. 项目核心需求与技术选型思路1.1 肝脏病变检测为什么选择实例分割很多人会问检测肝脏病变用Faster R-CNN或者YOLO这种纯目标检测框架不就行了框出病灶位置再给个分类标签为什么偏要上Mask R-CNN这种实例分割模型关键在于肝脏病变的临床评估逻辑。肝脏里的病灶类型很多常见的有肝细胞癌、转移瘤、肝囊肿、血管瘤等等。对医生来说单纯的“框住病灶”价值有限他们更关心的是病灶的精确轮廓、大小、体积、形态学特征这些信息直接影响肿瘤分期的判断和手术方案的规划。如果只用检测框框内往往混杂了正常的肝组织、血管断面无法准确计算病灶的真实尺寸。Mask R-CNN在Faster R-CNN的基础上增加了一个并行的mask分支对每个感兴趣区域RoI输出一个像素级的二值掩码。这意味着模型在做检测的同时还能精确勾勒出病灶的边界。后处理阶段可以直接从掩码计算病灶的像素面积、等效直径甚至按CT层厚换算成三维体积这对临床辅助诊断来说价值高得多。另外实例分割天然适合“既分类又分割”的任务结构。检测框负责定位和粗筛掩码分支负责精细轮廓分类分支给出病灶类型。在同一个框架里把三件事一起做掉训练和推理的工程链路都简化了。如果你的需求只是“看有没有病灶、在哪里”纯检测器就够用。但只要是涉及病灶尺寸评估、体积测量、边界追踪的场景实例分割基本是底线配置。1.2 骨干网络选型为什么是x101-32x4d骨干网络是模型的特征提取器直接决定了模型对图像内容理解的深度和广度。标题里的x101-32x4d指的是ResNeXt-101其中32表示cardinality分组数4d表示每个分组内的通道宽度为4。ResNeXt的核心思路是“分组卷积 多路径聚合”在不显著增加FLOPs的前提下通过增加分组的数量来提升特征表达能力。在ImageNet分类任务上ResNeXt-101-32x4d的精度已经超过同等复杂度的ResNet-101。对肝脏病灶这种低对比度目标来说更强的骨干网络意味着模型能够提取出更细微的纹理差异和边界线索。101层的深度也值得解释一下。检测任务中浅层网络比如ResNet-50对形状简单、对比度高的目标表现尚可但肝脏病灶普遍存在边界模糊、背景复杂的问题。深层的骨干网络拥有更大的感受野能够把病灶周边的肝实质、血管走向、肝包膜等信息纳入上下文理解对小病灶和低对比度病灶的检出有明显帮助。不过更深更强的骨干网络也意味着显存占用和推理耗时的增加。在医学影像设备算力普遍有限的环境下这需要做权衡——如果训练数据量很少几百例从ResNet-50起步反而更容易训练收敛。但如果你已经有数千例标注数据x101的优势会体现得比较明显。2. 模型配置的关键组件拆解2.1 Mask R-CNN的两阶段结构与RoI AlignMask R-CNN的结构可以理解为在Faster R-CNN的检测框架上并联了一个mask分支。第一阶段RPNRegion Proposal Network负责生成候选框第二阶段对这些候选框进行分类、边框回归并输出掩码。两阶段结构在医学影像任务里有个很实际的优点RPN先做一次粗筛把大部分背景区域过滤掉后续的RoI head只处理少量候选区域这让模型能够把注意力集中到可能的病灶区域。相比单阶段检测器两阶段结构在目标小、类别不平衡严重的场景下通常更稳。RoI Align是Mask R-CNN相对Faster R-CNN的一个关键改进。Faster R-CNN里的RoI Pooling用了两次量化操作将浮点数的RoI坐标取整后再切分成网格这会导致特征图上的空间偏移。RoI Align不再量化而是用双线性插值在每个bin内采样4个点再取平均。对分割任务来说像素级的精度对量化误差非常敏感RoI Align的亚像素精度是掩码质量的基础保证。2.2 FPN多尺度融合与C3-C5的选择FPNFeature Pyramid Network解决的是多尺度目标的特征表达问题。肝脏病灶的尺寸跨度非常大小病灶可能只有几个像素大的肿瘤可能占据半个肝叶。如果只用最后一层特征图做检测小目标的信息早已被多次下采样稀释掉了。FPN自顶向下逐层融合把高层语义信息传递到浅层特征图同时保持各层的空间分辨率。完整的ResNet拥有C2到C5五个阶段默认FPN一般会使用C2到C5的全部特征。但这个项目里明确写了C3-C5意味着跳过了C2层。我自己在实际对比中也发现C2层虽然分辨率最高但特征较浅包含大量纹理细节和噪声。在肝脏CT这种灰度范围窄、噪声明显的模态下C2的引入反而容易增加误检。跳过C2从C3开始既能保留足够的细节用于小病灶检测又大幅减少计算量同时避免低层特征中的伪影被放大。这个取舍非常务实。2.3 GCB-R16全局上下文建模的轻量实现肝脏病变检测里一个容易被忽视的问题是全局上下文建模。单个肝病灶往往只占整张CT切片的很小一部分但这个病灶是位于肝左叶还是右叶、周围是肝实质还是肝门区域、有没有贴近大血管这些信息对分类判断极其重要。比如靠近肝包膜的病灶可能是血管瘤而发生在门静脉附近的低密度占位则需要优先考虑转移瘤的可能。GCBGlobal Context Block本质上是一种轻量级的注意力机制结构上包含一个全局池化、一个1x1卷积和一个加法残差连接。R16表示内部的瓶颈通道数是输入通道数的1/16这一步是为了压缩计算量。相比Non-local模块动辄平方级复杂度GCB的参数量和计算开销非常小可以直接嵌入到每个Stage的输出位置而不必担心推理速度明显下降。嵌入GCB之后的实际表现我在对比实验中观察到的是对近肝包膜的小病灶分类准确率有明显提升而对位于肝实质深处、边界不清晰的病灶检出率更稳定。这说明全局上下文确实帮助模型建立了“病灶-器官-位置”的关联。2.4 SyncBN在医学影像小Batch训练中的价值SyncBN是同步批归一化Synchronized Batch Normalization。常规BN在单卡训练时统计的是该卡上当前batch的均值和方差一旦batch size很小BN的统计量会有很大的噪声直接导致训练不稳定。医学影像领域有个普遍困境显存不够。高分辨率CT图像的训练通常无法使用大批次尤其当你用的是x101这种深骨干加FPN的结构即使输入缩放到512x512一张卡可能只能放下2到4张图。此时如果不开SyncBNBN的均值和方差在每卡只有2-4个样本的情况下估计得非常不准。SyncBN在每轮迭代中先同步所有卡上的统计量再统一计算BN输出让全局batch size恢复到一个合理水平。我在多卡训练中实测过不开SyncBN时loss曲线抖动明显开了之后稳定得多。如果你只有一张卡SyncBN的意义有限但多卡时它是刚需。3. 从COCO预训练到肝脏CT迁移训练的实操步骤3.1 数据准备与标注格式转换图像数据这块肝脏CT通常是DICOM格式。训练前要先把DICOM转成常规图像格式PNG或JPEG。关键点是窗宽窗位的设置——肝实质的CT值通常落在40到60HU之间病灶的显示效果完全取决于窗宽窗位。我的习惯是设置窗宽200、窗位50再按像素值做归一化到0到255这样病灶和周围组织的对比度最清楚。标注方面如果原始标注是RLE编码或者polygon格式需要转成COCO格式的JSON。COCO格式里每张图像有一个id每个标注对象包含bbox、segmentation多边形坐标列表、category_id等字段。Mask R-CNN的mask分支训练依赖的就是这些polygon标注在转成RLE后用于计算掩码损失。需要特别提醒的是类别id的连续性。COCO原始有80类你迁移到肝脏病灶场景时通常会改成3到5类比如肝细胞癌、转移瘤、囊肿、血管瘤、正常肝组织背景。类别id要从1开始连续编号不要跳跃编号很多框架在计算分类损失时对不连续id处理不好。3.2 预训练权重的加载与骨干网络微调策略COCO预训练权重是这个配置的起点。MEDICAL影像数据通常规模不大从头训练一个深度达到101层的网络几乎不可能收敛。COCO数据集80类物体的预训练特征尤其是在边缘、纹理、形状轮廓这些底层特征上对医学影像同样有很强的迁移价值。加载权重的时候要区分“完全迁移”和“部分冻结”。如果数据量小比如几百张我会选择冻结backbone前几个stage只微调后面的stage和FPN、RoI head。如果数据量已经有几千张可以直接全量微调但初始学习率要适当降低。加载COCO预训练权重时的一个坑是类别数不匹配。COCO的检测头输出是801类你改成51类之后最后的分类层和mask分支的通道数对不上。正确的做法是加载权重时跳过head部分的权重只加载backbone和FPN的权重。在mmdetection里通过配置load_from并且设置strictFalse框架会自动忽略不匹配的层。3.3 训练超参与调度策略标题里的1x表示使用的是检测任务中标准的1x训练计划总共12个epoch在第8和第11个epoch将学习率乘以0.1。这个schedule在COCO上表现成熟迁移到医学影像时我建议在此基础上做两点调整。第一是学习率。COCO的默认初始学习率是0.028卡如果你只有2到4张卡需要按线性缩放法则调低lr 0.02 * (batch_size / 16)。比如batch size为8时初始学习率用0.01比较稳妥。第二是warmup尤其当你的数据分布和COCO差异较大时前500步使用较小的学习率比如初始学习率的1/10让BN统计量稳定下来能避免训练前期loss爆炸。损失函数层面Mask R-CNN包含三部分分类损失交叉熵、回归损失Smooth L1、掩码损失平均二值交叉熵。类别不平衡的问题在肝脏病灶上依然存在少量病灶类别比如转移瘤可能样本很少这种情况下我给分类损失加一个类别权重系数或者对少样本类别做在线难例挖掘。实际效果上类别权重比难例挖掘更容易调稳。3.4 推理、后处理与评估指标推理阶段模型输出的是检测框、类别概率和掩码。后处理的第一步是NMS非极大值抑制将同一病灶的重叠检测框合并。医学场景建议NMS阈值设为0.5左右比自然图像场景略高因为病灶之间的重叠往往不明显。评估指标方面检测任务用mAP平均精度均值来衡量框定位和分类的联合效果分割任务还可以额外计算Dice系数或IoU。在医学影像场景中我通常把mAP0.5作为主要参考指标同时单独关注小病灶像素面积小于一定阈值的Recall因为临床上漏检小病灶的后果比误检严重得多。4. 训练中的典型问题与排查经验4.1 小病灶漏检严重问题不一定在模型用Mask R-CNN做肝脏病变检测最常见的问题是直径小于10mm的小病灶反复漏检。很多人的第一反应是调整FPN、增加anchor密度但我在实际排查中遇到最多的情况其实是标注质量导致的。具体来说小病灶在CT切片上往往只有10到20个像素的跨度如果标注人员的勾画只覆盖病灶的核心区域而没有包含完整的边缘晕环模型学到的“金标准”本身就是残缺的。我的经验是先做一轮标注质量检查把标注掩码叠加在原图上放大到200%逐一核对边界是否与影像特征对齐。遇到不齐的重新标注后再训练这个环节对小病灶的检出率提升往往立竿见影。如果标注本身没问题再来调整模型。可以尝试在RPN里增加小尺寸anchor的比例。默认的anchor scale是[8, 16, 32, 64, 128]如果数据集中小病灶占比高把[4, 8, 16, 32, 64]加入候选让RPN在浅层特征图上更密集地采样小目标区域。4.2 显存溢出时不要盲目减小batch sizex101-32x4d加FPN加Mask R-CNN是一套非常吃显存的组合。我在一块24GB的卡上输入尺寸为800x1024时batch size只能开到2到4。新手遇到OOM的第一反应往往是继续降低batch size但这会带来BN统计不稳定和训练收敛变慢的问题。我的优先处理顺序是先缩输入尺寸。从800x1024降到640x800显存占用会下降接近一半。对大多数肝脏CT病灶来说640的短边分辨率足够用损失的精度远小于OOM带来的训练崩溃风险。第二步是检查是否可以不使用SyncBN——单卡时关掉它用普通BN配合稍大的batch size。第三步才是考虑gradient accumulation通过累积多个小batch的梯度来模拟大batch但要注意BN统计量还是按小batch计算的需要配合SyncBN使用。4.3 分类头过拟合与训练样本不均衡的处理肝脏病变检测的第二个大坑是类别不均衡。转移瘤可能只有几十个样本而肝囊肿有上千个样本。分类分支会被多数类主导少数类在训练时基本学不到有效特征。最简单的处理方法是调整RoI采样策略。在mask r-cnn的训练配置里RoI head的sampler参数控制了正负样本的采样比例。默认是每张图取512个RoI正负样本比1:3。建议把采样数加大到1024并且对每个类别分别采样保证少数类在每个batch里都有足够的样本参与训练。如果做了采样调整后少数类仍然拉不起来再考虑类别权重。在损失函数里给少数类更高的权重比如把转移瘤的权重系数设为2.0让模型对这类样本的错误分类产生更大的惩罚。这个操作的缺点是可能会降低多数类的精度所以建议在训练后期比如第8个epoch之后再打开权重让模型先学好多数类再集中精力纠偏少数类。4.4 掩码边缘过粗或呈锯齿状mask分支输出的边缘如果比较粗糙最常见的原因不是模型结构而是训练数据的分辨率。输入的CT图像经过resize之后病灶边界处的像素信息已经被压缩mask的精细度随之下降。一个有效做法是使用crop策略训练在输入图像中随机裁剪一个区域放大后再送入模型等价于让模型看到更清晰的局部细节。还有一个技巧是在mask分支后接一个轻量的边缘细化模块或者在mask loss中加入边界像素更高的权重让模型对边缘部分的预测更加敏感。这一点我使用的是边界加权的dice loss对肝病灶这种边界模糊的目标效果不错。5. 关于这套配置的一些感受与扩展方向这套Mask-RCNN_x101-32x4d-SyncBN-GCB-R16-C3-C5_FPN_1x_COCO组合实际跑下来最大的感受是“稳”。数据质量过关的前提下训练曲线平滑小病灶的检出和分类精度都能达到可用的水平。关键是整套配置和mmdetection等主流框架完全兼容不需要额外写太多自定义代码。有一点值得再提GCB-R16在很多通用检测任务里容易被忽略但在肝脏病灶场景中它带来的全局上下文聚合能力是实打实的收益。尤其当你面对的是CT这种器官结构相对固定、病灶位置与周围组织关系极其重要的模态时全局上下文建模的作用甚至比单纯加深骨干网络更明显。后续如果要进一步提升可以考虑两个方向一是把2D切片检测换成基于3D卷积的体块模型直接从三维空间里学习病灶的立体形态二是在mask分支上引入transformer结构让掩码的生成过程能够捕捉长距离依赖对边界模糊的大病灶可能会有更好的表现。不过这两个方向的成本和训练难度都会明显上升。最后再分享一个实操细节训练结束时不要只看最后一个epoch的权重多保存几个checkpoint在验证集上分别评估后再决定用哪个。我在肝脏病灶分类的实验里见过随机波动导致最后一个epoch反而比之前epoch差两三个点的情况挑最优checkpoint不是一个好习惯而是必须做的工作。

相关新闻

电影院购票系统JavaWeb MVC源码实战与二次开发解析

电影院购票系统JavaWeb MVC源码实战与二次开发解析

简介:一套完整的电影院购票系统源码及数据库脚本,主要面向正在学习 Java Web 开发的初学者,以及需要完成课程设计或毕业设计的学生。系统涵盖用户注册登录、影片管理、场次排片、在线选座、订单生成等核心功能,采用经典的模型-视图…

2026/10/18 15:34:07 阅读更多 →
Python批量AI生图:DALL·E与Gemini双模型流水线实战

Python批量AI生图:DALL·E与Gemini双模型流水线实战

做批量生图这个事,我是从给一批电商商品做展示图开始入坑的。当时手里有一百多个SKU,每个都要出三四张不同角度的图,按常规思路“调个API、复制粘贴跑一下”,单张调用确实没问题,但一旦到了几十上百张,就发…

2026/10/18 15:34:07 阅读更多 →
AIS数据解码全解析:驱动、解码、解析链路与Python实现

AIS数据解码全解析:驱动、解码、解析链路与Python实现

简介:围绕AIS自动识别系统从射频信号到应用解析的完整处理链路,这份资料面向海事信息化、船舶监控及无线通信方向的开发者与学习者,帮助解决从硬件驱动到数据解码、再到上层解析的核心技术衔接问题。压缩包共3个文件,包含2个txt说…

2026/10/18 15:34:07 阅读更多 →

最新新闻

HelixDB+S3:给AI Agent加长期记忆的极简方案

HelixDB+S3:给AI Agent加长期记忆的极简方案

你维护过 AI Agent 的话,多半见过这个场面:昨天还能准确复述用户偏好的智能体,今天一重启,就像失忆一样反问“你说的是哪次对话里的内容?”。我说句直白的话,这不是模型变笨了,而是根本没帮它把…

2026/10/18 16:33:37 阅读更多 →
i茅台自动预约系统快速上手:campus-imaotai 部署与使用完整指南

i茅台自动预约系统快速上手:campus-imaotai 部署与使用完整指南

i茅台自动预约系统快速上手:campus-imaotai 部署与使用完整指南 【免费下载链接】campus-imaotai i茅台app自动预约,每日自动预约,支持docker一键部署(本项目不提供成品,使用的是已淘汰的算法) 项目地址:…

2026/10/18 16:33:37 阅读更多 →
ANSYS Workbench导体温升仿真:电流焦耳热与温度场耦合全流程

ANSYS Workbench导体温升仿真:电流焦耳热与温度场耦合全流程

简介:这份资源面向电气、电子及热设计方向的工程师与高年级学生,聚焦导体在通电条件下的焦耳热与温升问题,提供一套基于ANSYS Workbench的完整仿真工程文件,帮助读者理解电流—温度耦合分析的建模思路与求解流程。压缩包共34个文件…

2026/10/18 16:33:37 阅读更多 →
Java类和对象深度解析:从内存布局到多态与常见陷阱

Java类和对象深度解析:从内存布局到多态与常见陷阱

1. 类与对象:先用“图纸和房子”把概念落地如果你问一个刚学完语法的人“类和对象到底是什么”,他可能会背出教科书上的定义:类是抽象的概念,对象是具体的实例。这话没错,但听完往往还是不知道怎么用。我自己带过不少新…

2026/10/18 16:33:37 阅读更多 →
零样本学习实战:从语义对齐到CLIP升级的完整复现指南

零样本学习实战:从语义对齐到CLIP升级的完整复现指南

简介:本资源是一份面向人工智能方向研究者与进阶学习者的零样本学习(Zero-Shot Learning)实践套件,聚焦于算法复现与语义建模能力训练,适用于计算机视觉、跨模态理解等场景下的小样本泛化问题研究。压缩包共11个文件&a…

2026/10/18 16:33:37 阅读更多 →
从模糊标题到可交付项目:拆解“rea”背后的React、Read、Real-time与Reasoning

从模糊标题到可交付项目:拆解“rea”背后的React、Read、Real-time与Reasoning

1. 从“rea”这个标题说起:一个被低估的通用缩写第一次看到“rea”这个标题,很多人会愣一下——三个字母,没有上下文,没有说明,像是谁打字打了一半就发出去了。但恰恰是这种极简的标题,在真实的项目协作场景…

2026/10/18 16:32:37 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* 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 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/18 12:16:16 阅读更多 →