EAST算法简单解析

article/2025/10/6 23:54:07

前言

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

算法介绍

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是权重。

最后

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


http://chatgpt.dhexx.cn/article/fkDv3mQm.shtml

相关文章

定位算法初探

定位算法初探 一、指纹定位算法介绍 指纹定位(finger-printing localization)算法,是基于室内环境复杂,信号反射折射所形成的在不同位置形成的不同的信号强度信息而提出的一套算法。 指纹算法能很好的利用了反射折射所形成的信号信息,离线首…

使用python模拟实现PID控制算法

使用python模拟实现PID控制算法 PID控制算法是工业应用中最广泛算法之一,在闭环系统的控制中,可自动对控制系统进行准确且迅速的校正。 P、I、D分别是“比例(proportional)、积分(integral)、微分&#xff…

TCP Nagle算法简述

TCP/IP协议中,无论发送多少数据,总是要在数据前面加上协议头,同时,对方接收到数据,也需要发送ACK表示确认。为了尽可能的利用网络带宽,TCP总是希望尽可能的发送足够大的数据。 (一个连接会设置M…

倒角算法推导

推导原理基本很简单: 已知AB, BC两条线段,且交于B点,求倒角半径为 L,AB,BC的倒角 以最短边(假定为AB)长 LAB, 在BC中,以B为起点,找出与LAB同长度…

[控制算法]

[常用控制算法] 0.博览众长 0.1 视频 1. DR_CAN b站 0.2 文章 1.控制算法整理 0.3 传统 VS 现代控制算法 1. 传统 传统控制算法:PID,模糊,神经网络控制算法。 2. 现代 现代控制算法有比例,LQR算法(用于线性系统)&#x…

求树的直径证明

树的直径(最长路) 的详细证明 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路 现有结论,从任意一点u出发搜到的最远的点一定是s、t中的一点,然后在从这个最远点开始搜,就…

树的直径和树的重心

1.树包括有根树和无根树,有根树是有向图的子图,无根树是无向图的子图,都满足边数等于节点数减一。根是入度为零或没有父亲的节点 2.树的直径:树上最长的简单路径(不重复经过点的路径) 3.求解算法&#xf…

树的直径总结

树的直径 一、定义 在一棵树中,最远的两个子节点之间的距离被称为树的直径; 链接这两个点的路径被称为树的最长链; 有两种求法,时间复杂度均为 O ( n ) O(n) O(n) ; 二、树形DP 1. 状态 由于一个点的最长路通过…

基础算法 - 树的直径

题目地址:https://leetcode-cn.com/problems/tree-diameter/ 1245. 树的直径 难度中等48收藏分享切换为英文接收动态反馈 给你这棵「无向树」,请你测算并返回它的「直径」:这棵树上最长简单路径的 边数。 我们用一个由所有「边」组成的数…

树的直径-c++

题目 实验室里原先有一台电脑(编号为1),最近氪金带师咕咕东又为实验室购置了N-1台电脑,编号为2到N。每台电脑都用网线连接到一台先前安装的电脑上。但是咕咕东担心网速太慢,他希望知道第i台电脑到其他电脑的最大网线长度,但是可怜…

求树的直径算法以及证明

以下为两次dfs(bfs)的做法以及正确性证明。 算法步骤 (1)任取树上一点S,以S为源点BFS得S到各个顶点的d值; (2)取d值最大者之一为P,再以P为源点BFS得P到各个顶点的d值&am…

求树的直径

树的直径,即树上的最长路径,显然,树的直径可以有很多条(考虑一棵菊花)。 接下来我们考虑如何求出一棵树的直径。有很多种O(n)的算法。 算法1:我们任取树中的一个节点x,找出距离它最远的点y&am…

数据结构 树的直径

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 学习日记 目录 学习日记 一、定义 二、两次DFS 定理: 反证法证明: 1、若y在d(t,s)上 2、若y不在d(s,t)上,且d(y,z)与d(s.t)…

树的直径(最长的简单路径)

题解:分析一下,由于是树,所以两点之间的路径有且只有一条,为了求出欧拉路,所以必然会向回走,从递归的角度来看,假设x看作一个树根,有t个孩子y1…yt。其中每个孩子为根的子树欧拉路都…

树的直径概念及求解

文章目录 1. 使用两次DFS求得树的直径2. 使用树形DP求得树的直径3. 性质4. 参考文献和习题 树上任意两节点之间最长的简单路径即为树的「直径」。显然,一棵树可以有多条直径,他们的长度相等。可以用两次 D F S / B F S DFS/BFS DFS/BFS 或者树形 D P D…

树的直径两种求法

首先先介绍一下什么是树的直径,树的直径就是树中所有最短路经距离的最大值。 求树的直径通常有两种方法,一种是通过两次搜索(bfs和dfs均可),另一种就是通过树形dp来求了。 先来介绍一下用两次深搜来求树的直径&#x…

树的直径的概念

树的直径的定义: 在一棵树中,每一条边都有权值,树中的两个点之间的距离,定义为连接两点的路径上边权之和, 那么树上最远的两个点,他们之间的距离,就被称之为,树的直径。 树的直径的别称&#x…

树的直径

【定义】 我们将一棵树T ( V,E )的直径定义为maxδ ( u,v ) ( u,v ∈ V ),也就是说,树中所有最短路径距离的最大值即为树的直径。 【做法】 例题传送门Cow Marathon(POJ 1985) 对于树的直径…

浅谈树的直径

一、定义: 我们将一棵树T(V,E)的直径定义为max(u,v) (u,v∈V),也就是说,树中所有最短路径距离的最大值即为树的直径。(就是树中的最长路径的长度) 二、求解树德直径: 求得树的直径有两种方法,一…

3.网络基础-三层路由网络

3.1、IP地址 初识IP地址 • 在IP网络中,通信节点需要有一个唯一的IP地址; • IP地址用于IP报文的寻址以及标识一个节点; • IPv4地址一共32bits,使用点分十进制的形式表示; IP地址的分类 E类是保留地址 公有IP及私有…