【Keras计算机视觉OCR文字识别】文字检测算法中CTPN、CRAFT的讲解(图文解释 超详细)

简介: 【Keras计算机视觉OCR文字识别】文字检测算法中CTPN、CRAFT的讲解(图文解释 超详细)

觉得有帮助麻烦点赞关注收藏~~~

一、OCR文字识别的概念

OCR(Optical Character Recognition)图像文字识别是人工智能的重要分支,赋予计算机人眼的功能,可以看图识字。如图6-1所示,图像文字识别系统流程一般分为图像采集、文字检测、文字识别及结果输出四个部分。  识别流程图如下

二、文字检测

传统的问题检测算法

输入一张文字图像,传统的文字检测算法将文字检测出来,要有图像预处理和文字行提取两个阶段,其中图像预处理包括几何校正、模糊校正、二值化等,文字行提取是基于版面分析获取文字行区域

预处理之后即可进行文字识别,文字行识别主要有基于切分的文字识别和不依赖切分的文字识别这两种方法,基于切分的文字识别方法需要先将文字行切分成单字,然后提取文字的方向梯度直方图或者通过卷积神经网络得到的特征信息,最后将提取的特征送入AdaBoost、SVM等分类器中进行识别,而不依赖于切分的文字识别方法能够对文本行直接进行识别,无须切分处理,主要包括基于滑窗的文字识别方法和基于序列的文字识别方法

基于深度学习的文字检测算法

基于深度学习的文本检测,通常遵循前面介绍的经典算法R-CNN网络框架,首先提取可能包含有文本的候选区域,之后利用卷积神经网络将其分类为文本或者非文本区域,并通过回归的方式校正文本区域的坐标位置信息。下面介绍CTPN CRAFT是目前最流行的两种文本检测算法,下面将着重介绍CTPN和CRAFT两种文本检测算法

1:基于CTPN的文本检测算法

CTPN算法是在目标检测算法Fasetr R-CNN模型上改进的算法,CTPN网络结果本质上是全卷积神经网络,通过在卷积特征图上以固定步长的滑动窗孔检测文本行,输出细粒度文本候选框序列。文本检测的难点在于文本的长度是不固定的,可以是很长的文本,也可以是很短的文本。CTPN针对文字检测的特点,提出了关键性的创新,即提出了垂直锚点机制,具体的做法是只预测文本的竖直方向上的位置,水平方向的位置不预测,与Faster R-CNN中的锚点类似,但是不同的是,垂直锚点的宽度是固定的16像素,而高度则从11像素到273像素变化,检测得到细粒度的文字检测结果,采用RNN循环网络将检测的小尺度文本进行连接,得到需要的文本框

CTPN结构如下图所示,在后面加入了LSTM层,首先将原图片输入VGG-16卷积神经网络的前五个卷积层,在第五层卷积层进行了卷积操作后,特征图输入到双向LSTM中,之后将双向LSTM层连接到512维的全连接层,再将全连接层特征输入到三个分类器中来预测候选框的文本或非文本分数、坐标信息以及文本框边缘调整补偿值,最后通过文本线将多个候选框构造成一个文本框

2:基于CRAFT算法的文本检测算法

CRAFT算法实现文本行的检测如下图所示,首先将完整的文字区域输入CRAFT文字检测网络,得到字符级的文字得分结果热图和字符级文本连接得分热图,最后根据连通域得到每个文本行的位置

CRAFT算法通过探索每个字符和字符之间的亲和力来有效的检测文本区域,通过学习中间模型估计真实图像的字符集标签,并利用了合成图像的给定字符集注释,克服了缺乏单个字符级注释的缺点,为了估计字符之间的亲和力,使用关联性表示来训练网络,,CRAFT模型在解码部分用了类似图像分割U-Net算法的结构,最终的输出有两个通道:文字区域分数和连接分数

网络输入文字区域分数和连接之后,下面就要把字符区域合成文本行,首先通过阈值过滤文字区域分数,进行二值化,然后通过连通域分析算法,得到最终的文本行

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
6860 3
|
算法 数据安全/隐私保护
基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,支持对文字,灰度图,彩色图,语音进行加解密
本项目实现了一种基于Logistic Map混沌序列的数字信息加解密算法,使用MATLAB2022A开发并包含GUI操作界面。支持对文字、灰度图像、彩色图像和语音信号进行加密与解密处理。核心程序通过调整Logistic Map的参数生成伪随机密钥序列,确保加密的安全性。混沌系统的不可预测性和对初值的敏感依赖性是该算法的核心优势。示例展示了彩色图像、灰度图像、语音信号及文字信息的加解密效果,运行结果清晰准确,且完整程序输出无水印。
基于Logistic-Map混沌序列的数字信息加解密算法matlab仿真,支持对文字,灰度图,彩色图,语音进行加解密
|
机器学习/深度学习 算法 计算机视觉
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)
|
机器学习/深度学习 算法 大数据
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
本文提供了2023年MathorCup高校数学建模挑战赛大数据竞赛赛道A的解决方案,涉及基于计算机视觉的坑洼道路检测和识别任务,包括数据预处理、特征提取、模型建立、训练与评估等步骤的Python代码解析。
546 44
【2023年MathorCup高校数学建模挑战赛-大数据竞赛】赛道A:基于计算机视觉的坑洼道路检测和识别 python 代码解析
|
机器学习/深度学习 传感器 算法
行人闯红灯检测:基于计算机视觉与深度学习的智能交通解决方案
随着智能交通系统的发展,传统的人工交通违法判断已难以满足需求。本文介绍了一种基于计算机视觉与深度学习的行人闯红灯自动检测系统,涵盖信号灯状态检测、行人检测与跟踪、行为分析及违规判定与报警四大模块,旨在提升交通管理效率与安全性。
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
1185 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
人工智能 计算机视觉
AI计算机视觉笔记十五:编写检测的yolov5测试代码
该文为原创文章,如需转载,请注明出处。本文作者在成功运行 `detect.py` 后,因代码难以理解而编写了一个简易测试程序,用于加载YOLOv5模型并检测图像中的对象,特别是“人”类目标。代码实现了从摄像头或图片读取帧、进行颜色转换,并利用YOLOv5进行推理,最后将检测框和置信度绘制在输出图像上,并保存为 `result.jpg`。如果缺少某些模块,可使用 `pip install` 安装。如涉及版权问题或需获取完整代码,请联系作者。
|
机器学习/深度学习 人工智能 数据处理
AI计算机视觉笔记一:YOLOV5疲劳驾驶行为检测
如何使用云服务器AutoDL进行深度学习模型的训练,特别是针对YOLOV5疲劳驾驶行为训练检测
1042 0
|
自然语言处理 算法 搜索推荐
Android文字匹配度算法
【5月更文挑战第15天】
499 1
|
机器学习/深度学习 人工智能 监控
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务
一文读懂计算机视觉4大任务:分类任务、检测任务、目标分割任务、关键点检测任务

热门文章

最新文章