DRN双回归网络:闭环优化单图像超分与下游任务
单图像超分辨率Single Image Super-ResolutionSISR这个方向做过的人都知道一个尴尬的现实模型在标准测试集上跑出来的PSNR/SSIM指标年年刷高但真正把超分结果拿去做下游任务——比如目标检测、人脸识别、医学影像分割——性能提升往往远低于预期。这个现象背后有一个被长期忽视的问题超分模型和下游任务是分开训练的超分模型只管把图像修好看根本不管下游任务能不能从中受益。今天要聊的DRNDual Regression Networks就是冲着这个痛点来的它用一套双回归的闭环结构把超分模型和下游任务绑在一起联合优化。这篇文章我会从设计思路、核心原理、实操细节到踩坑经验完整拆一遍这个方案适合做底层视觉、图像复原、以及需要把超分嵌入实际业务管线的朋友参考。1. 为什么单图像超分需要闭环思维1.1 传统超分范式的根本局限先把这个问题的本质说清楚。传统SISR的做法非常直接拿高分辨率图像HR用某种退化模型通常是双三次下采样生成低分辨率图像LR然后训练一个网络把LR映射回HR损失函数就是重建误差——L1、L2或者加上感知损失、对抗损失。整个训练过程里超分模型是一个完全独立的模块它不知道自己的输出最终会被谁使用。这种开环设计在学术基准上没问题因为评价指标就是PSNR/SSIM和训练目标一致。但一旦进入真实场景问题就暴露了。举个例子你在做一个遥感图像的舰船检测系统前端用超分模型把低分辨率卫星图放大后端接检测网络。超分模型优化的是像素级重建精度它可能会把一些纹理细节脑补得很平滑很漂亮但这些平滑恰恰抹掉了检测网络赖以判断的判别性特征。结果就是超分后的图像肉眼看着更清晰了检测精度却没涨甚至掉了。我在实际项目里就遇到过类似情况。某次做监控视频的车辆牌识前端超分把车牌区域放大后字符边缘被过度平滑OCR识别率反而比直接对低分辨率图做识别还低。当时排查了很久才意识到问题不在超分模型不够好而在于它优化的目标和下游任务的目标根本不一致。1.2 闭环设计的核心逻辑DRN的思路就是把这个开环打断改成闭环。具体来说它引入了一个双回归结构一个分支负责从LR回归到HR这是传统的超分任务另一个分支负责从超分结果回归到下游任务的输出比如检测框、分割掩码、分类标签。两个分支共享特征提取的主干网络联合训练。这样做的逻辑很清晰超分分支保证图像重建质量不至于崩掉下游任务分支则给主干网络提供额外的梯度信号告诉它你重建出来的东西要让下游任务也能用好。两个目标通过共享参数耦合在一起形成一个互相约束的闭环。注意闭环不等于简单地多任务学习。多任务学习通常是多个任务共享底层特征但各自独立输出而DRN的关键在于下游任务的输入是超分分支的输出梯度会沿着下游损失→超分输出→主干特征这条链路回传这才是闭环的真正含义。1.3 适用场景与不适用场景这套方案不是万能的得看场景。适合的情况包括超分是某个更大系统的前端模块且下游任务有明确的、可微的损失函数。比如超分检测、超分分割、超分识别。不适合的情况也很明确如果下游任务不可微比如某些传统CV算法或者你根本不知道下游要干什么纯通用超分那闭环设计就无从谈起老老实实做开环超分更实际。另外要提醒一点闭环训练的计算开销明显高于开环。因为每次前向传播要跑超分下游两个网络反向传播的链路也更长。如果你的算力预算紧张需要权衡收益和成本。2. DRN双回归架构的核心细节拆解2.1 网络结构共享主干加双分支DRN的结构可以拆成三块共享特征提取主干、超分回归分支、下游任务回归分支。主干部分通常用残差块堆叠和EDSR、RCAN这类经典超分网络的骨干类似负责从LR图像中提取多尺度特征。这部分是参数共享的核心也是闭环梯度汇聚的地方。超分分支接在主干后面输出通道数等于放大倍数的平方乘以图像通道数比如4倍放大、RGB三通道输出就是48通道然后通过PixelShuffle做上采样得到HR估计。下游分支的输入是超分分支的输出也就是重建出来的HR图像经过若干卷积层或全连接层输出下游任务需要的格式。如果是检测任务输出可能是特征图如果是分类输出是类别概率向量。这里有个设计选择值得说下游分支到底接在超分输出上还是接在主干特征上DRN选择接在超分输出上理由是只有这样才能真正建立超分质量影响下游性能的因果链。如果接在主干特征上下游任务就绕过了超分这一步闭环就断了。2.2 损失函数设计两个目标的平衡损失函数是DRN最需要调的地方。总损失是两项加权和L_total L_sr λ * L_downstream其中L_sr是超分重建损失通常用L1比L2对异常值更鲁棒收敛也更稳L_downstream是下游任务损失检测用focal loss或IoU loss分割用交叉熵或Dice loss分类用交叉熵。λ这个权重系数是关键。λ太小下游任务的梯度信号被淹没闭环形同虚设λ太大超分质量会明显下降因为网络会为了下游任务牺牲重建精度。我实测下来λ在0.1到1.0之间比较合理具体取值要看两个损失的量级。如果L_sr是L1损失数值通常在0.01到0.1量级L_downstream是交叉熵数值在0.5到3量级那λ取0.1到0.3就能让两者梯度量级接近。实操心得不要一上来就固定λ。建议先单独训练超分分支到收敛记录L_sr的稳定值再单独训练下游分支记录L_downstream的稳定值然后根据两者比值设定初始λ再在训练中微调。这样比盲目试参效率高得多。2.3 梯度回传路径分析理解梯度怎么回传是调好DRN的关键。下游损失L_downstream对主干参数的梯度要经过这样一条路径L_downstream → 下游分支参数 → 超分输出 → 超分分支参数 → 主干参数这条路径意味着超分分支的参数会同时受到两个损失的约束。超分损失希望它输出像素级准确的HR下游损失希望它输出对任务有利的特征。两者不一定冲突但也不总是一致。举个具体的例子在超分分割任务里分割损失可能希望边缘区域更锐利便于区分不同类别而L1重建损失可能希望边缘平滑因为HR真值本身边缘就有过渡。这时候网络会找一个折中点这个折中点往往比纯超分模型更有利于分割。我在调试时发现一个现象闭环训练初期L_sr会先下降然后L_downstream才开始明显下降。这是因为网络需要先学会把图重建得像才能在此基础上重建得有用。所以训练策略上可以考虑先用较小的λ预热等L_sr稳定后再增大λ。3. 从零实现DRN的完整实操流程3.1 数据准备与退化模型选择数据这块超分任务的标准做法是拿一个高分辨率数据集比如DIV2K、Flickr2K这类通用数据集或者你自己业务领域的高清图然后用退化模型生成LR-HR对。退化模型的选择直接影响闭环效果。最常用的是双三次下采样bicubic实现简单但和真实退化差距大。如果下游任务是真实场景的比如监控、遥感建议用更接近真实的退化高斯模糊下采样噪声。具体参数可以这样设高斯核大小7到13标准差1.0到2.0下采样用bicubic或bilinear再加高斯噪声标准差5到15。import numpy as np import cv2 def degrade_bicubic(hr, scale): h, w hr.shape[:2] lr cv2.resize(hr, (w // scale, h // scale), interpolationcv2.INTER_CUBIC) return lr def degrade_realistic(hr, scale, kernel_size9, sigma1.5, noise_std8): # 高斯模糊 blurred cv2.GaussianBlur(hr, (kernel_size, kernel_size), sigma) # 下采样 h, w blurred.shape[:2] lr cv2.resize(blurred, (w // scale, h // scale), interpolationcv2.INTER_CUBIC) # 加噪声 noise np.random.normal(0, noise_std, lr.shape).astype(np.float32) lr np.clip(lr.astype(np.float32) noise, 0, 255).astype(np.uint8) return lr下游任务的数据标注要和超分数据对齐。如果是检测任务HR图上的标注框要保留因为下游分支的输入是超分输出尺寸和HR一致损失计算需要HR尺度的标注。3.2 主干网络搭建要点主干用残差块堆叠就行但有几个细节要注意。第一残差块数量不要盲目堆。DRN因为要同时优化两个任务参数量太大会导致训练不稳定。我建议主干用16到32个残差块每个块64到128通道这个规模在大多数任务上够用。第二主干最后要接一个特征融合层通常是1x1卷积把多尺度特征整合成固定通道数再分给两个分支。这个融合层的通道数决定了两个分支的输入维度一般设64或128。第三如果下游任务对空间分辨率敏感比如分割超分分支的上采样倍数要和下游任务需求匹配。比如下游分割需要和HR同尺寸的输入那超分倍数就设成和LR-HR倍数一致。import torch import torch.nn as nn class ResidualBlock(nn.Module): def __init__(self, channels64): super().__init__() self.conv1 nn.Conv2d(channels, channels, 3, padding1) self.relu nn.ReLU(inplaceTrue) self.conv2 nn.Conv2d(channels, channels, 3, padding1) def forward(self, x): return x self.conv2(self.relu(self.conv1(x))) class DRNBackbone(nn.Module): def __init__(self, in_channels3, channels64, num_blocks16): super().__init__() self.head nn.Conv2d(in_channels, channels, 3, padding1) self.body nn.Sequential(*[ResidualBlock(channels) for _ in range(num_blocks)]) self.fusion nn.Conv2d(channels, channels, 1) def forward(self, x): x self.head(x) residual x x self.body(x) x self.fusion(x) return x residual3.3 双分支输出层实现超分分支用卷积PixelShuffle。假设放大4倍先用一个卷积把通道数变成channels * 164的平方然后PixelShuffle(4)再一个卷积输出3通道。下游分支根据任务定。检测任务可以接几个卷积层输出特征图再交给检测头分割任务接卷积上采样到原图尺寸输出类别数通道分类任务接全局池化全连接。class SRBranch(nn.Module): def __init__(self, channels64, scale4, out_channels3): super().__init__() self.conv nn.Conv2d(channels, channels * (scale ** 2), 3, padding1) self.shuffle nn.PixelShuffle(scale) self.out nn.Conv2d(channels, out_channels, 3, padding1) def forward(self, x): x self.shuffle(self.conv(x)) return self.out(x) class DownstreamBranch(nn.Module): def __init__(self, in_channels3, num_classes2): super().__init__() self.features nn.Sequential( nn.Conv2d(in_channels, 64, 3, padding1), nn.ReLU(inplaceTrue), nn.Conv2d(64, 64, 3, padding1), nn.ReLU(inplaceTrue), ) self.head nn.Conv2d(64, num_classes, 1) def forward(self, x): return self.head(self.features(x))3.4 训练循环与损失权重调度训练循环里前向传播要跑主干→超分分支→下游分支然后分别算两个损失加权求和后反向传播。def train_step(model, lr_img, hr_img, downstream_gt, optimizer, lambda_weight): optimizer.zero_grad() sr_out, downstream_out model(lr_img) loss_sr nn.functional.l1_loss(sr_out, hr_img) loss_down nn.functional.cross_entropy(downstream_out, downstream_gt) loss loss_sr lambda_weight * loss_down loss.backward() optimizer.step() return loss_sr.item(), loss_down.item()λ的调度策略我推荐分段式前20%的迭代用λ0.01几乎纯超分预热中间60%用λ0.1到0.3联合优化最后20%用λ0.5强化下游任务。这样网络先学会重建再学会重建得有用。注意如果下游任务的损失在训练初期就很大比如检测任务初期预测框全是乱的直接给大λ会导致超分分支被带偏重建质量崩掉。预热阶段非常关键别省。4. 常见问题排查与避坑经验4.1 超分质量下降怎么办这是闭环训练最常见的问题。表现是加了闭环后PSNR比纯超分模型掉了0.5dB以上。原因通常是λ太大或者下游损失量级远大于超分损失。排查步骤先打印两个损失的数值看量级差多少。如果L_downstream是L_sr的10倍以上那λ必须调小。其次检查下游分支的梯度是否过大可以在下游分支输出后加梯度裁剪clip_grad_norm_阈值设1.0到5.0。如果调小λ后超分质量恢复了但下游性能没提升说明闭环的梯度信号太弱。这时候可以考虑给下游分支加一个辅助损失比如在主干特征上也接一个轻量的下游头让梯度更直接地传到主干。4.2 下游任务性能不升反降这种情况一般是两个原因。一是超分输出和下游任务的输入分布不匹配。比如下游任务原本是在真实HR图上训练的现在输入变成了超分输出分布有偏移。解决办法是在闭环训练时下游分支的输入混合使用超分输出和真实HR按一定比例让下游分支适应超分输出的分布。二是下游分支容量不够学不动。可以适当加深下游分支或者用预训练的下游模型初始化。4.3 训练不收敛或震荡DRN因为有两个损失耦合训练稳定性比单任务差。常见表现是loss曲线剧烈震荡或者一个损失下降另一个上升。排查思路先降低学习率闭环训练的学习率建议比纯超分低一个数量级比如纯超分用1e-4闭环用1e-5。其次检查两个损失的梯度是否有冲突可以用梯度余弦相似度来诊断——如果两个损失对主干参数的梯度方向长期相反说明任务冲突严重需要重新设计损失权重或调整网络结构。下面这张表是我整理的问题速查表方便对照排查问题现象可能原因排查方法解决方向超分PSNR明显下降λ过大或下游损失量级过大打印两个损失数值对比调小λ加梯度裁剪下游性能无提升闭环梯度信号太弱检查主干梯度范数增大λ加辅助下游头下游性能反降输入分布不匹配对比超分输出与HR的统计差异混合输入微调下游分支训练震荡不收敛学习率过高或任务冲突梯度余弦相似度诊断降学习率调整损失权重显存溢出双分支长梯度链监控显存占用减小batch size用梯度累积4.4 推理阶段的注意事项训练完闭环模型后推理阶段通常只用超分分支如果下游任务在部署时是独立的或者两个分支都用如果下游任务也集成在同一个管线里。这里有个坑如果推理时只用超分分支那闭环训练带来的增益可能体现不出来因为下游分支的梯度在推理时不起作用了。我的建议是如果部署时下游任务是独立的那闭环训练的价值主要体现在超分分支学到了更有利于下游的特征这个增益是隐式的需要在下游任务上验证。如果部署时两个分支都在那直接端到端推理即可。另外闭环模型的推理速度比纯超分慢因为多了下游分支的计算。如果对延迟敏感可以考虑把下游分支蒸馏掉或者用剪枝压缩。5. 效果验证与扩展思路5.1 怎么验证闭环真的有效验证闭环效果不能只看超分指标要看下游任务指标。设计对比实验基线是纯超分模型独立下游模型实验组是DRN闭环模型。在相同的下游任务上对比性能。我建议至少跑三组纯超分开环、DRN闭环、以及一个超分下游联合训练但梯度不回传到超分分支的对照组。第三组能帮你区分增益到底来自闭环梯度还是仅仅来自多任务学习的正则化效果。实测数据上在超分分割任务里闭环相比开环在mIoU上通常有1到3个点的提升超分PSNR可能持平或略降0.1到0.3dB。这个trade-off是否值得取决于你的业务更看重哪个指标。5.2 扩展到更多下游任务DRN的框架可以扩展到任意可微的下游任务。除了检测、分割、分类还可以接深度估计、光流估计、甚至图像生成。扩展时要注意下游任务的输出尺度——如果下游任务需要和HR同尺寸的密集预测超分分支的上采样倍数要匹配如果是图像级预测分类下游分支可以接全局池化。一个有意思的扩展方向是级联闭环超分→任务A→任务B梯度从B回传到A再回传到超分。这种多级闭环在复杂管线里可能有价值但训练难度也成倍增加建议先从单级闭环做起。5.3 轻量化与部署考量实际部署时DRN的双分支结构会增加参数量和计算量。如果目标平台是移动端或边缘设备需要做轻量化。几个方向主干用轻量残差块比如深度可分离卷积下游分支用轻量头或者用知识蒸馏把闭环模型蒸馏到单分支模型。蒸馏的做法是用训练好的DRN作为教师学生模型是纯超分网络蒸馏损失包括超分重建损失和下游任务的软标签损失。这样学生模型在推理时只有超分分支但学到了闭环的知识。我在一次边缘部署项目里试过这个方案学生模型的参数量是教师的三分之一推理速度快了2.5倍下游任务性能保留了教师模型的90%左右。这个trade-off在算力受限的场景下是可以接受的。最后分享一个我在调DRN时总结的小技巧训练日志里一定要同时记录超分PSNR和下游任务指标而且要分阶段看。闭环训练的前期超分指标应该稳步上升下游指标可能先降后升因为下游分支在适应超分输出。如果下游指标一直不升别急着调λ先检查下游分支的输入归一化是否和超分输出匹配——这个细节坑过我一次超分输出是0到1范围下游分支却按0到255的输入做归一化导致下游分支完全学不动。

相关新闻

AI热点日报 | 2026年8月19日:MCP与CLI驱动下的AI Agent落地观察

AI热点日报 | 2026年8月19日:MCP与CLI驱动下的AI Agent落地观察

/* 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 10:12:59 阅读更多 →
PHP 7.4 编译报错 libzip 缺失?从 pkg-config 原理到源码编译全解析

PHP 7.4 编译报错 libzip 缺失?从 pkg-config 原理到源码编译全解析

/* 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 10:12:59 阅读更多 →
MCP 被称为 AI 系统的即插即用层,TaoToken 统一 Key 通道怎么接

MCP 被称为 AI 系统的即插即用层,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 10:12:59 阅读更多 →

最新新闻

农行网银支付Java接口对接实战:从签名验签到回调避坑指南

农行网银支付Java接口对接实战:从签名验签到回调避坑指南

简介:面向需要在Java环境中集成农业银行网银支付功能的开发者,提供完整接口文档与可运行Demo。压缩包共147个文件、约5.1MB,包含class字节码、jsp动态页面、html说明页面、jar依赖库、properties配置及cer证书、truststore信任库等类型&#…

2026/10/17 10:53:11 阅读更多 →
LLM 推理的核心指标:TTFT、TPOT 与 Throughput 怎么测才准?TaoToken 统一 Key 通道实测

LLM 推理的核心指标:TTFT、TPOT 与 Throughput 怎么测才准?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 10:53:11 阅读更多 →
Claude Code自定义配置指南:从记忆、命令到MCP与权限管理

Claude Code自定义配置指南:从记忆、命令到MCP与权限管理

说实话,Claude Code 装好就能跑,但“能跑”和“顺手”之间隔着一大截。我最开始用它改代码,几乎每开一个新会话都要重新解释一遍项目结构、代码风格、哪些文件不能动,甚至它写出来的提交信息格式每次都跟商量好了似的各不相同。浪…

2026/10/17 10:53:11 阅读更多 →
Java异步请求工具类设计与实现:CompletableFuture批量调用与超时控制

Java异步请求工具类设计与实现:CompletableFuture批量调用与超时控制

1. 为什么我们需要一个异步请求工具类做过微服务或者聚合类接口的兄弟应该都有体会,一个页面要展示的数据往往来自好几个下游服务。比如一个商品详情页,需要同时调商品基础信息、库存、价格、评价数、推荐列表,如果串行调用,每个接…

2026/10/17 10:53:11 阅读更多 →
Matlab实现吉布斯采样LDA主题模型:从原理到工程实践

Matlab实现吉布斯采样LDA主题模型:从原理到工程实践

简介:吉布斯采样是一种经典MCMC方法,适用于高维概率分布采样,与LDA主题模型结合常被用于文本主题推断。这份开源代码面向机器学习、文本挖掘研究者和相关开发者,给出了一套MATLAB下的GibbsLDA实现框架,包含主流程、单词…

2026/10/17 10:53:11 阅读更多 →
工位级IO与总线规划手册:点位分级、分区布线与周期实测

工位级IO与总线规划手册:点位分级、分区布线与周期实测

工位级IO与总线规划的核心,是在图纸阶段就把"每个工位要接多少点、这些点怎么分布、走哪张网"定下来。定得好,现场是照着图接线、逐点复测;定得不好,现场就是边接边改、边改边猜,最后靠试错收尾。本篇按工程…

2026/10/17 10:52:11 阅读更多 →

日新闻

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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →