前言

最近写了很多算法代码的解析,但是却很少写原理的解析,这段时间学得快忘得也快,所以寻思这几天写几篇学过算法的原理,可能不是很详细但是一定很简单,利于理解。

算法介绍

EAST: An Efficient and Accurate Scene Text Detector 这就是算法的原名,翻译过来的意思大概就是一个精确高效的场景文本检测器。对于一个算法我们一般观测他几点:

1》他能做神魔?
答:这个问题件他的名字我们就可以看出:用来检测自然场景中的文本,然后将它框选出来。

2》他有什么优点?
答:这个问题需要多说一点,首先我们说他的最突出的一个优点,在学习过其他算法以后(当然也没几个)我们发现大多预先画框的算法都有一个问题,他只能画一些中规中矩的方形框,也就是只能处理一些对文本正面处理的图片,如果拍摄角度不好,导致文本是倾斜的画框效果就不那么理想,EAST就提出了旋转框和平行四边形框就解决了这个难题,从而真正意义上实现了所谓的自然场景检测,这是他的第一个优点。然后,我们说他的第二个优点,首先他是一个二阶段算法:一阶段基于全卷积神经网络(FCN),直接产生文本框预测。第二阶段是NMS操作产生最后的结果。这里我们就要引出他的优点了,比一阶段算法精确,比一般的二级段算法快。这也是大多数人前仆后继本向这个算法的原因。好吧这里是两个优点,我的错。

网络框架

看图:
图片结构很简单我们把它看为三个阶段:特征提取,特征合并和输出层。
1》特征提取:特征提取就是最左边这一列黄色部分,首先要是想理解这部分就要理解一个概念:感受野,的相信这个概念并不陌生,而要是理解感受野,就要先理解卷积神经网络的特征提取方式。众所周知卷积神经网络的特征提取方式的方式是用卷积核在一张特征图上平移来提取特征,假设我们在原图上用一张33的的卷积核来提取特征,那么我们就得到了原图上像素为9的感受野,随之产生新的特征图,不过新的特征图尺寸变小不少。然后,当我们在新的特征图上再次用一个33的卷积核进行特征提取,这次就获得了新的感受野,那么这次感受野是多少呢?在不考虑步长,padding的情况下我们大致可以考虑为99=81,这是为神魔呢,首先根据卷积的原理新的特征图的每一个特征点来自于原来的九个特征点(这里说一下,其实要说是严格考虑padding,步长,和其他因素最后不是这个数字,这里只是用来说明感受野所以大家不用太过苛求),那么当我们再次用33的卷积核进行特征提取时就获得了81的感受野。也就是说随着卷积的深度加深或者说特征图的变小(如果有padding不一定会变小这里是对本算法来说)感受野不断加深。然而,我们这一层的目的就是提取不同阶段的特征图,也就是不同感受野的特征图那么不同的感受野能干神魔呢,其实很显然就是可以关注不同大小的文本。这块就算说完了下面让我们进入下一层。

2》特征合并:特征合并层就是我们看到的中间绿色一列,刚才我们谈到了不同感受野的特征图首先这些特征图的大小分别是1/4,1/8,1/16和1/32这就是我们这特征合并层的原料我们这一层要做的就是,把相对较小的特征图通过反卷积操作然后和大一倍的特征图合并然后通过3*3的卷积核。比如把1/32的特征图反卷积成1/16然后与1/16的特征图合并。于是随后我们就完成了所有不同大小的特征图合并起来,这让我们在最后的特征图上拥有了多种不同的特征信息。

3》输出层:输出层是最右边的蓝色部分经过若干个1*的卷积操作而得,输出包括这几部分:score map:检测框的置信度,1个参数;text boxes:检测框的位置(x, y, w, h),4个参数;text rotation angle:检测框的旋转角度,1个参数;(这里这两个参数是一组,最终的组合情况是一个带角度的旋转矩形框)text quadrangle coordinates:任意四边形检测框的位置坐标,(x1, y1), (x2, y2), (x3, y3), (x4, y4),8个参数。(这块是四边形框,不是矩形多是平行四边形)

NMS (非极大值抑制)操作

这个操作是EAST的最后部分,所做的工作就是筛选,为了使原理更简单些,我们就是简单说一下,由于训练的各种因素对于一个目标我们可能输出好几个预测框,他们有大有小有长有窄,这些框对于同一个目标,自然只应该只有一个真值框与之对应。那么我们靠什么来判断他们谁是正确的呢,这里又有了一个新的概念:IOU,其实简单说就是重合面积。也可以说是我们得到的分数。如下图所示:

我们所做的就是把分数最高的那个挑出来然后删掉其他的,其实挑出最大的那个很简单,但是有一个问题就比较棘手,那就是我们如何判断其他的框和他同属于一个目标呢,或者说如何判断是否剔除干净呢。其实很简单,我们把其他的框和最大的框再做一次IOU操作,如果重合值大于一定值就认为两者同属于一个目标的预测框,这样一来就可以删除其他预测框得到分数最大的那个唯一预测框了。

损失函数

通常来说损失函数是一个算法相对来说的比较重要的部分,但是这里我并不打算详细讲,为啥,因为训练是代码的是损失函数我只讲用什么,不讲具体。
首先总损失:
ls是分数图损失,lg是几何图损失,λg是权重。

最后

最后就写到这里了,能交代的都交代完了原理说的也差不多了,希望大家能喜欢,在这里想各位前辈致以诚挚敬意。

EAST算法简单解析相关推荐

  1. 邻近算法(KNN)原理简单解析

    邻近算法(KNN)原理简单解析 一.什么是邻近算法 1.1简介 1.2核心思想 1.3 算法流程 1.4 优缺点 二.实例演示KNN算法 一.什么是邻近算法 1.1简介 邻近算法,或者说K最近邻(KN ...

  2. adaboost算法java_Adaboost 算法实例解析

    Adaboost 算法实例解析 1 Adaboost的原理 1.1 Adaboost基本介绍 AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由 ...

  3. 机器学习算法实现解析:libFM之libFM的训练过程之SGD的方法

    本节主要介绍的是libFM源码分析的第五部分之一--libFM的训练过程之SGD的方法. 5.1.基于梯度的模型训练方法 在libFM中,提供了两大类的模型训练方法,一类是基于梯度的训练方法,另一类是 ...

  4. java 解析xls 文件_java简单解析xls文件的方法示例【读取和写入】

    本文实例讲述了java简单解析xls文件的方法.分享给大家供大家参考,具体如下: 读取: import java.io.*; import jxl.*; import jxl.write.*; imp ...

  5. 索引算法原理解析(B-tree以及磁盘存储原理)

    刚开始学习的时候,百度去查,但发现好多说得太复杂不好理解,结合各个文章总结一下(建议大概看文字,不理解不要紧,然后再看图的执行步骤然后在结合文字,这样一切就清晰好多) B-tree,B是balance ...

  6. python函数教程:Python递归函数 二分查找算法实现解析

    这篇文章主要介绍了Python递归函数 二分查找算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.初始递归 递归函数:在一个函数里在调 ...

  7. python文件去重算法_使用Python检测文章抄袭及去重算法原理解析

    在互联网出现之前,"抄"很不方便,一是"源"少,而是发布渠道少:而在互联网出现之后,"抄"变得很简单,铺天盖地的"源"源 ...

  8. POS基本算法详细解析

    标题POS基本算法详细解析 粒子xi(t)与群相互交流,保存更新自己的最优点Pi(t),并且与群交流后得知全局(群)的最优点g(t),由原来的方向Vi(t)变到Vi(t+1). 首先看懂上面两张图!再 ...

  9. 锐速与BBR的原理简单解析

    锐速与BBR的原理简单解析  4 前言 昨天,有一位朋友在我的文章下留言说,锐速和BBR不都是一样,是拥塞算法嘛.因为这方面需要讲的东西比较多,所以我还是专门水一篇文章吧. 锐速 参考资料: http ...

最新文章

  1. 捍卫者usb管理控制系统_捍卫超模块化JavaScript
  2. 大数据学习之路(七)——学习小结
  3. Ubuntu16.04在线安装MongoDB详细教程
  4. 同济大学计算机系陈永生,城市轨道交通应急预案演算平台的设计与研究.pdf
  5. git分支操作、分支合并冲突解决
  6. linux命令学习-4-lsof
  7. .NET Core 2.0体验
  8. Spring项目中的Netflix Archaius属性
  9. wordpress 主题教程-笔记
  10. ps图像压缩插件:TinyPNG and TinyJPG for Mac 支持ps2021
  11. linux思科认证,思科CCIE认证知识点之IPv6地址
  12. sklearn ——Classification——knn
  13. 网站维护不给提,问客服就说维护结束会给通知
  14. Ps大尺寸图导出成小尺寸
  15. Bootstrap响应式图表设计
  16. android imageloader 路径,Android中的Universal-Image-Loader的使用
  17. 设计模式之观察者模式——猫抓老鼠2
  18. 前端 Leader 是如何带领团队和建设团队文化的
  19. ASP+AJAX实现分页效果[Z]
  20. php 数组的结构和定义

热门文章

  1. 从零开始教你做高保真原型图+UI 设计规范
  2. javaweb实现停车场收费管理系统
  3. 华为云搭建pptpd
  4. python pip 设置国内源
  5. 中文在线Linux函数参考手册
  6. 有什么热门蓝牙耳机推荐?盘点四款最受欢迎的蓝牙耳机
  7. Python同步赋值:x, y = y, x
  8. 树莓派RaspberryPiB+Raspbian-jessie制作只读系统的python3脚本
  9. React 过渡动画 路由 ui
  10. JAVA Web基础 留言本综合练习