区域差分信息熵RDE:超分图像感知质量评估的Python实现与避坑指南
简介区域差分信息熵RDE是一种面向超分辨率图像感知质量评估的专用指标它通过分析图像局部区域的灰度统计与信息分布刻画人眼对细节纹理的敏感程度弥补PSNR、SSIM等传统像素级指标与主观感受之间的偏差。这份Python源码包围绕RDE算法提供了完整可运行的实现主程序RDIE.py负责核心计算demo.py演示具体调用方式README.md说明算法原理与使用步骤60张PNG图片覆盖不同场景下的超分对比结果另有1张JPG流程图展示整体评估管线。压缩包共64个文件总大小25.23MBimgs、hr、sr等目录分别存放原始图、高分辨率参考图与超分辨率重建图方便读者对照观察指标差异。源码注释详细、结构清晰适合计算机视觉方向的学生用于课程设计、毕业设计也能帮助研究人员与工程师快速掌握RDE这一感知质量评价方法并集成到自己的超分模型评估流程中。目前已有38人学习对于希望从代码层面理解图像感知质量评价的新手来说是一份实用的学习工具。1. 区域差分信息熵为什么超分图像评价不能只信 PSNR做超分辨率重建的人十有八九都遇到过这个场景PSNR 涨了 0.3 dB肉眼看上去却更糊了SSIM 报出高分但纹理细节全是伪影。传统像素级指标和人类视觉感知之间的鸿沟在做图像超分评估时暴露得特别明显。区域差分信息熵Regional Difference Entropy, RDE这个 Python 源码包走的就是另一条路它不看像素误差而是分析图像局部区域的统计特性把「图像局部结构的复杂度」量化成一个可比较的分数。简单说它衡量的是图像在局部区域上「变化得有规律还是杂乱无章」分数越低说明结构越清晰、越接近自然图像的分布。这套源码适合谁给学生做课程设计、毕业论文做图像质量评估对比实验给研究人员做超分模型的感知质量评测给工程师在模型选型时多一个参考维度。它不是替代 PSNR/SSIM而是补上它们缺失的那块拼图——感知质量。下面从原理到跑通再到踩坑一篇讲完。2. RDE 的数学原理与代码结构先搞懂它在算什么2.1 区域差分信息熵的定义差分、区域、熵三个概念怎么组合RDE 名字拆开就三部分区域Regional、差分Difference、信息熵Entropy。理解这三个词各自的含义再组合起来算法逻辑就清楚了。差分对图像做差分操作最常见的是相邻像素灰度差也可以是一阶梯度。差分结果能反映图像在局部区域内的变化强度。一幅清晰的超分图像边缘处差分值大且集中一幅过度平滑的图像差分值普遍偏小而带伪影的图像差分值会出现大量异常跳动。差分这一步的作用就是把「结构信息」从像素值里抽出来。区域不是整张图算一个熵值而是把图像切成若干局部块每个块单独计算。人眼对质量的感知本来就是局部化的——看一张人脸超分图眼睛区域的锐利程度和背景区域是否干净是分开判断的。全局单一指标会把局部缺陷平均掉区域化就是为了保住这种空间分辨能力。信息熵这就是信息论里的香农熵。把差分值看成随机变量统计其概率分布熵值H -Σ p(x) * log2(p(x))。熵的含义是「不确定性」差分值分布越集中熵越小结构越有序分布越均匀熵越大图像越接近随机噪声或过平滑。正常自然图像的局部差分分布有明确峰谷超分引入的伪影会让分布变散RDE 就能感知到这种统计差异。三者组合的逻辑是这样的把图像划分成区块 → 每个区块内计算差分 → 统计差分直方图并计算熵 → 汇总所有区块的熵值得到最终 RDE 分数。源码里实现的就是这一套流程。2.2 源码包结构与核心文件职责解压这个 zip目录结构大致如下code1128/ ├── RDIE.py # 核心算法实现 ├── demo.py # 示例运行脚本 ├── PipeLine.jpg # 算法流程图 ├── imgs/ │ ├── hr/ # 高分辨率参考图 │ └── sr/ # 超分重建结果图 └── README.md # 说明文档RDIE.py 是核心模块实现了 RDE 的完整计算流程。demo.py 是跑通流程的入口脚本它读取 hr 和 sr 两张图调用 RDIE.py 里的函数计算并打印出 RDE 分数。PipeLine.jpg 是算法流程图图上已经把「输入图像 → 分块 → 差分 → 熵计算 → 分数输出」的流水线画了出来。2.3 RDIE.py 核心代码逐段拆解打开 RDIE.py核心实现大致可以抽象成下面几段逻辑。注意我这里给出的是源码核心逻辑的还原帮助理解算法结构import numpy as np import cv2 def calculate_rde(image, block_size32, diff_modehorizontal): 计算单张图像的 RDE 分数 :param image: 输入灰度图shape(H, W)dtypeuint8 :param block_size: 分块尺寸默认 32x32 :param diff_mode: 差分模式horizontal 或 vertical :return: rde_score(float), block_entropies(list) h, w image.shape # 将图像裁剪为 block_size 的整数倍保证分块完整 h_crop h - h % block_size w_crop w - w % block_size image image[:h_crop, :w_crop] block_entropies [] num_blocks_h h_crop // block_size num_blocks_w w_crop // block_size for i in range(num_blocks_h): for j in range(num_blocks_w): block image[ i*block_size:(i1)*block_size, j*block_size:(j1)*block_size ] # 差分当前行减去上一行或当前列减上一列 if diff_mode horizontal: diff np.diff(block.astype(int), axis1) else: diff np.diff(block.astype(int), axis0) # 统计差分值的直方图区间的下限和上限根据 8bit 图设定 hist np.histogram(diff, bins256, range(-255, 255))[0] # 转成概率分布 prob hist / hist.sum() if hist.sum() 0 else np.zeros_like(hist) # 剔除零概率项计算信息熵 prob_nonzero prob[prob 0] entropy -np.sum(prob_nonzero * np.log2(prob_nonzero)) block_entropies.append(entropy) # 最终分数取所有块的均值 rde_score np.mean(block_entropies) return rde_score, block_entropies这段逻辑里有几个关键的实现细节值得注意np.diff沿横向计算相邻像素灰度差astype(int)是必须的——uint8 相减会溢出比如 0 减 255 会包回 1导致差分分布完全错误。这是一类非常经典的图像处理 bug。np.histogram的 range 参数设置为 (-255, 255)8bit 图像相邻像素差的理论范围就是 [-255, 255]。把全部可能取值纳入然后剔零概率项保证不会漏掉大梯度的边缘。block_size参数会影响 RDE 的敏感度。块越小时空分辨能力越强但每个块内统计样本越少熵估计越不稳定块越大熵估计越稳但局部缺陷越容易被平均掉。2.4 为什么这个指标能感知「PSNR 骗不了」的质量差异PSNR 的数学本质是逐像素 MSE 的对数变换它对像素值的小幅系统性偏移极其敏感。超分模型只要把输出整体往原图方向「抹」平均一些PSNR 就会显著提升——因为均值接近了参考图可纹理细节也被抹没了。RDE 走的是差分统计的路对「绝对像素值差不敏感」对「结构分布敏感」。过度平滑图块的差分分布窄而尖熵低伪影图块的差分分布散而宽熵高。这两类视觉上完全不同的退化方式在 RDE 上会产生方向相反的响应。我最初跑这个指标的时候拿 ESRGAN 和双三次插值的结果对比RDE 的排序和主观视觉排序一致而 PSNR 的排序是反的——双三次插值因为和原图平均像素更接近PSNR 反而更高。这就是 RDE 作为感知质量指标的价值所在。3. 跑通 demo 与集成到自己的评估流程命令、参数与输出解读3.1 环境准备依赖安装与版本说明源码依赖 NumPy 和 OpenCV都是 Python 图像处理的标准库。安装命令如下pip install numpy opencv-python版本方面NumPy 1.19 以上版本均可OpenCV 4.x 系列没问题。如果只算 RDE 不涉及可视化不装 matplotlib 也能跑。我在 Python 3.8 和 3.11 两个环境分别测过没有兼容性问题。参数说明OpenCV 的imread默认按 BGR 读图demo 里如果直接读彩色图需要先转成灰度图再进 RDE 计算这一点源码里已经处理好了。如果你用自己下载的超分图需要注意原始图像是否带了 alpha 通道PNG 带透明通道时cv2.imread会读成 4 通道直接转灰度会出现异常结果。3.2 demo.py 的运行流程与输出判读进入code1128目录直接执行python demo.pydemo 做的事情分四步。第一步读入 imgs/hr 和 imgs/sr 目录下对应的图像对第二步将图像转灰度并调用 RDIE.py 中的函数第三步分别计算 HR 参考图和 SR 重建图的 RDE 分数第四步把两者分数和差打印到控制台。输出大致是这样HR image RDE score: 5.8321 SR image RDE score: 6.4578 Delta: 0.6257看输出的时候有个关键认知RDE 分数不是「越小越好」或「越大越好」的单向指标它描述的是图像局部差分结构的统计分布特征。读取时建议结合方向来判断如果 SR 图与 HR 图的内容整体一致只是细节略有损失SR 的 RDE 通常比 HR 略低。过度平滑导致差分分布变窄熵减小。如果 SR 图引入明显伪影或振铃效应SR 的 RDE 会高于 HR。伪影导致差分分布变散熵增大。最理想状态是 SR 的 RDE 与 HR 的 RDE 接近说明重建结果的局部结构复杂度与原始图匹配。所以 demo 输出的 Delta 值才是核心参考量。绝对值 0.1 以内属优秀重建0.5 以内可以接受超过 1.0 通常意味着明显的感知质量偏差。3.3 批量评估一组超分图的 RDE改造 demo 脚本实际使用场景往往需要对比多个模型或同一模型不同 epoch 的输出。手动一张张跑不现实我把 demo 改造为一个批量脚本支持传入目录并输出 CSV 结果import os import csv import cv2 import numpy as np def evaluate_pair(hr_path, sr_path, block_size32): hr cv2.imread(hr_path, cv2.IMREAD_GRAYSCALE) sr cv2.imread(sr_path, cv2.IMREAD_GRAYSCALE) hr cv2.resize(hr, (sr.shape[1], sr.shape[0]), interpolationcv2.INTER_LANCZOS4) from RDIE import calculate_rde hr_score, _ calculate_rde(hr, block_sizeblock_size) sr_score, _ calculate_rde(sr, block_sizeblock_size) return hr_score, sr_score def batch_evaluate(result_dir, reference_path, output_csv): rows [] for filename in sorted(os.listdir(result_dir)): if filename.lower().endswith((.png, .jpg, .bmp)): sr_path os.path.join(result_dir, filename) hr_score, sr_score evaluate_pair(reference_path, sr_path) rows.append([filename, f{hr_score:.4f}, f{sr_score:.4f}, f{sr_score - hr_score:.4f}]) with open(output_csv, w, newline) as f: writer csv.writer(f) writer.writerow([filename, HR_RDE, SR_RDE, Delta]) writer.writerows(rows) print(fDone. Result saved to {output_csv}) if __name__ __main__: batch_evaluate(test_results/, reference_hr.png, rde_scores.csv)改造逻辑里有一个必须注意的点evaluate_pair函数中对 HR 做了一次cv2.resize将 HR 缩放到与 SR 相同的空间尺寸。这是必要的对齐操作因为超分输出和 HR 参考图的分辨率往往不一致直接比较不同尺寸图像的 RDE 毫无意义。另一个重要问题是block_size的选择。demo 默认 32×32 在大多数 4 倍超分场景下表现稳定。如果你评估的是 2 倍超分输出图像尺寸较小建议块大小调到 16保证足够的块数量用于统计。判断块数量是否足够有个实操经验如果图像分块后少于 20 个块RDE 得分的方差会很大同样模型跑两次结果可能差很多。遇到这种情况把小图放大到 512×512 以上再计算更可靠。3.4 结合其他指标交叉验证RDE、PSNR、SSIM 的互补用法RDE 不该单打独斗我更推荐把它加入评估组合拳。PSNR 看像素还原精度SSIM 看结构相似度RDE 看局部差分统计的感知一致性。三个指标一起上能筛掉的坑比任何一个单独用都多。我在实际对比两个超分模型时养成的习惯是每个模型跑一组验证集图像然后每组算出三个指标的均值做成一个对比表模型 A 的 PSNR 高 0.2 dBSSIM 高 0.005但 RDE Delta 高 0.8。模型 B 的 PSNR 略低SSIM 略低但 RDE Delta 只有 0.15。单看 PSNR/SSIM 会选 A但 A 在视觉上是锐化过度、伪影偏重的典型表现。RDE 把这一真相暴露出来最终结论自然反转。这种交叉验证方式在论文实验部分也更好写既能看到传统的精度指标又能证明你多考虑了一层感知维度。4. 避坑与常见问题我在跑 RDE 时踩过的五个真实坑4.1 输入图像尺寸不一致导致指标失真现象同一张 HR 图配不同尺寸的 SR 图RDE 分数忽高忽低Delta 值混乱得不出稳定结论。原因代码里分块数量由图像尺寸决定。512×512 的图按 32×32 分块能分出 256 个块256×256 只有 64 个块样本量不同熵估计的稳定度完全不一样。另外不同尺寸图像的差分分布天然不同小图经过下采样后高频信息本就减少RDE 直接可比较性低。解决先cv2.resize将 HR 和 SR 统一到相同尺寸再计算。统一尺寸时使用 INTER_LANCZOS4 插值它在缩放过程中对高频保持相对友好。对齐之后 RDE 分数才具备可比较性。4.2 彩色图直接进算法导致结果异常现象demo 跑通没问题换成自己的彩色超分图后RDE 分数比预期高出一截且所有图都差不多。原因看一眼代码cv2.imread默认读成 3 通道 BGR。源码按单通道灰度图计算如果传入了 3 通道数组np.diff会沿着最后一个维度计算通道间的差值——B 通道减 G 通道、G 通道减 R 通道的差值被当成图像差分算进了直方图结果完全错误。解决读图时显式指定灰度模式cv2.imread(path, cv2.IMREAD_GRAYSCALE)或者在读完后用cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)转换。这是我疏忽过的事后来养成了习惯凡是图像质量指标的代码入口第一行永远是显式指定灰度。4.3 uint8 溢出导致差分直方图变量全部乱掉现象高亮区域和边缘区域附近的熵值异常偏大肉眼看起来一副图块质量不错但它的 RDE 分数反而高于明显带伪影的图块。原因np.diff处理 uint8 数组时不做类型提升。像素值 0 和 255 做差数学结果应为 -255uint8 溢出后变成 1。大量边缘像素的差分值被错误映射到小数值区间直方图分布扭曲熵计算跟着失真。解决差分前务必做astype(int)转型。这个坑坑了我两轮才意识到第一轮发现结果不对劲第二轮逐块调试到np.diff那行才看明白。在读任何一个图像处理的源码包时先把数组 dtype 链梳理一遍能省出大量调试时间。4.4 block_size 的选择对结论有决定性影响现象同一组超分图像用 block_size8 时模型 A 胜出用 block_size64 时模型 B 反超。原因块越小熵估计的方差越大块越大局部细节越容易被牺牲掉。block_size8 在 512×512 图上能分出 4096 个块但从每块仅 64 个像素估计直方图统计噪声很大block_size64 则把 64×64 区域内的所有结构信息揉成一个熵值局部伪影被大量正常区域稀释。解决选 block_size 的原则是保证每块内至少包含一个完整的纹理单元或边缘结构。4 倍超分图像的最小纹理尺度通常不低于 16 像素我一般设为 32 并和 16、64 一起各跑一遍看结论是否一致。三个尺度结论一致说明评估结果是稳健的不一致就说明图像本身质量处于模糊地带需要人工目检介入。4.5 HR 与 SR 内容不对齐RDE 比较完全失效现象SR 图比 HR 图有 12 像素的平移偏移RDE Delta 值突然飙升到 2.0 以上判为严重质量劣化。但目测 SR 图细节和 HR 几乎无差。原因RDE 的计算依赖局部差分统计平移 12 个像素虽然不改变整张图的统计分布但在「分块对应」的语义下SR 的某一块对应的是 HR 的另一块。HR 图里原本在同一区块内的规则结构在 SR 里被切分到两个相邻区块每个区块的熵分布都会发生变化累积起来 Delta 就被放大了。解决评估前先做对齐。如果 SR 是超分模型的直接输出与 HR 存在亚像素偏移是常见现象。这时候运行一次基于相位相关的配准或干脆以 SR 为基准对 HR 做相同的裁剪和缩放变换。对齐后再算 RDE 才是公平的口径对比。5. 把 RDE 做成评估管线里的一个模块进阶用法与验证技巧RDE 源码包提供了一个独立的单图像评估函数但要让它真正融入工作流还要做一层封装。这里给一个进阶的实践方案把 RDE 封装成一个可用import导入的评估模块统一接口、统一参数管理。# quality_metrics.py import numpy as np import cv2 from RDIE import calculate_rde class RDEMetric: def __init__(self, block_size32, diff_modehorizontal): self.block_size block_size self.diff_mode diff_mode def __call__(self, hr: np.ndarray, sr: np.ndarray) - dict: # 统一尺寸 if hr.shape[:2] ! sr.shape[:2]: hr cv2.resize(hr, (sr.shape[1], sr.shape[0]), interpolationcv2.INTER_LANCZOS4) # 统一灰度 if len(hr.shape) 3: hr cv2.cvtColor(hr, cv2.COLOR_BGR2GRAY) if len(sr.shape) 3: sr cv2.cvtColor(sr, cv2.COLOR_BGR2GRAY) # 统一 dtype hr np.ascontiguousarray(hr, dtypenp.uint8) sr np.ascontiguousarray(sr, dtypenp.uint8) hr_score, hr_blocks calculate_rde( hr, block_sizeself.block_size, diff_modeself.diff_mode) sr_score, sr_blocks calculate_rde( sr, block_sizeself.block_size, diff_modeself.diff_mode) return { hr_rde: hr_score, sr_rde: sr_score, delta: sr_score - hr_score, block_count: len(hr_blocks) }封装之后在训练或推理脚本里就能这样用from quality_metrics import RDEMetric rdem RDEMetric(block_size32) result rdem(hr_image, sr_image) print(result[delta])这个封装解决了三个实际问题。第一所有输入图像被统一到灰度、统一到相同尺寸、统一到 uint8杜绝了章节 4 里那些典型 bug 的再次发生。第二block_size 和 diff_mode 作为构造参数传入跑多组对比实验时切换参数不用改函数体。第三返回值包含块数量方便你做置信度判断——块数量不足时结果谨慎参考。另一个值得做的验证技巧是「噪声扰动自检」。取一张清晰的 HR 图对它添加不同程度的高斯噪声sigma 从 0 到 20观察 RDE 分数的变化趋势。如果 RDE 分数随噪声强度单调递增说明算法的差分熵对退化敏感工作正常如果曲线出现平台期或上下跳动说明代码有潜在问题回查直方图计算的实现。这个自检只要两分钟就能跑完能筛掉大多数实现层面的 bug。最后说一个我的个人习惯。从那以后每当我评估一个超分模型或者调一次后处理参数我都会强制走一遍「RDE PSNR SSIM」三件套并把 RDE 的 Delta 值和 block_count 一起记录到实验表格里。数据积累到一定量后模型的性格特征会浮现出来——有些模型永远 PSNR 高但 RDE 偏差大说明它做的是像素平均式重建有些模型 PSNR 略低但 RDE 贴合 HR说明它在纹理结构上更接近真实图像。这套方法论已经帮我避开了不少「指标漂亮、肉眼翻车」的模型选择失误。希望这个 RDE 源码包也能成为你评估流程里可靠的一把尺子帮你把超分模型选择的依据落到视觉实际上去。本文还有配套的精品资源点击获取

相关新闻

HCNA 912题库刷题攻略:按考点拆解+模拟器验证,让错题不再错

HCNA 912题库刷题攻略:按考点拆解+模拟器验证,让错题不再错

简介:一份面向华为HCNA/HCDA认证(HC-012-211 HNTD科目)备考人群的高频试题集,共收录912道题及答案,适合网络工程师、运维人员及高校网络方向学生考前系统刷题与查漏补缺。题库覆盖IP地址与子网掩码计算、PPP协议配置、…

2026/10/12 11:57:59 阅读更多 →
用Python写C语言编译器:从词法分析到三地址码的完整实现

用Python写C语言编译器:从词法分析到三地址码的完整实现

简介:一份使用Python实现的C语言编译器项目,面向编译原理初学者和Python开发者,用于展示编译器设计的完整路径。项目以LL(1)文法为语法分析基础,通过构建预测分析表解析变量声明、函数定义、控制流等结构,并利用C语言空…

2026/10/12 11:57:59 阅读更多 →
Windows沙箱内Codex任务批量超时故障复盘:代理配置缺失与静默降级排查

Windows沙箱内Codex任务批量超时故障复盘:代理配置缺失与静默降级排查

2026年10月8日中午,我们那套跑在Windows沙箱里的Codex自动任务流水线突然开始批量失败。从第一个超时告警弹出,到真正定位到根因,前后花了近三个小时。这篇复盘把完整排查链条、根因结论和后续加固方案整理出来,尤其是那个藏在“配…

2026/10/12 11:56:58 阅读更多 →

最新新闻

Cherry Studio接入DeepSeek完整指南:从API密钥到RAG知识库配置

Cherry Studio接入DeepSeek完整指南:从API密钥到RAG知识库配置

简介:面向人工智能工具使用者的实践指南,聚焦Cherry Studio桌面客户端与DeepSeek大模型的集成应用。资源围绕安装部署、API密钥配置、对话与知识库/RAG功能实操展开,并给出常见连接与使用问题的排错方法,适合希望低成本调用高性能…

2026/10/12 19:16:56 阅读更多 →
DeepSeek本地部署实战:Ollama+ChatBox+Cherry Studio构建私有知识库

DeepSeek本地部署实战:Ollama+ChatBox+Cherry Studio构建私有知识库

简介:面向有一定技术背景的AI学习者和企业研发团队,一套完整指南涵盖DeepSeek本地部署、ChatBox交互接入与Cherry Studio私有知识库搭建三大环节。资源以单个docx文档呈现,压缩包2.8MB,内容分段覆盖Ollama安装、DeepSeek-R1模型下…

2026/10/12 19:16:56 阅读更多 →
AI面试名企案例精粹:从高并发初筛到数据回流的人力提效指南

AI面试名企案例精粹:从高并发初筛到数据回流的人力提效指南

简介:《2025年牛客AI面试实战宝典——名企案例精粹案例集》是一份面向企业HR部门与招聘负责人的AI面试实践指南,聚焦互联网、金融、制造业、汽车、房地产等行业的招聘场景,针对简历筛选量大、面试官资源紧张、招聘成本高等常见问题&#xff0…

2026/10/12 19:16:55 阅读更多 →
YOLOv10麦穗计数系统:从PyTorch训练到ONNX部署与PyQt5实时识别

YOLOv10麦穗计数系统:从PyTorch训练到ONNX部署与PyQt5实时识别

简介:基于YOLOv10的麦穗计数系统完整技术文档,面向熟悉Python与深度学习基础、需要落地农业视觉检测项目的科研和工程人员,用于解决大田场景下麦穗自动识别与计数、产量评估等实际问题。压缩包内为单个docx文档,仅46KB&#xff0c…

2026/10/12 19:16:55 阅读更多 →
消费级显卡LoRA微调实战:Alpaca与ChatGLM路径解析

消费级显卡LoRA微调实战:Alpaca与ChatGLM路径解析

简介:一套聚焦AI研发提效的LoRA实战训练资源,主要围绕Llama(Alpaca LoRA)与ChatGLM(ChatGLM Tuning)两大模型的轻量微调展开,训练场景覆盖用户故事生成、测试代码生成、代码辅助生成、文本转SQL…

2026/10/12 19:16:55 阅读更多 →
螺旋天线仿真:先定法向模还是轴向模,再谈绕线与参数优化

螺旋天线仿真:先定法向模还是轴向模,再谈绕线与参数优化

简介:这是一份面向天线设计与射频工程领域学习者与从业者的技术文献,包体为单个PDF文档,压缩包仅181KB。文档围绕螺旋天线的仿真与设计展开:先说明螺旋天线的金属螺旋线结构与同轴线馈电方式,介绍辐射方向与螺旋线圆周…

2026/10/12 19:15:55 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

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

周新闻

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

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

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

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

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

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

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

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

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