logo
0
0
WeChat Login
Use uv to install the Docker environment

Handnote Enhancer

一个基于 PyTorch 固定推理管线的手写笔记增强 Gradio Demo。项目不做本地训练,也不下载预训练权重;增强模型由项目内自定义 torch.nn.Module 和 OpenCV 几何算法组成。

功能

  • 上传 jpg / jpeg / png 手写笔记图片
  • 自动页面检测、透视矫正和小角度旋转校正
  • 使用 PyTorch 张量算子做阴影移除、背景压平、局部对比增强和墨迹保护
  • 支持彩色增强和黑白扫描风格
  • 最终输出固定为 A4 纵向比例,默认 2480x3508 PNG
  • Gradio 页面展示原图、几何校正、增强结果和最终 A4 输出

安装

uv sync --extra dev

如果不用 uv,也可以使用普通虚拟环境:

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

运行

python app.py

启动后打开终端中显示的 Gradio 本地地址,上传图片即可查看处理流程和下载最终 PNG。

Docker

构建 CUDA/PyTorch 镜像:

docker build -f docker/cv.dockerfile -t handnote-enhancer:cuda .

镜像内使用 uv 安装项目环境,并在 CUDA 版 PyTorch 基础镜像中固定 torch==2.8.0torchvision==0.23.0torchaudio==2.8.0;OpenCV 依赖来自项目配置中的 opencv-python-headless

进入容器做训练脚本扩展或实验:

docker run --gpus all --rm -it -v "$PWD":/workspace handnote-enhancer:cuda

测试

pytest -q

说明

这个项目中的“模型”是无需训练的固定推理网络:它使用 PyTorch 的卷积、池化、归一化和阈值化算子完成图像增强。几何校正由 OpenCV 完成,用于更可靠地处理页面边界、透视和倾斜。