当前位置:   article > 正文

基于paddleocr的字符识别_paddleocr 识别中括号

paddleocr 识别中括号


前言

最近不是在做关于字符识别的项目嘛,同事用的paddleocr做字符识别自己测试的效果还行,结果到客户那边跑了一下没出结果,尴尬了。。。我感觉用paddleocr整体是没什么问题的,问题可能出在字符的定位方面。
借着这个机会我也学习了一下paddleocr,毕竟后面同事离职我要接手这个项目的(因为同事都是大佬,一个要去读香港理工大学研究生,一个要去读英国伦敦大学研究生,还有一个保研中南大学研究生)


一、paddleocr环境搭建

这里可以借鉴我之前的文章,https://blog.csdn.net/JulyLi2019/article/details/113878162,我不认为大家都是新手,需要一步步展示安装步骤。

建好虚拟环境,换好源之后,去这个地址下载源码:
https://github.com/PaddlePaddle/PaddleOCR/tags

我用的是如下版本:
在这里插入图片描述
下载完解压之后,进入解压后的目录执行安装依赖库命名:
在这里插入图片描述

pip install -r requirements.txt
  • 1

等待安装完成后,单独安装所需的paddleocr库

pip install paddleocr
  • 1

有时import paddleocr时,可能会出现一些关于dll的错误,大概率是shapely库的问题,此时需要把D:\Anaconda3\envs\paddle\Lib\site-packages\shapely\DLLs(根据你自己的地址找)中两个dll文件,复制到D:\Anaconda3\envs\paddle\Library\binD:\Anaconda3\envs\paddle是我的地址虚拟环境地址)
在这里插入图片描述
在这里插入图片描述
这样问题差不多就能解决了哈。

二、使用

代码

下面直接上代码:

# -*- coding:utf-8 -*-
# @Time : 2021/6/24 16:39
# @Author : JulyLi
# @File : test.py
# @Software: PyCharm

import cv2
import paddleocr
from PIL import Image, ImageDraw, ImageFont
import numpy as np

res = paddleocr.PaddleOCR(use_gpu=False).ocr(img=r'E:\paddle\PaddleOCR-2.1.0\PaddleOCR-2.1.0\demo\1750.jpg')

img = Image.open(r'E:\paddle\PaddleOCR-2.1.0\PaddleOCR-2.1.0\demo\1750.jpg')
im = np.array(img)
for i in range(len(res)):
    cv2.rectangle(im, (int(res[i][0][0][0]), int(res[i][0][0][1])),
                  (int(res[i][0][2][0]), int(res[i][0][2][1])), (255, 0, 0), 1)
    # 使用cv2.putText不能显示中文,需要使用下面的代码代替
    # cv2.putText(im, d['text'][i], (x, y-8), cv2.FONT_HERSHEY_SIMPLEX, 0.3, (255, 0, 0), 1)

    pilimg = Image.fromarray(im)
    pilimg.resize((800, 600), Image.ANTIALIAS)
    draw = ImageDraw.Draw(pilimg)
    # 参数1:字体文件路径,参数2:字体大小
    font = ImageFont.truetype("simhei.ttf", 15, encoding="utf-8")
    # 参数1:打印坐标,参数2:文本,参数3:字体颜色,参数4:字体
    text, sroce = res[i][1]
    draw.text((res[i][0][0][0], res[i][0][0][1]), text, (255, 0, 0), font=font)
    im = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)

cv2.imwrite("res.jpg", im)
cv2.imshow("recoText", im)
cv2.waitKey(0)
cv2.destroyAllWindows()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

效果展示

待检测图:在这里插入图片描述
运行后结果图:
在这里插入图片描述


总结

整体来说paddleorc对于字符识别还是很强大的,而且这里我用的还是轻量级模型,为了提升效果准确度可以换用更大的通用性模型,不过运行时间也会更长。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/692780
推荐阅读
相关标签
  

闽ICP备14008679号