鲸落于北 于 2021-08-23 14:20:56 发布 https://blog.csdn.net/weixin_42708301/article/details/119868531?spm=1001.2014.3001.5502( PaddleOCR学习(二)PaddleOCR检测模型训练) 订阅专栏 各种OCR算法试了一圈,还是PaddleOCR比较完善,集成度高,而且各种调试、测试、各种backbone的更改都要方便许多,非常的接地气。网上也有许多paddleocr的相关教程,但是说实话,有很多不清晰的地方,像我这样接触深度学习算法的新手,很多东西都搞不清楚,导致浪费不少时间,趁着网络在训练,我想做一份最最详细的PaddleOCR算法新手教程,确保初次接触深度学习的新手也能快速搞懂。 一、安装PaddleOCR 首先去github下载:https://github.com/PaddlePaddle/PaddleOCR,然后找个文件夹解压。 接下来需要配置PaddleOCR所需的环境,我是win10+anaconda,如果是linux的教程网上也很多,比win10简单多了,就不写了。 首先,推荐新建一个环境: conda create -n paddle38 python=3.8 1 接下来,安装PaddlePaddle,推荐使用清华源: pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 1 如果要使用gpu版的,安装paddlepaddle-gpu: pip install paddlepaddle-gpu 1 然后是安装shapely,但是需要先从https://www.lfd./~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 1 最后cd到刚才解压的PaddleOCR文件夹中,执行: pip install -r requirements.txt 1 至此,安装就完成了,我用的是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" 1 这样即可输出到PaddleOCR-develop/results文件夹中。 同样的,如果只进行文本检测(不识别),运行predict_det,输出结果同样修改。 ————— ![]()
——————————— 版权声明:本文为CSDN博主「鲸落于北」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_42708301/article/details/119864744 |
|