【新知测评实验室】解谜扫描全能王——“智能高清滤镜”黑科技

目录

  • 一、“智能高清滤镜” 原理分析
    • 1.1、智能扫描引擎AI-Scan功能拆解
      • 1.1.1、**图像感知**
      • 1.1.2、场景化决策
    • 1.2、版面还原与识别技术分析
      • 1.2.1、元素检测和识别
      • 1.2.2、元素聚合
      • 1.2.3、版面识别
  • 二、深度测评——“智能高清滤镜”功能
    • 2.1、图像处理方面
    • 2.2、摩尔纹去除方面
    • 2.3、功能拓展方面
  • 三、 智能高清滤镜体验感受——“所拍即所得”

扫描技术已经被广泛应用于如办公(文件、名片、发票)、学习(笔记、试卷)、个人生活(证件、照片)、商务(收据、发票)、法律(合同、证据)等等各个领域。然而,现实图像中常常会出现一系列模糊、阴暗、褶皱、污渍、光线、透字等问题,如下面是一张很常见的笔记照片,照片中的褶皱和版面弯曲严重影响了图像质量和可读性,经过传统扫描工具如打印机、扫描仪扫描后仍然难以到达实用性和可用性。

近期,合合信息旗下扫描全能王全新上线了一款“智能高清滤镜”黑科技,使用“智能高清滤镜”时无需思考拍摄角度、光源、背景、褶皱,自动判定图像优化方式,实现模糊、阴暗、手指等干扰因素全处理。本篇文章将对此一探究竟,从深层原理和测试对比来揭开其神秘面纱。

一、“智能高清滤镜” 原理分析

1.1、智能扫描引擎AI-Scan功能拆解

“智能高清滤镜”的实现是基于智能扫描引擎AI-Scan的支持。该引擎从“图像处理、文字识别、版面还原”三个维度,从感知、认知到决策,用AI为图像质量自动“体检”,锁定问题并匹配对应优化方案,让图像处理更智能、文字识别更精准、版面还原“所拍即所得”。

智能扫描引擎AI-Scan主要包括两个部分:图像感知和场景化决策

1.1.1、图像感知

图像感知主要包括通识性的图像处理——在这个阶段,应用程序使用深度学习模型来识别和理解图像的内容。通过深度学习模型,应用可以感知到图像中的光照、阴影、颜色和倾斜角度等特。例如,对于手指的遮挡,它可以进行去手指处理;对于过暗或过亮的图像,它可以调整图像的亮度和对比度;对于倾斜的文档,它可以自动进行倾斜矫正等。这一步经常会用到直方图均衡化和透视变换。

直方图均衡化(Histogram Equalization)是一种增强图像对比度的方法,其主要思想是将一副图像的直方图分布变成近似均匀分布,通过重新分布图像的灰度级来增强图像的视觉效果从而增强图像的对比度。具体来说,直方图均衡化的步骤如下:

  1. 统计图像的灰度直方图:对图像中每个像素的灰度值进行统计,得到灰度级别与出现频次的关系。
  2. 计算灰度级别的累积分布函数(CDF:Cumulative Distribution Function):累积分布函数是指在图像中灰度值小于或等于某个灰度级别的像素点所占比例的累计分布函数,用于表示该灰度级别下像素点出现的累积概率。其数学公式表示为: C D F ( k ) = ∑ i = 0 k p ( i ) CDF(k) = ∑_{i=0}^{k}p(i) CDF(k)=i=0kp(i),其中k代表灰度级别,p(i)代表图像中灰度值为i的像素点占总像素点数的比例。
  3. 计算灰度级别的映射函数:将CDF线性映射到0-255的灰度级别范围内,得到一个灰度级别的映射表。
  4. 将映射表应用到原始图像:对图像中的每个像素,根据灰度级别映射表,将原始灰度值替换为映射后的灰度值。

以下是一段使用OpenCV进行直方图均衡化的代码。

import cv2
from matplotlib import pyplot as plt

img = cv2.imread("test.jpg", 0)
plt.hist(img.ravel(), 256, [0, 256])
plt.savefig("result.jpg", dpi = 300, bbox_inches = "tight", pad_inches = 0)

# dpi : dot per inch
# bbox_inches: if 'tight', try to figure out the tight bbox of the figure.
# pad_inches: amount of padding[填充] around the figure when bbox_inches is 'tight'.

plt.show()

直方图均衡化可以使图像的像素分布尽可能广泛,改善图像的对比度,而图像的透视变换则可以将图像从一个视角投影到另一个视角,从而改变图像的几何形状和视角,通常可以用于图像矫正、摄像头校正等领域。下图是透视变换的实验示例,可以看到透视变换不仅矫正了图像的视角,而且将弯曲的页面透射成了平面文档。

透视变换的步骤如下:

  1. 确定原图像和目标图像中至少四个对应点的坐标。其中三个点在原图像中确定了一个平面,对应的三个点在目标图像中也确定了一个平面。
  2. 使用这些对应点来计算透视变换矩阵。透视变换矩阵是一个3x3的矩阵,可以通过求解一个线性方程组来获得。常见的方法是使用OpenCV提供的函数cv2.getPerspectiveTransform()来计算透视变换矩阵。
  3. 使用透视变换矩阵对原图像进行变换。可以使用cv2.warpPerspective()函数来实现变换。这个函数会根据透视变换矩阵将原图像中的每个像素映射到目标图像中的对应位置,同时进行线性插值以获得更平滑的结果。

1.1.2、场景化决策

场景化决策根据图像感知的结果,进行通识性、场景化的判断。基于AI-Scan引擎,扫描全能王能够智能地决策如何优化文档的图像,进行场景化的图像处理。

比如:识别到办公文档的场景,便通过版面还原和机器学习技术,进行元素检测和识别,将文档图片区分为正文、标题、表格等不同的元素,并进一步将文字内容提取出来,提取之后通过元素聚合和版面还原,将文档内容的自动识别和分类,提高文档管理的效率;识别到PPT拍摄场景时,扫描全能王可以调整屏幕图像的角度和对比度、自动去除反光点、自动去除屏幕摩尔纹(如上图所示),并自动识别屏幕文字;识别到试卷拍照扫描场景时,能够一键清除手写痕迹(如下图)、自动计算并减弱试卷上背景纹理和反射干扰,提高图像质量和可读性。

1.2、版面还原与识别技术分析

在测评中,我详细关注了扫描全能王对文档版面的处理。版面还原与识别是图像处理和计算机视觉领域的重要分支,可以说是一个复杂且高度专业的任务,其不仅需要对各种元素进行精准定位,还要准确解析这些元素的内容及它们之间的关系。扫描全能王融合自研技术和前沿理论,创建了一套完整的版面处理流程,成功实现了精准的版面还原。

1.2.1、元素检测和识别

扫描全能王利用Layout-engine这样的版面分析框架,进行文档的初步元素检测和识别。在对文档图像进行版面分析时,同时进行实例级别的目标分割,将文档图像中不同语义类别的物体进行精确、有效地分割,将文本、图片、表格等不同类型的内容从背景中区分出来,以便更好地理解和处理这些信息。

它利用类似卷积神经网络(CNN)和Faster R-CNN(如下图)的深度学习模型,定位并识别文档中的元素,如文本、图表、图片等,处理的范围包括段落检测、表格检测、页眉页脚识别等。

上图展示了Mask R-CNN的框架结构,模型首先输入预处理后的原始图片,并将其送入特征提取网络中,以获得特征图。然后,在每个像素位置设定固定数量的ROIAnchor,并将这些ROI区域送入RPN网络进行二分类(前景和背景)以及坐标回归,从而获取经过精炼处理的ROI区域。

接下来,需要对这些ROI区域执行论文提出的ROIAlign操作。该操作包括两个主要部分:首先是对应匹配原图和feature map各自在相同位置上的像素点;接着是将feature map与固定的feature进行对应。

最终,在完成前面所有步骤之后,多个经过筛选、匹配和调整过程形成的ROI区域需进行多类别分类、候选框回归并引入FCN生成Mask等措施来完成实际分割任务。

1.2.2、元素聚合

在准确检测到元素后,我们需要对这些元素进行合理的聚合。元素聚合是指将识别到的文本、图片、表格等元素按照其在版面中的位置进行组合,以还原原始版面的结构和排列。如将相同段落的文字聚合在一起,形成完整的段落;将表格的行列单元聚合,生成完整的表格。在这个过程中,扫描全能王运用了类似图神经网络(GNN)的方法,构建一个图形模型来描述元素之间的关系,从而实现对元素的有效聚合。

图神经网络(Graph Neural Network,GNN 可以有效地处理具有复杂连接关系的非欧几里得数据,其核心思想是在图结构上进行信息传播和聚合,通过对每个节点和其邻居节点的信息进行计算和更新,逐步传播和聚合整个图的信息。学习过程可以分为两个关键步骤:消息传递和节点更新。

  1. 消息传递阶段:每个节点会从其邻居节点接收信息,并对接收到的信息进行聚合和转换。这一过程可以通过图卷积层(Graph Convolutional Layer)来实现,其中每个节点的特征信息会与其邻居节点的特征信息进行聚合和转换。具体的聚合方式可以是加权平均、最大池化等
  2. 节点更新阶段:将聚合好的信息和节点自身的特征进行融合,生成新的节点表示。这一过程可以通过激活函数、全连接层等操作实现。通过多层的节点更新,GNN 可以逐步融合和传播整个图的信息。

1.2.3、版面识别

在元素聚合完成后,需要识别这些元素的内容。识别文本、识别表格中的信息、解析条形码和二维码的数据等。这一步,扫描全能王使用了一种类似Transformer网络模型的结构。

Transformer网络是一种基于自注意力机制的神经网络模型,最初由Google Brain团队在2017年提出,被广泛应用于自然语言处理、计算机视觉等领域。它能够有效处理长距离的依赖关系,并且具有并行计算的优势,对大规模文档处理任务有着显著的效益,这使得扫描全能王能够高效地处理大规模文档处理任务,并且具有较好的准确性和效益。

如上图所示,Transformer的整体主要分为Encoder和Decoder两大部分。Encoder接收输入序列并将其转换为一系列向量表示,Decoder则基于这些向量表示生成目标序列。每个EncoderDecoder都由多层自注意力层和前馈神经网络层组成。输入的序列首先变成计算机便于处理的Embedding,然后Embedding传入Encoder进行编码,映射成隐藏层特征,经过Encoder后再结合上一次的output输入到Decoder中,最后用softmax计算序列后续的概率。

二、深度测评——“智能高清滤镜”功能

在深入剖析其原理后,我们下面开始测评扫描全能王的这款“智能高清滤镜”功能,为了有比较直观的结果,我们选取了市面上其他两款产品:A产品和B产品,进行横向对比。

2.1、图像处理方面

首先我们选取生活中常见的扫描书籍文档方面进行了测评,我们在拍摄角度较为倾斜和书籍页面弯曲的情况下拍摄了一张图片,并在同样的设备环境、同样的框选范围下进行了三次扫描,结果如下:

可以看到,虽然三者均能矫正倾斜的拍照角度,但只有扫描全能王能够自动矫正页面的弯曲情况,得益于其融入的透视变换原理,其能够将视觉上弯曲的文本重新投影,映射到平面方便阅读和归档管理。但A产品和B产品明显无法矫正页面弯曲的情形,且B产品出现了严重的文字模糊、失真等错误。

AI-Scan加持下的图像视觉矫正技术使得扫描全能王在处理复杂的扫描任务上具有独特的优势。它不仅可以处理平面文档的扫描,还可以处理各种曲面文档的扫描,甚至能够处理在极端角度下拍摄的文档。

2.2、摩尔纹去除方面

其次我们对扫描屏幕时摩尔纹去除方面进行了测评,我们同样拍摄了一张PPT的屏幕,并保存为图片,然后将该图片传入了所测评的扫描全能王和其他两款产品。

可以看到,扫描全能王基本完全消除屏幕摩尔纹,且文字和版面并未受到消除步骤带来的影响,而A产品在扫描后出现了剧烈的条纹、光点等摩尔纹现象,这些摩尔纹影响了图像的清晰度和阅读体验。B产品虽然在摩尔纹消除方面做了一定的优化,但字体被同时虚化模糊,且仍有轻微的摩尔纹现象。

扫描全能王“智能高清滤镜”的摩尔纹去除技术,可以帮助消除屏幕纹对画质的干扰,提高图像、文字清晰度,从而提升图像质量和用户体验。

2.3、功能拓展方面

而在测评中,我们发现除了“智能高清滤镜”功能之外,扫描全能王在其他拓展方面还提供了一系列实用功能。

其中的拍试卷功能通过自动识别和校正图像的方式,快速而准确地拍摄试卷,且可以一键去除手写痕迹,方便用户重新存档复习。而书籍一键扫描功能提供了一键拍摄双页功能,并可以实现去除背面字印、手指遮盖等,保证扫描准确率和清晰度的同时提升效率。而拍手写板和拍白板功能引入人工智能技术对反光区域进行处理,以消除或减弱反光现象。扫描全能王可在去除画面上反光、指印痕迹的同时,根据手写板笔迹的风格进行特征提取,并对手写文字进行特征编码,助力文档图像中反光区域文字的提取,尽可能还原笔锋、笔触等贴近真实的书写细节。

三、 智能高清滤镜体验感受——“所拍即所得”

体验完扫描全能王的“智能高清滤镜”的第一感受就是“所拍即所得”,“智能高清滤镜”能够一键满足用户办公、学习、个人生活、政务、商务等90%场景下的高清无损扫描需求。

智能高清滤镜视频演示

其内核采用智能扫描引擎AI-Scan,可以智能感知文档图像类型,自动检测问题并进行优化,自动识别多语言并进行精准处理,内置的场景化决策能够一键清除手指、摩尔纹、阴影等常见图像干扰因素,还原图像高清质感。

在办公场景中,智能高清滤镜可以用于快速的文档数字化。用户只需运用智能手机拍照扫描,智能高清滤镜将自动识别文档内容、优化图像质量,生成高质量的文档电子版,助力无纸化办公,以提高文档传输、存储和管理的效率和质量。

在教育领域,智能高清滤镜可以用于学生笔记的扫描和整理。无需考虑拍照的混乱背景和反光问题,智能高清滤镜将一键优化图像质量,识别文本信息,生成高清数码版笔记,以提高学生的学习效率和便利性。

在法律和会计领域,智能高清滤镜可以对法律文件和财务报表进行扫描,高清还原证件和证据材料,优化图像质量和识别文本信息,以提高法律和会计工作的效率和准确性。

总的来讲,扫描全能王刚上线的“智能高清滤镜”具有更为智能的图像处理能力、更为智慧的场景决策功能,更为强大的版面清晰度和还原度,给用户带来准确、高清、便捷的使用体验,提升生活与生产效率。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++类和对象】类有哪些默认成员函数呢?(下)

文章目录 一、类的6个默认成员函数二、日期类的实现2.1 运算符重载部分2.2 日期之间的运算2.3 整体代码1.Date.h部分2. Date.cpp部分 三. const成员函数四. 取地址及const取地址操作符重载扩展内容 总结 ヾ(๑╹◡╹)ノ" 人总要为过去的懒惰而付出代价ヾ(๑╹◡…

ffmepg滤镜

代码实现: 1.get_format() 这个是QSV硬件解码时的回调函数,在这里初始化hw_frames_ctx, get_format会在解码时被调用。因此对滤镜的初始化init_filter()应在得到第一帧数据后调用。 2.hw_frames_ctx,需要按照要求把他们传给对应的filter 3.然…

向量数据库 Milvus Cloud Partition Key:租户数量多,单个租户数据少的三种解决方案

三种解决方案 这个问题提出的时候,Milvus 的最新版本是 2.2.8,我们做个角色互换,在当时站在这个用户的角度,留在我们面前的选择有这么几个: 为每个租户创建一个 collection 为每个租户创建一个 partition 创建一个租户名称的标量字段 接下来,我们依次分析下这三种方案的可…

OPPO A57刷机资源(附简略教程)

https://www.123pan.com/s/hcAqVv-fpHWd.html提取码:buAp 图中画框的为必须下载的(xiaomiflash和twrp必须解压后使用) ​ 打开xiaomiflash点击driver点击install(就是框住的按钮)等待安装完成 ​用数据线将oppo a57与电脑连接&a…

【数学建模】逻辑回归算法(Logistic Resgression)

逻辑回归算法 简介逻辑回归与条件概率绘制sigmoid函数 简介 逻辑回归算法是一种简单但功能强大的二元线性分类算法。需要注意的是,尽管"逻辑回归"名字带有“回归”二字,但逻辑回归是一个分类算法,而不是回归算法。 我认为&#xff…

用easyui DataGrid编辑树形资料

easyui显示编辑树形资料有TreeGrid元件,但是这个元件的vue版本和react版本没有分页功能。virtual scroll功能也表现不佳。 我用DataGrid来处理。要解决的问题点: (1)如何显示成树形。即,子节点如何有缩进。 先计算好…

一、进入sql环境,以及sql的查询、新建、删除、使用

1、进入sql环境 》》》mysql -u root -p 》》》输入密码 2、sql语言的分类 3、注意事项: 4、基础操作: (1)查询所有数据库: show databases; 运行结果: (2)创建一个新的数据库&…

网络通信原理传输层TCP三次建立连接(第四十八课)

ACK :确认号 。 是期望收到对方的下一个报文段的数据的第1个字节的序号,即上次已成功接收到的数据字节序号加1。只有ACK标识为1,此字段有效。确认号X+1SEQ:序号字段。 TCP链接中传输的数据流中每个字节都编上一个序号。序号字段的值指的是本报文段所发送的数据的第一个字节的…

MongoDB 简介

什么是MongoDB ? MongoDB 是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个…

从SaaS到RPA,没有真正“完美”的解决方案!

众所周知,SaaS行业越来越卷,利润也越来越“薄”,这是传统软件厂商的悲哀,也是未来数字化行业不得不面对的冷峻现状之一。 随着基于aPaaS、低代码的解决方案之流行,SaaS行业变得越来越没有技术门槛,IT人员的…

win10安装mysql和c++读取调用举例

一、下载mysql8.rar解压到C盘(也可以解压到其他位置) 在系统环境变量添加JAVA_HOMEC:\myslq8,并在path中添加%JAVA_HOME%\bin; 二、以管理员身份进入命令窗口 三、修改配置文件指定安装路径和数据库的存放路径 四、键入如下命令初始化并启动mysql服务,然后修改登录…

使用qsqlmysql操作mysql提示Driver not loaded

环境: win10 IDE: qt creator 编译器: mingw32 这里简单的记录下。我遇到的情况是在IDE使用debug和release程序都是运行正常,但是当我编译成发布版本之后。老是提示Driver not load。 这就很奇诡了。 回顾了下编译的时候是需要在使用qt先编译下libqsqlmysql.dll的…

Android中如何不编译源生模块

如果想让自己的app 替换系统的app 比如使用闪电浏览器替换系统的Browser 首先把闪电浏览器放到 vendor/rockchip/common/apps Android.mk LOCAL_PATH : $(call my-dir) include $(CLEAR_VARS)LOCAL_MODULE : Lightning LOCAL_SRC_FILES : $(LOCAL_MODULE).apk LOCAL_MODULE_C…

Eclipse使用插件时提示Plugin Error loading shared libraries

项目场景: 使用Eclipse的过程中,依赖openCONFIGURATOR插件进行新建项目时,弹出如下的错误: Plugin Error loading shared libraries 以及具体的信息为: Can’t find dependent libraries 这里我使用的插件为openCONFIGURATOR插件 问题描述 如上场景,提示缺少动态链接库…

实战篇之基于二进制思想的用户标签系统(Mysql+SpringBoot)

一: 计算机中的二进制 计算机以二进制表示数据,以表示电路中的正反。在二进制下,一个位只有 0 和 1 。逢二进一 位。类似十进制下,一个位只有 0~9 。逢十进一位。 二: 进制常用运算 (位运算)…

Django框架 靓号管理(增删改查)

Django框架 靓号管理(增删改查) 新建一个项目 backend 使用pycharm创建app startapp app项目目录 C:\code\backend ├── app | ├── admin.py | ├── apps.py | ├── migrations | ├── models.py | ├── tests.py | ├── views.…

【设计模式】抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象…

Jenkins改造—nginx配置鉴权

先kill掉8082的端口进程 netstat -natp | grep 8082 kill 10256 1、下载nginx nginx安装 EPEL 仓库中有 Nginx 的安装包。如果你还没有安装过 EPEL,可以通过运行下面的命令来完成安装 sudo yum install epel-release 输入以下命令来安装 Nginx sudo yum inst…

神经网络基础-神经网络补充概念-14-逻辑回归中损失函数的解释

概念 逻辑回归损失函数是用来衡量逻辑回归模型预测与实际观测之间差异的函数。它的目标是找到一组模型参数,使得预测结果尽可能接近实际观测。 理解 在逻辑回归中,常用的损失函数是对数似然损失(Log-Likelihood Loss)&#xff…

1.物联网LWIP网络,TCP/IP协议簇

一。TCP/IP协议簇 1.应用层:FTP,HTTP,Telent,DNS,RIP 2.传输层:TCP,UDP 3.网络层:IPV4,IPV6,OSPF,EIGRP 4.数据链路层:Ethernet&#…