ESRGAN超分辨率实战:从heyo整理版解压到分块推理放大4K老照片
简介本资源为基于ESRGAN的图像超分辨率增强项目源码包面向深度学习入门者、图像处理研究者及需要提升低分辨率图像清晰度的开发者。项目在原版ESRGAN基础上由作者crewxbh维护并疑似加入waterpck相关的水印处理或图像修复功能可用于摄影修复、视频画质提升等场景。压缩包共28个文件约9.16MB包含4个Python脚本模型定义、训练与测试入口、9张png与8张jpg效果对比图、3个gif动态演示、3份md说明文档及1份license协议另附预训练模型与LR示例图便于直接复现超分效果。目前已有205人浏览学习。读者可借此理解RRDB网络结构、生成对抗训练流程与插值调参方法并通过对比图直观评估增强质量适合作为超分方向的实践参考与二次开发起点。1. 拿到 ESRGAN-master 压缩包先别急着解压这套 heyo 整理版到底能修什么图你从某个渠道拿到一个叫ESRGAN-master_heyo_ESRGAN-master_crewxbh_waterpck_zip的压缩包文件名里塞了作者名、二次整理标记和waterpck这种看不出含义的后缀第一反应大概是这到底是原版 ESRGAN 还是别人改过的魔改版我拆过不少这类二次打包的 ESRGAN 仓库结论是——它本质上是 ESRGANEnhanced Super-Resolution Generative Adversarial Network的完整工程目录被 heyo 这类整理者重新打包过waterpck大概率是打包时的批次标记或水印包标识不影响核心代码。ESRGAN 解决的是单张图像超分辨率重建把一张低分辨率、有压缩噪点或模糊的老图放大 4 倍并补回纹理细节。它和普通双线性插值的区别在于插值只会把像素拉糊而 ESRGAN 用生成对抗网络猜出高频细节人脸、建筑边缘、织物纹理这些地方提升肉眼可见。适合谁手里有老照片、游戏贴图、动漫截图、监控截帧需要放大的从业者以及想跑通超分模型做二次开发的人。但要注意这类二次打包仓库经常缺预训练权重、依赖版本锁死直接pip install大概率翻车后面几章我会把能复现的路径和坑一条条拆开。2. 拆开目录看结构ESRGAN 的生成器、判别器与权重文件各在哪2.1 先认清 ESRGAN 的三个核心组件ESRGAN 不是单一模型它由三块拼起来。第一块是生成器基于 RRDBResidual in Residual Dense Block结构负责把低分图映射成高分图第二块是判别器训练时用来判断生成图真假推理阶段用不到第三块是感知损失网络通常借用 VGG 特征层训练时约束生成图的语义一致性。你解压后看到的目录基本围绕这三块展开。常见结构是models/放网络定义data/放数据加载options/放 YAML 配置experiments/放训练输出和权重。heyo 整理版可能把权重单独放在weights/或根目录命名类似RRDB_ESRGAN_x4.pth。先别管waterpck是什么用find把.pth和.py列出来心里就有数了。# 解压后先看整体结构别急着装依赖 unzip ESRGAN-master_heyo_ESRGAN-master_crewxbh_waterpck.zip -d esrgan_work cd esrgan_work # 列出所有 Python 文件和权重文件确认核心资产在不在 find . -name *.py | head -30 find . -name *.pth -o -name *.pt | head -20 # 看根目录有没有 requirements.txt 或 environment.yml ls -la这段命令的逻辑是先解压到独立目录避免污染当前工作区然后用find分别定位代码和权重因为二次打包最容易丢的就是.pth权重最后确认依赖清单是否存在。参数上-name *.pth -o -name *.pt里的-o是或关系覆盖 PyTorch 两种常见权重后缀。如果权重文件一个都没有这个包就只能拿来读代码跑不了推理得另找权重。2.2 权重文件与网络结构的对应关系ESRGAN 官方发布过几个关键权重RRDB_ESRGAN_x4.pth是最终生成器RRDB_PSNR_x4.pth是 PSNR 导向的预训练模型后者更保守、噪点少但细节弱。heyo 整理版如果只给了一个.pth你要先确认它是生成器还是判别器。判别器权重通常带D或discriminator字样加载到生成器上会直接报维度不匹配。判断方法很简单用 PyTorch 加载后打印 state_dict 的 key 前缀生成器一般是model.0.weight、model.1.sub.0...这种 RRDB 层级判别器则是conv_first、body之类。下面这段脚本能帮你快速识别。import torch # 加载权重并打印 key 结构判断是生成器还是判别器 ckpt torch.load(weights/RRDB_ESRGAN_x4.pth, map_locationcpu) # 有些权重包了一层 state_dict有些直接是 dict state ckpt.get(params_ema, ckpt.get(params, ckpt)) keys list(state.keys()) print(总参数键数量:, len(keys)) print(前 10 个键:, keys[:10]) # 生成器通常含 RRDB 或 model. 前缀判别器含 conv_first/body if any(RRDB in k or k.startswith(model.) for k in keys): print(判断结果: 生成器权重) else: print(判断结果: 可能是判别器或其他网络)逻辑说明torch.load用map_locationcpu避免没有 GPU 时直接报错params_ema和params是常见的外层包装键很多训练框架会这样存打印前 10 个键就能看出命名规律。参数上如果你机器有 GPU可以把map_location去掉但首次检查建议用 CPU稳。这一步做完你就知道手里的权重能不能直接喂给test.py或inference.py。2.3 依赖版本为什么直接 pip install 大概率翻车ESRGAN 原始仓库基于 PyTorch 0.4 到 1.0 时代代码里常见torch.nn.functional.interpolate的老参数写法以及from torchvision.transforms import functional as F这类现在仍可用但版本敏感的导入。heyo 整理版如果没更新依赖你在 PyTorch 2.x 上跑会遇到AttributeError或RuntimeError。常见做法是建一个独立虚拟环境先装torch和torchvision再装opencv-python、numpy、scikit-image、tqdm。不要一次性pip install -r requirements.txt因为那个文件里的版本号可能锁死在旧版和新 Python 冲突。我一般会先看requirements.txt里有没有torch这种硬锁有的话手动改成不指定版本让 pip 选兼容当前 Python 的版本。# 建独立环境避免污染全局 python -m venv venv_esrgan source venv_esrgan/bin/activate # Windows 用 venv_esrgan\Scripts\activate # 先装核心依赖不锁死版本 pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu # 如果要用 GPU换成对应 CUDA 版本的 index-url pip install opencv-python numpy scikit-image tqdm pillow # 最后再装项目自己的 requirements但先看内容 cat requirements.txt逻辑说明虚拟环境是后悔药跑崩了直接删目录重来--index-url指定 PyTorch 官方源CPU 版体积小、装得快确认流程通了再换 GPU 版cat requirements.txt是让你先肉眼扫一遍有没有明显冲突的版本号。参数上如果你有 NVIDIA 显卡把cpu换成cu118或cu121具体看驱动支持的 CUDA 版本。这一步不追求一次成功追求的是知道哪一步失败、失败时看什么报错。3. 跑通第一张图从 test.py 到自定义输入输出的完整链路3.1 找到推理入口并理解它的参数ESRGAN 仓库的推理入口通常叫test.py也有整理版改成inference.py或run.py。它的核心逻辑是读配置 → 建生成器 → 加载权重 → 遍历输入目录 → 逐张推理 → 保存到输出目录。你要先打开这个文件看它接受哪些命令行参数。常见参数有--model_path权重路径、--input输入图或目录、--output输出目录、--scale放大倍数ESRGAN 一般是 4。有些整理版把参数写死在代码里那就得手动改路径。先别改代码用python test.py --help看有没有 argparse 帮助没有的话直接读源码前 50 行。# 先看推理脚本支持哪些参数 python test.py --help # 如果没有帮助信息直接看源码里的 argparse 部分 grep -n add_argument test.py # 常见调用方式指定权重、输入目录、输出目录 python test.py \ --model_path weights/RRDB_ESRGAN_x4.pth \ --input ./inputs \ --output ./results \ --scale 4逻辑说明--help是最快确认接口的方式grep -n add_argument是在没有帮助文档时直接定位参数定义行第三条命令是标准调用模板。参数上--scale 4必须和权重匹配ESRGAN 的 x4 权重只能做 4 倍你硬改成 2 倍会得到错误尺寸或报错。输入目录里放 JPG 或 PNG 都行但建议先放一张小图测试别一上来就丢几百张否则出错时你不知道是哪张的问题。3.2 输入图的前处理与后处理细节ESRGAN 推理不是直接把原图丢进去。标准流程是读图 → 转 RGB → 转 tensor → 归一化到 [0,1] → 送生成器 → 输出 tensor → 裁剪到 [0,1] → 转回 numpy → 保存。这里有两个容易忽略的点。第一如果输入图本身是 8 位 JPEG压缩噪点会被模型放大输出可能更脏常见做法是先做轻度降噪或直接用 PNG 输入。第二输出图默认是 float保存时要乘 255 并转 uint8否则会得到全黑或全白。下面这段是推理核心逻辑的简化版你可以对照仓库里的实现看差异。import cv2 import numpy as np import torch def inference_one(model, img_path, output_path, devicecuda): # 读图并转 RGBOpenCV 默认是 BGR img cv2.imread(img_path, cv2.IMREAD_COLOR) img cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 归一化到 [0,1] 并转 tensor形状从 HWC 变 CHW img_t torch.from_numpy(img).float() / 255.0 img_t img_t.permute(2, 0, 1).unsqueeze(0).to(device) with torch.no_grad(): output model(img_t) # 后处理裁剪到 [0,1]转回 HWC乘 255 output output.squeeze(0).permute(1, 2, 0).cpu().numpy() output np.clip(output, 0, 1) * 255.0 output output.astype(np.uint8) # 保存时转回 BGR因为 OpenCV 写入按 BGR output cv2.cvtColor(output, cv2.COLOR_RGB2BGR) cv2.imwrite(output_path, output)逻辑说明cv2.cvtColor两次转换是为了对齐 OpenCV 和模型预期的通道顺序permute和unsqueeze是把 HWC 变成 NCHW这是 PyTorch 卷积层的输入格式np.clip是防止模型输出超出 [0,1] 导致保存异常。参数上device根据你有没有 GPU 设成cuda或cpuCPU 推理一张 512x512 图大概几秒到十几秒GPU 快很多。如果你发现输出图偏色八成是 BGR/RGB 转换漏了一步。3.3 批量推理与显存控制当你有一批图要处理时逐张推理最稳但慢。可以改成批量但 ESRGAN 的 RRDB 结构参数量大batch size 设大了直接爆显存。常见做法是 batch size 设 1 到 4根据显卡显存调。8GB 显存跑 x4 模型输入 256x256 时 batch 4 基本到顶输入 512x512 时 batch 只能设 1。如果你没有 GPU就别折腾批量了逐张跑并加个进度条。下面是一个带显存保护的批量循环骨架。import os from tqdm import tqdm input_dir ./inputs output_dir ./results os.makedirs(output_dir, exist_okTrue) # 只处理常见图片格式跳过隐藏文件 exts (.png, .jpg, .jpeg, .bmp) files [f for f in os.listdir(input_dir) if f.lower().endswith(exts)] for fname in tqdm(files, descESRGAN 推理中): in_path os.path.join(input_dir, fname) out_path os.path.join(output_dir, fname) try: inference_one(model, in_path, out_path, devicedevice) except RuntimeError as e: # 显存不足时打印文件名并跳过不中断整批 print(f处理 {fname} 失败: {e}) torch.cuda.empty_cache() continue逻辑说明tqdm给进度反馈批量处理时心里有数try/except捕获RuntimeError是为了单张失败不拖垮整批torch.cuda.empty_cache()在显存不足后释放缓存给下一张腾空间。参数上exts元组按需增删如果你有 WebP 输入加.webp但要注意 OpenCV 读 WebP 需要额外编译支持。这一步跑完你应该能在results/里看到放大 4 倍的图和原图对比边缘和纹理。4. 避坑与排查heyo 整理版最常见的五类翻车现场4.1 现象加载权重报 Missing key(s) in state_dict原因权重文件和网络结构不匹配。heyo 整理版可能混入了判别器权重或者权重是旧版 RRDB 而代码是新版结构层名对不上。解决先用第 2.2 节的脚本打印权重 key再打印模型state_dict的 key对比差异。如果只是多了module.前缀多卡训练保存的用state {k.replace(module., ): v for k, v in state.items()}去掉。如果是层结构差异别硬修换匹配的权重。4.2 现象推理输出全黑或全白原因后处理漏了np.clip或没乘 255或者输入归一化时除了 255 但模型预期 [0,255]。解决检查推理脚本里输出转 uint8 前有没有* 255以及有没有clip(0,1)。有些整理版把这两步写在utils.py里你要顺着调用链找到。另一个可能是输入图本身是 16 位 PNG读进来数值范围不是 [0,255]需要先转 8 位。4.3 现象CUDA out of memory原因输入图太大或 batch size 太高。ESRGAN x4 对 512x512 输入的中间特征图很大显存占用是输入尺寸的平方级增长。解决把大图切成小块分别推理再拼接或者直接缩小输入尺寸。切块时注意块与块之间留 16 到 32 像素重叠避免拼接缝。没有 GPU 就用 CPU慢但不会爆。4.4 现象输出图有网格状伪影原因切块推理时重叠不够或者模型本身在平坦区域过度生成纹理。解决增大重叠像素到 32 以上拼接时用加权平均而不是直接覆盖。如果是模型问题换RRDB_PSNR_x4.pth这类保守权重细节少但伪影也少。这个坑在动漫图上尤其明显血泪经验是别拿 ESRGAN 处理大面积纯色背景。4.5 现象pip 装依赖时版本冲突报错原因requirements.txt锁死了旧版torch或numpy和当前 Python 不兼容。解决不直接装 requirements手动装核心包让 pip 解析兼容版本。如果某个包死活装不上用pip install 包名 --no-deps跳过依赖检查再手动补它需要的依赖。这个操作有风险但比卡在安装阶段强。5. 进阶技巧用分块推理把 4K 老照片放大到 16K 并验证质量当你跑通单张推理后真正的需求往往是把一张 4K 甚至更大的图放大。直接送进 ESRGAN 会爆显存分块推理是常见解法。核心思路把大图按固定尺寸切成带重叠的块逐块推理再按原位置拼回去重叠区域做加权融合。下面是一个可复用的分块推理函数我一般会把它单独存成tile_inference.py。import cv2 import numpy as np import torch def tile_inference(model, img, scale4, tile_size256, overlap32, devicecuda): # img 是 HWC 的 RGB uint8 图 h, w, c img.shape # 输出画布尺寸放大 scale 倍 out np.zeros((h * scale, w * scale, c), dtypenp.float32) weight np.zeros((h * scale, w * scale, c), dtypenp.float32) step tile_size - overlap for y in range(0, h, step): for x in range(0, w, step): # 边界处理保证块不越界 y1, y2 y, min(y tile_size, h) x1, x2 x, min(x tile_size, w) # 太小的边缘块跳过避免模型报错 if y2 - y1 16 or x2 - x1 16: continue patch img[y1:y2, x1:x2, :] patch_t torch.from_numpy(patch).float() / 255.0 patch_t patch_t.permute(2, 0, 1).unsqueeze(0).to(device) with torch.no_grad(): pred model(patch_t) pred pred.squeeze(0).permute(1, 2, 0).cpu().numpy() pred np.clip(pred, 0, 1) # 映射回输出画布坐标 oy1, oy2 y1 * scale, y2 * scale ox1, ox2 x1 * scale, x2 * scale out[oy1:oy2, ox1:ox2, :] pred weight[oy1:oy2, ox1:ox2, :] 1.0 # 加权平均避免重叠区亮度叠加 out out / np.maximum(weight, 1e-6) return (out * 255.0).astype(np.uint8)逻辑说明tile_size是每块输入尺寸overlap是重叠像素step是滑动步长输出画布用 float32 累加最后除以权重图做平均这样重叠区不会变亮边界块小于 16 像素直接跳过因为模型对极小输入会报维度错误。参数上tile_size256和overlap32是 8GB 显存的稳妥组合显存更大可以调到 512 和 64。跑完后验证质量的方法是对比原图和输出图的局部放大看文字边缘有没有断裂、人脸五官有没有变形、纯色区域有没有网格。如果拼接缝可见把overlap加到 64 再试。另一个进阶点是权重选择。RRDB_ESRGAN_x4.pth细节多但可能过锐RRDB_PSNR_x4.pth平滑但保守。我一般会两张都跑一遍用眼睛对比或者算一下 PSNR 和 SSIM 做参考。算指标用scikit-image的peak_signal_noise_ratio和structural_similarity但要注意超分任务里 PSNR 高不代表好看ESRGAN 的设计目标就是牺牲一点 PSNR 换感知质量。从那以后我每次处理重要图都强制走一遍分块推理 两种权重对比 局部放大检查的流程不省这一步。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

庖丁解牛 sudo reboot:一条重启命令背后的完整系统链路

庖丁解牛 sudo reboot:一条重启命令背后的完整系统链路

sudo reboot是我这些年敲得最熟的一条命令。半夜被监控告警叫醒,远程连上去看了一眼负载、内存和一堆诡异到没法解释的日志,然后默默敲下这行字,等上几分钟,系统干净了,一切恢复正常。这是每个接触 Linux 的人都做过的…

2026/10/12 17:48:36 阅读更多 →
YOLOv8源码工程解析:从可调试结构到RK3588部署实战

YOLOv8源码工程解析:从可调试结构到RK3588部署实战

简介:本资源为YOLOv8官方开源版本的完整源码包,面向计算机视觉初学者、算法工程师及深度学习研究者,旨在帮助读者深入理解实时目标检测模型的底层实现与工程落地逻辑。压缩包共81个文件,含62个Python核心模块(涵盖模型…

2026/10/12 17:48:45 阅读更多 →
猪脸识别工程文件与代码全解析:从目录结构到边缘部署

猪脸识别工程文件与代码全解析:从目录结构到边缘部署

简介:这份资源是面向深度学习与计算机视觉方向的开发者、学生及农业智能化研究者的猪脸识别工程文件与代码包,基于目标检测思路实现猪只面部特征的检测与识别,可用于课程设计、科研实验或农业场景的算法验证。压缩包共34个文件,约…

2026/10/12 17:48:50 阅读更多 →

最新新闻

JSTL 标签库实战:从脚本片段到标签封装的核心技巧

JSTL 标签库实战:从脚本片段到标签封装的核心技巧

1. 从脚本片段到标签封装&#xff1a;JSTL 到底解决了什么问题很多人第一次接触 JSTL&#xff0c;是在维护一个老项目的时候。打开 JSP 文件&#xff0c;满屏的<% for(...) { %>、<% if(...) { %>和<% request.getAttribute("xxx") %>&#xff0c;…

2026/10/12 17:55:23 阅读更多 →
告别API依赖!GitHub上那些可以完全本地运行的优质开源AI项目盘点:用TaoToken统一Key打通本地与云端

告别API依赖!GitHub上那些可以完全本地运行的优质开源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/12 17:55:23 阅读更多 →
共享单车数据集VOC格式实战:从标注解析到YOLO训练全流程

共享单车数据集VOC格式实战:从标注解析到YOLO训练全流程

简介&#xff1a;这份共享单车数据集采用VOC格式整理&#xff0c;面向从事目标检测算法练习、课程设计或毕业设计的学生与开发者&#xff0c;可用于训练和验证单车识别模型&#xff0c;解决真实街景中共享单车标注样本不足的问题。压缩包共272个文件&#xff0c;包含136张jpg实…

2026/10/12 17:55:23 阅读更多 →
Python机器学习预测电影首周票房实战指南

Python机器学习预测电影首周票房实战指南

简介&#xff1a;这是一套面向计算机专业本科生的机器学习实战项目资源&#xff0c;聚焦电影票房预测这一典型回归建模任务&#xff0c;适用于毕业设计、课程设计及期末大作业场景。资源包含完整可运行的Python源码、清洗后的TMDB 5000电影数据集&#xff08;含credits与movies…

2026/10/12 17:55:23 阅读更多 →
Jupyter Notebook虚拟环境配置指南:Kernel与conda/venv绑定方法

Jupyter Notebook虚拟环境配置指南:Kernel与conda/venv绑定方法

1. 先搞清楚&#xff1a;为什么 Notebook 老是"用错环境"我最初接触这个问题&#xff0c;是因为在同一个项目里同时跑了两个不同版本的深度学习框架&#xff0c;一个依赖 Python 3.8&#xff0c;一个依赖 Python 3.10。Jupyter Notebook 默认启动时用的是系统 PATH 里…

2026/10/12 17:55:23 阅读更多 →
Tesseract OCR中文识别实战:安装、调优与避坑指南

Tesseract OCR中文识别实战:安装、调优与避坑指南

简介&#xff1a;Tesseract OCR 安装包与中文语言包面向需要在本地完成图片文字识别的开发者、测试人员及自动化办公用户&#xff0c;尤其适合用 Python 调用 OCR 引擎处理中文文档、票据或截图的人群。压缩包共 723 个文件&#xff0c;约 36.01MB&#xff0c;以 C 源码&#x…

2026/10/12 17:54:23 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天&#xff0c;画面可以做到绝对的锐利、平滑与无瑕。然而&#xff0c;当一张秋日手账插画或拍立得照片过于“平整无瑕”时&#xff0c;往往会散发出一种冰冷生硬的“数码塑料感&#xff08;Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中&#xff0c;横排&#xff08;Horizontal Layout&#xff09;早已经成为了绝对的主流。然而&#xff0c;当我们翻开泛黄的线装古籍、宋版木刻诗集&#xff0c;或是欣赏一张茶道雅集的手写便签时&#xff0c;那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点&#xff0c;很多人心里都会悄悄亮起一盏警示灯。 在心理学上&#xff0c;这种现象有一个专门的称谓——“周日夜晚焦虑症&#xff08;Sunday Scaries&#xff09;”。明天又是周一&#xff0c;闹钟又要重新在七点响彻卧房&#xff1b;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →