Kaggle Digit Recognizer
基于 CNN (LeNet-5) 实现的手写数字识别项目。 完成了数据预处理、模型搭建与训练,最终在 Kaggle 取得 Top 15% 的成绩。 包含完整的 PyTorch 代码复现与参数调优记录。
基于 CNN (LeNet-5) 实现的手写数字识别项目。 完成了数据预处理、模型搭建与训练,最终在 Kaggle 取得 Top 15% 的成绩。 包含完整的 PyTorch 代码复现与参数调优记录。
视频插帧技术:从光流、MEMC 到 BiM-VFI 1. 问题背景:慢放视频会导致卡顿 视频由连续图像帧组成,帧率表示每秒播放的画面数量,单位是 fps。帧率越高,画面变化越连续,视觉观感通常越流畅。 当一段视频被慢放时,如果只是简单拉长播放时间,而没有增加新的中间帧,视频的有效帧率会下降。例如一段 30 fps 的视频被放慢到 0.25 倍,实际观感可能接近 7.5 fps,画面就会出现明显卡顿。 视频插帧技术的目标,就是在原始相邻帧之间生成合理的中间帧,使视频在慢放或帧率提升后依然保持流畅。 简单来说,插帧要解决的问题是: text Copy Wrap 给定前一帧 I0 和后一帧 I1, 预测中间时刻 It。 这个任务看起来像是“补一张图”,但本质上是一个复杂的时序建模问题。算法需要理解物体如何运动、哪些区域被遮挡、哪些区域新出现,以及如何生成清晰自然的中间画面。 2. 核心概念:光流 视频插帧中最基础的概念是光流。 光流描述的是:每个像素从前一帧移动到后一帧的位移向量。 如果一个像素点从: $$ (x, y) $$移动到: $$ (x+u, y+v) $$那么它的光流就是: $$ (u, v) $$整张图像上每个像素都有一个运动向量,这些向量共同构成一张光流图。 直观理解: text Copy Wrap 人物向右移动:人物区域的光流大多指向右侧 背景不动:背景区域的光流接近 0 镜头平移:整张图像可能出现整体方向一致的光流 有了光流,就可以把前后两帧根据运动关系 warp 到中间时刻,再融合生成中间帧。 如果光流估计准确,插帧结果会自然;如果光流错误,就容易出现重影、拖影、边缘破碎、人物变形等问题。 3. 视频插帧的三类传统方案 3.1 重复帧或帧融合 最简单的方案是重复已有帧,或者直接对前后帧做线性融合。 重复帧的结果类似: text Copy Wrap A A B B C C 帧融合可以写成: ...