python+opencv+EAST做自然场景文本检测

英文原文链接:https://www.pyimagesearch.com/2018/08/20/opencv-text-detection-east-text-detector/

提醒:作者实现的python的文本检测基于OpenCV的官方C ++示例 ; 在将其转换为Python时遇到了一些麻烦。首先, Python 中没有 Point2f   和 RotatedRect函数,因此,无法100%模仿 C ++实现。C ++实现可以生成旋转的边界框,但不幸的是,我今天与你分享的那个不能。其次, NMSBoxes   函数不返回Python绑定的任何值(至少对于OpenCV 4预发布安装),最终导致OpenCV抛出错误。该 NMSBoxes   功能可以在OpenCV的3.4.2工作,但作者无法详尽地测试它。作者解决了这个问题,在imutils中使用自己的非最大值抑制实现,但作者不相信这两个是100%可互换的.......

自己拍了两张图,拿这个代码跑了一下,效果.....自行感受,能定出来大部分,但还是有缺漏:

python+opencv+EAST做自然场景文本检测_第1张图片

使用方法:

1.下载源码:

打开英文原文链接,点击下载,输入邮箱号,通过邮箱中的链接下载压缩包。

如果下载后解压缩失败的话,可以去我的CSDN资源下载页进行下载:

https://download.csdn.net/download/luolan9611/10618468

2.要pip install --upgrade imutils

3.要安装opencv3.4.2

没安装opencv的话import cv2会报错,如下所示:

python+opencv+EAST做自然场景文本检测_第2张图片

我的环境是Anaconda+python3.5.2,所以下了一个(下载链接:http://www.lfd.uci.edu/~gohlke/pythonlibs/),根据自己python的版本下载对应的whl文件就行,放到Anaconda的Lib的site-packages下面,然后在Anaconda终端进入到site-packages目录,输入pip install opencv_python-3.4.2-cp35-cp35m-win_amd64命令,然后就安装好啦。安装好后再次import cv2,并查看安装的opencv的版本。

python+opencv+EAST做自然场景文本检测_第3张图片

4.将自己的图片放入opencv-text-detection下的images文件夹内

5.在终端中输入命令:

python text_detection.py --image images/car_wash.png --east frozen_east_text_detection.pb

--image后面跟的是文件的路径

如果是在pycharm中打开的话,在pycharm的terminal中也可以输,如下所示,然后结果就会可视化弹窗跳出来。

python+opencv+EAST做自然场景文本检测_第4张图片

最后这张图看得我强迫症犯了。今天实验室蚊子好多。

英文原文中还有视频的文本检测,可惜我的电脑没有摄像头,就不做实验了。这个如果这样跑的话,一个命令跑一张图,如果要应用到自己的图上,可以改一下,批量跑,然后把检测的结果的坐标写入txt文档,并把可视化结果保存下来。看心情改不改啦。

你可能感兴趣的:(Opencv图像处理,目标检测玩一玩)