Document Dewarping with Control Points学习笔记

news2024/11/28 14:28:19

1 核心思想

论文:Document Dewarping with Control Points
代码:https://github.com/gwxie/document-dewarping-with-control-points
一种通过估计控制点和参考点来纠正失真文档图像的简单而有效的方法。
控制点和参考点由相同数量的顶点组成,分别描述矫正前后图像中文档的形状。 控制点是可控的,以便于交互或后续调整。 您可以根据不同的应用场景,灵活选择后处理方式和顶点数量。

在这里插入图片描述
图1所示。去扭曲变形架构。(a) 编码器-解码器架构被用作通用特征提取器来预测像素级的表达式,如(b)正向映射和©最近校正系统中的图像或反向映射。我们提出的稀疏点是基于仅利用的纠正。(d) 编码器架构来预测(e)控制点和参考点,从而以更灵活和实用的方式达到与(a)类似的效果。

本文提出了一种校正失真文档图像并精细去除背景的新方法。如图1(d)所示,我们利用编码器架构从图像中自动提取语义信息,用于预测图1(e)中的控制点和参考点。控制点和参考点由相同数量的顶点组成,分别描述了校正前和校正后文档在图像中的形状。然后,利用控制点与参考点之间的插值方法,将稀疏映射转换为反向映射,并将原始失真文档图像重新映射为校正后的图像。控制点灵活可控,便于与人互动调整次优点。实验表明,基于控制点的方法可以校正各种变形的文档图像,并在真实数据集上取得了较好的效果。此外,我们的方法可以在修正效果不理想的情况下进行多次编辑,提高了其实用性,从而缓解了端到端方法可操作性差的缺点。我们可以根据不同的应用场景灵活选择后处理方法和顶点数量。与像素级回归方法相比,控制点方法更加实用和高效。为了启发今后在这一方向上的研究,我们还提供了一个新的基于控制点的去扭曲变形文档数据集。

2 方法详细描述

2.1 定义

以往的研究将几何校正任务视为密集网格预测问题,将二维图像作为输入,输出一个正向映射(每个网格表示出扭曲输出图像中像素点的坐标,像素点对应出扭曲输入图像中的像素点)或反向映射(每个网格表示出扭曲输入图像中像素点的坐标)。我们的方法简化了这一过程,直接预测稀疏映射,然后使用插值将其转换为密集向后映射。
为了便于解释,我们定义以下概念:
顶点 表示文档图像中某个点的坐标。在本文中,我们可以通过改变坐标来移动顶点。
控制点 由一组顶点组成。如图2©所示,在失真图像上分布控制点,用以描述文档的几何变形。
参考点 由与控制点相同数量的顶点组成。如图2(d)所示,参考点描述规则形状。通过对控制点和参考点进行匹配,利用解翘曲网格实现文档的去翘曲。

在这里插入图片描述
图2所示。去扭曲变形管道。(a)输入变形的文件图像。(b)用于提取语义信息的编码器结构,这些语义信息将被用于预测©控制点和(d)参考点。然后,将稀疏映射转换为密集映射,分别通过(e)插值法和重映射法得到矫正后的图像。在这个管道中只使用了12个控制点。

2.2 去扭曲过程

图2展示了我们工作中的流程。首先,将变形文档的图像输入网络,得到两个输出分支;该方法采用编码器结构作为特征提取器,利用学习到的特征分别预测控制点和参考点,实现多任务预测。其次,如图1(e)所示,我们通过将控制点移动到参考点的位置并将其转换为像素级位置映射来构建矫正网格。为了移动控制点的位置,将稀疏映射转换为密集映射,我们在控制点和参考点之间采用了插值方法[11](TPS, Linear, Cubic等)。之后,从原始扭曲文档图像的一个地方提取像素,并映射到矫正图像的另一个位置。与以往基于DNN的方法相比,我们的方法简单易行。

2.3 网络体系结构

如图2和图3所示,我们的方法以扭曲变形文档图像为输入,预测控制点 R 31 × 31 × 2 \mathbb{R}^{31×31×2} R31×31×2和参考点 R 31 × 31 × 2 \mathbb{R}^{31×31×2} R31×31×2。控制点由 31 × 31 31 × 31 31×31个坐标组成,以匹配相同数量的参考点,从而构建矫正网格。由于参考点是由一个规则网格组成的,它们可以由水平方向和垂直方向 ( v ′ h ′ ) \left(\begin{array}{l} v^{\prime} \\ h^{\prime} \end{array}\right) (vh)之间的点的间隔来构造。
在这里插入图片描述
图3 网络体系结构。编码器提取图像特征并将其发送到两个分支。上面的分支是一个完全连接的神经网络,它预测参考点之间的间隔。下层分支是用于预测控制点的两层卷积网络。

在我们的网络中,编码器的前两层使用两个卷积层,其步幅为 2 2 2 3 x 3 3x3 3x3内核。受[21]架构的启发,我们在编码器架构中使用了相同的结构,包括膨胀残差块和具有堆叠膨胀卷积的空间金字塔。每次卷积后,应用批处理归一化和ReLU。然后,我们将最后一层的特征平坦化,并将其馈送到全连接网络中来预测间隔 ( v ′ h ′ ) \left(\begin{array}{l} v^{\prime} \\ h^{\prime} \end{array}\right) (vh)。同时,我们使用两层卷积网络预测控制点 R 31 × 31 × 2 \mathbb{R}^{31×31×2} R31×31×2,在第一次卷积后应用批处理归一化和PReLU。

2.4 训练损失函数

我们使用综合参考点和控制点作为基本真理,以监督的方式训练我们的模型。训练损失函数由两部分组成。一个用于回归点的位置,另一个是两个点在水平和垂直方向上的间隔。
平滑L1损失[7,13]用于控制点的位置回归,对异常值不太敏感。它的定义为:
z i = { 0.5 ( p i − p ^ i ) 2 ,  if  ∣ p i − p ^ i ∣ < 1 ∣ p i − p ^ i ∣ − 0.5 ,  otherwise  (1) z_{i}=\left\{\begin{array}{ll} 0.5\left(p_{i}-\hat{p}_{i}\right)^{2}, & \text { if }\left|p_{i}-\hat{p}_{i}\right|<1 \\ \left|p_{i}-\hat{p}_{i}\right|-0.5, & \text { otherwise } \end{array}\right. \tag1 zi={0.5(pip^i)2,pip^i0.5, if pip^i<1 otherwise (1)
L s m o o t h L 1 = 1 N c ∑ i N c z i (2) L_{s m o o t h L 1}=\frac{1}{N_{c}} \sum_{i}^{N_{c}} z_{i} \tag2 LsmoothL1=Nc1iNczi(2)
N c N_c Nc为控制点的个数, p i p_i pi p ^ i \hat{p}_i p^i分别表示真实的和预测的二维网格中的位置。
在这里插入图片描述
图4 微分坐标。我们使用微分坐标作为顶点坐标的另一种表示。 δ v δ_v δv δ h δ_h δh分别代表中心点在水平和垂直方向上的位移趋势。 δ δ δ表示交点与其连接点之间的局部位置相关性。

与人脸重点检测不同,文档图像的内容布局是不规则的。虽然平滑L1损失指导模型如何将每个顶点放置在一个近似的位置,但很难表示一个点相对于它的邻居或每个表面点的局部细节的关系。为了建立一个容错能力更强的模型来更好地描述形状,我们使用微分坐标作为中心坐标的替代表示。如图4所示, δ v δ_v δv δ h δ_h δh分别代表中心点在水平和垂直方向上的位移趋势,有助于保持相应方向上的相关性。同理, δ δ δ表示交叉口与两个方向的局部位置相关性,可定义为:
δ = ∑ j = 1 k ( p j − p i ) (3) \delta=\sum_{j=1}^{k}\left(p_{j}-p_{i}\right) \tag3 δ=j=1k(pjpi)(3)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/85502.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MIT张锋教授的Science论文,成功转化出一家新公司,融资2亿美元

基因治疗或基因疗法&#xff08;Gene therapy&#xff09;是利用分子生物学方法将目的基因导入患者体内&#xff0c;使之达成目的基因产物&#xff0c;从而使疾病得到治疗。作为疾病治疗的新手段&#xff0c;基因治疗已有一些成功的应用&#xff0c;并且科学突破将继续推动基因…

全栈Jmeter接口测试(八):jmeter接口自动化测试操作流程,计数器,定时器

Jmeter(16)&#xff1a;jmeter接口自动化测试操作流程 在企业使用jmeter开展实际的接口自动化测试工具&#xff0c;建议按如下操作流程&#xff0c; 可以使整个接口测试过程更规范&#xff0c;更有效。 接口自动化的流程&#xff1a; 1、获取到接口文档&#xff1a;swagger、…

用openCV在图片上绘画标记

1.在图片上画图&#xff08;直线&#xff0c;矩形&#xff0c;圆形&#xff0c;多边形&#xff09; import numpy as np import cv2img cv2.imread(watch.jpg,cv2.IMREAD_COLOR)#给图片加线#参数分别表示&#xff0c;起始和终止点的坐标…

Git---本地仓库有多条commit,如何push某一条commit到远端

默认情况下&#xff0c;git push会推送暂存区所有提交&#xff08;也即HEAD及其之前的提交&#xff09;&#xff0c;使用下面的命令可以改变此默认行为&#xff1a; $ git push <remotename> <commit SHA>:<remotebranchname>举例如下&#xff1a; git pus…

小美,这篇查询SQL执行流程你一定要看

前言 宿舍里&#xff0c;小A兴致满满的将刚写好的查询SQL执行流程文章通过微信发给小美&#xff0c;回想起昨晚透过窗户意外看到小美哭的梨花带雨&#xff0c;问过她室友才知道竟然是因为面试被SQL执行流程给难住了。心里暗自下决心&#xff1a;作为小美背后的男人&#xff0c…

MongoDB Node 驱动简介

MongoDB Node 驱动介绍 1. MongoDB数据库连接指南 使用原生的mongodb Node驱动连接MongoDB数据库。 1.1 数据库连接URI 数据库连接URI是一个指明了数据库地址、名称、用户名、密码的字符串&#xff0c;类似于网页链接。 1.2 Node驱动安装 使用Npm或者Yarn安装数据库驱动程…

LeetCode题解13 (102,226) 二叉树的层序遍历,翻转二叉树

文章目录二叉树的层序遍历(102)代码解答&#xff1a;翻转二叉树(226)代码解答:二叉树的层序遍历(102) 思路(前序,后序,中序遍历): 二叉树的层序遍历不同于二叉树的前序,后序,中序遍历,层序遍历是将二叉树的每一层从根部开始进行遍历&#xff0c; 将每一层的节点都放到1个集合中…

推断统计 | 学习笔记

一.概率与概率分布 概率论&#xff1a;为解决不确定性问题提供方法 1.随机事件及其概率 基本概念 试验&#xff1a;在相同条件下&#xff0c;对事物或现象所进行的观察。特点是可以在相同的条件下重复进行&#xff1b;每次试验的可能结果不止一个&#xff0c;但试验的所有可…

l2a股接口的委托队列有什么作用?

l2a股接口的委托队列是Level 2行情特有的功能&#xff0c;如下图&#xff0c;在传统交易页面中&#xff0c;可以看到个股封板涨停有35994手&#xff0c;但是不能具体看到各笔委托单的数量&#xff0c;不利于我们甄别究竟是主力在强势封板还是散户在跟风。 而在Level 2行情中可以…

高性能、强稳定的工业级服务器冗余方案是怎样的?

前言 服务器是工业数据采集与上位机进行通信的枢纽&#xff0c;一旦遭到攻击或者出现连接不稳定的情况&#xff0c;导致断开连接&#xff0c;工厂就会出现非计划性的停机停产。这种情况带来的损失是难以估量的。因此&#xff0c;为了保障自动化生产的稳定可控&#xff0c;服务…

关于Detectron库预训练模型的权重转换

关于Detectron库预训练模型的权重转换 最近在调试代码的过程中涉及到detectron库的使用&#xff0c;在模型训练前&#xff0c;主干网络的部分需要加载预训练模型&#xff0c;但是原始的预训练模型在detron库中的代码是不能直接使用的&#xff0c;需要通过转换工具对模型的键值…

Sentinel服务熔断降级

除了流量控制以外&#xff0c;对调用链路中不稳定的资源进行熔断降级也是保障高可用的重要措施之一。一个服务常常会调用别的模块&#xff0c;可能是另外的一个远程服务、数据库&#xff0c;或者第三方 API 等。例如&#xff0c;支付的时候&#xff0c;可能需要远程调用银联提供…

Redis Lua脚本 Debug

Redis 编程接口之Lua脚本 Redis 使用Lua脚本和Redis Functions扩展其功能。Redis提供编程接口&#xff0c;允许开发者在服务器执行自定义的脚本&#xff0c;对于不同的版本&#xff0c;实现的方式略有不同 Redis 7 及以上版本 使用Redis Functions 管理、运行脚本Redis 6.2及…

【20天快速掌握Python】day02-数据类型转换及运算符

1、数据类型转换 函数说明int(x [,base ])将x转换为一个整数float(x)将x转换为一个浮点数str(x)将对象 x 转换为字符串bool(x)将对象x转换成为布尔值转换成为整数 print(int("123")) # 123 将字符串转换成为整数 print(int(123.78)) # 123 将浮点数转换成为整数 …

腾讯云存储产品全线升级,满足更多高性能存储场景

数字经济时代&#xff0c;诞生了海量数据资源&#xff0c;促使数据存储技术也在不断推陈出新。12月1日&#xff0c;在2022腾讯全球数字生态大会存储专场上&#xff0c;腾讯云发布了多款云存储产品能力上新&#xff0c;并对分布式存储、高性能存储、日志大数据、云原生数据湖等产…

CMSIS hal库 标准库 pack(芯片支持包)

ARM Cortex™ 微控制器软件接口标准(CMSIS&#xff1a;Cortex Microcontroller Software Interface Standard) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层 CMSIS英文全称Common Microcontroller Software Interface Standard&#xff0c;☞通用微控制器软件接口标准&a…

OAuth2.0介绍

1. OAuth2.0介绍 OAuth&#xff08;开放授权&#xff09;是一个开放标准&#xff0c;允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息&#xff0c;而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。OAuth2.0是OAuth协议的延续版本&#xff0…

【蓝桥杯选拔赛真题51】Scratch赛车训练 少儿编程scratch图形化编程 蓝桥杯选拔赛真题讲解

目录 scratch赛车训练 一、题目要求 编程实现 二、案例分析 1、角色分析

python解决 某文库禁用文段批量下载 并保存到文档

嗨害大家好鸭&#xff01; 我是小熊猫鸭~ 大家是不是在写毕业论文的时候 需要参考某一段的内容 要用到复制粘贴&#xff0c;但是吧&#xff0c;某文库就需要付费&#xff0c; 就老难受了… 我们今天就来解决这个"老难受" 源码、资料点击此处 环境使用&#xff1…

项目实战案例丨教辅机构信息化平台跟着这个做

一. 基本简介 最近正值计算机专业的小伙伴忙着整理毕业设计&#xff0c;有不少童靴问辉哥&#xff0c;有没有合适的项目作为毕业设计项目。恰好辉哥这里就有一个适合作为毕设的项目&#xff0c;那么辉哥就写一篇文章&#xff0c;聊聊这个项目&#xff0c;希望可以对有需要的你…