seglink论文复现环境配置实践笔记

paper : Detecting Oriented Text in Natural Images by Linking Segments

github地址:https://github.com/dengdan/seglink

参考博客:https://blog.csdn.net/u011440558/article/details/78564615

         这篇博客是我按照github上大神开源代码后,然后我在自己的环境下复现出来的实践笔记,这也是我第一次写博客,文笔粗糙,望大家海涵,接下来步入正题。论文中也只是检测到了文本行的框,并没有进行识别,检测出来的最终结果会在指定路径下保存为和每张输入图片名字相对应的txt文档,命名格式为:res_图片名称.txt。

一、我的配置环境

    (1)tensorflow-gpu 1.1.0

    (2)opencv3.1.0

    (3)python2.7

二、具体安装步骤

  1. 首先根据上面的github地址下载源码及数据集和对应的model,下载两个压缩包,pylib-python3.zip、seglink.zip和两个数据集SynthText、ICDAR2015。
  2. 安装opencv3.1.0,这个版本的opencv在我的电脑上已经安装,如果你的版本是opencv2.4.9,则需要安装opencv3.1.0。

参考地址:http://blog.csdn.net/u011440558/article/details/78358447

 

opencv3.1.0具体安装步骤如下:(ubuntu16.04安装opencv3.1.0

推荐安装opencv3.4.2网址https://blog.csdn.net/hu_helloworld/article/details/80251237

  1. 安装依赖库
sudo apt-get install build-essential

# 必须的,gcc编译环境

suo as

sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

udo apt-get install build-essentiapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev lale-de

# 必须的,包括cmake等工具

sudo apt

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

# 可选的,看个人需要,总共5M左右

  1. 下载源码

官网下载:http://opencv.org/downloads.html

或者git clone:

cd ~/o

cd ~/opencv310

pencv310

# opencv310为自己新建文件夹,源码将放在这里

git clone https://github.com/Itseez/opencv.git

git clone https://github.com/Itseez/opencv_contrib.git

  1. 使用cmake安装

1.解压源码包,得到opencv-3.1.0 (用git的话,即是opencv310)

2.然后建立编译目标文件夹

cd

cd opencv-3.1.0
mkdir build

 opencv-3.1.0

3.使用cmake或用cmake-gui生成Makefile 

(1)cmake方式

cd opencv-3.1.0/build

cmak

cd opencv-3.1.0/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX
=/usr/local ..

e -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX

=/usr/local ..

# 生成后的Makefile在build文件夹中,而需要的CMakeLists.txt

在 ".."中,即上一级文件夹中(opencv-3.1.0)

  1. cmake-gui方式 
            cmake-gui即cmake和图形界面版程序: 
            先安装cmake-gui

sudo apt-get ins

sudo apt-get install cmake-qt-gui

tall cmake-qt-gui

然后打开cmake-gui:

 

mkdir buildseglink论文复现环境配置实践笔记_第1张图片

“/opencv-3.1.0” 和 “/opencv-3.1.0/build”换成自己的,然后先点 Configure 然后点 Generate。

在Configure过程中,若出现

– ICV: Downloading ippicv_linux_20141027.tgz…  

则下载ippicv_linux_20141027.tgz,地址:https://pan.baidu.com/s/1hWwR8VtHRwKNRmOilskmwA

密码: kvdz,替换掉 opencv-3.1.0/3rdparty/ippicv/downloads/

linux-8b449a536a2157bcad08a2b9f266828b 下的同名文件即可,注意替换后,重新编译,或着一开始就放进去。

  1. 安装opencv  

在opencv3.1.0/build下

         

# 4个线程编译,查看cpu核数量 # grep "model name" /proc/cpuinfo | wc -lwc -l 
make -j4 
# 安装 
sudo make install

测试安装是否成功,查看这篇,ubuntu opencv3.1 编译demo报错:

http://blog.csdn.net/u011440558/article/details/78213796

3.创建虚拟环境seg-env,安装tensorflow

A.安装pip

sudo apt-get install python-pip python-dev python-virtualenv

B.创建虚拟环境seg-env

virtual

virtualenv --no-site-packages --python=python3 seg-env

env --no-site-packages --python=python3 seg-env

如果出现以下问题:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

E: Unable t

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

o lock the administration directory (/var/lib/dpkg/), is another process using it?

解决方法:sudo rm /var/lib/apt/lists/lock

sudo rm /

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

C.接下来打开刚才创建的虚拟环境

source seg-env/bin/activate

这时候你会发现在终端输入命令的时候前面都会有(seg-env),代表你的虚拟环境创建成功,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。接下来你的所以操作都是在这个虚拟环境中进行,安装的所有的依赖包也都会放在:/home/zhao/seg-env/local/lib/python2.7/site-packages目录下。

刚才创建的虚拟环境seg-env中安装tensorflow:推荐使用清华大学镜像文件,速度会快很多,使用pip install方法安装速度会很慢,而且很容易超时。推荐使用:

pip install -i

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

如果报错:

(seg-env)**@gpuserver1:

~$pip install -i https://pypi.mirrors.ustc.edu.cn/

simple/ tensorflow_gpu-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl

tensorflow_gpu-1.0.0-cp27-cp27mu-manylinux1_x86_64.whl is not a supported wheel on this platform.

Storing debug log for failure in /home/**.pip/pip.log

D.更新你所安装的pip:

python -m pip install --upgrade pip

升级pip3:
sudo pip3 install --upgrade pip

卸载pip3:
sudo apt-get remove python3-pip

python -m pip install --upgrade pip

然后再次安装:pip

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

pip install keras -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow

若发现安装超时,试用第二句命令,其中的keras代表了你要安装的包。

这样基本上tensorflow安装已经没什么问题,等success之后进行下一步操作。

tensorflow安装参考:http://blog.csdn.net/isuker/article/details/52459992

E.接下来我们需要安装python需要的各种基础软件包,numpy、scipy、pandas、matplotlib。

首先更新所有插件:

sudo apt-get update

sudo apt-get update

安装numpy:

sudo apt-get install python-numpy

sudo apt-get install python-numpy

如果你使用的是python3.0以上版本,则:

sudo apt-ge

sudo apt-get install python3-numpy

t install python3-numpy

安装scipy:

sudo apt-get install python-scipy

sudo apt-get install python-scipy

安装pandsa:

sudo apt-get install python-pandas

sudo apt-get install python-pandas

安装matplotlib:

sudo

sudo apt-get install python-matplotlib

apt-get install python-matplotlib

安装scikit-learn:

sudo apt-get install python-sklearn

sudo apt-get install python-sklearn

F.运行 test_seglink.py

下载并解压模型(seglink-384)和测试数据(ICDAR2015),代码地址中有提供。

(1)修改 test_seglink.py中的图像文件路径,模型路径

tf.app.flags.DEFINE_string('checkpoint_path', '/home/zhao/WZQ12/wzq/seglink-384/model.ckpt-136750',None)

tf.app.flags.DEFINE_string('checkpoint_path', '/home/zhao/WZQ12/wzq/seglink-384/model.ckpt-136750',None) //注意此处应是三个参数,最后一个参数为None

tf.app.flags.DEFINE_string('dataset_dir',

util.io.get_abs

tf.app.flags.DEFINE_string('dataset_dir', 
util.io.get_absolute_path('/home/zhao/WZQ12/wzq/ch4_test_images'), 'The directory where the dataset files are stored.')

olute_path('/home/zhao/WZQ12/wzq/ch4_test_images'), 'The directory where the dataset files are stored.')//注意此处是test,后面生成的txt文件对应的也应是test,可视化检测结果所输入的图片也应该是test

(2)修改./tf_extended/seglink.py 808行(否则会报错,opencv3没有cv.BoxPoints()函数):

# points = cv2.cv.BoxPoints(bbox) #opencv2.4.9

#将原来的注释掉,用下面这一行代码:

points = cv2.boxPoints(bbox) #opencv3.1.0

points = cv2.boxPoints(bbox) #opencv3.1.0

G.运行代码

#需要在代码中填写好参数

sou

#需要在代码中填写好参数 
source seg-env/bin/activate 
python test_seglink.py

rce seg-env/bin/activate

python test_seglink.py

事实上你需要cd到对应的test_seglink.py的根目录下,比如:

先:sour

source seg-env/bin/activate 

ce seg-env/bin/activate

然后:cd WZQ12/wzq/seglink 你就会看到你的test_seglink.py

接下来在终端输入p

python test_seglink.py

ython test_seglink.py

或者,

sh ./scripts/test.sh 0 ~/WZQ12/wzq/seglink-384/model.ckpt-136750 ~/WZQ12/wzq/ch4_test_images

每条命令注意中间只有一个空格,

报错:
import util
ImportError: No module named util

这是因为你没有将环境变量添加到python指定的路径下:

使用

sudo gedit .bash

sudo gedit .bashrc

编辑文档,在该文档末尾添加自己的src路径,

export PYTHONPATH= “${PYTHONPATH}:/home/zhao/WZQ12/wzq/pylib/src/ 

接着是在linux下永久添加sys.path模块路径:

cd seg-env/local/lib/python2.7/site-packages

cd seg-env/local/lib/python2.7/site-packages

sudo echo a.pth

sudo echo a.pth

sudo gedit a.pth

sudo gedit a.pth

编辑该文本,添加自己电脑所对应的路径:/home/zhao/WZQ12/wzq/pylib/src

保存退出

进入python环境:$ python

>>>import sys

>>>sys.path  查看刚才添加的路径是否在其中

H.再次运行代码

python test_seglink.py

p此时基本上没有什么问题了,如果出错提示你缺少安装什么包,下载相对应的安装包 ,推荐使用清华大学镜像文件:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  缺少的包名

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  缺少的包名

如果前面的操作都没有什么问题,那么现在你就会看到终端上正在跑500张图并且生成了txt文件,这是ICDR2015数据集中的test图,生成的txt文件/home/zhao/WZQ12/wzq/seglink-384/model.ckpt-136750/test/icdar2015_test/model.ckpt-136750/seg_link_conf_th_0.900000_0.700000/txt

 

I.可视化检测

    在终端输入:

pyt

python visualize_detection_result.py \
--image=/home/zhao/WZQ12/wzq/ch4_test_images \
--det=/home/zhao/WZQ12/wzq/seglink-384/model.ckpt-136750/test/icdar2015_test/model.ckpt-136750/seg_link_conf_th_0.900000_0.700000/txt \
--output=/home/zhao/WZQ12/wzq/out

hon   注意以上给出的是绝对路径,“=”后面不可加空格,注意每行的空格数只有一个,python对格式要求很严格,否则编译器不允许通过,out是自己新建的文件夹,用来保存可视化检测之后的图片。

实际配置过程中还会出现很多的问题,因为python版本和tensorflow,opencv版本不匹配等问题,根据问题的提示总能百度出答案。

     在我的实践过程中,还会出现最终生成的txt文件因为换行符“\n”的干扰,不能读取txt文件的第8个数,解决方案:

对visualize_detection_result.py进行修改,第11行添加:

while \

while ‘\n’ in data:
   data.remove(‘\n’)

第75行后添加:

 if line!=‘\n’

  至此,所有的环境已经配置完毕,你将会在out文件夹下看到ICDAR2015所有test图片,检测结果包含了场景中文本框,总共500张图,如果你想测试别的数据集,需要将test_seglink.py的输入图像路径更改即可。

欢迎转载,交流学习!

 

欢迎 if line!=‘\n’

 

source seg-env/bin/activate

你可能感兴趣的:(机器学习,深度学习,seglink)