chinese-ocr中文字行检测+OCR识别训练自己的数据以及pb文件转换实战

GitHub地址:https://github.com/YCG09/chinese_ocr

该项目检测使用ctpn,识别使用cnn+lstm形式,通过GitHub给出的readme可以直接运行demo.py看到作者训练好的检测加识别的最终结果。

此处将该项目在自己的数据集上训练过程加以记录,并将最终识别结果转为pb文件。

检测模型:进入ctpn/prepare_training_data目录下,修改split_label_new.py文件。(先将自己的数据存放到一个目录,每个图像对应一个同名的.txt文件,txt文件中对应图片中文字行坐标信息,可以是四点坐标,也可以是八点坐标,图片中有多少行文字信息,txt中就有多少行label,label按照【xmin ymin xmax ymax】的形式,或者【左上 右上 右下 左下】的八点坐标存放,我有两种数据格式,所以四点坐标和八个点坐标都有),注释掉第一行gt_path,将path变量指向数据目录,将原始的file变量更改为数据目录下所有的图片,自己改就行,我的代码为files = [os.path.join(path,e) for e in os.listdir(path) if e.endswith('.jpg')],后面的for循环读取图片对应的label的时候,做一个判断,因为ctpn检测网络是自然场景下的文字行检测,所以label都是八个点坐标,这里判断如果label为四个点坐标,那就计算出八个点坐标就行,很简单的,然后执行split_label_new.py文件,在当前目录就能产生两个目录label_tmp和re_image.

然后将数据转出voc格式,修改ToVoc.py 文件,将_outdir修改为chinese_ocr-master/ctpn/data/VOCdevkit2007/VOC2007,然后执行文件,修改的目录为指定输出目录

修改ctpn/tex文件中EXP_DIR变量,随便起一个名字如end001,修改最后一行checkpoints_path,

执行python ./ctpn/train_ne

你可能感兴趣的:(目标检测,OCR算法实战)