各种OCR算法试了一圈,还是PaddleOCR比较完善,集成度高,而且各种调试、测试、各种backbone的更改都要方便许多,非常的接地气。网上也有许多paddleocr的相关教程,但是说实话,有很多不清晰的地方,像我这样接触深度学习算法的新手,很多东西都搞不清楚,导致浪费不少时间,趁着网络在训练,我想做一份最最详细的PaddleOCR算法新手教程,确保初次接触深度学习的新手也能快速搞懂。

一、安装PaddleOCR

首先去github下载:https://github.com/PaddlePaddle/PaddleOCR,然后找个文件夹解压。

接下来需要配置PaddleOCR所需的环境,我是win10+anaconda,如果是linux的教程网上也很多,比win10简单多了,就不写了。

首先,推荐新建一个环境:

conda create -n paddle38 python=3.8

接下来,安装PaddlePaddle,推荐使用清华源:

pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

如果要使用gpu版的,安装paddlepaddle-gpu:

pip install paddlepaddle-gpu

然后是安装shapely,但是需要先从https://www.lfd.uci.edu/~gohlke/pythonlibs/下载shapely安装包Shapely‑1.7.1‑cp38‑cp38‑win_amd64.whl,将其复制到F:\Anaconda3\envs\paddle38\libs文件夹下(根据自己新建的环境的位置修改),然后在anaconda Prompt中,cd到该目录下,执行:

pip install Shapely‑1.7.1‑cp38‑cp38‑win_amd64.whl

最后cd到刚才解压的PaddleOCR文件夹中,执行:

pip install -r requirements.txt

至此,安装就完成了,我用的是pycharm,记得到pycharm中,将PaddleOCR项目的环境改为paddle38。

PaddleOCR-develop文件夹目录下应该有以下文件:

这是我已经安装完的文件夹,里面有些文件夹是最初没有的,比如demo、inference、pretrain_models、results、train_data等,这些后面会讲,不影响。

二、试用官方的模型

完成PaddleOCR安装之后,推荐先用官方模型对自己的数据进行下测试看看效果,官方预训练模型的下载地址为:
https://github.com/PaddlePaddle/PaddleOCR/blob/develop/README_ch.md

这里有必要解释一下,推理模型相当于训练完成的模型,直接拿来就可以进行predict;而预训练模型属于半成品,用于进一步的训练,之后用自己的数据训练模型时需要用到预训练模型。所以这里应该先下载推理模型。

如图,我下载的是超轻量OCR模型,检测、方向分类、识别的推理模型我都下载了,在PaddleOCR目录下新建一个inference文件夹,用于存放这些模型:

接下来就可以准备开始测试自己的图片了,官方也给出了快速开始的教程:
https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_en/quickstart_en.md

可以使用如下命令进行单张图片的测试:
这里有两种方法:
(1)直接在paddle-develop文件夹目录下打开cmd,然后conda activate paddle38,在输入以下指令;
(2)在anaconda Prompt中先conda activate paddle38,再一路cd到paddle-develop文件夹下。

python tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_ppocr_mobile_v1.1_det_infer/"  --rec_model_dir="./inference/ch_ppocr_mobile_v1.1_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v1.1_cls_infer/" --use_angle_cls=True --use_space_char=True

有的网上教程前面是python3开头,不知道为什么,反正在我的环境里跑不起来,甚至没有任何报错反应。

如果不想使用命令运行,而是想在pycharm中使用run的话,需要在代码中进行修改,需要修改的代码在PaddleOCR-develop/tools/infer文件夹下:

这里面,predict_det是检测文本用的,predict_rec是识别文本用的,而predict_system是既检测又识别。另外,这几个预测文件共用一个参数配置文件utility.py,需要更改的参数如下:

# 注意这些需要修改的参数在utility文件中不是连续的
# 是否使用gpu
parser.add_argument("--use_gpu", type=str2bool, default=True)
# 图片位置(图片位置相对于utility文件位置比较遥远,也可以使用绝对路径)
parser.add_argument("--image_dir", type=str, default="../../demo/sample4.jpg")
# 检测模型路径
parser.add_argument("--det_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_det_infer/")
# 识别模型路径
parser.add_argument("--rec_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_rec_infer")
# 字典路径(ic15_dict.txt是英文字典,ppocr_keys_v1.txt是中文字典,检测一般不区分中英文,但是识别需要区分中英文)
parser.add_argument("--rec_char_dict_path",type=str,default="../../ppocr/utils/ic15_dict.txt")
# 分类模型
parser.add_argument("--cls_model_dir", type=str, default="../../inference/ch_ppocr_mobile_v1.1_cls_infer")
# 字体路径
def draw_ocr_box_txt(image,boxes,txts,scores=None,drop_score=0.5,font_path="../../doc/simfang.ttf"):
# 字体路径
def text_visual(texts,scores,img_h=400,img_w=600,threshold=0.,font_path="../../doc/simfang.ttf"):

修改完这些文件后,运行predict_system文件,即可,输出结果的位置在predict_system中修改:

draw_img_save = "../../results"

这样即可输出到PaddleOCR-develop/results文件夹中。

同样的,如果只进行文本检测(不识别),运行predict_det,输出结果同样修改。

PaddleOCR学习(一)PaddleOCR安装与测试相关推荐

  1. 【PaddleOCR】一、PaddleOCR安装、测试(Win10)

    目录 一.创建虚拟环境 二.下载PaddleOCR 三.安装Paddlepaddle 四.安装shapely 五.pip其他依赖包 六.下载推理模型 七.测试 7.1.测试det 7.2.测试rec ...

  2. PaddleOCR环境配置与安装

    PaddleOCR环境配置与安装 文章目录 PaddleOCR环境配置与安装 1.前言 2.安装 2.1Python3.7环境准备 2.2.PyCharm建立项目 2.3 安装PaddlePaddle ...

  3. PaddleOCR windows10下的安装使用

    一.安装 官方快速安装PaddlePaddle 根据自己电脑本次选择windows pip python3 cpu版本的来进行安装 1.确保安装的windows是64位 2.确保python的版本是以 ...

  4. PaddleOCR简单使用,识别文字测试

    PaddleOCR初始简单使用,识别文字测试 文章目录 PaddleOCR初始简单使用,识别文字测试 1.PaddleOCR环境安装 2.测试代码 3.CMD命令执行刚才的`testocr.py` 1 ...

  5. 百度PaddleOCR Docker GPU版安装全指南

    最近有一个项目需要用到文字识别,但是又是内网项目,不能用在线的第三方接口. 在Github找了一些包,都对比了一番 最终还是决定使用百度开源的PaddleOCR 机器配置: 12核CPU.16GB D ...

  6. 看这一篇就够了!ROS2入门学习:安装、测试、多机通信以及与ROS1的切换、通信

    ROS2入门学习:安装.测试.多机通信以及与ros1的切换.通信 为什么要写这篇blog 1 ROS2优势 2 安装ROS2 Ardent 版本 2.1 UTF-8支持 2.2 安装依赖 2.3 密钥 ...

  7. OracleDesigner学习笔记1――安装篇

    OracleDesigner学习笔记1――安装篇   QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一.       前言 Oracle是当 ...

  8. 用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 (zz)

    用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 我想写一系列深度学习的简单实战教程,用mxnet做实现平台的实例代码简单讲解深度学习常用的一些技术方向和实战样例.这 ...

  9. 《Go语言圣经》学习笔记 第十一章 测试

    <Go语言圣经>学习笔记 第十一章 测试 目录 go test 测试函数 测试覆盖率 基准测试 剖析 示例函数 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. Go语 ...

  10. OMNeT学习之OMNeT安装与运行

    OMNeT学习之OMNeT安装与运行 前言 本文原创,创作不易,转载请注明!!! 本人为OMNet初学者,如有错误,请不吝请教! 最近学WSN(无线传感器网络),做传感器实验,老师强调了仿真平台Mat ...

最新文章

  1. Netty实战六之ChannelHandler和ChannelPipeline
  2. Linux环境编程 哈希链表结构 hlist 介绍与用例
  3. 文件流导出乱码_Savespss:不使用StatTransfer也可转换dta为sav文件的利器
  4. c#实例-子线程查找另一线程模态对话框句柄(invoke测试)
  5. Node.jsNPM的安装与配置(转)
  6. 执行Dockerfile构建基础镜像,建立python工作环境
  7. python效率低为什么_为什么 Python 这么慢?
  8. CSS文本溢出的处理方法总结
  9. DC漫画公司正在考虑进军NFT市场
  10. [Micropython]TPYBoard开发板点亮心形8*8点阵
  11. java项目启动失败的解决方案
  12. Java学习视频教程
  13. java毕业设计基于javaweb+mysql数据库实现的在线学习网站|在线课堂含论文+开题报告
  14. CH579 以太网转串口 串口服务器代码!
  15. 【魔兽世界插件】魔兽世界插件实战笔记从入门到放弃的心理历程 第二节XML框架的建立
  16. MarkDown数学公式基本语法
  17. sparkStreaming+kafka+redis小项目实战
  18. IESM项目实训四——Web Audio录音和字符串转拼音
  19. 3D立体相册 html+css
  20. js通过字节长度截取中英文混合字符串

热门文章

  1. 宝马与F团合作能否再造营销奇迹?
  2. 分数傅立叶变换的性质
  3. 重新理解 Go 实战
  4. 2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案
  5. java 慕课 结题报告_[转载]微课组:小课题研究结题报告
  6. 不会编程也能爬数据!3个爬虫小工具教你实现~
  7. 驰骋BPM系统-表单引擎-流程引擎2020年大换装
  8. pixel-wise,patch-wise,image-wise的含义
  9. Java多线程(超详解)
  10. STM32F10x单片机Flash写操作导致中断不响应问题