主流深度学习OCR文字识别方法对比:Tesseract(LSTM)、CTPN+CRNN、Densenet

作者 | Raini

出品 | 北京图特摩斯科技有限公司 (www.thutmose.cn)

 

也是几个月前的项目了,由于手头事儿多,也已经转交给别的同事去继续优化。本博客仅做个简单的记录用。

这里是 Tesseract(LSTM)、CTPN+CRNN、Densenet三个方法测试结果对比(结果不是最优,代码也经过优化):

PS:官方Tesseract-4.0需要Ubuntu-18.04支持,本人在Ubuntu-16.04上编译安装成功。

 

(一)Tesseract(LSTM)和Densenet

(此结果算法未经优化)

总结放前面:

  • Tesseract实现的OCR识别(可以实现衣服吊牌文字识别,对于服装彩色背景图有些牵强,对图片进行反转之后可识别,但背景颜色不是单一色调的识别不出--这跟图片像素也有很大区别,300dpi+的图片识别度更高)
  • Densenet实现的OCR识别(衣服吊牌等复杂场景识别度低,对于服装彩色背景图效果却比Tesseract好)
  • 上两种办法的解决方案之一可尝试Tesseract识别不出的图片块让Densenet来识别

原图+服装box:

(采用目标检测的方法识别与定位服装,算法:Faster-RCNN)

OCR box:

(裤腿的logo已去除)

(这是去除掉的错误的识别)

识别效果:

(按行识别,可以取到每行字的bbox,这里省略)

Tesseract识别不出文字的区域(背景为多颜色的区域):

1.

2.

3.

4.

将图片进行色调翻转之后:

Tesseract可识别出,Densenet识别不出:

色调翻转之后:

Densenet可识别出,Tesseract识别不出:

色调翻转之后:

Densenet可识别出,Tesseract识别不出:

色调翻转之后:

Densenet可识别出,Tesseract识别不出:

 

 

(二)CTPN+CRNN:CHINESE-OCR 和 Tesseract(LSTM)

代码地址:https://github.com/xiaofengShi

总结:就不写了... 看结果吧

代码提供了keras和pytorch两个版本的CRNN中文识别模型,经测试,pytorch版本效果要好一些。

  • 1)输入测试图像: 

CTPN+CRNN文本识别结果(输入的是裁剪标签部分后的图像,以下同理):

基于tesseract识别结果(有预处理,以下同理):

  • 2)输入测试图像:

 

CTPN+CRNN:

基于tesseract识别结果:

  • 3)输入测试图像:

CTPN+CRNN:

基于tesseract识别结果:

  •   4)输入测试图像:

CTPN+CRNN:

基于tesseract识别结果:

                                                                                             

最后,加个openCV里好玩的

opencv mser算法框出图片文字区域

                           

'''
opencv mser算法框出图片文字区域
'''
from PIL import Image
import numpy as np
import cv2
import matplotlib.pyplot as pltimg = cv2.imread('/home/raini/pro/LogoDetector/SIFT/PRI_Roche/Python_OpenCV/test_img/daa59b642f6a60e2995be13f495a7c45.jpg')
mser = cv2.MSER_create(_min_area=300)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
regions, boxes = mser.detectRegions(gray)for box in boxes:x, y, w, h = boxcv2.rectangle(img, (x,y),(x+w, y+h), (255, 0, 0), 2)plt.imshow(img,'brg')
plt.show()

博主w~x:lovebyz99

(交流请备注,对创业有想法欢迎联系)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/58892.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吐槽 Twitter 后,马斯克用 30 亿美元入股 Twitter,成为最大股东

作者 | 苏宓 出品 | CSDN(ID:CSDNnews) 曾一年登上 74 次热搜、曾考虑辞职做全职“网红”,掌握流量密码的硅谷“钢铁侠”埃隆马斯克算是把互联网玩得明明白白。 这不,这两天在国内外热榜、科技网站的头版头条再现马斯克…

chatgpt赋能python:Python怎样使用断言?

Python怎样使用断言? 在Python中,断言是一种在程序执行中自动检查程序是否具有给定条件的方法。在程序的开发和调试过程中,通过正确使用断言,可以增强代码的可靠性并提升编程效率。 Python中的断言语法 Python中的断言语法非常…

chatgpt赋能python:如何撤销Python代码的错误

如何撤销Python代码的错误 Python是一种优秀的编程语言,但每个程序员都会面临代码错误的问题。在Python中,难免会出现语法错误、逻辑错误或运行时错误。因此,本文将介绍一些常见的问题,并提供一些解决方法。 1. 语法错误 语法错…

chatgpt赋能python:Python查错技巧:快速定位和解决代码错误

Python查错技巧:快速定位和解决代码错误 作为一名10年Python编程经验的工程师,我深知在Python编程过程中,查错是一个必须掌握的技能。无论你是初学者还是资深工程师,在Python编程过程中,都会遇到各种各样的问题&#…

chatgpt赋能python:Python编写错误怎么改?

Python编写错误怎么改? 为什么需要改错误? 在Python编程中,错误是不可避免的。它们可能会使你的程序崩溃或者在运行时出现奇怪的行为。虽然有时候错误是你打的故意的代码,但是大多数情况下它们是意外的、不必要的,并…

chatgpt赋能python:PythonRepair:针对代码错误的Python自动修复工具

Python Repair: 针对代码错误的Python自动修复工具 介绍 Python是一种著名的高级编程语言,许多开发人员使用它来创建各种类型的程序。在开发这些程序的过程中,许多人都遇到过代码错误的问题。这些错误可能会耗费大量时间和精力来诊断和修复。在这种情况…

chatgpt赋能python:如何正确处理Python代码中的错误提示

如何正确处理Python代码中的错误提示 Python是一种非常广泛使用的编程语言,因其易读性和简洁性而备受青睐。在编写代码时,错误提示很常见,这些错误提示含有重要信息,可以帮助我们找到代码中的问题。但是,如何正确处理…

chatgpt赋能python:Python出现错误的解决方案

Python出现错误的解决方案 Python是一门广泛应用于数据科学、网站开发和人工智能领域的强大编程语言。它的简洁性、易读性和高效性吸引了越来越多的开发者。不过,就像任何一门编程语言一样,Python也会出现错误。这篇文章将介绍Python出现错误的常见原因…

chatgpt赋能python:Python如何删除错误代码

Python如何删除错误代码 Python是一种简单易学且功能强大的编程语言,但在编写代码时难免会出现错误。在这篇文章中,我们将介绍如何找到和删除Python代码中的错误,并提供一些实用技巧来避免这些错误。 检查错误代码 当您发现Python代码无法…

chatgpt赋能python:Python错误处理:概述

Python错误处理:概述 在Python编程中,错误处理是非常重要的一环。错误可能在程序执行的任何时刻出现,并可能导致程序崩溃或产生不可预期的结果。在这篇文章中,我们将介绍Python中的错误处理机制,包括常见的错误类型、…

chatgpt赋能python:Python找错误入门指南

Python找错误入门指南 Python是一种简单易学、功能强大的高级编程语言,广泛应用于各种领域。但是在编写Python程序时,难免会遇到各种错误,这时就需要我们用一些方法来快速找到错误所在,以便及时修复。 常见的Python错误类型 在…

chatgpt赋能python:Python出错处理指南:了解常见错误类型和避免错误

Python出错处理指南:了解常见错误类型和避免错误 Python是一种功能强大的编程语言,但是在编码过程中,偶尔会出现错误。如何有效地处理Python错误是一个需要深入了解的问题。在本文中,我们将介绍常见的Python错误类型以及如何避免…

chatgpt赋能python:Python如何定位错误

Python如何定位错误 在Python编程中,定位错误是非常重要的一环。在开发过程中,程序难免会出现各种各样的bug,而快速准确地定位错误可以提高工作效率,节省时间。 常见错误 Python编程中,常见的错误类型包括语法错误、…

chatgpt赋能python:Python代码报错怎么办?——解答常见的Python错误信息

Python代码报错怎么办?——解答常见的Python错误信息 如果你在写Python代码时经常遇到报错的情况,无论是因为语法错误、引用错误还是其他原因,你并不孤单。许多Python程序员都曾经遇到过各种各样的错误信息,这里将为你介绍如何应…

chatgpt赋能python:如何纠正Python程序中的错误?

如何纠正Python程序中的错误? Python作为一门简单易学的高级编程语言,被广泛应用于Web开发、数据科学、人工智能等领域。然而,编写Python程序时难免会出现错误,这就需要我们及时发现和纠正这些错误,才能确保程序的正常…

chatgpt赋能python:Python断言错误指南

Python断言错误指南 在Python编程中,断言(assertion)是一种常用的错误检查和调试工具。断言可以在程序中明确表示某个条件为真,一旦该条件为假,Python解释器就会引发断言错误并中断程序的执行。本文将通过介绍Python断…

原型图都可以用什么软件做?分享这9款给你

设计师在进行原型设计师时,会使用原型图软件,从产生想法到向开发人员提交项目。无论是构建基本线框还是功能齐全的原型,原型图软件都可以为你节省大量的时间和精力。 如果你是这个领域的新手或者想更新你的原型图软件包,请快速看…

参加Kaggle比赛的流程

请提前准备好python的数据分析相关库,例如pandas、numpy、sklearn等 1. 参加比赛:Titanic 1.1 在比赛页面下载数据 这里以“泰坦尼克号生存率预测”案例为例 train.csv为训练集, test.csv为测试集, gender_submission.csv为提…

【Kaggle竞赛】Kaggle竞赛了解

Contents 1 关于Kaggle竞赛 1.1 比赛奖牌规则如下:2 图像识别竞赛流程3 数据准备 3.1 模型设计3.2 迭代训练3.3 模型测试4 总结 关于Kaggle竞赛 Kaggle是一个数据分析的竞赛平台,网址:https://www.kaggle.com/,网站主页面如下&am…

【ACM训练】2023 河南 CCPC省赛 vp

2023 河南 CCPC省赛 题目链接 VP赛况: 目录 2023 河南 CCPC省赛赛况及总结赛况总结 补题 赛况及总结 赛况 开场:我提前打印了题册,于是我们开始分开看题目,我先看了A,发现很签,遂上机,8 m…