自然场景下图片中红色横幅文字的提取与矫正(OCR)
最近一个月在做互联网横幅图片中OCR的提取与矫正,主要是针对红色横幅体,在项目实践过程中遇到了一些问题,多亏了老师的帮助,基本完成了项目。现在分享一下我用到的一些方法,希望对大家有用。字符识别第二版
字符识别第二版
一、系统概况:
系统主要有三部分构成:横幅分割,横幅校正,字符识别。
横幅分割:本系统主要是针对红色横幅体进行分割识别,在图片中横幅体的主要特征是颜色,将图像转换到YCbCr空间,对Cb和Cr分量设定阈值,将图像转化为二值图。横幅体的形状一般是矩形,面积在图像中占据一定的比例,而且长宽比有一定的规律,一般长宽比大于3:1。对二值图像进行连通域分析,取连通域面积较大的前三个连通域,这三个连通域中长宽比大于3:1且最佳外接多边形与矩形相似的为横幅区域。
横幅校正:1、横幅是否矫正的判定:首先确定横幅体的上下边沿,如下图所示:
根据横幅上下边沿的夹角确定是否需要校正。若需要校正,确定横幅体的四个边缘点:
计算左边两点之间的垂直距离L1和右边两个点的距离L2,若L1>L2,则透视变换以L1为标准即上沿的两个点的y坐标都变为L1上面点的纵坐标,透视变换采用的是opencv 的函数warpPerspective,校正后效果图:
(注:文字的上下边沿和横幅的上下边沿是平齐的,文字上下边沿的确定比横幅上下边沿更容易受干扰因素,比如阳光、阴影、和横幅的褶皱等,比如下图:一旦文字的边沿定位不好,校正就会出现错误。校正之后可以根据文字区域的纹理跳变情况进行扫描确定文字的上下边沿。
)
2、文字上下沿的确定:文字区域具有比较丰富的纹理特性,对校正后的横幅区域运用Canny边缘检测,对边沿检测图进行行扫描,记录每一行像素值从一到零和从零到一跳变的次数。从上边沿开始跳变次数第一个达到10的行,为文字上边沿,同理从下边沿开始第一个达到10的行,是文字的下边沿。
3、字符分割:根据文字行定位的结果将字符分割出来
字符识别:调用文通SDK进行字符识别。
二、系统存在的问题:
1、目前该系统已经能对大部分横幅体进行定位和校正,对于偏转很厉害的横幅校正后字体出现模糊。
校正后:
2、文通的SDK主要是针对图像中打印的标准文字识别率很高,如下图所示:
对于横幅体的识别准确率不高,我认为主要有以下几个原因:
1、横幅体中的字体笔画太粗,而且存在形变(由于横幅摆放和拍摄的角度不同),即使经过校正液会存在比较模糊的情况,与标准的印刷体相差比较大。
2、文通SDK字符的训练库应该是基于扫描文档的常用字,没有加入横幅字体的训练,而我们识别的是横幅字体,鲁棒性不好。
3、从预处理校正部分提高识别率已经很困难了,核心的识别部分不是针对横幅设计的。
三、系统识别结果:
我已将系统的校正识别结果放在附件当中,一部分是识别结果较好的图片集,另一部分是识别结果较差的图片集。包含了原图像、校正好的图像、识别结果。
一、识别结果的结构包括:
PictureID:(图片名称)
文字内容
TotalNumOfCharacter:(图片中文字的数目)
二、系统的性能:平均处理每张图片消耗时间0.127911秒。不支持多线程。
具体的代码由于涉及到项目的保密性,我就暂时不公开了,希望对大家有用。
自然场景下图片中红色横幅文字的提取与矫正(OCR)相关推荐
- 模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度
模式识别新研究:微软OCR两层优化提升自然场景下的文字识别精度 发表于2015-03-30 23:46| 6209次阅读| 来源CSDN| 8 条评论| 作者霍强 模式识别微软亚洲研究院微软OCR文字 ...
- 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
摘要:OCR识别可分为两步:首先是文本检测,将文字从图片中提取出来:然后对文本进行识别.此次的突破主要是在文本检测环节的两个子阶段:先采用对比极值区域CER检测方法,再采用基于浅层神经网络的文字/非文 ...
- 深度学习的端到端文本OCR:使用EAST模型从自然场景图片中提取文本
我们生活在这样一个时代:任何一个组织或公司要想扩大规模并保持相关性,就必须改变他们对技术的看法,并迅速适应不断变化的环境.我们已经知道谷歌是如何实现图书数字化的.或者Google earth是如何使用 ...
- 自然场景下的文字检测:从多方向迈向任意形状
点击我爱计算机视觉标星,更快获取CVML新技术 本文经作者授权转载自知乎旷视Detection组专栏: https://zhuanlan.zhihu.com/p/68058851 旷视检测组在刚刚结束 ...
- 文字识别(五)--自然场景文本检测技术综述(CTPN, SegLink, EAST)
转自:https://www.cnblogs.com/skyfsm/p/9776611.html 文字识别分为两个具体步骤:文字的检测和文字的识别,两者缺一不可,尤其是文字检测,是识别的前提条件,若文 ...
- SSD: Signle Shot Detector 用于自然场景文字检测
前言 之前我在 论文阅读:SSD: Single Shot MultiBox Detector 中,讲了这个最新的 Object Detection 算法. 既然 SSD 是用来检测物体的,那么可不可 ...
- 文字识别(输入为自然场景中的图像)
大老板给我定的方向是文字识别.所以在回所之前先把基础知识看一下,相当于综述~ 我的方向与目前的文字识别区别在于,目前的文字识别输入主要是自然场景中的图像,从图像进行文字检测再继而文字识别:而我要做的输 ...
- python自然场景文字识别_chineseocr
本项目基于yolo3 与crnn 实现中文自然场景文字检测及识别 master分支将保留一周,后续app分支将替换为master 实现功能 文字方向检测 0.90.180.270度检测(支持dnn/t ...
- ICDAR 2019论文:自然场景文字定位技术详解
自然场景文字定位是文字识别中非常重要的一部分.与通用的物体检测相比,文字定位更具挑战性,文字在长宽比.尺度和方向上有更大范围的变化.针对这些问题,本文介绍一种融合文字片段及金字塔网络的场景文字定位方法 ...
最新文章
- poj 2559 Largest Rectangle in a Histogram 栈
- SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]
- linux系统基础入门,虚惊一场
- 基于Pytorch再次解读NiN现代卷积神经网络和批量归一化
- webapi添加html页面,如何从WebApi动作返回html页面?
- Sqlserver中 登录用户只能看到自己拥有权限的库
- 在SAP除了使用Cordova生产移动应用外,还有这种方式
- CSS 框模型( Box module )
- FFmpeg源代码简单分析:libavdevice的avdevice_register_all()
- JavaScript数据类型之逻辑运算符(9)
- 计算机主板知识,电脑主板知识:主板板型、接口、做工与选购详解
- 机器学习:XGBoost+LightGBM+catboost+5折+stacking的用法
- 东晋琴家、雕塑家、画家、哲学家戴逵
- HDU - 6578 Blank dp
- C#中使用设置(Settings.settings) Properties.Settings.Default .
- 基金 、社保和QFII等机构的重仓股排名评测
- 中科院计算所培训中心四季度课程安排
- 北京大学邮箱客户端设置方法
- 全产业链模式的竞争优势
- 修改视频md5防止和谐
热门文章
- 2023-05-09 LeetCode每日一题(有效时间的数目)
- 第六章实验报告(函数与宏定义)
- 让百度快速删除网站死链快照的有效办法
- 【Flex布局案例】使用Flex布局搭建静态页面
- 无法自动进入单步执行服务器。未能连接到服务器计算机“×.×.×.×”。调试器无法连接到远程计算机。原因是远程计算机不存在或防火墙阻止与远程计算机通信。请参阅”帮助“以协助解决问题
- 1.1 HTML 基础
- 原生态js实现充话费功能(模态框 + tab选项卡)
- Java ScriptEngine 解析js
- 广告中的 CPI、CPA、CPM、CPC 盈利模式各自的特点和区别是什么?这些广告模式和关键词竞价是如果关联的?
- Android_xml背景色的值