基于opencv的场景文字识别
2016-05-31 20:34
351 查看
理论基础:基于论文 “Real-Time Scene Text Localization and Recognition”。
项目实现:opencv3.0 + tesseract,github开源项目。
开发环境:win7 64位+Visual Studio 2012。
先上一张结果图吧:
在release版下,速度还是很快的,识别率还算可以。
实现的难点不在代码,因为早有人实现了,让人崩溃的是各种环境的搭建和源码的编译,下边就记录一下怎么让代码跑起来的。
tesseract的搭建
这里提供各种版本的下载。
需要手动编译源码,主要是生成lib。
本人对linux不熟悉,只有去网上下载已经编译好的含有lib的版本(注意版本对应,我是用的vs2012)。大致的文件结构如下:
我在这里遇到了一个问题,没有包含tessdata文件夹。这里给出我的解决办法,下载tesseract安装版本,安装完后将tessdata文件夹拷贝到预编译版本(含有lib文件)的目录下。
配置环境变量,在path中添加 D:\Tesseract-Build\tesseract-vs2012-master\prebuilt\x64,在cmd中进到tesseract.exe的目录,输入tesseract-v,出现如下文字,恭喜已经成功搭建好tesseract。
opencv的搭建
1.opencv官网下载,下载好后直接解压即可。
2.下载opencv_contrib
3.编译opencv源码,使用工具cmake。
第一次配置后,需要手动添加extra-module的具体位置。如:D:\opencv-3.0\opencv_contrib-master\modules
添加路径完毕后再次点击configure。搜索tesseract关键字
添加Tesseract_INCLUDE_DIR 路径为 D:/Tesseract-Build/tesseract-vs2012-master/include/tesseract;
Tesseract_LIBRARY 路径为 D:/Tesseract-Build/tesseract-vs2012-master/prebuilt/x64/libtesseract302.lib;
搜索关键字lep,添加Lept_LIBRARY 路径为 D:/Tesseract-Build/tesseract-vs2012-master/prebuilt/x64/liblept168.lib
确保以上3个路径填写正确后,再起点击configure按钮
最后点击generate按钮。最后生成的目录结构如下:
4.用vs2012进行构建。找到cMakeTarget下的INSTALL,右键,选择生成(记得在debug配置下和release配置下分别生成一次)。
在这一步遇到的一些问题。
问题1:vs编译报错”无法找到tesseract/baseapi.h 文件”。
最后解决办法为修改 D:\opencv-3.0\opencv_contrib-master\modules\text\src下的precomp.hpp文件。将
修改为:
具体路径为Tesseract源码中相应的文件夹。修改后记得重新在vs中生成一次
问题2:D:\opencv-3.0\opencv_contrib-master\modules\text\src中的erfilter.cpp文件报错。
解决办法为 打开源文件将下列代码修改
最后在重新生成,完成后多了一个install文件夹,所有的lib文件和c++头文件就在里边。
5.opencv环境变量配置。
官方说明文档
添加用户变量 OPENCV_HOME : D:\opencv-3.0\manual_build\install\x64\vc11,特别注意版本对应vs2012对应的是vc11。
添加系统变量 path : %OPENCV_HOME%\bin。
6.opencv在vs2012中的配置。
官方说明文档
新建win32控制台应用
配置64位编译环境(32位可以跳过此步骤)
在视图->其他窗口->找到 属性管理器(debug和release版本都要配置一次)
通用属性-> c/c++->附加包含目录
通用属性->连接器->常规
通用属性->连接器->输入(将D:\opencv-3.0\manual_build\install\x64\vc11\lib目录下的文件名按debug版本和release版本分别添加即可)
至此环境搭建完毕,可以运行代码了。本文主要记录了如何在windows环境下运行opencv的文字识别模块,在接下来的工作中还需深入研究论文、读懂源码。力求做出一些改进
写在儿童节的今天 –2016.6.1
项目实现:opencv3.0 + tesseract,github开源项目。
开发环境:win7 64位+Visual Studio 2012。
先上一张结果图吧:
在release版下,速度还是很快的,识别率还算可以。
实现的难点不在代码,因为早有人实现了,让人崩溃的是各种环境的搭建和源码的编译,下边就记录一下怎么让代码跑起来的。
tesseract的搭建
这里提供各种版本的下载。
需要手动编译源码,主要是生成lib。
本人对linux不熟悉,只有去网上下载已经编译好的含有lib的版本(注意版本对应,我是用的vs2012)。大致的文件结构如下:
我在这里遇到了一个问题,没有包含tessdata文件夹。这里给出我的解决办法,下载tesseract安装版本,安装完后将tessdata文件夹拷贝到预编译版本(含有lib文件)的目录下。
配置环境变量,在path中添加 D:\Tesseract-Build\tesseract-vs2012-master\prebuilt\x64,在cmd中进到tesseract.exe的目录,输入tesseract-v,出现如下文字,恭喜已经成功搭建好tesseract。
opencv的搭建
1.opencv官网下载,下载好后直接解压即可。
2.下载opencv_contrib
3.编译opencv源码,使用工具cmake。
第一次配置后,需要手动添加extra-module的具体位置。如:D:\opencv-3.0\opencv_contrib-master\modules
添加路径完毕后再次点击configure。搜索tesseract关键字
添加Tesseract_INCLUDE_DIR 路径为 D:/Tesseract-Build/tesseract-vs2012-master/include/tesseract;
Tesseract_LIBRARY 路径为 D:/Tesseract-Build/tesseract-vs2012-master/prebuilt/x64/libtesseract302.lib;
搜索关键字lep,添加Lept_LIBRARY 路径为 D:/Tesseract-Build/tesseract-vs2012-master/prebuilt/x64/liblept168.lib
确保以上3个路径填写正确后,再起点击configure按钮
最后点击generate按钮。最后生成的目录结构如下:
4.用vs2012进行构建。找到cMakeTarget下的INSTALL,右键,选择生成(记得在debug配置下和release配置下分别生成一次)。
在这一步遇到的一些问题。
问题1:vs编译报错”无法找到tesseract/baseapi.h 文件”。
最后解决办法为修改 D:\opencv-3.0\opencv_contrib-master\modules\text\src下的precomp.hpp文件。将
ifdef HAVE_TESSERACT include <tesseract/baseapi.h> include <tesseract/resultiterator.h> endif
修改为:
ifdef HAVE_TESSERACT include "D:/Tesseract-Build/tesseract-vs2012-master/tesseract-3.02/api/baseapi.h" include "D:/Tesseract-Build/tesseract-vs2012-master/tesseract-3.02/ccmai/resultiterator.h"** endif
具体路径为Tesseract源码中相应的文件夹。修改后记得重新在vs中生成一次
问题2:D:\opencv-3.0\opencv_contrib-master\modules\text\src中的erfilter.cpp文件报错。
解决办法为 打开源文件将下列代码修改
最后在重新生成,完成后多了一个install文件夹,所有的lib文件和c++头文件就在里边。
5.opencv环境变量配置。
官方说明文档
添加用户变量 OPENCV_HOME : D:\opencv-3.0\manual_build\install\x64\vc11,特别注意版本对应vs2012对应的是vc11。
添加系统变量 path : %OPENCV_HOME%\bin。
6.opencv在vs2012中的配置。
官方说明文档
新建win32控制台应用
配置64位编译环境(32位可以跳过此步骤)
在视图->其他窗口->找到 属性管理器(debug和release版本都要配置一次)
通用属性-> c/c++->附加包含目录
通用属性->连接器->常规
通用属性->连接器->输入(将D:\opencv-3.0\manual_build\install\x64\vc11\lib目录下的文件名按debug版本和release版本分别添加即可)
至此环境搭建完毕,可以运行代码了。本文主要记录了如何在windows环境下运行opencv的文字识别模块,在接下来的工作中还需深入研究论文、读懂源码。力求做出一些改进
写在儿童节的今天 –2016.6.1
相关文章推荐
- linux进程通信--信号量
- Apache - AH00548
- Apache - AH00548
- 配置OpenCV时,丢失MSVCP110D.dll
- Apache - AH00526 – order
- Apache - AH00526 – server.crt
- Apache - AH00526 – server.crt
- 更新docker到最新版本
- Apache - AH00451
- Apache - AH00451
- VS2010下Cannot find or open the PDB file
- Apache - AH00436
- Apache - AH00436
- OpenCV2之Mat简介
- linux搭建zookeeper集群
- Hadoop基础之HDFS
- Apache - AH00341
- Apache - AH00341
- xshell项目服务器命令
- 免安装Tomcat服务的安装