今天给大家分享一个基于深度学习的ORC工具。
OCR即光学字符识别,通俗地讲就是提取图片上的文字。
自动提取文字可以为很多后续任务提供极大的便利。
例如,针对金融领域的发票信息录入;自动翻译,朗读等等,后续我会把模型集成到树莓派开发板中,实现一个简易版本的点读笔。
源代码已经上传到我的Github仓库中。
https://github.com/AIDajiangtang/OCR
到这里我要打个广告啊,因为我开设公众号的目的是分享人工智能原理与应用,既然是应用,那就免不了用深度学习去解决现实中的问题。
在我的Github仓库中已经开源了多个基于深度学习的实用工具:
基于深度学习的抠图工具
https://github.com/AIDajiangtang
基于深度学习的图像拼接工具
https://github.com/AIDajiangtang/Superpoint-LightGlue-Image-Stiching
基于大模型的分割工具
https://github.com/AIDajiangtang/Segment-Anything-CPP
https://github.com/AIDajiangtang/Segment-Anything-CSharp
本项目是基于paddle ocr开发的,模型的加载,推理,后处理都是由C++来完成的。
C++代码由Cmake进行编译,支持Windows和Linux平台,目前在Widnows上已经测试过。
详细的编译过程请参照:
https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/deploy/cpp_infer/docs/windows_vs2019_build.md
CmakeFile默认将C++代码编译成exe,然后在控制台输入下面命令行代码运行程序。
ppocr.exe --det_model_dir=D:\AIPlus\OCR\ch_PP-OCRv4_det_infer\ --rec_model_dir=D:\AIPlus\OCR\ch_PP-OCRv4_rec_infer\ --image_dir=D:\AIPlus\OCR\12.jpg --rec_char_dict_path=D:\AIPlus\OCR\ppocr_keys_v1.txt --use_angle_cls=false --det=true --rec=true --cls=false
提取的字符串会输出到控制台中,检测结果图片会保存到outpu文件夹中。
除此之外,可以将CmakeLists.txt中add_executable(${DEMO_NAME} S R C S ) 改成 a d d l i b r a r y ( {SRCS})改成add_library( SRCS)改成addlibrary({DEMO_NAME} SHARED ${SRCS}),将上述C++代码编译成动态链接库ppocr.dll,然后在C#中调用,用WPF显示结果。
目前只支持文字识别检测,下一步我将集成表格识别功能,敬请期待。