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

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
  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
谷歌翻译: 如果相机拍照而没有人注意到,它真的发生了吗?在本书中,我们将向您展示如何制作基于Raspberry Pi的相机系统,以便您可以捕获延时图像并通过WiFi查看,如果检测到运动则触发相机,甚至可以执行基本面部认可作为机器学习方法的介绍。 拿一个Raspberry Pi并添加一个相机模块,你就有了一个可编程相机。添加一些软件,您就可以开始进行有趣的监视和自动对象识别工作。将Pi激活为WiFi节点,您可以远距离完成所有这些美妙的事物。 一个好的监控系统不仅仅是拍照。它还应该将这些图片转化为可操作的信息,从而增加您的知识。现在可以在软件中轻松完成,我们将向您展示如何操作。 本书汇集了一系列小技巧 - 设置Pi相机,将Pi广播作为WiFi设备,增加时间流逝和运动检测和人脸识别,并在其上粘贴电池组,以便它可以在任何地方运行 - 创建便携式间谍相机。我们在“Find the Pi”派对比赛,在我们的实验室中实施隐私尊重的安全性,以及炫耀面部识别等现代技术的过程中使用了这些装备。其他用途可能包括监控鹿和野生动物,检查您的邮箱到达邮件,以及捕获自然事件或交通模式的延时序列。 我们的第一个项目是创建一个便携式“SpyPi”摄像机设备,通过WiFi广播图像而无需网络 - 您只需登录它即可查看摄像机看到的内容。它非常适合“寻找相机”狩猎挑战或独立安全。 第个项目将涉及设置一个延时摄像头,可以进行简单的运动检测 - 非常适合监控位置。该系统将包括一周后自动删除旧图像。 第三个项目是为您的SpyPi添加面部检测和面部识别功能。在此过程中,您将了解这些项目结束时安装的工具和软件,以便您可以超越本书并探索其他机器学习方法。 所以抓住一个Pi,一个SD卡,一个USB摄像头和一个USB电池组,让我们走吧!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值