- 2024.11.15
- 完成初版代码,转换 UVDoc 模型为onnx,完善前后处理
- 2024.12.15
- 补充去模糊/去阴影/二值化的功能和模型,重新升级为 RapidUndistort
本仓库用于进行文档扭曲的修正/文档去模糊/文档去阴影/文档二值化等问题 \
提供多种模型和自由组合选择task,支持模型自动下载
原始pytorch模型来源参考 致谢
快速使用使用建议参数说明模型地址
# 建议使用清华源安装 https://pypi.tuna.tsinghua.edu.cn/simplepipinstallrapid-undistortedimportcv2fromrapid_undistorted.inferenceimportInferenceEngineimg_path="img/demo.jpg"engine=InferenceEngine()
# 扭曲修正->去阴影->去模糊 (指定去模糊模型)output_img, elapse=engine(img_path, ["unwrap", "unshadow", ("unblur", "OpenCvBilateral")])
# 去阴影->去模糊 (指定去模糊模型)#output_img, elapse = engine(img_path, ["unshadow", ("unblur", "OpenCvBilateral")])# 默认选择yaml配置文件中第一个unblur模型#output_img, elapse = engine(img_path, ["unshadow", "unblur"])# 二值化替代去阴影方法#output_img, elapse = engine(img_path, ["unwrap", "binarize", "unblur"])print(f"doc unwrap elapse:{elapse}")
cv2.imwrite("result.png", output_img)- 去模糊 NAFDPM 模型和直接使用opencv方法都有适用的情况,最好还是在线实际测试为准
- 去阴影模型相对于二值化功能更丰富,效果更好,不建议直接使用二值化方法
支持传入一个config配置文件,声明需要的task类型和对应的模型,以及model path
config_path="configs/config.yaml"engine=InferenceEngine(config_path)tasks:
unwrap:
models:
- type: "UVDoc"path:
use_cuda: falseunshadow:
models:
- type: "GCDnet"sub_models:
- type: "GCDnet"path:
use_cuda: falseuse_dml: false
- type: "DRnet"path:
use_cuda: falsebinarize:
models:
- type: "UnetCnn"path:
use_cuda: falseunblur:
models:
- type: "OpenCvBilateral"path:
- type: "NAFDPM"path:
use_cuda: falseengine(img_path, task_list)
engine(img_path, ["unwrap", "unshadow", ("unblur", "OpenCvBilateral")])unwrap: UVDoc unshadow: GCDnet unblur: NAFDPM binarize: UnetCnn
欢迎提交请求。对于重大更改,请先打开issue讨论您想要改变的内容。
有其他的好建议和集成场景,作者也会积极响应支持
该项目采用Apache 2.0 开源许可证。

