4K视频超清修复技术:从算法原理到UNI.T舞台实战应用
UNI.T《No More》舞台4K超清修复技术全解析从算法原理到实战应用在数字媒体技术快速发展的今天老视频的4K超清修复已成为内容创作者和粉丝社区的热门需求。特别是对于UNI.T这样的经典偶像团体舞台表演通过现代技术手段实现画质提升不仅能重现经典时刻的视觉冲击力更是对文化遗产的一种数字化保护。本文将完整拆解4K超清修复的技术全流程从基础概念到实战操作为视频处理爱好者提供一套可落地的解决方案。1. 超清修复技术背景与核心价值1.1 什么是4K超清修复4K超清修复是指通过计算机视觉和深度学习技术将低分辨率、有噪点、有压缩损伤的视频素材提升至4K3840×2160像素分辨率并改善画质的过程。与传统简单的放大插值不同现代超分技术能够智能补充细节、减少噪点、增强对比度使老视频获得接近原生4K的观感效果。对于UNI.T《No More》这样的舞台表演视频修复价值尤为突出。舞台灯光变化复杂、人物运动快速、画面细节丰富这些特点都对修复算法提出了更高要求。成功的修复不仅能还原表演者的面部表情、服装纹理等细节还能提升整体视觉体验。1.2 超清修复的技术演进历程视频修复技术经历了三个主要发展阶段传统插值算法时期、机器学习辅助时期和深度学习主导时期。早期的方法如双线性插值、双三次插值只能平滑放大图像无法真正增加细节信息。随着SRCNN、ESPCN等神经网络模型的出现基于学习的超分技术开始展现优势。如今的Real-ESRGAN、BasicVSR等模型已经在实际应用中达到了商用水平。2. 修复环境准备与工具选型2.1 硬件配置要求4K视频修复是计算密集型任务对硬件有较高要求。推荐配置如下CPUIntel i7或AMD Ryzen 7以上核心数越多越好GPUNVIDIA RTX 3060以上显存至少8GB内存32GB DDR4以上存储NVMe SSD至少1TB可用空间对于UNI.T舞台视频这类长度在3-5分钟的内容修复过程可能需要数小时到数十小时稳定的硬件环境至关重要。2.2 软件工具链搭建当前主流的修复工具主要分为图形界面工具和命令行工具两类。对于初学者推荐使用Topaz Video AI、Waifu2x-Extension-GUI等图形化工具入门。对于有编程基础的开发者可以基于开源框架搭建自定义流程。以下是基于Python的环境配置示例# 创建Python虚拟环境 python -m venv video_enhancement source video_enhancement/bin/activate # Linux/Mac # video_enhancement\Scripts\activate # Windows # 安装基础依赖 pip install torch torchvision torchaudio pip install opencv-python pillow numpy pip install ffmpeg-python2.3 源材料评估与预处理在开始修复前必须对原始视频进行质量评估。UNI.T《No More》舞台视频常见的质量问题包括分辨率低通常为480p或720p压缩伪影块状效应色彩失真动态模糊预处理步骤包括格式统一、帧率稳定、初步降噪等为后续深度修复奠定基础。3. 核心修复算法原理深度解析3.1 超分辨率重建技术原理超分辨率的核心思想是从低分辨率图像中重建高分辨率细节。基于深度学习的超分模型通常采用编码器-解码器结构通过卷积神经网络学习低分辨率到高分辨率的映射关系。以ESPCNEfficient Sub-Pixel Convolutional Neural Network为例其创新点在于使用亚像素卷积层在特征空间进行上采样大幅减少计算量。公式表示为I_{HR} f(I_{LR}; θ)其中I_LR是低分辨率输入I_HR是高分辨率输出f是神经网络映射函数θ是模型参数。3.2 时域一致性处理视频修复不同于单张图片修复必须考虑帧与帧之间的时域一致性。BasicVSR等视频超分模型采用双向传播机制同时利用前后帧信息进行修复避免闪烁和抖动现象。对于UNI.T舞台视频中快速运动的舞蹈动作时域一致性尤为重要。算法需要准确估计光流信息确保人物轮廓的稳定性和运动轨迹的自然性。3.3 人脸增强专项优化舞台表演视频中人脸是观众关注的焦点。针对UNI.T成员的面部特征可以采用专门的人脸增强模型如GFPGAN、CodeFormer等。这些模型在通用超分基础上增加了人脸先验知识能更好地恢复面部细节、改善肤色。4. 完整实战UNI.T《No More》舞台修复流程4.1 原始视频分析与预处理首先对源视频进行技术分析获取基础参数import cv2 import json def analyze_video(video_path): cap cv2.VideoCapture(video_path) info { width: int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), height: int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)), fps: cap.get(cv2.CAP_PROP_FPS), frame_count: int(cap.get(cv2.CAP_PROP_FRAME_COUNT)), duration: int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) / cap.get(cv2.CAP_PROP_FPS) } cap.release() return info # 分析UNI.T舞台视频 video_info analyze_video(uni_t_no_more_original.mp4) print(json.dumps(video_info, indent2))预处理阶段包括去隔行、色彩校正和初步降噪def preprocess_video(input_path, output_path): # 使用FFmpeg进行预处理 import subprocess cmd [ ffmpeg, -i, input_path, -vf, yadif1:1,eqbrightness0.05:contrast1.1,hqdn3d4:3:6:4.5, -c:v, libx264, -crf, 18, -preset, slow, -c:a, copy, output_path ] subprocess.run(cmd, checkTrue) # 执行预处理 preprocess_video(uni_t_no_more_original.mp4, uni_t_no_more_preprocessed.mp4)4.2 基于Real-ESRGAN的4K超分修复Real-ESRGAN是目前效果较好的通用超分模型特别适合处理压缩伪影import torch from basicsr.archs.rrdbnet_arch import RRDBNet from realesrgan import RealESRGANer def enhance_video_realesrgan(input_path, output_path): # 初始化增强器 model RRDBNet(num_in_ch3, num_out_ch3, num_feat64, num_block23, num_grow_ch32) upsampler RealESRGANer( scale4, model_pathRealESRGAN_x4plus.pth, modelmodel, tile400, # 分块处理避免显存溢出 tile_pad10, pre_pad0 ) # 视频帧处理循环 cap cv2.VideoCapture(input_path) fourcc cv2.VideoWriter_fourcc(*avc1) out cv2.VideoWriter(output_path, fourcc, video_info[fps], (video_info[width]*4, video_info[height]*4)) while True: ret, frame cap.read() if not ret: break # 转换为RGB格式 frame_rgb cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 超分处理 enhanced_frame, _ upsampler.enhance(frame_rgb, outscale4) # 转换回BGR并写入 enhanced_bgr cv2.cvtColor(enhanced_frame, cv2.COLOR_RGB2BGR) out.write(enhanced_bgr) cap.release() out.release() # 执行4K超分 enhance_video_realesrgan(uni_t_no_more_preprocessed.mp4, uni_t_no_more_4k_enhanced.mp4)4.3 人脸区域专项增强针对UNI.T成员的面部进行针对性优化from gfpgan import GFPGANer def enhance_faces_in_video(input_path, output_path): # 初始化人脸增强模型 face_enhancer GFPGANer( model_pathGFPGANv1.3.pth, upscale1, # 已在超分阶段完成放大 archclean, channel_multiplier2, bg_upsamplerNone ) # 人脸检测器 face_detector cv2.FaceDetectorYN.create( face_detection_yunet_2022mar.onnx, , (320, 320), 0.9, 0.3, 5000 ) cap cv2.VideoCapture(input_path) fourcc cv2.VideoWriter_fourcc(*avc1) out cv2.VideoWriter(output_path, fourcc, video_info[fps], (video_info[width]*4, video_info[height]*4)) while True: ret, frame cap.read() if not ret: break # 检测人脸 faces face_detector.detect(frame) if faces[1] is not None: for face in faces[1]: # 提取人脸区域 x, y, w, h map(int, face[:4]) face_roi frame[y:yh, x:xw] # 人脸增强 _, _, enhanced_face face_enhancer.enhance( face_roi, has_alignedFalse, only_center_faceFalse, paste_backTrue ) # 替换原人脸区域 frame[y:yh, x:xw] enhanced_face out.write(frame) cap.release() out.release() # 执行人脸增强 enhance_faces_in_video(uni_t_no_more_4k_enhanced.mp4, uni_t_no_more_4k_faces_enhanced.mp4)4.4 色彩校正与后期处理修复后的视频需要进行色彩统一和质感提升def color_correction(input_path, output_path): import numpy as np cap cv2.VideoCapture(input_path) fourcc cv2.VideoWriter_fourcc(*avc1) out cv2.VideoWriter(output_path, fourcc, video_info[fps], (video_info[width]*4, video_info[height]*4)) while True: ret, frame cap.read() if not ret: break # LAB色彩空间处理 lab cv2.cvtColor(frame, cv2.COLOR_BGR2LAB) l, a, b cv2.split(lab) # 增强对比度CLAHE clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8,8)) l_enhanced clahe.apply(l) # 合并通道 lab_enhanced cv2.merge([l_enhanced, a, b]) frame_enhanced cv2.cvtColor(lab_enhanced, cv2.COLOR_LAB2BGR) # 轻微锐化 kernel np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]]) frame_sharpened cv2.filter2D(frame_enhanced, -1, kernel) out.write(frame_sharpened) cap.release() out.release() # 执行色彩校正 color_correction(uni_t_no_more_4k_faces_enhanced.mp4, uni_t_no_more_4k_final.mp4)5. 质量评估与效果对比5.1 客观质量指标评估使用PSNR、SSIM等指标量化修复效果def evaluate_quality(original_path, enhanced_path): original_cap cv2.VideoCapture(original_path) enhanced_cap cv2.VideoCapture(enhanced_path) psnr_values [] ssim_values [] while True: ret_orig, frame_orig original_cap.read() ret_enh, frame_enh enhanced_cap.read() if not (ret_orig and ret_enh): break # 调整尺寸一致 frame_orig_resized cv2.resize(frame_orig, (frame_enh.shape[1], frame_enh.shape[0])) # 计算PSNR mse np.mean((frame_orig_resized - frame_enh) ** 2) if mse 0: psnr 100 else: psnr 20 * np.log10(255.0 / np.sqrt(mse)) psnr_values.append(psnr) # 计算SSIM ssim compare_ssim(frame_orig_resized, frame_enh, multichannelTrue) ssim_values.append(ssim) original_cap.release() enhanced_cap.release() return { 平均PSNR: np.mean(psnr_values), 平均SSIM: np.mean(ssim_values), 帧数: len(psnr_values) } # 执行质量评估 quality_metrics evaluate_quality(uni_t_no_more_original.mp4, uni_t_no_more_4k_final.mp4) print(修复质量评估结果:, quality_metrics)5.2 主观视觉体验对比除了客观指标还需要从观众角度评估修复效果。UNI.T《No More》舞台修复应重点关注成员面部细节清晰度服装纹理还原度舞台灯光色彩真实性舞蹈动作流畅性整体画面自然度6. 常见问题与解决方案6.1 显存不足处理策略4K视频修复对显存要求极高常见解决方案def optimize_memory_usage(): 显存优化配置 # 减小处理分块大小 tile_size 200 # 根据显存调整 tile_pad 8 # 启用梯度检查点 torch.utils.checkpoint.set_checkpoint_enabled(True) # 清理缓存 torch.cuda.empty_cache() return tile_size, tile_pad # 分批处理大视频 def process_video_in_batches(input_path, output_path, batch_size100): 分批处理避免内存溢出 cap cv2.VideoCapture(input_path) total_frames int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) for start_frame in range(0, total_frames, batch_size): end_frame min(start_frame batch_size, total_frames) process_batch(input_path, output_path, start_frame, end_frame) cap.release()6.2 色彩失真修复技巧修复过程中可能出现色彩偏差解决方法def correct_color_shift(frame, reference_color): 基于参考色彩校正 # 计算色彩统计量 current_mean np.mean(frame, axis(0,1)) reference_mean np.mean(reference_color) # 调整色彩平衡 scale_factors reference_mean / current_mean corrected_frame frame * scale_factors corrected_frame np.clip(corrected_frame, 0, 255).astype(np.uint8) return corrected_frame6.3 运动模糊处理方案快速舞蹈动作可能产生运动模糊def deblur_motion(frame, kernel_size15): 运动去模糊 # 估计模糊核 gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) kernel np.ones((kernel_size, kernel_size)) / (kernel_size * kernel_size) # Wiener滤波去模糊 deblurred cv2.filter2D(frame, -1, kernel) deblurred cv2.ximgproc.wienerFilter(deblurred, kernel, 100) return deblurred7. 工程化最佳实践7.1 自动化处理流水线设计对于批量修复任务需要建立自动化流程class VideoEnhancementPipeline: def __init__(self, config): self.config config self.setup_models() def setup_models(self): 初始化所有模型 self.upsampler RealESRGANer(scale4, model_pathRealESRGAN_x4plus.pth) self.face_enhancer GFPGANer(model_pathGFPGANv1.3.pth) self.face_detector cv2.FaceDetectorYN.create(face_detection_yunet_2022mar.onnx) def process_video(self, input_path, output_path): 完整处理流程 # 1. 预处理 preprocessed_path self.preprocess(input_path) # 2. 超分修复 enhanced_path self.enhance_resolution(preprocessed_path) # 3. 人脸增强 face_enhanced_path self.enhance_faces(enhanced_path) # 4. 后处理 self.post_process(face_enhanced_path, output_path) # 5. 清理临时文件 self.cleanup_temp_files([preprocessed_path, enhanced_path, face_enhanced_path])7.2 质量监控与日志记录生产环境需要完善的监控体系import logging from datetime import datetime def setup_logging(): 配置日志系统 logging.basicConfig( levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s, handlers[ logging.FileHandler(fenhancement_{datetime.now().strftime(%Y%m%d_%H%M%S)}.log), logging.StreamHandler() ] ) def monitor_processing(progress_callback): 处理进度监控 def wrapper(func): def inner(*args, **kwargs): start_time datetime.now() result func(*args, **kwargs) end_time datetime.now() progress_callback({ function: func.__name__, start_time: start_time, end_time: end_time, duration: (end_time - start_time).total_seconds() }) return result return inner return wrapper7.3 性能优化策略针对UNI.T舞台视频的特点优化策略包括并行处理利用多GPU同时处理不同视频片段缓存机制重复使用的模型参数进行缓存智能调度根据内容复杂度动态调整处理参数增量处理支持从中断点继续处理8. 扩展应用与未来展望8.1 技术扩展方向当前修复技术还可以进一步扩展3D效果增强为舞台视频添加深度信息智能补帧将30fps提升至60fps或更高音频同步增强改善音质并与画面同步优化风格迁移尝试不同的视觉风格效果8.2 产业化应用场景4K超清修复技术除了粉丝自制内容外还有广泛的应用前景影视档案数字化保护老电影商业重制教育视频资料修复直播平台画质增强对于UNI.T这样的经典舞台成功的修复不仅能满足粉丝需求更能为整个K-pop产业的数字资产保护提供技术范例。通过本文的完整技术拆解读者应该能够掌握4K超清修复的核心技术要点并具备实际动手操作的能力。从UNI.T《No More》舞台修复这个具体案例出发我们展示了现代AI技术在视频处理领域的强大能力。随着算法的不断进步和硬件成本的降低高质量的视频修复将变得更加普及为数字文化遗产的保护和传承提供坚实的技术支撑。

相关新闻

红外遥控模块——让 Arduino 接收遥控器信号

红外遥控模块——让 Arduino 接收遥控器信号

前面我们学了蜂鸣器发声、继电器控制高压设备,现在给 Arduino 加一个"耳朵"——红外遥控模块,让它能接收遥控器的指令,实现无线控制。学完这篇,你会完成:基础接收:读取遥控器按键的编码值红外控制…

2026/10/19 1:11:48 阅读更多 →
小机房监控实战:Ping+SNMP+网页监控与声光语音告警配置指南

小机房监控实战:Ping+SNMP+网页监控与声光语音告警配置指南

小机房的监控问题,说大不大,说小不小。你手底下管着三五台服务器、一两台核心交换机,业务就那么几个系统,Zabbix、Prometheus这种正经监控平台去搭一套吧,资源占用高、维护成本也高,纯粹杀鸡用牛刀&#xf…

2026/10/19 1:11:50 阅读更多 →
小机房监控实战:Ping、SNMP与网页监控一体化告警方案

小机房监控实战:Ping、SNMP与网页监控一体化告警方案

干了这么多年运维,我一直有个很深的体会: 小机房的监控问题,往往比大中型机房更难解决 。大中型机房有钱、有人、有空间,上套Zabbix加上告警平台,再配个24小时值班人员,稀松平常。但那种只有七八个平方、…

2026/10/19 1:11:51 阅读更多 →

最新新闻

如何第一次在本地跑通Qwen3.6-35B-A3B-GGUF:新手5分钟快速上手教程

如何第一次在本地跑通Qwen3.6-35B-A3B-GGUF:新手5分钟快速上手教程

【免费下载链接】Qwen3.6-35B-A3B-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3.6-35B-A3B-GGUF 点击查看 免费下载 Qwen3.6-35B-A3B-GGUF 是阿里 Qwen3.6-35B-A3B 大模型的 GGUF 量化权重仓库,由 unsloth 团队整理发布。通过 GGUF…

2026/10/19 1:29:17 阅读更多 →
HSS数据集11个核心字段完整解析:从task_id到rubric_criteria的JSON结构速查指南

HSS数据集11个核心字段完整解析:从task_id到rubric_criteria的JSON结构速查指南

数据集AI 评测计算机视觉多模态人工智能 【免费下载链接】HSS 项目地址: https://ai.gitcode.com/hf_mirrors/ScaleAI/HSS 点击查看 免费下载 HSS 数据集(Humanitys Sixth Sense,由 Scale AI 发布的直觉性视觉推理基准)是近期多模…

2026/10/19 1:29:17 阅读更多 →
Llama-3.2-3B-FP8-Block能跑吗?12G/16G/24G显卡显存需求完整清单与硬件避坑指南

Llama-3.2-3B-FP8-Block能跑吗?12G/16G/24G显卡显存需求完整清单与硬件避坑指南

【免费下载链接】Llama-3.2-3B-FP8-Block 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Llama-3.2-3B-FP8-Block 点击查看 免费下载 Llama-3.2-3B-FP8-Block 是 unsloth 发布的 FP8 块量化版 Llama 3.2 3B 小语言模型,本文将给出 12G / 16G / …

2026/10/19 1:29:17 阅读更多 →
Scrapling 5 分钟安装上手:会扛页面改版的 Web Scraping 框架

Scrapling 5 分钟安装上手:会扛页面改版的 Web Scraping 框架

Scrapling 5 分钟安装上手:会扛页面改版的 Web Scraping 框架 【免费下载链接】Scrapling 🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Dont be shy, join here: https://discord.gg/EMgGbDce…

2026/10/19 1:29:17 阅读更多 →
开源物联网平台实战:设备接入、物模型与规则引擎详解

开源物联网平台实战:设备接入、物模型与规则引擎详解

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

2026/10/19 1:29:17 阅读更多 →
Mono-InternVL-2B核心创新揭秘:原生视觉Token(VE)如何实现内生视觉预训练

Mono-InternVL-2B核心创新揭秘:原生视觉Token(VE)如何实现内生视觉预训练

【免费下载链接】Mono-InternVL-2B 项目地址: https://ai.gitcode.com/OpenGVLab/Mono-InternVL-2B 点击查看 免费下载 Mono-InternVL-2B 是上海 AI Lab(OpenGVLab)开源的单体式(Monolithic)多模态大语言模型&#xf…

2026/10/19 1:28:17 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于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 阅读更多 →