1 算法概述
1.1 算法功能
文本检测+文本识别完成对托单的识别。
1.2 算法实现的目标
所提算法实现的功能把托单图片中的文字识别出来并且结构化输出。
1.3 术语及缩写
YOLOv3(You Only Look Once) 为目标检测的一种模型,v3为此模型的第三版本
2 算法实现
2.1 算法流程图
2.2 算法及接口说明
2,2,1 算法说明
该方法将文字检测和识别整合到一个端到端的网络中。检测使用YOLOv3,并利用双线性采样将文字区域统一为高度一致的变长特征序列,再使用CNN+CTC进行识别。
2,2,2 接口说明
def order_ocr(path):
输入参数:file_path:图片所在的路径
输出参数:resilt_json:Json格式的输出
2,3 主要流程介绍
第一,用VGG16的前5个Conv stage(到conv5)得到feature map(WHC)
第二,在Conv5的feature map的每个位置上取33C的窗口的特征,这些特征将用于预测该位置k个anchor(anchor的定义和Faster RCNN类似)对应的类别信息,位置信息。
第三,将每一行的所有窗口对应的33C的特征(W33C)输入到RNN(BLSTM)中,得到W256的输出
第四,将RNN的W*256输入到512维的fc层
第五,fc层特征输入到三个分类或者回归层中。第二个2k scores 表示的是k个anchor的类别信息(是字符或不是字符)。第一个2k vertical coordinate和第三个k side-refinement是用来回归k个anchor的位置信息。2k vertical coordinate表示的是bounding box的高度和中心的y轴坐标(可以决定上下边界),k个side-refinement表示的bounding box的水平平移量。这边注意,只用了3个参数表示回归的bounding box,因为这里默认了每个anchor的width是16,且不再变化(VGG16的conv5的stride是16)。回归出来的box,它们的宽度是一定的。
第六,用简单的文本线构造算法,把分类得到的文字的proposal(细长的矩形)合并成文本线
3 算法不足及改进方向
空格识别还有问题