您的位置:首页 > 运维架构

基于opencv的场景文字识别

2016-05-31 20:34 351 查看
理论基础:基于论文 “Real-Time Scene Text Localization and Recognition”。

项目实现:opencv3.0 + tesseractgithub开源项目

开发环境: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: