图像处理黑科技——弯曲矫正、去摩尔纹、切边增强、PS检测

news2024/11/18 23:46:11

目录

  • 0 前言
  • 1 弯曲矫正
  • 2 去摩尔纹
  • 3 图像切边增强
  • 4 PS检测
  • 5 总结

0 前言

合合信息是行业领先的人工智能及大数据科技企业,专注文字识别领域16年,在智能文字识别及商业大数据等核心领域处于国内领先地位,全球企业和个人用户提供创新的数字化、智能化服务。合合信息提供的文字与图像处理黑科技已经不知不觉地影响了我们生活的方方面面,让我们来深入介绍一下那些你不曾注意到,但却实实在在给我们带来极大便捷的技术力量。

在这里插入图片描述

1 弯曲矫正

现代神经科学表明,哺乳动物大脑的初级视觉皮层的主要工作就是进行图像的字典表示,因为视觉是人类最重要的感觉——据不完全统计,至少80%以上的外界信息由视觉获得。然而,计算机获取图像的过程相当于用二维平面对三维客观世界进行降维表示,其中降低的维度称为深度,就像我们无法理解四维、五维等高维空间意义,二维平面图像因为维度丢失,导致图像处理的困难。

在这里插入图片描述

因为相机硬件不符合理论上透视相机模型针孔无限小的假设,所以真实图像会产生明显的径向失真——场景中的线条在图像中显示为曲线。径向畸变(Radial Distortion)有两种类型:筒体畸变(Barrel Distortion)与枕形失真(Pincushion Distortion)。此外由于相机组装过程中,透镜不能和成像面严格平行,会引入切向畸变(Tangential Distortion),再加上视觉文档图像的拍摄视角一般不垂直于文档平面,产生文档图像的变形和扭曲。例如比较厚重的书籍在展开后其书脊两侧文字区会出现向内弯曲的情况。由此可见,扭曲文档的形变情况要比平面文档要复杂,对其分析和矫正的难度也比平面文档图像要高。业界针对扭曲文档图像的矫正方法主要有:

  • 基于柱面模型的方法。其核心思想是将文档视为柱面,先定位出所有的文本基线,再根据这些基线计算柱面模型弯曲函数,最后利用该模型对原文档图像进行矫正;
  • 基于硬件的方法。该类方法通常使用特制的硬件设备扫描纸张的三维形状信息。比如采用结构光源来对文档进行扫描从而获取文档确实的深度信息,然后根据深度信息对文档图像进行矫正;
  • 基于图像切分的方法。其核心思想是将扭曲文档图像切分成多个近似平面区域,分别对它们进行独立矫正,最后把所有矫正后的区域拼接起来恢复正视图。

然而这些方法都有各自的不足之处:基于柱面模型的方法在定位文本基线时会出现基线断开的情况,在扭曲比较严重的文本区域还可能会定位错误,另外,在复杂的版面或包含有图像的文档中,有效的文本基线较少,柱面模型的精度也因此而下降;基于硬件的方法虽然精度高,但因为受限于硬件成本,对于合合信息主营的民用商业化应用而言,不具有普适性——不能奢望用户有这种昂贵的设备; 基于图像切分的方法只适用于纯文本校正,对于有公式或图像的信息无法处理。
合合信息采用基于偏移场的学习方法大大改善了上述缺陷。偏移场是一种具有中间监督的堆叠U-Net网络,用于直接预测从扭曲图像到校正图像的正向映射。通过扭曲未失真的图像创建高质量的图像合成数据集,而数据驱动和学习的方法可以极大地涵盖各种真实世界条件,提高了模型泛化能力,达到商用级别。偏移场学习对网络进行端到端训练,因此没有使用手工制作的低级特征,所以在提供大规模训练数据的前提下,它可以处理各种文档类型——克服了前述不能处理公式和图像的问题;且可以作为一种有效的方法部署在现实世界中应用。

2 去摩尔纹

因为相机拍摄电子屏幕时,显示设备的发光点阵与相机传感器阵列发生混叠,产生了摩尔纹现象。屏幕图像摩尔纹表现为叠加在图像上的条纹,颜色和形态多变。图像中的摩尔纹在大范围的空域和频域内与原始图像信号混合,通常覆盖整张图像。摩尔纹图案不仅随着图像的不同而变化,而且在同一图像中随着空间位置的变化而呈现不同的色彩和形态。如果拍摄距离或拍摄角度略有变化,摩尔纹图案可能会有很大差异。另外,摩尔纹图案也与相机种类、屏幕种类和图像内容有关。摩尔纹的出现严重影响了成像的视觉质量,因此采用后处理技术去除图像摩尔纹有其必要性。如图所示为图像摩尔纹的实例,可以看出,摩尔纹可以呈条纹状、网格状或波纹状,纹理的走向和弧度都有差别,颜色也各异,因此去摩尔纹技术研究富有挑战性。

目前抑制摩尔纹的常见方法是在成像前进行预处理,例如,在相机镜头前放置抗混叠滤波器,对彩色滤波阵列(CFA)的输出应用精确插值算法。另外,在专业摄影领域,目前最有效的去摩尔纹方法是借助专业图像处理软件的后处理方法——Adobe Photoshop是最常用的软件之一。Photoshop简称“PS”,是由Adobe Systems公司开发及发行的图像处理软件,主要用于处理由像素构成的数字图像,有众多的编修和绘图工具,可以高效地进行图像的编辑工作。然而这些预处理方法对已获取摩尔纹图像,特别是屏幕图像的去摩尔纹算法的后矫正没有普适性的帮助——甚至需要用户掌握专业软件。

在这里插入图片描述
近年来,深度学习正在引领一场计算机视觉和图像处理领域的革命。例如:

  • 解码器网络。该网络由多个卷积层和反卷积层构成,学习从降质的噪声图像到原始图像的端到端映射。卷积层作为特征提取器,提取图像的高层级特征同时去除噪声。反卷积层用来恢复图像细节。跳过连接对称的卷积层和反卷积层,可以加快训练的收敛速度,使模型收敛到更佳的局部最优值。跳过连接允许信号从高层直接反向传播到低层,解决了梯度消失的问题,使得训练深度网络更容易,让模型具有更优异的性能。此外,跳过连接将图像细节从卷积层直接传递到反卷积层,有助于恢复原始图像。该算法可用于图像复原任务如图像去噪和超分辨率等;
  • 前馈卷积神经网络。该算法端到端的学习从噪声观测到干净图像的映射,利用残差学习和批归一化方法加速训练过程并提高去噪性能,可以实现未知噪声水平的高斯去噪;
  • 超分辨率重建。采用卷积神经网络将低分辨率图像插值后的结果作为网络输入,学习由插值后的图像到高分辨率图像之间的映射关系,该映射在概念上由三个操作组成,首先提取相应的图像块并将其表示为高维向量,然后将此输入高维向量非线性地映射到高分辨率的高维向量上,最后根据学习到的映射关系生成高分辨率图像。

如图所示,合合信息的去摩尔纹技术已经相当成熟。

在这里插入图片描述

3 图像切边增强

图像切边增强是图像分割的子课题,也是图像处理和计算机视觉中的重要工作,近年来也是计算机视觉领域的研究热点之一,在目标检测、识别、分类等领域中得到广泛的应用。图像分割实质把人们关注的部分从图像中提取出来,进一步对图像有用信息进行分析和处理。目前根据分割原理分为:

  • 基于边缘的分割算法,此类方法假设不同的区域之间的边缘上像素灰度值的变化往往比较剧烈,进而利用图像一阶导数的极大值或二阶导数的过零点信息来提供判断边缘点的基本依据,进一步还可以采用各种曲线拟合技术获得划分不同区域边界的连续曲线;

  • 基于阈值的分割算法,阈值分割是常见的直接对图像进行分割的算法,根据图像像素的灰度值的不同而定。其基本原理是通过设定不同的特征阀值,把图像像素点分为具有不同灰度级的目标区域和背景区域的若干类对应单一目标图像;

  • 基于区域的分割方法。以直接寻找区域为基础的分割技术,具体算法有区域生长和区域分离与合并算法%。区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标的提取。而分裂合并可以说是区域生长的逆过程。它是从整个图像出发,不断分裂得到各个子区域,然后再把前景区域合并,得到前景目标,继而实现目标的提取。基于区域的分割算法对于较均匀的连通目标有较好的分割效果。但需要人为的选取种子,且对噪声较敏感,可能会导致区域内有空洞;

  • 基于聚类的分割算法。把像素点样本集划分为独立的区域,同一区域内的像素相似度高,不同区域之间相似度小。早期的K-means算法通过初始化一定数量聚类中心后,通过计算各个像素点到聚类中心距离来度量相似度,相似度高的像素点完成迭代聚类;模糊聚类算法则通过在计算距离时应用隶属度函数,能更加准确的实现聚类,但是计算复杂度也高。

    在这里插入图片描述

4 PS检测

随着 Photoshop 的不断发展,技术水平的不断提高,应用 PS 可以对图像进行各种操作,例如美化、分割、抠图等,并且操作后的图像不会显得很突兀。然而,在高速发展的数字信息时代,信息安全是我们不容忽视的问题,若利用 PS 对图片进行恶意的复制、修改、删除或添加等,会导致非常严重的后果。高质量的 PS 图像很难用肉眼识别出来,采用一种合适的方法对更改图像进行识别是非常必要的。基于图像特征检测与匹配的方法是PS检测领域的常用技术。

最传统和经典的特征点检测方法是尺度不变特征转换(Scale-Invariant Feature Transform, SIFT),SIFT的核心原理是:基于拉普拉斯金字塔,在不同尺度空间中查找和定位鲁棒性关键点;基于HOG实现旋转不变性并生成特征描述子。主要的步骤如下:

  • 尺度空间关键点检测与定位
    为使特征描述具有尺度不变性,SIFT在尺度空间上寻找关键特征点。考虑到图像特征往往具有高频特性,使用拉普拉斯金字塔构造图像尺度空间。拉普拉斯金字塔已由各尺度图像局部极值点构成,SIFT更进一步检测金字塔局部极值点作为粗关键点。考虑到上述粗关键点的求取在拉普拉斯尺度空间内进行,该空间在突出特征响应的同时也具有很强的边缘响应,而一旦特征点落在图像边缘上就会带来不稳定性。这是因为:① 图像边缘上很难定位到某个具体像素点,具有歧义性;② 边缘点容易受噪声干扰。因此还需要消除上述修正点的边缘响应。SIFT中借鉴了Harris角点检测的思路消除边缘响应。设每个检测点的Hessian矩阵为

H = [ f x x f x y f y x f y y ] H=\left[ \begin{matrix} f_{xx}& f_{xy}\\ f_{yx}& f_{yy}\\\end{matrix} \right] H=[fxxfyxfxyfyy]

二阶偏导项通过有限差分法取得。要排除边缘点,只需使式的响应值尽可能大——趋近角点而非边缘,在SIFT中即为

t r ( H ) 2 det ⁡ ( H ) < ( γ + 1 ) 2 γ \frac{\mathrm{tr}\left( \boldsymbol{H} \right) ^2}{\det \left( \boldsymbol{H} \right)}<\frac{\left( \gamma +1 \right) ^2}{\gamma} det(H)tr(H)2<γ(γ+1)2

至此,就得到了图像全部的尺度不变性特征点。

  • 特征点特征方向分配
    SIFT为各特征点分配特征方向 θ \theta θ,这样在不同的图片中,同一个特征会被扭转到相同的基准角进行比较,实现特征描述的旋转不变性,如图所示。下面阐述具体步骤。首先以特征点 X = ( x , y , σ ) T X=\left( x,y,\sigma \right) ^T X=(x,y,σ)T为中心,选取半径 的区域,计算各像素梯度。以特征点为中心,用 的高斯核对区域进行加权,以综合各像素对特征点梯度的贡献(越远的像素点贡献越小)。

在这里插入图片描述

加权完毕后,构造一个0~360°范围,每10°一个直方柱的HOG,统计上述区域的梯度信息。具体而言,区域内梯度方向为0~9°的像素,其梯度幅值的加权值相加构成HOG第一直方柱的高,其余同理。HOG统计完毕后,其主峰代表的梯度角度范围包含了特征点的特征主方向 θ m a i n \theta _{main} θmain,通过二次曲线插值拟合公式,从第 i i i个直方柱的角度范围估计精确的 θ m a i n \theta _{main} θmain。每个特征点除了必须分配一个主方向外,还可能有一个或多个特征辅方向 θ e l s e \theta _{else} θelse,其定义为:当存在另一直方柱高度大于主峰高度80%时,该旁峰所代表的的方向角即为辅方向。增加辅方向的目的是为了增强图像匹配的鲁棒性,将主方向、辅方向合成为特征点的特征方向 θ = [ θ m a i n , θ e l s e ] T \theta =\left[ \theta _{main},\theta _{else} \right] ^T θ=[θmain,θelse]T。至此,特征点的表述形式增强为 X = [ x y σ θ ] T \boldsymbol{X}=\left[ \begin{matrix} x& y& \sigma& \boldsymbol{\theta }\\\end{matrix} \right] ^T X=[xyσθ]T,同时具有尺度不变性和旋转不变性

  • 生成SIFT特征描述子
    对特征点 X = [ x y σ θ ] T \boldsymbol{X}=\left[ \begin{matrix} x& y& \sigma& \boldsymbol{\theta }\\\end{matrix} \right] ^T X=[xyσθ]T,以 ( x , y ) \left( x,y \right) (x,y)为中心,将其邻域划分 d × d d\times d d×d个Cell。每个Cell边长为 3 σ 3\sigma 3σ。为保证特征点的旋转不变性,需要将上面的邻域旋转 进行特征方向对齐,旋转半径为邻域对角线长度的一半,旋转后特征点邻域的实际大小为 ( 2 r + 1 ) × ( 2 r + 1 ) \left( 2r+1 \right) \times \left( 2r+1 \right) (2r+1)×(2r+1),旋转完毕后,将该邻域重采样为6×16像素的数字窗口。计算数字窗口内各像素梯度。为防止窗口边界或某个像素梯度方向因噪声干扰产生突变,SIFT以特征点为中心,对梯度幅值进行高斯滤波。必须指出,HOG算法中并没有数字窗口,所以无需滤波操作。

虽然SIFT、SURF等特征描述算法的性能优越,但其特征描述占用的内存和特征匹配所耗费的时间不能忽视。 举例而言,一个128维(Float类型)SIFT描述子需要512B内存,而对于同样一个128维二进制描述子,仅需16B内存,且两个二进制串通过汉明距离可以快速进行特征匹配。因此二进制特征检测匹配算法具有重要意义,简单介绍其中的BREIF算法。

主要算法步骤如下:

  • 通过FAST、SIFT等方式检测和定位图像特征点;
  • 以某个特征点 为中心,取一个 大小的Patch并对其高斯滤波(9×9高斯核)降噪;
  • 在Patch内以高斯分布随机选取 N N N个像素点对,即离特征点越近的像素点,对特征描述的贡献越大;
  • 采用如下特征描述映射对 N N N个像素点对进行二进制编码,生成描述子

T ( M ; X , Y ) = { 1 , f ( X ) < f ( Y ) 0 , e l s e T\left( M;X,Y \right) =\begin{cases} 1, f\left( X \right) <f\left( Y \right)\\ 0, else\\\end{cases} T(M;X,Y)={1,f(X)<f(Y)0,else

其中 f ( ⋅ ) f\left( \cdot \right) f()是像素强度。

BRIEF算法形成的描述对旋转操作非常敏感,当目标图像旋转角度增大时,BRIEF描述子的匹配结果极大降低,如图所示(纵轴为匹配性能,横轴为旋转角度)。

在这里插入图片描述

5 总结

介绍了这么多黑科技之后,想必大家对智能文字处理领域有了一定了解。合合信息的智能文字识别应用开发宗旨就是为了让世界更高效!合合信息深耕人工智能16年,全球累计用户下载量23亿,享有国内外发明专利113项,在顶级AI竞赛获得15项世界冠军,提供行业智能解决方案30个。合合信息提供了深受全球用户喜爱的效率工具,例如C端的名片全能王、扫描全能王、启信宝等。相信合合信息在模式识别、深度学习、图像处理、自然语言处理等领域的深耕厚积薄发,用技术方案惠及更多的人。

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

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

相关文章

代码随想录动态规划——一和零

题目 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的大小&#xff0c;该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&#xff0c;集合 x 是集合 y 的 子集 。 示例 1&#xff1a; 输入&#xff1a;strs [“10…

Oracle Unifier 系统架构简述(安装部署)

关于Oracle Primavera Unifier 的应用架构&#xff0c;其实在我之前的博客已有介绍相关内容 谈谈 Oracle P6 , Unifier 和其他应用系统间的联系https://campin.blog.csdn.net/article/details/104972949 从官方文档方面&#xff0c;其实在《unifier_performance_and_sizing_g…

【C语言】全面解析数据在内存中的存储

文章目录前言类型的基本分类整型浮点数自定义类型整型在内存中的存储原码、反码、补码大端和小端如何判断编译器是大端还是小端浮点数在内存中的存储总结前言 C语言中有char、short、int、long、long long、float和doubole这些数据类型。这些数据类型也叫内置类型。 所占存储空…

JECloud微服务低代码平台重大发布。

JECloud微服务低代码平台【1.0.0】版升级发布&#xff0c;本次发布内容如下&#xff1a; JECloud微服务低代码平台是一款基于元数据领域模型构建的低代码开发平台&#xff0c;其底层采用微服务与微应用构建底层框架&#xff0c;并基于基础框架构建各核心微服务模块来实现低代码…

手撕七大排序 (四)

归并排序归并排序递归写法一. 基本概念二. 图解归并排序递归写法 一. 基本概念 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子序列合并…

数据结构与算法——链表(双向链表,顺序表与链表的比较)

&#x1f353;个人主页&#xff1a;bit.. &#x1f352;系列专栏&#xff1a;Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 目录 一.双向链表 二.双向链表的对称性&#xff1a;&#xff08;设指针p指向某一结点&#xff09; 1.双向链表的插入 2.双向链表的删除 …

浏览器中的页面循环系统

【】渲染进程中有个主线程处理安排好的任务&#xff0c;为了在线程运行过程中接收并处理新任务&#xff0c;引入了事件循环机制&#xff1b;为了处理其他线程发送来的任务&#xff0c;引入消息队列&#xff1b;为了处理其他进程发送来的任务&#xff0c;渲染进程专门有一个IO线…

【数据结构初阶】二、顺序表的实现

目录 一、线性表 二、顺序表 2.1 顺序表概念及结构 2.2 顺序表接口实现 2.2.1 顺序表初始化 2.2.2 顺序表的销毁 2.2.3 顺序表的打印 2.2.4 顺序表增加数据&#xff08;插入&#xff0c;头插、尾插&#xff09; 2.2.5 顺序表删除数据&#xff08;删除&#xff0c;头删…

Uniapp集成腾讯IM+音视频通话

腾讯IM(包含界面)源码下载相关配置 传送门&#xff1a;https://cloud.tencent.com/document/product/269/36887 传送门&#xff1a;https://github.com/TencentCloud/TIMSDK/tree/master/uni-app vue2 vue3都可 笔者用的vue2 解压文件 拖到编辑器 #项目右键 在命令行窗口打开 …

Promethues原理详解

目录 引言 一、Prometheus概念 1.1、什么是Prometheus 1.2、Zabbix和Prometheus区别 1.3、Prometheus的特点 二、运维监控平台设计思路 三、Prometheus监控体系 3.1、系统层监控&#xff08;需要监控的数据&#xff09; 3.2、中间件及基础设施类监控 3.3、应用层监控…

语音合成经典模型结构介绍

(以下内容搬运自 PaddleSpeech) Models introduction TTS system mainly includes three modules: Text Frontend, Acoustic model and Vocoder. We introduce a rule-based Chinese text frontend in cn_text_frontend.md. Here, we will introduce acoustic models and voc…

XDataverse免费的统一数据库管理工具

XDataverse产品简介 XDataverse是一款通用的数据库管理工具&#xff0c;主要管理关系型数据库&#xff0c;同时也支持一些其余类型的数据库&#xff0c;比如Redis。其主要功能有 支持主流关系型数据库的常规操作&#xff0c;比如MySQL,SQLServer,SQlite,SQLCE&#xff0c;Postg…

机器学习 逻辑回归(2)softmax回归多类别分类-鸢尾花案例

机器学习 逻辑回归之softmax回归多类别分类-鸢尾花案例一、前言二、假设函数三、One-Hot 独热编码四、代价函数五、梯度下降六、原生代码实现6.1 加载并查看数据6.2 添加前置与数据分割6.3 迭代训练6.4 验证数据七、sklearn代码实现八、参考资料PS&#xff1a;softmax回归损失函…

[时间序列预测]基于BP、LSTM、CNN-LSTM神经网络算法的单特征用电负荷预测[保姆级手把手教学]

系列文章目录 深度学习原理-----线性回归梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网络&#xff08;RNN、LSTM&#xff09; 时间序列预测-----基于BP、LSTM、CNN-LSTM神经网络…

安卓开发Android studio学习笔记14:用户注册登录(案例演示)

Android studio学习笔记第一步&#xff1a;配置activity_information.xml第二步&#xff1a;配置activity_registration.xml第三步&#xff1a;配置strings.xml第四步&#xff1a;配置InformationActivity第五步&#xff1a;配置RegistrationActivity第六步&#xff1a;运行结果…

二叉搜索树

文章目录二叉搜索树1. 概念2. 模拟实现二叉搜索树2.1 准备工作 创建类2.2 查找方法2.3 插入方法2.4 删除方法3. 性能分析二叉搜索树 前言 &#xff1a; 1. 概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树&#xff0c;或者是具有以下性质的二叉树: 若它的左子树不…

学点高端技术:基于密度的聚类算法——FDBSCAN算法

机器学习、人工智能各类KNN算法层出不穷&#xff0c;DBSCAN具有强代表性&#xff0c;它是一个基于密度的聚类算法&#xff0c;最大的优点是能够把高密度区域划分为簇&#xff0c;能够在高噪声的条件下实现对目标的精准识别&#xff0c;但该算法当前已远不能满足人们对于高效率、…

零基础自学javase黑马课程第二天

零基础自学javase黑马课程第二天 ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&#x1f39e;2022年10月16日&#…

【电子技术基础(精华版)】直流稳压电路

前期我们了解了一些关于直流稳压电源的基础知识&#xff0c;为了更好地完善职教高考电子技术专业的需求&#xff0c;接下来我会更新【电子技术基础&#xff08;精华版&#xff09;】&#xff0c;从中可以让更多的职教高考生有效地复习。 由于本人是山东省的一位博主&#xff0…

3、SySeVR测试(上)

一、准备 1、将测试代码放在/home/test目录下&#xff1b; 2、将测试数据导入joern 在/home/SySeVR/joern-0.3.1查看是否存在.joernIndex文件&#xff0c;有的话&#xff0c;需要删除。 删除之后&#xff0c;将测试数据导入joern: java -jar /home/SySeVR/joern-0.3.1/bin/jo…