【AI实战】手把手教你文字识别(检测篇二:AdvancedEAST、PixelLink方法)

本文介绍了复杂场景下基于深度学习的文本检测方法,包括AdvancedEAST和PixelLink的实战应用。AdvancedEAST通过改进EAST网络结构,提升长文本预测准确性,而PixelLink则通过全部分类的方式实现文本框的定位和角度判断。文章详细讲解了两种方法的源码下载、模型部署、环境配置和实际检测操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7d06d49fe7d63d44d973cd7a06c29a542d8.jpg 
自然场景下的文字检测是深度学习的重要应用,在之前的文章中已经介绍过了在简单场景、复杂场景下的文字检测方法,包括MSER+NMS、CTPN、SegLink、EAST等方法,详见文章:

【AI实战】手把手教你文字识别(检测篇一:  MSER、CTPN、SegLink、EAST方法)

今天将继续介绍复杂场景下基于深度学习的文本检测方法,手把手教你如何使用AdvancedEAST、PixelLink进行文本检测。

1、AdvancedEAST方法实战
在上一篇文本检测的AI实战文章中,介绍了EAST检测方式,取得了不错的检测效果,但是在长文本预测中效果还不是很理想。于是,有大牛对EAST检测方法进行了改进,获得了比EAST更好的预测准确性(特别是在长文本上),并开源了源代码,这就是AdvancedEAST方法。网络结构如下:
953c7dbb6c6e4b616259cf4d7da6d682e45.jpg 
AdvancedEAST的网络结构与EAST相似(EAST技术原理详见文章:大话文本检测经典模型EAST),但采用了VGG作为网络主干结构,基于Keras编写,在特征提取层中增加了后面卷积层的通道数量,对后处理方法也进行了优化。下面动手来试试AdvancedEAST的实际检测效果吧。
(1)下载源代码
e33f6c2db0ce83c17f7e478a61bdcba48a9.jpg 
首先,在github上下载AdvancedEAST源代码(https://github.com/huoyijie/AdvancedEAST),可直接下载成zip压缩包或者git克隆

git clone https://github.com/huoyijie/AdvancedEAST.git

(2)下载模型文件
下载AdvancedEAST预训练好的模型,下载链接: https://pan.baidu.com/s/1KO7tR_MW767ggmbTjIJpuQ 提取码: kpm2
创建文件夹saved_model,将下载后的模型文件解压后放到里面
7028fd302ab7e180a507c70a7c7eb98cb88.jpg 
修改cfg.py文件里面的train_task_id,将该id修改与下载的预训练模型一致,以便于在执行程序时,可自动加载模型,修改如下:

train_task_id = ‘3T736’

下载keras的VGG预训练模型,因为AdvancedEAST使用了VGG作为网络的主干结构,因此,在调用keras时会加载VGG预训练模型,下载地址为https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5,然后放到keras加载模型的默认路径,目录如下:

~/.keras/model

如果没有手动下载,那么在加载keras的VGG模型时,程序也会自动下载,但一般速度会很慢,经常会超时

(3)准备基础环境
AdvancedEAST依赖于以下的基础环境,使用conda或pip进行安装准备。

  • python 3.6.3+
  • tensorflow-gpu 1.5.0+(or tensorflow 1.5.0+)
  • keras 2.1.4+
  • numpy 1.14.1+
  • tqdm 4.19.7+

(4)AdvancedEAST检测文本
执行python predict.py进行文本检测
124988b0b4465e740a603e0d13f8273fe4b.jpg 
默认读取项目自带的demo/012.png文件,进行检测
8fdd29d03b4020b6ca1abad56649ae16eae.jpg 
检测后生成以下文件
107a17d370109fdc2529091fff88097266e.jpg 
其中,012.png_act.jpg是检测过程的结果
e5dd16a14b4b45607c2e12f4a4524cba197.jpg 
012.png_predict.jpg是检测出最终文本框的圈定结果
9b5dc39d94e1116e0aafc666aca6c88adab.jpg 
012.txt是检测文本框的位置坐标(4个顶点)
df509317f0c508ab80f3ecf340908539740.jpg 
在执行模型时,其中会有少部分检测结果是不完整的(边框少于4个顶点),默认会显示出来
ad327b02823dd6ed4c74461195ae748c91b.jpg 
可通过在predict.py的源代码中,让其保持静默(不提示不完整的检测结果),修改最后一行为

predict(east_detect, img_path, threshold, quiet=True)

如果要检测指定的图片,在执行python predict.py时,可通过增加参数指定图片路径。另外,还可指定阈值,即在做像素分类判断是否为文本的阈值,默认为0.9。执行命令如下:

python predict.py --path=/data/work/tensorflow/data/icdar_datasets/ICDAR2015/ch4_test_images/img_364.jpg --threshold=0.9

0eda2c4c57abdea92592a5ac6b6430d4217.jpg

执行效果如下:

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值