EAST: An Efficient and Accurate Scene Text Detector(自然场景下文本识别)训练,测试

首先介绍一下我的环境配置,ubuntu16.04+cuda9.0,cudnn7.0,tensorflow-gpu=1.8

简介

其实对这个不是很有研究的,只是要参加一个阿里天池的比赛,然后用这个跑了一下,成绩很一般。

论文原地址:https://arxiv.org/abs/1704.03155v2

源码:https://github.com/argman/EAST

下载

主要是根据上面github源码进行的,首先下载源码,然后可以看到教程中的Download中训练好的模型以及slim resnet v1,如下图。

然后首先解压源码EAST,打开EAST-master/tmp文件,将上面下载好的模型解压就行了。


训练

首先得寻找一个数据集,然后我首先用的是icdar2015的数据集,上面教程也说了需要将image和label(.txt)修改一下名字,当然也可以修改代码,这里面我选择的是修改名字,代码如下:
import os

def rename(path, num=1):
    filelist = os.listdir(path)
    filelist = sorted(filelist)
    Newdir = 'label'
    if not os.path.exists(Newdir):
        os.makedirs(Newdir)
    for files in filelist:
        Olddir = os.path.join(path, files)
        if os.path.isdir(Olddir):
            continue
        filename = os.path.splitext(files)[0]
        filetype = os.path.splitext(files)[1]
        if 'img_' + str(num) == filename:
            num = num + 1
            continue
        New_name = 'img_' + str(num) + filetype
        os.system("cp " + Olddir + ' ' + os.path.join(Newdir, New_name))
        num = num + 1

if __name__ == "__main__":
    path = 'txt_1000'
    num = 1
    rename(path,num)

根据自己文件的名字进行修改的啦。

将修改好的images(.jpg)和(.txt)文件放在一起,重新起一个名字,如icdar2015也行吧,如图:

训练命令如下:

python multigpu_train.py --gpu_list=0 --input_size=512 --batch_size_per_gpu=14 --checkpoint_path=tmp/east_icdar2015_resnet_v1_50_rbox/ \
--text_scale=512 --training_data_path=icdar2015/ --geometry=RBOX --learning_rate=0.0001 --num_readers=24 \
--pretrained_model_path=tmp/resnet_v1_50.ckpt
注意:不要在文件前添加/会出现找不到Failed to find any matching files for /tmp/resnet_v1_50.ckpt

这里面可以修改一下训练多少次保存模型,打开mutigpu_train.py,找到作如下修改,因为电脑配置有点差。

tf.app.flags.DEFINE_integer('save_checkpoint_steps', 200, '')

还有一个就是如果不想要训练的话,可以直接Ctrl+c直接停止训练,虽然保存了模型,但是还是得在此训练一段时间才能达到之前的效果。再次训练的话,可以不用添加

--pretrained_model_path=tmp/resnet_v1_50.ckpt
使用tensorboard查看训练情况
cd ~/Documents/workspace/EAST-master/tmp/
tensorboard --logdir='east_icdar2015_resnet_v1_50_rbox'


测试

测试的话,里面images的名字还是有一点限制的,不过一般都不会有问题,主要是阿里天池比赛的images中有

T1..VkFqJdXXXXXXXX_!!0-item_pic.jpg.jpg。这里面需要稍微修改一下就可以了。

python eval.py --test_data_path=test_images/ --gpu_list=0 --checkpoint_path=tmp/east_icdar2015_resnet_v1_50_rbox/ \
--output_dir=test_out_images

猜你喜欢

转载自blog.csdn.net/pursuit_zhangyu/article/details/80433007
今日推荐