OCR应用案例--商场室内导航

泪湿孤枕 提交于 2020-01-30 01:54:45

目前较好的自然场景下的文本检测技术有CTPN,FTSN,EAST,STN等,随着这些OCR技术的发展,目前各种形式的文本(保护竖直文本、倾斜文本、弯曲文本等)都可以较为精准的定位。

OCR技术的应该也是非常广泛,本文想要介绍的是将OCR技术、文本识别技术以及路径规划算法相结合,并应用于室内导航的例子(这里将以商城作为室内的主要载体。。。),以下将通过三个步骤来说明该应用的思路与可行性;

1 作品设计思路

       由于GPS无法应用在室内导航中,又因目前市面上应用于室内导航的WIFI,蓝牙及红外线技术存在受信号干扰的不稳定因素。本文创新性地介绍一种“拍图”导航技术。将文本检测识别技术与路径规划结合,直接避免上述信号问题,进行室内导航。
      因在商场中能体现店铺位置最好的方式就是店铺招牌,这是最具标志性的定位信息且具有识别可行性。所以本作品提出了如图 1-1 所示的设计思路。当系统接收到用户拍摄的起点与终点的图像(停车位图像于进入商城前拍下)。由于店主在店铺的门牌设计时,会考虑到艺术性、以及吸引客户的多种设计元素,通常我们所获取的图像中的文字信息如文本大小、方向(横竖文本)、内容(中文、英文、特殊符号)也不近相同。因此,我们采用了 CTPN 网络与 EAST 网络相结合的方式来保证店铺招牌检测的准确性;再采用DenseNet 网络进行文本字符识别,当存在少数文字错误时,通过商城数据库的辅助信息进行校正匹配;最后在商场平面图上确定起始点、终止点的位置信息, 与地图上的相关节点关联,根据路径规划算法对用户的行走路线进行规划,实现导航。

 

                                                                                         图1-1

2  具体实现

2.1 图像文本检测算法

2.1.1 CTPN检测长文本

         CTPN网络由于使用了双向BLSTM(如图2-1所示),网络感受野较大,所以对于横向的长文本可以进行准确的定位检测,所以如图2-2所示,我们首先使用CTPN对商铺招牌中的长文本进行检测,定位出文本大框。

 

                                                                                         图 2-1

         

                                                                                        图 2-2

      写到这里,估计就有一些小伙伴们想问了,为什么只用CTPN检测长文本,而不检测出所有的文本呢? 

      原因是,CTPN的网络并不适用于所有的文本检测,由于它的网络设计中,并没有fine-tune,所以其对于小文本以及倾斜文本检测效果并不佳。举个例子,CPTN检测的结果会把“炒菜”、‘“拌菜”、“炒面”、“炒饼”、“米饭”用一个大框全部框起来,并没有因为之间存在间隔而分开。

2.1.2 EAST检测倾斜文本

     而2017年提出的EAST网络,网络结构如图2-3所示。

                                                                                               图2-3

       我将计划下篇具体介绍一下EAST网络以及我对它的实验改进,这里就不再赘述。大概说一下它相比于CTPN的区别

      1) 更多尺度的加入,使得其可以对大小文本都进行定位

            如图2-3所示,在特征提取部分,网络基于U-NET思想,使用VGG16模型提取四个级别的特征图,其大小为网络输入图                像的1/32,1/16,1/8,1/4。再将获取的不同尺度的特征图进行合并。

     2) 输出层引入角度属性(RBOX),使其可以精准检测倾斜文本

           如图2-3所示,输出层的设计是该网络的一大亮点。其包含若干个conv1*1的操作,以将32个通道的特征图投影到一个通               通道的分数特征图FS 和一个多通道几何图形特征图Fg。其中图形特征图Fg使用RBOX作为几何形状输出。

                                                                                             表2-1

几何形状 通道数                      属性描述
AABB 4

RBOX 5

        如表2-1所示,RBOX的几何形状在融合AABB属性的基础上加入了角度属性(即几何框中每个像素点与水平面的夹角),即4个水平边界框R和1个通道的旋转角度

共5个通道。其中前4个通道分别表示从像素位置到矩形的顶部、右侧、底部、左侧边界的4个距离(如图2-所示)。                  

 

 

                                                                                                  图2-4

        但EAST网络中卷积核大小只有3*3或1*1大小,网络感受野过小,导致其对于较长文本的检测效果不好。特别是贯穿整个图像的长文本经常出现“框不住”的情况。

       以下为EAST检测的部分结果:

 

                                             图2-5                                                                                          图2-6

    可以看到经过上面的两项改进后,EAST确实对于不同尺度文本以及倾斜文本都检测较好。“SINCE”“1983”“冰淇淋”也被分开定位了,解决了CTPN无法解决的问题。

      基于上述,可以综合CTPN网络能够准确检测长文本及EAST网络检测倾斜文本(以及 不同尺寸文本)的优势,可以先用CTPN对图像进行文本检测,只保留最大框。并将最大框区域掩膜后的mask图像送入EAST网络中进行检测,定位出招牌中的其余文本。

     

                                                                                                图2-7

   图2-7为合并结果(由于假期在家写,更好的数据在服务器上,无法提供,在下一篇EAST的改进中会放更具说明性的结果

2.2  图像文本识别算法

    本文工作大多在图像文本检测的工作中,所以对于文本识别算法我将概述。

    本应用使用的是DenseNet网络,它的基本思路与ResNet一致,其一大特色是通过特征在通道上的连接来实现特征重用(feature reuse)。这些特点让DenseNet在参数和计算成本更少的情形下实现比ResNet更优的性能。

    在识别过程中,其存在一些问题如下

1)无法完全识别出含有英文、繁体字、艺术字,甚至是特殊符号的店铺名称

2)对于竖直的店铺招牌文本识别正确率较低

3)对于横文本中的长文本识别效果较差

    对于以上3点问题,分别进行了扩大训练数据到20000张的数据增强以及后处理操作。

   其中后处理主要针对2)3)问题:

   1.关于问题2),设定阈值,将测试集中的竖文本分割出来。分别训练横向文本的识别网络以及竖直问题的网络,对横竖文本分别进行识别,再将其测试结果进行合并。

   2.关于问题3),对横文本中的较长文本进行重叠分割,分成若干个短文本,识别后再将识别结果拼接作为长文本的预测识别结果。

2.3  导航算法(路径规划)

     在确定用户所在的起始点和目的地之后,系统可根据商场的平面图进行路经规划,给出用户合适的行走路线,进行导航。相比于室外复杂的路况,长距离的导航,室内商场地形相对简单。因此我们使用经典的A星算法,使用其中的8向寻路,以及进行路线平滑操作,最终实现路经规划。A星算法在搜索精度和速度方面进行了很好的平衡,可以满足商场室内导航的需求。

    

3. 整体效果展示

    首先建立3层商场模型,F-1为商场地下停车场、F1为商场服装区、F2为商场餐饮区。商城模型如图3-1所示。

 

                                                                                            图3-1

 

                                图3-2(a)                                                                                图3-2(b)

    如图3-2(a)所示,可点击主界面的当前店铺照片按钮,选择一张图像作为起始点(模拟拍照过程,实际应用中可进行直接拍图),再点击主界面的目的店铺照片按钮,选择一张图像作为终止点。点击查看路线按钮,进入导航界面,如图3-2(b)所示,页面显示导航路线。PS:同时也支持多层导航,这里不再展示结果啦!

    说到这里很多人会问,直接输入店铺招牌信息不就好了,干嘛还拍照,检测识别,多此一举嘛!问题来了,如果你记不住当初看好的店铺名字了呢,况且拍照岂不是更方便,就像淘宝拍照识别的道理一样啊!当然记住了店铺名最好啦,直接输入文本信息也OK。那文本检测识别的意义就不大了,哈哈。

   

一个设计的小小应用,目的是为了让学习的东西可以被直观的可视化,共勉啦!

 

       

           

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!