PaddleOCR 图片文字提取

PaddleOCR 图片文字提取


需求

   工作上的一个需求,需要把图片中的车牌号码提取出来。如图,车牌在图片固定位置。开始使用pytesseract,对中文识别特别不友好,毕竟是外国人的东西。同事推荐使用PaddleOCR,国人开发的东西就是不一样,识别正确率居然可以达到90%以上。不过两者都存在共性问题,黑底白字无法识别/范围太小识别不准等。


一.裁剪车牌号码区域

python 复制代码
# np.fromfil 从文本或二进制文件中的数据构造一个数组
# cv2.imdecode()把读取的数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像
# cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,可以直接写-1
img = cv2.imdecode(np.fromfile(imgSrc, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
cropImg = img[y1:y2, x1:x2] #顺序为上下 左右

(车牌裁剪出来的小图)


正常来说把上面裁剪出来的小图进行OCR,就可以识别出文字了,结果....

   于是百度找了张图,刚好是白底黑字 文字居中,结果神奇地识别结果100%识别正确。经过对比,我断定是白色字体无法识别,接着又把小图进行反相处理。

二.对车牌小图进行处理

c 复制代码
height, width, deep = cropImg.shape
 gray = cv2.cvtColor(cropImg, cv2.COLOR_BGR2GRAY) # cv2.COLOR_BGR2GRAY 将BGR格式转换成灰度图片
 dst = np.zeros((height, width, 1), np.uint8) #生成一张纯黑色图
 
 for i in range(0, height):  # 反相 转白底黑字
     for j in range(0, width):
         grayPixel = gray[i, j]
         dst[i, j] = 255 - grayPixel
  #走完这一步,已经实现了 转白底黑字,但是白色低背景不是最亮的
  #再用cv2.threshold进行二值化,使黑色部分更黑,白的更白
ret, img = cv2.threshold(dst, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)

   对小图进行反相处理后的结果就是下面这样,仔细看发现白色底不是很白,再用cv.threshold进行二值化(非黑既白),通对比二值化的图片,层次感就出来了。
(反相后)


(二值化后)

   再次进行识别,识别结果终于出来了,但是发现最后一位7被识别成了2,按道理来说这么简单的文字不应该识别错。于是想到前面用来测试识别的图片边界很宽,文字居中,接着对小图进行了填充白底边界150个像素。

三.填充边界

c 复制代码
# cv2.BORDER_CONSTANT 固定值填充方式
imgsrc = cv2.copyMakeBorder(img, 150, 150, 150, 150, cv2.BORDER_CONSTANT, value=[255, 255, 255])

(填充后)


四.识别步骤

python 复制代码
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)  # 使用CPU预加载,不用GPU
text = ocr.ocr(img, cls=True)
result = str(text[0][1][0]).replace('车牌号码:', '').upper()

(最终识别效果)


相关推荐
楚识科技2 小时前
OCR 选型实战:字段级准确率怎么算、验收怎么做
ocr
张彦峰ZYF1 天前
从“全量 OCR”到按页智能路由:pdf-inspector 与企业 PDF 解析架构的工程化重构
人工智能·pdf·ocr·ai agent·pdf-inspector
楚识科技2 天前
手写OCR工程接入实录:图像预处理、后处理校验与置信度分层的完整链路
人工智能·计算机视觉·ocr
2601_967760783 天前
扫描件 OCR 转 Word 总乱码?2026 国内免费实测
ocr·word
楚识科技3 天前
增值税发票识别 API 落地指南:并发限流、字段校验与数电 PDF 解析
ocr
HAHAXX84 天前
RPA 架构设计详解:大模型集成下,如何融合 NLP、OCR 处理非结构化数据
自然语言处理·ocr·rpa
聚美智数5 天前
二维码识别-条形码识别-智能识别二维码条形码-二维码OCR-二维码解析-二维码图片识别
ocr
楚识科技5 天前
CPU 环境 OCR 选型与加速实践:Tesseract / RapidOCR / PaddleOCR 轻量版 + ONNX Runtime 量化
ocr
聚美智数5 天前
VIN图片识别-车辆VIN识别-车辆VIN图片识别-车架号OCR-车架号OCR识别
ocr
聚美智数5 天前
图片去摩尔纹 - 屏幕翻拍波纹消除 - 图像摩尔纹消解 - 屏幕干涉纹修复 API 接口介绍
经验分享·ocr