蝴蝶识别系统实战:细粒度图像分类与深度学习部署全链路
蝴蝶识别系统实战从细粒度分类到部署的完整技术链路做图像分类的人第一次接触蝴蝶识别多半会低估它的难度。看着网上那些高清蝴蝶图觉得不就是做个分类器嘛真把几十个近缘物种放在一起对着翅膀上那几块斑纹的位置差异连人都得查图鉴才能确认更别说让模型在自然场景的杂乱背景里把特征提准了。我当时接这个项目的时候也犯过同样的轻敌毛病结果从数据整理、模型选型到部署上线前前后后折腾了两个多月中间翻车了不止一次才最后产出一套从单张图片输入到 Top-5 物种预测的完整系统。这篇博文把我整个技术决策和排错过程完整展开重点讲清楚几件事为什么蝴蝶分类必须按细粒度识别来做、数据预处理里最容易翻车的几个环节、主干网络横向对比的实测数据、部署阶段那些文档里不会写的隐性坑。代码思路、参数配置、排查方法我都会给出可直接参考的版本。如果你是打算复刻一个类似的物种识别项目或者单纯想了解深度学习从训练到落地的完整链路这篇应该能帮你少走很多弯路。1. 蝴蝶识别难在哪这不是普通图像分类任务1.1 细粒度识别的核心难点先纠正一个常见误解。蝴蝶识别不是猫狗分类那种常规图像分类它属于细粒度图像识别Fine-Grained Image Recognition难度完全不在一个量级。普通分类任务里猫和狗、汽车和飞机类间的特征差异非常显著模型靠整体轮廓、颜色分布这类粗糙特征就能分得不错。蝴蝶物种则完全不同。就拿某两种常见的蛱蝶来说它们的翅膀底色几乎一样唯一稳定差异是前翅外缘一排小黑点的排列方式而小黑点在野外照片里可能只有十几个像素。更麻烦的是类内差异极大同一物种的雌蝶和雄蝶图案不同春夏型和秋冬型颜色深浅不同同一个体在不同光照角度下拍出来色差可能比两个物种之间的差异还大。我当时整理数据时做过一个直观测试把几个近缘属的图片打乱让我实验室的同学人工分类正确率也就八成出头。人尚且如此模型要超过人的水平就必须在特征提取上做到极致。这也是这个项目的真正技术难点——不是能不能用深度学习做而是怎样让模型关注到那十几个像素级别的判别性区域。1.2 技术选型的底层逻辑技术选型上我当时也纠结过一阵子。框架方面最终选了 PyTorch 而不是 TensorFlow主要原因是这种细粒度项目迭代频繁经常要改训练策略、插拔模块、做特征可视化PyTorch 的动态图机制调试起来确实顺手生态里 torchvision 预训练模型、albumentations 数据增强库都是现成的。训练策略上没有选择从零训练而是采用迁移学习。原因很实际蝴蝶领域的公开标注数据撑死也就几万张而通用视觉预训练模型是在千万级图片上训练过的底层特征提取器边缘、纹理、颜色渐变已经非常成熟。蝴蝶翅膀的纹理本质上也是边缘和颜色组合迁移过来的特征复用率很高只需要在高层特征上做精细适配。这里补充一个选型经验预训练权重尽量选在通用大图集上训过的版本不要选只在某个特定领域训练过的。实测下来通用底座的泛化能力明显更强后面接细粒度任务时收敛更快这个差异在训练后期会拉开一到两个点的准确率。1.3 项目功能边界的设定做任何系统都要先定边界不然需求会无限膨胀。我第一版明确框定了几个功能指标输入单张 JPEG/PNG 图片输出 Top-5 预测物种及置信度附带该物种的中文名、学名、简介和保护等级单张图片 CPU 推理延迟控制在 300 毫秒以内支持批量图片离线预测。至于视频流实时识别、手机端模型我一开始就砍掉了等核心链路跑通再说。这个边界设定很关键。实时视频识别意味着要处理抽帧、延迟、目标追踪难度翻好几倍手机端部署又涉及模型压缩和端侧推理框架适配。先把单图识别这条主链路打磨到 95% 以上的准确率价值已经很大——博物馆标本数字化、户外摄影辅助鉴定、科普教育问答这类场景都够用了。2. 数据是识别系统的地基构建与增强的实操细节2.1 数据来源与清洗流程数据是细粒度识别的命脉。我这次不打算用现成的分类数据集直接训练因为公开数据集普遍存在清晰度参差、标注口径不一致的问题。我的数据源主要有三个公开学术图集里标注规范的物种照片、昆虫爱好者社区里经过多位资深玩家确认过的图、以及自然摄影图库里带地理标签的野外照片。数据清洗我单独写了脚本做了三件事。第一是感知哈希去重把同一只蝴蝶在连拍模式下的近似重复帧全部剔除。第二是主体裁剪用检测模型把翅膀主体区域框出来去掉大片天空、花丛等背景因为训练数据里背景占比过大会让模型偷懒学背景特征。第三是人工复核标注这一步最耗时但最值得我找了两名有分类学经验的爱好者交叉检查凡是两人意见不一致的样本直接删除——错标样本对细粒度模型是毒药几十张错标就足以让模型在对应类别上彻底跑偏。2.2 数据增强组合拳数据增强不是越多越好而是要有针对性。针对蝴蝶识别的特点我最终采用的增强组合是随机裁剪到 224x224缩放范围 0.7 到 1.0、水平翻转、随机旋转 ±15 度、HSV 颜色扰动、随机擦除Random Erasing以及后两种较新的混合增强 Mixup 和 CutMix。重点说几个细节。随机擦除对这个任务尤其有效因为野外拍摄的蝴蝶经常被枝叶遮挡擦除训练让模型学会不依赖局部完整图案实测能把遮挡场景下的准确率提升 4 个百分点左右。Mixup 和 CutMix 都是正则化手段它们让决策边界更平滑我在小数据集上明显感觉到验证集过拟合被压制住了。但注意 Mixup 的比例系数要调我用默认的 alpha0.2 时训练初期的 loss 下降偏慢后来改成 0.1 才平衡了收敛速度和正则效果。2.3 数据划分与类别不均衡处理数据划分里藏着一个新手最容易踩的大坑数据泄露。蝴蝶照片往往是一个人在同一地点对同一只蝴蝶连拍产生的如果这些高度相似的帧随机散进训练集和验证集验证集指标会虚高到不真实。我划分数据前先按感知哈希聚类保证同一聚类的图片只能进入同一个子集然后按 7:2:1 分层采样分配训练、验证、测试集。类别不均衡是物种识别绕不开的问题。常见种可能有上千张图稀有种可能只有几十张。我的处理方式分两层采样层面用一个带权重的采样器让每个 epoch 里稀有类别被抽到的概率更高损失函数层面给稀有类别加权重同时采用了标签平滑label smoothing系数 0.1防止模型对某个高频类别过于自信。这两层叠加之后稀有类别的召回率从不足五成提升到了七成以上。3. 模型训练全流程从主干选型到收敛调参3.1 主干网络横向对比实测我挑了三个有代表性的主干网络做对比经典的 ResNet-50、均衡型选手 EfficientNet-B3、以及较新架构 ConvNeXt-Tiny。同一个数据集、同样的增强策略和优化器控制变量跑了 50 个 epoch结果差别还是很明显的。主干网络Top-1 准确率单张 GPU 推理训练显存备注ResNet-5088.2%8ms4.2GB收敛最稳上限偏低EfficientNet-B392.4%15ms5.8GB精度/速度均衡首选ConvNeXt-Tiny93.1%22ms7.1GB精度最高速度偏慢最终选了 EfficientNet-B3 作为主干。原因很简单92.4% 对绝大多数场景已经够用CPU 部署时大约 120 到 150 毫秒比 ConvNeXt 快三分之一。ResNet-50 也不是彻底弃用它作为消融实验的基线非常合适后续看模块增量收益都跟它对比。3.2 两阶段训练策略与超参数训练采用两阶段策略。第一阶段冻结主干只训练分类头学习率设为 3e-4跑 10 个 epoch让分类头先适应蝴蝶特征分布。第二阶段解冻主干全部参数分类头学习率降到 3e-4主干层的学习率设 1e-5用余弦退火调度器CosineAnnealingLR再跑 40 个 epoch。这样做的原因是直接全参数微调很容易让预训练主干在初期就被带乱分阶段训练能显著提升收敛稳定性。优化器用 AdamW权重衰减 1e-4batch size 32开启混合精度训练AMP。这里有个实测教训权重衰减设成 5e-2 的默认值在细粒度任务上会压过头特征表达被过度正则化Top-1 反而掉了 1.5 个百分点1e-4 这个量级更适合迁移学习微调场景。3.3 细粒度特征增强模块主干网络之外我尝试了两种针对细粒度任务的增强手段。第一是把最后全局平均池化换成 GeM 池化Generalized Mean Pooling它引入一个可学习的指数参数 p能够自适应地决定强调显著区域还是保留整体信息比普通平均池化更适合捕捉翅膀斑纹这类局部判别特征带来约 0.8 个点的提升。第二是注意力机制。EfficientNet 本身带 SE 注意力但我额外在分类头前加了一层轻量的 CBAM 模块强化空间维度上的关注区域选择。Grad-CAM 可视化对比显示加了 CBAM 之后模型的关注区域从整片翅膀聚拢到了翅脉交叉点和斑纹边缘这正是人工鉴定时看的关键位置。3.4 评估指标准确率会骗人训练过程中我盯的从来不只是 Top-1 准确率。物种识别里类别不均衡意味着准确率会被高频类绑架稀有类全部猜错也可能总体准确率有九成。我每周做一次全量评估输出混淆矩阵、每个类别的精确率和召回率以及代价敏感的综合指标 Macro F1。另一个细节是校准。模型输出的 softmax 概率往往过自信我用了温度缩放Temperature Scaling做后处理温度系数在验证集上搜索最优值。这一步让置信度从虚高的 99% 降到了更真实的 93% 左右对用户来说这个数字反而更有参考价值。4. 从模型到产品推理优化与部署落地4.1 模型压缩与 ONNX 导出训练好的 PyTorch 模型不能直接上生产环境原因有两个一是 PyTorch 运行时依赖重、启动慢二是推理性能和内存占用都不够理想。我的方案是导出为 ONNX 格式然后用 ONNX Runtime 做推理。导出时有几个参数要小心opset 版本选 13 以上以支持更多算子输入尺寸固定为 224x224 以便做静态优化动态维度虽然灵活但会让推理性能打折扣。量化方面我实测了三种精度模式结果供参考FP32 精度损失 0CPU 单张推理约 150msFP16 精度损失约 0.3%GPU 推理约 25msINT8 动态量化精度损失约 1.5%CPU 推理压到 80ms。考虑到我们的部署环境有 GPU最终选了 FP16 模式平衡了精度和速度。4.2 推理服务端设计服务端用 FastAPI 实现了一个轻量级推理服务暴露三个接口单图识别 /predict、批量识别 /batch_predict、健康检查 /health。每个请求进来先走预处理管道解码、缩放、归一化、转张量然后进入模型推理。这里专门提醒一个部署时的隐性坑训练时的预处理顺序和部署端必须完全一致尤其是归一化参数。我见过不止一个项目因为部署端把均值和标准差写错比如把 ImageNet 标准的三个通道均值当成 0.5, 0.5, 0.5导致线上准确率直接崩掉 20 个点。我的做法是写了一个自检脚本输入同一张图让训练脚本输出预处理后的张量、部署管道输出处理后张量逐元素比较确保完全一致后再上线。模型加载后先做一次预热推理把内存分配和算子优化跑一遍避免第一个请求格外慢。4.3 前端交互与用户体验前端先用 Streamlit 快速搭了一个可交互 Demo左侧上传图片区域右侧显示 Top-5 预测列表每项带置信度进度条和物种信息卡片包括中文名、学名、常见分布区域和保护等级。置信度低于阈值的预测会额外标注需要专家确认避免给用户误导性的确定结论。还加了一个匿名反馈按钮用户可以对预测结果点是/否反馈数据落库。这些误判样本攒起来之后就是珍贵的补训练数据尤其能覆盖长尾场景——比如标本馆的针插标本照、潮湿翅膀的蜷曲姿态、被水珠遮挡的斑纹这些在常规互联网图片里很少见但对真实用户来说反而常见。5. 实测翻车记录数据泄露、相似种混淆与可视化诊断5.1 一次典型的数据泄露翻车全流程项目进行到第三周时我遇到过一个典型的验证集虚高现象。某天训练完验证集 Top-1 准确率从 90% 突然跳到了 98%当时第一反应是高兴转念一想不对没有哪个改动配得上这种暴涨。我沿着数据管道排查最终定位到问题出在数据划分脚本上。早期版本用的是简单随机切分没有做近邻聚类。某蛱蝶属的一个物种数据源里有一组野外连续拍摄的 80 多张照片主体是同一只蝴蝶只是角度和光影略有变化。随机切分把这 80 张打散到了训练集和验证集模型相当于见过验证集图片的孪生版本指标自然虚高。修复方案就是我前面说的感知哈希聚类分组把近似重复帧归到同一组以组为单位切分。修复之后验证集准确率回落到 94% 左右这个数字虽然比之前低但才是真实水平。这个坑的教训值得单独强调图像分类项目里数据泄露是最危险的错误之一因为它不报错、不报警只会让模型在测试集上表现出虚假的完美。排查时如果发现某个改动后准确率异常飙升先怀疑数据管道而不是模型改动。5.2 相似物种的大类混淆与针对性修复部署一周后收到用户反馈最集中的问题是某两个近缘物种之间错误率很高而且模型经常把低置信度的错误答案排进 Top-5。在混淆矩阵里能清楚地看到这两个类别之间有一个明显的错误聚类块这是典型的大类混淆现象。我的处理分三步。第一步检查这两个物种在训练集中的样本量和图像质量发现其中一种的样本里侧面照占比过高而另一种的正面照占主导模型本质上是学了姿态而非物种特征。第二步针对性地补充数据从图库中找那些姿态分布更均衡的图片。第三步在推理时使用测试时增强TTA对输入图做多次随机裁剪和翻转取平均概率这个操作能稳定地纠正姿态偏差带来的误判代价是推理时间增加三倍左右。我做了个开关默认关闭用户遇到可疑结果时勾选更精确模式再跑一次。5.3 Grad-CAM 可视化让模型亮出判断依据调试细粒度模型有一个非常趁手的工具Grad-CAM 热力图。它能可视化模型在决策时重点看了图像哪个区域。用这个工具跑了一批错分样本之后我发现了一个系统性问题模型对蝴蝶翅膀高饱和色块区域的注意力过强导致在暗光、逆光、色调偏冷的野外照片上频频出错因为颜色分布和训练集差异太大。这解释了为什么模型的验证集准确率不错却在真实用户上传的实拍图上掉链子。我做了两处针对性修复一是在训练增强里加大 HSV 颜色扰动的幅度模拟不同光线条件下的色偏二是加入了一个灰度概率擦除的增强随机把部分区域转成灰度图强迫模型更多地依赖纹理和形状特征。修复后模型在模拟真实场景的难测试集上提升显著也让我意识到一个规律——增强策略应该根据失败样本反推设计而不是套一个固定组合就完事。5.4 部署环境差异导致的静默错误最后一次翻车发生在部署环境切换时。模型在开发机上跑得好好的迁到服务器后准确率莫名下降而且没有任何报错。排查过程走了不少弯路先检查依赖库版本再用同一张测试图逐环节对比。最后定位到问题在图像解码环节。开发环境用的最新版 Pillow 和服务器上的旧版 Pillow 对 JPEG 的缩放算法实现有差异导致送入模型前的图像张量出现了细微差别这些差别刚好落在模型敏感的特征区域上。从那以后我定了两条规矩部署环境所有依赖库版本与训练环境完全锁定用 requirements.txt 精确到小版本号每次发版前跑一遍自检脚本对比输入张量、输出概率和标准测试集上的指标任何一个环节有偏差就拦截发布。写在最后的一点私人经验项目收尾后复盘我最大的感触是整个项目中花时间最值的不是调参而是数据管道的打磨和失败样本的逐层拆解。无论是把数据泄露堵住、用 Grad-CAM 发现模型依赖颜色而非纹理还是在部署端建立前后一致性校验这些工作单看都不起眼但每个都在实打实地提升系统的可靠性和鲁棒性。这里分享一个我一直沿用的习惯每次训练新模型之前先跑一个只训练 5 个 epoch 的冒烟测试确认 loss 在稳步下降、梯度没有爆炸或消失再启动完整训练每次训练结束后固定保存最后一次 checkpoint 和最佳验证集 checkpoint并记录当时的指标、超参数和增强配置。这个习惯看起来有些繁琐但它能在你三个月后回头调模型时帮你省下大量复原状态的精力。蝴蝶识别项目做到这里核心链路已经完整且可用后续如果要把准确率再往上提一个台阶方向也很明确扩充难样本、引入辅助的翅膀关键点定位任务、采集更多野外实拍图做领域自适应。这些都是这个项目已经验证过的可行路径如果你也在做类似的物种识别系统欢迎照着这条链路走一遍遇到具体问题随时可以回来对照这里面的排查思路。

相关新闻

天健HIS数据结构手册解析:从数据字典到报表查询实战

天健HIS数据结构手册解析:从数据字典到报表查询实战

简介:天健医院信息系统数据结构手册是天健医疗HIS系统的数据库表结构说明文档,面向医院信息化工程师、数据库运维及二次开发人员,帮助快速掌握各业务模块的数据字典与表关联关系。资源包共1个doc文件,压缩包大小为7.19MB&#xff…

2026/10/17 16:37:43 阅读更多 →
AIX 6.1 小型机高可用部署:Oracle+HACMP 调优避坑指南

AIX 6.1 小型机高可用部署:Oracle+HACMP 调优避坑指南

简介:本资源是一份面向AIX系统工程师与高可用架构实施人员的IBM P740小型机全周期安装配置实战手册,聚焦金融、电信等关键业务场景下的AIX 7.x系统部署与HACMP集群搭建。手册覆盖从基础操作系统安装、IOCP与fullcore性能调优、limit参数(maxp…

2026/10/17 16:36:41 阅读更多 →
DB2异机恢复实战:NetBackup Agent配置与避坑指南

DB2异机恢复实战:NetBackup Agent配置与避坑指南

简介:这份文档面向DB2数据库管理员与备份运维人员,聚焦使用NetBackup实现DB2数据库的异机恢复场景,适合已具备一定DB2运维基础、需要掌握跨主机恢复流程的技术人员参考。资源包内共1个doc文件,压缩包约314KB,内容围绕D…

2026/10/17 16:36:41 阅读更多 →

最新新闻

Kafka接入AI实战:从数据管道到异步推理的架构设计

Kafka接入AI实战:从数据管道到异步推理的架构设计

1. 为什么AI项目越做越绕不开Kafka前阵子帮一个做实时风控的团队排查消费堆积,整整一下午盯着Kafka的lag数据,从几万涨到几十万,消费者一直处于"拉消息-处理-再拉"的状态,但就是追不上。最后发现问题不在Kafka本身&…

2026/10/17 21:36:41 阅读更多 →
从工具调用到具身执行:AI Agent走向物理世界的关键技术路线

从工具调用到具身执行:AI Agent走向物理世界的关键技术路线

从去年到今年,我聊过不少做AI-Agent团队的技术同学,大家普遍有一个共同的感受:纯数字世界里的Agent,已经卷到头了。不是不能做,而是做得再多,价值链条始终断在“物理世界”这一环。查天气、订机票、操作浏览…

2026/10/17 21:36:41 阅读更多 →
从浅数据到深数据:私域变现的四步实操路径

从浅数据到深数据:私域变现的四步实操路径

私域这个词被讲得太多了。多到很多团队一听到就头疼,因为拉群、发券、朋友圈轰炸全都试过,结果除了把自己搞累、把用户搞烦,并没有沉淀出真正能持续变现的东西。我接触了不少做私域的项目之后,发现一个很明显的分水岭:…

2026/10/17 21:36:41 阅读更多 →
GLM-5.3-singprobe安全护栏实战:意图识别、响应安全、幻觉检测三道防线怎么用?

GLM-5.3-singprobe安全护栏实战:意图识别、响应安全、幻觉检测三道防线怎么用?

【免费下载链接】GLM-5.3-singprobe 项目地址: https://ai.gitcode.com/hf_mirrors/inclusionAI/GLM-5.3-singprobe 点击查看 免费下载 🛡️ GLM-5.3-singprobe 是构建在 GLM-5.3 基座模型之上的轻量级流式安全探针(SingProbe)&a…

2026/10/17 21:36:41 阅读更多 →
Unity Mesh捏脸系统架构与顶点偏移实时变形技术解析

Unity Mesh捏脸系统架构与顶点偏移实时变形技术解析

简介:UnityMesh捏脸系统是一套基于Unity引擎的高级面部定制工具,面向角色创建与RPG游戏个性化体验。它通过对网格顶点坐标的调整来改变眼睛大小、鼻子形状、嘴唇厚度等脸部特征,并对大量顶点数据做了性能优化,能流畅完成复杂捏脸操…

2026/10/17 21:36:41 阅读更多 →
中文简历怎么喂:把AI求职工具的语义匹配调顺,先做对三件事

中文简历怎么喂:把AI求职工具的语义匹配调顺,先做对三件事

中文简历怎么喂:把AI求职工具的语义匹配调顺,先做对三件事 【免费下载链接】ai-job-search The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep…

2026/10/17 21:35:40 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/16 21:54:38 阅读更多 →
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/16 14:23:36 阅读更多 →