OCR 预处理与检测

前言: 通用OCR领域的最难的是预处理与检测,目标检测领域我们常看到的是横平竖直, 也就是说:检测到的边框平行或垂直于图像边界。但是,在OCR中,文字的方向可以是各种方向;而且长宽比不确定,各种场景,各种尺寸、各种语言、各种艺术字体。而且,目前多角度检测fatal 弱点:文本行比较长,检测框容易断裂; 阵列字极容易找错方向。 当然手写OCR也很难,本文主要对 preprocess 与...
摘要由CSDN通过智能技术生成

前言:

通用OCR领域的最难的是预处理与检测,目标检测领域我们常看到的是横平竖直, 也就是说:检测到的边框平行或垂直于图像边界。

但是,在OCR中,文字的方向可以是各种方向;而且长宽比不确定,各种场景,各种尺寸、各种语言、各种艺术字体。而且,目前多角度检测fatal 弱点:文本行比较长,检测框容易断裂; 阵列字极容易找错方向。 当然手写OCR也很难,本文主要对 preprocessdetecton展开讨论, recognition在上一个博客中详细说明 LSTM 与 CTC loss (以及DP、HMM)

1- Detection (Multi-angle vs line detection)

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OCR(Optical Character Recognition,光学字符识别)是将图像中的文本转换为可编辑和可搜索的数字文本的过程。在进行OCR之前,图像预处理是非常关键的步骤,因为它可以帮助提高识别准确性和速度。在Python中,常用的库如`OpenCV`, `PIL`, 和 `skimage` 都可用于图像预处理。以下是预处理的一般步骤: 1. **图像读取**:使用`PIL`或`OpenCV`读取图像文件。 ```python from PIL import Image img = Image.open('image.jpg') ``` 2. **灰度化或二值化**:将彩色图像转换为灰度,以便于字符识别。 ```python gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) binary_img = cv2.threshold(gray_img, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU) ``` 3. **去噪**:消除图像中的噪声,比如使用滤波器(如高斯滤波)。 ```python kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) denoised_img = cv2.morphologyEx(binary_img, cv2.MORPH_OPEN, kernel) ``` 4. **二值化**:根据阈值再次调整图像为黑白。 ```python _, bin_img = cv2.threshold(denoised_img, threshold, 255, cv2.THRESH_BINARY) ``` 5. **二值形态学操作**:可能用到膨胀、腐蚀等操作来进一步改进字符轮廓。 ```python contours, _ = cv2.findContours(bin_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) ``` 6. **字符分割**:对检测出的字符区域进行分割,可能用到连通组件分析或基于模板匹配的方法。 ```python for contour in contours: cropped_chars = cv2.drawContours(img, [contour], 0, (0, 0, 255), -1) ``` 7. **校正倾斜**:如果图片倾斜,可以使用`skimage`库的`rotational_similarity_transform`进行旋转校正。 ```python from skimage.transform import rotate corrected_chars = rotate(cropped_chars, angle, resize=True) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值