DBNet: Real-time Scene Text Detection with Differentiable Binarization
[TOC] 名称:DBNet: Real-time Scene Text Detection with Differentiable Binarization 论文:https://arxiv.org/abs/1911.08947 会议:AAAI2020 V2:Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion V2:https://arxiv.org/abs/2202.10304 顶刊:TPAMI 2022 DBNet(Differentiable Binarization Network)是一种用于文本检测的深度学习模型,特别适用于自然场景中的文本检测任务。它在处理弯曲、倾斜或复杂背景中的文本时表现出色。DBNet 的核心创新点是引入了 可微分二值化(Differentiable Binarization, DB) 模块,使得模型能够在训练过程中直接优化分割掩码的二值化效果。 以下是 DBNet 的详细解析,包括其架构设计、工作原理、优势和实现细节...
Android Studio配置Gradle
在IntelliJ IDEA 和Android Studio 中,可以通过以下步骤指定 Gradle 主目录(Gradle Home Directory)。这个设置允许你使用手动安装的 Gradle 版本,而不是依赖 IDE 自动下载的版本。 步骤 1:打开设置窗口 启动 IntelliJ IDEA 或 Android Studio。 打开 设置/首选项 窗口: Windows/Linux 作系统 :File > Settings。 macOS :IntelliJ IDEA > Preferences。 步骤 2:导航到 Gradle 设置 在设置窗口中,展开左侧的Build, Execution, Deployment 菜单 点击Build Tools > Gradle 。 步骤 3:指定 Gradle 主目录 在右侧的 Gradle 设置面板中,找到**“Gradle JVM”** 和**“Use Gradle from”** 部分 选项 1:使用 Gradle Wrapper 默认情况下,IDE 会选择**‘gradle-wrapp...
Python开发安卓应用
要在安卓设备上运行使用 PyQt 编写的程序,需要解决一个关键问题:PyQt 是为桌面环境设计的,而安卓是一个移动操作系统,直接在安卓上运行 PyQt 程序并不支持。不过,可以通过一些工具和框架将 PyQt 应用适配到安卓平台。以下是实现这一目标的主要方法和步骤: 1. 使用 Kivy 或其他移动开发框架 如果目标是开发跨平台的 Python 应用(包括安卓),可以考虑使用专门为移动设备设计的框架,例如 Kivy 或 BeeWare 。这些框架支持直接构建安卓应用,并且语法与 PyQt 类似。 原因: PyQt 的 GUI 依赖于 Qt,而 Qt 在安卓上的支持有限。 Kivy 和 BeeWare 提供了更轻量级的解决方案,更适合移动设备。 2. 通过 PySide/Qt for Android Qt 官方提供了对安卓的支持(称为 “Qt for Android”),因此理论上可以通过以下方式将 PyQt 应用移植到安卓: 步骤: 安装 Qt for Android 工具链 下载并安装 Qt 官方提供的 Android 开发工具链,包括 Qt Creator 和 An...
语义分割-游程编码(Run-Length Encoding, RLE)
游程编码(RLE,Run-Length Encoding)是一种简单而有效的数据压缩方法,特别适用于具有大量连续重复值的数据。它在图像处理、分割掩码表示和时间序列数据压缩等领域有着广泛的应用。 它通过记录每个值的“运行长度”(即连续出现的次数)来减少存储空间。RLE 在图像处理、文件压缩和机器学习中都有广泛应用,例如在 COCO 数据集中用于表示分割掩码。 1. RLE 的基本概念 定义: 游程 :一段连续的相同值。 编码 :将每个游程用一对值表示,通常是 (值, 长度) 或 (长度, 值)或(起点, 长度)。 对于二值mask编码有简化形式 交替存储连续的前景像素数和背景像素数。示例:11100111110 编码为 [3, 2, 5, 1] 存储前景像素的起点和长度。示例:11100111110 编码为 [0, 3, 5, 5] 示例: 假设有一个二值数组 [0, 0, 0, 1, 1, 1, 1, 0, 0]: 使用 RLE 编码后可以表示为 [(0, 3), (1, 4), (0, 2)],即: 0 出现了 3 次, 1 出现了 4 次, 0 又出现了...
CRNN: An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition
CRNN详解 名称:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 论文:https://arxiv.org/abs/1507.05717 会议:ICDAR 2015 github: https://github.com/meijieru/crnn.pytorch 一、网络结构 CRNN整体架构包含三部分: CNN特征提取层 输入图像通过多层卷积和池化操作提取局部特征,生成特征图(Feature Map)。例如,采用类似VGG的卷积层结构,逐步缩小空间维度并增加通道数,最终输出特征序列12。 RNN序列建模层 将CNN输出的特征序列转化为时序相关的序列特征。通常采用双向LSTM(BLSTM),捕捉前后文信息,解决传统RNN的梯度消失问题35。 CTC转录层 将RNN输出的概率序列映射为最终字符序列。CTC通过动态规划合并重复字符和空白标签,解决输入输出序列长度不一致的问题 二...
损失函数-Label Smoothing Cross Entropy
Label Smoothing Cross Entropy介绍 Label Smoothing 是一种正则化技术,用于改进分类任务中的交叉熵损失函数。传统的交叉熵损失函数假设目标标签是硬性(hard)的,即每个样本只有一个正确的类别标签,并且该类别的概率为 1,其他类别的概率为 0。然而,这种硬性标签可能会导致模型过拟合训练数据,尤其是在训练数据有限或标签可能存在噪声的情况下。 Label Smoothing 的基本思想是对目标标签进行“平滑”处理,将原本硬性的标签分布替换为一个更柔和的分布。这样可以减少模型对单一类别的过度自信,从而提高模型的泛化能力。 提出论文: Rethinking the Inception Architecture for Computer Vision 会议: CVPR 2016 Label Smoothing(标签平滑)的工作原理 1. 传统交叉熵损失 在分类问题中,交叉熵损失函数定义如下: Cross Entropy Loss=−∑i=1Cyilog(pi)Cross\ Entropy\ Loss = -\sum_{i=1}^{C} y_i...
损失函数-CTCLoss
什么是CTCLoss? CTC (Connectionist Temporal Classification) 是一种用于序列到序列学习的损失函数,特别适用于输入和输出长度不固定的场景。它在语音识别、手写体识别等任务中应用广泛。CTC 的核心思想是通过引入一个“空白”符号(blank token),允许模型对不定长的输入序列生成不定长的输出序列,同时避免了对输入和输出进行显式的对齐操作。 传统的序列标注方法通常需要将输入和输出进行严格的对齐(例如,逐帧标注),而 CTC 允许模型自动学习输入和输出之间的对齐关系,从而大大简化了训练过程。 CTCLoss 的工作原理 1. 输入与输出的关系 输入是一个不定长的序列,比如语音信号或手写笔迹的时间序列。 输出是一个较短的目标序列,比如文本转录结果。 输入和输出的长度可能不同,且没有明确的对齐关系。 2. 引入空白符号 CTC 引入了一个特殊的“空白”符号(通常记作 - 或 blank),表示某个时间步没有对应的输出。空白符号在最终的输出中会被移除。 3. 路径的概念 CTC 将输入序列到输出序列的所有可能对齐方式称为“路径”。例...
Mask2Former: Masked-attention Mask Transformer for Universal Image Segmentation
摘要 图像分割将具有不同语义(如类别或实例成员关系)的像素分组,每种语义选择定义了一项任务。虽然各项任务仅在语义上有所不同,但当前研究主要集中于为每个任务设计专门的架构。我们提出了掩码注意力掩码变换器(Mask2Former),这是一种能够处理任何图像分割任务(全景、实例或语义)的新架构。其关键组件包括掩码注意力,它通过将交叉注意力约束在预测掩码区域内来提取局部特征。除了将研究工作量至少减少三倍外,它在四个流行数据集上显著优于最佳专用架构。最值得注意的是,Mask2Former 在全景分割(COCO 上的 57.8 PQ)、实例分割(COCO 上的 50.1 AP)和语义分割(ADE20K 上的 57.7 mIoU)方面设定了新的最先进水平。 1. 引言 图像分割研究像素分组问题。像素分组的不同语义,例如类别或实例成员关系,导致了不同类型的分割任务,如全景、实例或语义分割。虽然这些任务仅在语义上有所不同,但当前方法为每个任务开发专门的架构。基于全卷积网络(FCN)的逐像素分类架构用于语义分割,而预测一组与单个类别相关联的二进制掩码的掩码分类架构在实例级分割中占主导地位。尽管这些...
Graph SAGE: Inductive Representation Learning on Large Graphs
Inductive Representation Learning on Large Graphs
Rethinking Table Recognitionusing Graph Neural Networks
Rethinking Table Recognitionusing Graph Neural Networks 会议: ICDAR 2019 论文地址:https://arxiv.org/abs/1905.13391 github: https://github.com/shahrukhqasim/TIES-2.0 [TOC] 摘要 文档结构分析,例如区域分割和表格识别,是文档处理中的复杂问题,并且是一个活跃的研究领域。深度学习在解决各种计算机视觉和机器学习问题方面的近期成功尚未反映在文档结构分析中,因为传统的神经网络不适合该问题的输入结构。本文提出了一种基于图网络的架构作为标准神经网络更好的替代方案来识别表格。我们主张图网络对于这些问题是一种更自然的选择,并探索了两种基于梯度的图神经网络。我们的提出的架构结合了卷积神经网络用于视觉特征提取以及图网络用于处理问题结构的好处。我们在实验上证明,与基线相比,我们的方法具有显著的优势。此外,我们还指出大规模数据集缺乏是结构分析领域深度学习研究的主要障碍,并提出了一个针对表格识别的新大规模合成数据集。最后,我们开源了我们的数据生成和图网络...
