一种考试答题卡系统智能识别分析方法与流程

文档序号:17589365发布日期:2019-05-03 21:37阅读:1405来源:国知局
一种考试答题卡系统智能识别分析方法与流程

本发明涉及一种考试答题卡系统智能识别分析方法。



背景技术:

目前,现阶段的答题卡识别存在图像不稳定性,缺少大数据分析、效率低、不能识别具体错误知识点等现状问题。由于考生作答习惯不规律,而且考试答题卡样式多变,产生错误结果不能及时干预和监控。



技术实现要素:

本发明要解决的技术问题是克服现有技术中答题卡识别存在图像不稳定性的缺陷,提供一种考试答题卡系统智能识别分析方法。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明是利用图像识别技术,采用价格相对廉价的数码相机、扫描仪等输入设备对考生答题卡上的信息进行采集,采集之后智能存入计算机数据库,最后利用数字图像处理的技术将考生的基本信息和试卷答案进行智能识别,存入新的数据库。同时具有实时监督的特性,当试卷检测出现问题的时候,能够迅速做出反应,进行处理,还可以随时观察阅卷的状态,适时智能分析出试卷各项得分和总分,并智能将考生错误知识点归纳汇总。

具体包括以下步骤:

s1:对图像预处理

对考生答题卡的图片进行图像灰度化、图像二值化、图像去噪、形态学处理;

所述图像二值化是指将灰度图像经过适当的阈值筛选反映出来图像整体;

所述的形态学处理包括膨胀和腐蚀;

s2:检测图像倾斜度并进行旋转校正,形成独立的峰值点,读取图像进行二值化;

s3:边缘检测提取

边缘检测提取图像中不连续部分的特征,根据闭合连续边缘来确定具体区域,将具有相同特征的区域划分在一起,区域之间由边缘进行分界,边缘检测的边缘定义为图像中灰度值发生急剧变化的区域边界;图像灰度变化情况用图像灰度分布梯度反应,通过对原始图像微分技术构造边缘检测算子来进行边缘检测,具体包括图像滤波、图像增强和图像检测;然后进行canny边缘识别算法;

s4图像识别

包括识别点定位和仿射变换;所述识别点定位指先利用凸包算法将图像中的包含最大轮廓的点集筛选出来,在点集中查找能够形成最大四边形面积的四个点,即为答题卡的识别点,再用叉积的将四个定位点的顺序和位置进行标识;

所述仿射变换是指对有发生形变的答题卡图像利用仿射变换进行矫正。

本发明所达到的有益效果是:本发明通过将图像预处理技术中的图像灰度、图像二值化、图像去噪、形态学处理逐项分解运算;利用监测图像倾斜度及旋转校正技术,形成独立的峰值点,读取图像进行二值化;沿用边缘监测技术,通过对原始图像微分技术构造边缘监测算子监测,形成图像滤波、图像增强、图像检测、canny算子、canny边缘识别算法;采用图像识别点定位与仿射变换进行数据图像识别分析。可实现答题卡智能高速识别,图像精度更高,效率高,不局限特定扫描设备,对批量扫描结果的大数据挖掘分析,能智能识别出具体错误知识点和智能统计归纳。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为图像膨胀和腐蚀的结果;

图2边缘识别算法流程示意图;

图3位凸包算法示意图;

图4仿射变换效果图。

具体实施方式

以下对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例

1.图像预处理技术

1.1图像灰度化

彩色图像的每个像素的颜色都是由红(r)、绿(g)、蓝(b)三种颜色分量组成的,rgb颜色模式是从光学原理上进行颜色调配的,每种颜色都有255种灰度值可以取,0代表最暗的黑色,反之255表示白色。灰度图像是将r、g、b三个分量值设置为相同的特殊彩色图像。灰度图像的图像特征描述并没有改变,仍然可以反应出整个图像整体和局部的亮度和色度特征。

图像灰度化就是将彩色图像转化为灰度图像的过程。由于处理彩色图像需要rgb三个通道,时间开销比较大,图像灰度化就是将三通道的数据传输变为单通道,这样可以减少图像处理过程中的计算量。图像灰度化减少图像的复杂度和信息处理度。图像灰度化的几种方式有

(1)取单分量法

三通道图像中r,g,b三个分量的值可以根据实际需要取任意一个分量值作为灰度图像的灰度值。灰度化公式如下:

gray=b;

orgray=g;

orgray=r;

(2)最大值法

首先计算r,g,b三个分量中的最大值,然后将最大者作为灰度化后的结果,即:

gray=max(r,g,b)

(3)平均值法

该方法先计算三个分量的平均值,然后将平均值作为灰度图像的灰度值,公式如下:

gray=(b+g+r)/3

在图像灰度化时,加权平均法是目前最常用的方法。因为加权平均法根据人眼对三原色分量的敏感程度分配各自不同的权值,这样的灰度化结果更为真实合理,更符合实际应用。

1.2图像二值化

图像二值化的过程是将灰度图像经过适当的阈值筛选反映出来图像整体。图像中将所有大于阈值的灰度值设置为最大,所有小于阈值的灰度值设置为最小。这样的处理整个图像只有两个灰度值即黑白。

其中g(x,y)表示输出灰度值,f(x,y)表示图像输入灰度值,t代表阈值。上式表示所有小于t的灰度值都取0,显示为黑色设定为背景;所有大于等于t的灰度值取255,为白色默认为目标图像。阈值是将目标图像和背景图像分开的标尺,阈值选取的原则是既要保存图像的关键信息,又能够减少噪声的干扰。

图像二值化过程在整个图像预处理中占比较重要的位置。全局阈值法指的是在图像二值化过程中只使用一个全局阈值,图像中每个像素的灰度值都与这个全局阈值进行比较,若大于它,则取白色;否则,取为黑色。全局阈值法的算法简单,算法的时间复杂度低,能够将目标图像和背景分离清晰,但对于灰度值比较分散,目标图像变化率和噪声都比较大的情况二值化效果不明显。

为了解决这种情况,引入了局部阈值法。局部阈值法的阈值是通过一定范围内的灰度值共同确定的,将每个部分的图像灰度均值作为该块图像的阈值自动确定出不同阈值,自适应二值化处理。局部阈值选取一般将图像划分为若干子图像,在每个子图像区域上使用整体阈值法,从而可以构成整幅图像的局部阈值法。它在位置和灰度值上同时具有较强的一致性和相关性,一般用于干扰比较严重、品质差的图像,但实现速度慢,在背景区域受到干扰的情况下二值化效果不明显。

无论是全局阈值法还是局部阈值法,阈值的选取也就变得至关重要。选取阈值有许多种方法。在这里主要介绍三种方式:

(1)平均灰度值法:计算所有像素灰度值的平均值,扫描图像的每个像素值,若像素值大于平均值,则设为255(白色),像素小于平均值设为0(黑色)。但是使用平均值作为二值化阈值可能导致部分对象像素或者背景像素丢失,二值化结果不能真实的反应源图像的信息。

(2)最大类间差法(otsu算法):主要是实现阈值的自动选取otsu算法的基本思想是用某一假定的灰度值将图像的灰度分为两组,分别计算这两组的像素点数和灰度平均值,然后计算这两组数据的类间方差,当类间方差最大的时候,该灰度值就是图像二值化的最佳阈值。其实阈值就是将整张图像分为目标图像和背景两部分,当目标图像类和背景类之间的方差最大的时候就代表前景和背景两者的差别最大,也就是二值化效果最好的时候。最大类间差法对噪音和目标图像的大小很敏感,对单峰的图像产生较好的分割效果,但是当前景和背景灰度值相差不明显的时候容易出现大范围的黑色区域,甚至会丢失整幅图像信息[6]。

(3)最佳阈值法:也称为迭代法,是一种基于逼近的思想。主要步骤为:

①求出整幅图像的最大灰度值和最小灰度值,将两者的平均值作为最初始的阈值t(j),j为迭代次数,初始值为0。

②根据阈值t(j)将图像分割为目标图像前景和背景,分别求出前景区域中个像素点和背景中个像素点的平均灰度值。

③求出新阈值。

④若t(j)=t(j+1),则所得即为阈值,否则重复②~④。

最佳阈值法的效果比较好,能够准确区分出图像的目标和背景,但细微处区分不细致。图像二值化处理可以将图像变得简单,将背景信息与图像中的目标信息区别开来,让图像的数据量变小,突出图像的目标对象轮廓。灰度化与二值化运算是一个图像降低维度的过程,降低维度对图像的运算不仅可以使图像的特征更加明显,还可以减少在处理图像时的运算次数。

1.3图像去噪

图像信号在采集、存储和传输的过程中容易受到噪声污染导致图像的画质不清晰,影响人们对图像的理解和分析处理。下面了解几种常见的图像噪声的成因和特点。

(1)加性噪声

加性噪声是指噪声与信号相加,无论信号是否存在,噪声都会存在,实际中只能采取措施减小加性噪声的影响,而不能彻底消除。主要包括信道噪声和扫描图像时产生的噪声,利用公式表达为:

f(x,y)=g(x,y)+n(x,y)

其中f(x,y)表示含噪图像,g(x,y)表示图像信号,n(x,y)表示信道噪声。

(2)乘性噪声

乘性噪声和信号相关,跟着图像信号的改变而改变。一般由信道不理想引起,信号在噪声就在,含噪图像f(x,y)一般可以表示为:

f(x,y)=g(x,y)+n(x,y)g(x,y)

(3)椒盐噪声

椒盐噪声是指某个像素或者区域呈现较大和较小灰度值的噪声。在图像中的显示就是随机出现黑色或者白色像素,在变换域引入误差,让图像反变换后噪声的噪声。椒盐噪声对应的概率密度函数表示为:

公式中表达了椒盐噪声在图像中的概率密度,若b>a,则灰度值b在图像显示为一个亮点,b<a时,显示为一个暗点。若pa或pb的灰度值为零,则成为单极脉冲,其他情况脉冲噪声是类似于随机分布在图像上的椒盐微粒,成为双极脉冲,也就是椒盐噪声。椒盐噪声出现在随机位置,噪声点深度基本固定。

(4)高斯噪声

高斯噪声是最为普遍的一种噪声,噪声点随机产生,而且深度也是随机的,它的概率密度函数是服从高斯分布的。即

当产生高斯噪声的图像叠加时,图像的对比度降低、层次感变差、边缘显得模糊。高斯噪声完全由其时变平均值和两瞬时的协方差函数来确定,若噪声为平稳的,则平均值与时间无关,而协方差函数则变成仅和所考虑的两瞬间之差有关的相关函数,它在意义上等效于功率谱密度。

图像去噪是图像处理中重要环节和步骤,目的是滤除实际图像中存在的各种各样的噪声,提高图像质量,更好的体现原图像所携带的信息,减少噪声的影响。图像去噪的效果会直接影响到后续的其他处理操作,对图像进行准确的降噪处理能够保持原始信息完整性的同时,又去除信号中无用的信息,最终获取高质量的图像。

1.4形态学处理

形态学处理主要是针对二值图像依据数学形态学的集合论方法发展起来的图像处理方法。针对集合处理的形态变换过程实质是将图像形状的集合与结构元素之间的相互作用表示出来,结构元素的形状决定了形态学处理所要提取信号的形状信息,一般处理是将目标图像结构元素与背景进行交集、并集等运算。

形态学操作就是以形状为基础来对图像进行操作,最基本的是膨胀和腐蚀,它们是将图像中每个像素点与移位元素逐点进行比较,根据比较结果作相应处理。

膨胀会连接图像中比较小的缝隙,让目标图像扩大;腐蚀会去除图像中比较小的毛刺、凸起等特殊点,减小图像。膨胀和腐蚀操作能够消除噪声,将独立的图像元素从背景中分离出来,将邻近元素整合起来,寻找明显的极大值区域和极小值区域,求出图像的梯度。膨胀和腐蚀的应用相当广泛。

(1)膨胀

简单的膨胀是将目标图像接触的所有背景点合并到目标图像中的过程。结果使得目标图像的面积增大。一般膨胀定义为:

公式代表b对a进行膨胀的结果。所得结果是b的相对与它自身原点的映像并且由移动元素z对映像进行移位为基础的。a被b膨胀是所有位移z的集合,和a至少有一个元素是重叠的。过程可以分为:

①用结构元素b,扫描图像a的每一个像素

②用结构元素与其覆盖的二值图像做“与”操作

③如果都为0,结果图像的该像素为0。否则为1

(2)腐蚀

简单的腐蚀是消除目标图像周围边界点的过程,结果使得剩下的目标图像沿着其周边的原图像小一圈。腐蚀的定义为:

a⊙b={z|(b)z∈a}

a,b是z上的两个集合,将b作为结构元素对a进行腐蚀,腐蚀结果是由移动元素z组成的集合,使得b中移动元素的结果仍然包含在a中。b对a进行腐蚀的整个过程如下:

用结构元素b,扫描图像a的每一个像素用结构元素与其覆盖的二值图像做“与”操作如果都为1,结果图像的该像素为1。否则为0经过上述过程进行图像腐蚀处理时,若结构元素中的所有黑色点与背素点完全相同,该点为黑色,否则为白色。

膨胀与腐蚀可转化为集合的逻辑运算,算法简单,适于并行处理,且易于硬件实现,对二值图像进行图像分割、细化、抽取骨架、边缘提取、形状分析等操作。

例如二值图的骨架为白色点,那么对黑色骨架二值图的膨胀处理恰好是对白色骨架二值图的腐蚀处理。同理,黑色骨架二值图的腐蚀处理也就是对白色骨架的膨胀处理。在目标图像不同的需求情况下,膨胀和腐蚀的选择和处理算法会有所不同,结构元素的选取和大小都会直接影响形态学效果。图1为图像膨胀和腐蚀的结果。

2.检测图像倾斜度及旋转校正技术

答题卡在采集图像的过程中由于各种原因可能会产生图像倾斜、水平或垂直错位,要进行正确的识别首先需要对其进行校正,下面是针对图像倾斜的检测及校正。

使用扫描仪得到答题卡图像如图1所示,图像中有一条明显的黑色横线,因此可以作为校正的直线。

为了压缩图像信息减少处理时间,将图像转换为灰度图像,再进行二值化处理。灰度图像的数据保存为二维数组g(i,j),二值图像保存为二维数组b(i,j)。

如果答题卡图中只有倾斜的一条直线,不存在其他直线,这条直线很容易被检测出来。采用hough变换检测图像中的这条直线的倾角,并以这个倾角来判断图像是否倾斜。

如果用直线到原点的距离和直线的倾角来表示一条直线,那这条直线为:

ρ=x·cos(θ)+y·sin(θ)

这里ρ是直线到原点的距离,图像最左上角的一点就是原点,θ是直线的倾角,就是直线与x轴的夹角。ρ和θ组成了一个参数空间,称为ρθ参数空间。对于xy平面上任意一个点a(xi,yi),有ρ=xi·cos(θ)+yi·sin(θ),这在ρθ参数空间里是一条正弦曲线。如果xy平面内只有一条线段1,在这条线段上共有个点,对其进行hough变换,就得到ρθ参数空间里的n条正弦曲线。因为在xy平面里线段1有相同的ρ和θ,所以在ρθ参数空间里这些正弦曲线会相交于一点,在参数空间里形成一个峰值点。这个峰值点在参数空间里的坐标就是直线在xy平面里的ρ和θ。如果平面里有若干条直线,那么经hough变换以后对应的参数空间里的若干个峰值点。

当图像里只有一条线段,对图像进行hough变换得到的ρθ参数空间就形成一个峰值点。

hough变换检测图像中直线的倾角以及校正步骤如下:

(1)读取整幅图像,将彩色图像变为灰度图像,并保存在二维数组g(i,j)里。其中i是行标,j是列标,g(i,j)表示对应行标i和列标j的灰度值;

(2)将图像变为二值图像。经过多次试验验证,二值化阈值为50时效果最好,能有效的将图像中的黑色直线与其他颜色的直线区分开。二值图像的数据保存在bw(i,j)中;

(3)对图像进行hough变换。首先建立一个二维数组a(ρ,θ)作为参数空间的累加器。这里ρ是直线到原点的距离,范围是从0到答题卡图像对角线的长度。θ是直线的倾角,范围是-90°到90°。然后扫描第二步得到的二值图像数据bw(i,j),将bw(i,j)里所有像素值为0的点的坐标保存下来。对于bw(i,j)中像素值为0的点(bwi,bwj),将(bwi,bwj)代入式(1)中,令θ等于-90°到90°中的每一个值,如果得到的ρ值在0到答题卡图像对角线的长度之间,就将对应的a(ρ,θ)的值加1。得到的二维数组a(ρ,θ)就是ρθ参数空间。

(4)其参数空间明显三个峰值,其中只有一条是目标直线,另外还有两条是答题卡图像右边和下边的许多方块形成的峰值,因此需要对下一步中检测到的峰值进行判别,是否为图像中的直线。

(5)hough变换域空间是一个二维数组,找到hough变换域空间的峰值,也就是这个二维数组的最大值,并记下它的位置,记为(ρ′,θ′)。并把找到的峰值(ρ′,θ′)以及它的邻域中的hough变换单元设为零,邻域大小为8×8。

(6)判断找到的峰值(ρ′,θ′)所对应的是否为答题卡图像中的直线。判别方法为:将图像旋转90°-θ′,使这条直线大概位于一条垂线上。这里θ′是第二步检测到的峰值所对应的直线倾角。检测这条直线上的最长的线段长度。设一个阈值t,如果这条直线上的最长线段长度大于阈值t,就说明这个峰值对应的是答题卡图像中的直线。

(7)重复第二步到第四步,直到找出答题卡图像中的直线。这条直线的倾角就是所求的答题卡图像的倾角θ′。将图逆时针旋转θ′,使图像中的两条直线位于水平位置,就完成了检测图像倾斜度以及旋转校正。

3.边缘检测技术

边缘指的是周围像素灰度值急剧变化的集合,是图像的基本特征,边缘在是图像分割的重要依据。

边缘检测提取图像中不连续部分的特征根据闭合连续边缘来确定具体区域,将具有相同特征的区域划分在一起,区域之间由边缘进行分界。边缘检测大幅度减少图像中的数据量,将不相关信息的去除,只保留图像中的重要结构属性。

若将边缘检测中的边缘认为是一定数量点亮度发生变化的地方,那么边缘检测可以看作是计算亮度变化的导数。边缘检测的实质是采用合适算法提取图像中目标图像和背景之间的边界。边缘检测的边缘定义为图像中灰度值发生急剧变化的区域边界。

图像灰度变化情况可以用图像灰度分布梯度反应,所以边缘检测方法就是通过对原始图像微分技术构造边缘检测算子来进行边缘检测。边缘检测一般步骤为滤波、增强和检测。

3.1图像滤波

图像滤波尽量保留图像细节的情况下对噪声进行抑制,是边缘检测中必要的操作,消除图像中的噪声成分会使图像信号大部分集中在幅度谱的低频和中频段,有用的信息可能在高频段掩盖。

图像滤波能区别出目标图像的特征模式,也能适应图像处理要求,消除图像中所混入的噪声。滤波处理保留图像轮廓和边缘等重要信息,最终能够得到清晰视觉效果好的图像。

高斯滤波属于线性滤波器,线性滤波器经常用于剔除输入信号中不想要的频率或者从许多频率中选择一个。高斯滤波是典型的线性平滑滤波,可以消除高斯噪声,广泛应用于图像处理的去噪过程。

高斯滤波就是对整幅图像进行加权平均过程,每个像素点值都由本身像素和周围像素点进行加权平均得到的。高斯滤波的过程是用一个卷积扫描图像中的每个像素点,利用卷积确定的邻域像素点值进行加权平均,替换卷积中心点像素值。高斯滤波器对于抑制服从正态分布的噪声非常有效,一维高斯函数如下:

对于图像处理来说,经常利用二维离散高斯函数避免振铃现象。二维高斯函数具有旋转对称性,在各个平滑程度是相同的,在边缘检测中不会偏向一个方向;高斯滤波器用像素邻域加权均值来代替该点像素值,每个邻域像素点权值都是与中心点的距离随机单调递减;高斯函数所形成的平滑图像不会被高频噪声信号污染,只会保留有效信号;高斯滤波器的平滑程度由参数调整来决定;二维高斯函数卷积可以分步进行,首先利用一维高斯函数进行卷积,将结果与方向垂直相同的一维高斯函数卷积,故二维高斯滤波的计算量随着滤波的宽度线性增长,二维高斯函数为:

3.2图像增强

图像增强是突出图像重要信息的同时,减弱无关信息。分类如下所示。

结构式中清晰的展示图像增强可以分为空间域增强、频率域增强、彩色增强和图像代数运算。图像增强方法从增强作用域出发,这里主要介绍空间域增强和频率域增强。

空间域增强是直接对图像灰度值进行处理来减弱噪声。空间域增强算法中包括点运算算法和局部运算算法,点运算算法就是灰度级的校正,灰度变换和直方图修正,让图像成像均匀,扩展对比度。点运算主要有灰度变换和直方图均衡化处理,灰度变换的原理就是通过改变灰度的动态范围或者图像对比度,达到增强图像灰度值的方法。直方图均衡化是空间域图像增强中应用最广泛的一种方法,其基本原理是要让图像的灰度值分布均匀,最终达到图像增强效果。直方图均衡化将原图通过某种变换得到一副灰度直方图为均匀分布的新图像。它有效地用于图像增强,易于计算。直方图均衡化通过扩展亮度来实现增强局部对比度,不影响整体对比度。

局部运算方法分为图像平滑和锐化两种,前者用于消除图像噪声,容易引起边缘的模糊;后者用于突出物体的边缘轮廓,便于目标识别。图像平滑部分主要介绍中值滤波算法,它是一种非线性平滑技术,将每个像素点的灰度值设置为周围灰度值的中值,这样可以解决由于滤波带来图像细节模糊的问题。中值滤波对脉冲噪声有良好的去除作用,而且还能保护边缘信号不被模糊。中值滤波算法描述为:

①获得原始图像的首地址及图像尺寸。

②开辟一块内存缓冲区,缓存结果图像并初始化。

③逐个扫描图像中的像素点,将其周围各元素的灰度值从小到大进行排序,求得到中间值赋值给目标图像中与当前点对应的像素点。

④循环前步骤,直到处理完原始图像的全部像素点。

⑤将结果从内存缓冲区复制到图像的数据区。

图像锐化就是通过微分使图像边缘突出、清晰,常用梯度法来进行。图像平滑是经过积分让图像边缘变得模糊。频率域增强是将图像看成二维信号,对经过傅里叶变换后的频谱成分进行处理,使得信号增强。

原理如下所示:

原始图像------频域变换------滤波增强-----频域反变换------输出图像

频率域增强是对图像的变换系数值进行修正,属于间接增强的算法。利用低通滤波去掉噪声,高通滤波增强边缘高频信号。频率低通滤波抑制高频中噪声成分,通过低频成分,然后进行逆傅里叶变换获得滤波图像,达到图像平滑去除噪声的目的。频域滤波的关系式为:

g(u,v)=h(u,v)f(u,v)

式中f(u,v)是需要平滑处理的图像f(x,y)的变换,通过函数h(u,v)使f(u,v)的高频分量衰减,输出g(u,v),g(u,v)经反变换得到平滑图像g(x,y)。由于过滤消除了高频分量,低频信息无损通过。常用的频率域低滤波器有理想低通滤波器、butterworth低通滤波器、指数低通滤波器、梯形低通滤波器等。图像中灰度发生骤变的部分与其频谱的高频分量相对应,图像的边缘、细节存在的高频成分比较弱,频域高通滤波消除模糊、突出边缘,使高频信号顺利通过,削弱低频成分,对图像进行锐化处理。常用的频域高通滤波器有理想高通滤波器、butterworth高通滤波器和指数高通滤波器。

图像增强作为图像识别的前期处理,经过一系列技术改善图像的效果,使得图像分析进行得更加方便。图像增强的基础是确定图像各点邻域强度的变化值,将图像灰度点邻域强度值有显著变化的点凸显出来,在具体编程实现的时候,通过计算梯度幅值来确定,再利用各种方法最终达到图像增强的效果。

3.3图像检测

经过图像增强会出现很多梯度值比较大的像素点,但这些点有时候不是图像所需要的,所以通常使用阈值化方法来检测图像中真正需要的边缘点来进行取舍。选取一个比较合理的阈值来确定图像中的背景和目标图像。

阈值化是一种将我们想要在图像中分析的区域分割出来的方法,我们把每个灰度值都与一个预设的阈值作比较,再根据比较的结果调整像素值。如果只用一个阈值进行检测叫做单阈值法;用多个阈值叫做多阈值法。无论单阈值还是多阈值的方法都有可能出现不同区域具有相同区域值的情况,这是因为取阈值的时候只考虑了像素本身,没有考虑像素的空间位置,所以根据像素值划分为一类的像素点可能位置在不连通的区域中,所以在图像检测之前应该需要借助一些先验知识来确定目标区域。

3.4canny算子

canny边缘检测算法是常用的边缘检测方法之一,实质是求信号函数的极大值来判定图像边缘的像素点,然后将独立的候选像素拼装成轮廓。

canny算子的目的是找到一个最优边缘检测。最优边缘检测算法的三个主要评价标准分别为:

(1)低错误率:标识出尽可能多的实际边缘,尽可能少的减少噪声误报,评判参数信噪比snr越大表示边缘提取质量越好。

g(-x)表示图像边缘函数,f(x)是在区域内的滤波器函数,表示高斯噪声的均方差。

(2)高定位性:标识出的边缘要与图像中的实际边缘尽可能接近。定位精度的函数值越大,定位精度就越大。

公式中,f’(x)和g’(-x)分别是f(x)和g(-x)的一阶导数。

(3)最小响应:图像中的边缘唯一响应,保证脉冲响应导数平均距离满足:

经过高斯平滑后的梯度值最大值点近似满足准则就能保证单边缘只有一个响应。

3.5canny边缘识别算法

canny算子性能优良,应用广泛,使用canny算子求边缘点的基本思想是先对原图像进行平滑滤波,然后将平滑处理后的图像应用“非极值抑制”技术,得到最后所需要的边缘图像。canny边缘识别算法既有效地抑制噪声,又要识别边缘。canny边缘识别算法过程可以表示为:

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

canny边缘识别算法过程如图2所示。

根据以上评价标准和具体流程的要求,一般canny边缘检测算法的具体步骤为:

(1)高斯滤波平滑图像

一般情况下,在canny边缘识别算法中使用高斯平滑滤波器卷积降噪,即将像素点及邻域点的灰度值按照一定的参数规则进行加权平均,有效滤掉图像的模糊边缘。图像的高斯滤波可以经过两次加权一维高斯核实现,也可以一次二维高斯核卷积实现。一维高斯函数表达为:

公式中μ是服从正态分布的随机变量均值,影响正态分布的位置。

σ是标准差,定义的是正态分布数据的离散程度,σ值越大,数据分布越分散,正态分布曲线越平,高斯滤波器的频带就越宽,平滑程度越好;σ越小,数据分布越集中,曲线越高,高斯滤波器的频带越窄,平滑程度越差。

二维高斯函数为:

二维高斯函数具有旋转对称性,表示滤波器在各个方向上的平滑程度是相同的,所以高斯平滑滤波器在边缘检测过程中不会偏向任何一个方向。相同条件下,高斯卷积核的尺寸越大,图像平滑的效果越好,图像表现为比较模糊,边缘的部分细节更容易丢失;相反,核尺寸越小,平滑效果越弱,图像相对清晰,细节不易丢失。

(2)计算梯度幅值和方向

根据图像灰度值得到梯度可利用卷积算子使用微分算子计算图像在x和y方向上的偏导数。

卷积算子为:

使用上述卷积算子来计算x与y偏导数的矩阵。

使用下列公式计算梯度幅值和方向:

m[x,y]反应图像边缘强度,[x,y]反应图像边缘的方向。

(3)对梯度幅值进行非极大值抑制

根据图像梯度幅值矩阵中元素值可以粗略的得到疑似边缘的点,但不能说明这些点就一定是边缘,应该保留局部梯度最大的值,抑制非极大值。要抑制非极大值,需要利用梯度方向,确定像素点的灰度值是否在其八值邻域内为最大,将每个像素偏导值与相邻像素比较,取最大值为边缘点,非边缘点灰度值设置为0。这样能够排除边缘像素,只保留细线。但检测结果有可能包含由于其他原因导致的噪声等,所以还需要进一步的处理。

(4)用双阈值算法检测和连接边缘

将非极大值抑制后图像选择高低两个阈值对图像进行操作,如果某一像素位置的幅值超过高阈值,该像素被保留为边缘像素;如果某一像素位置的幅值小于低阈值,该像素被排除;如果某一像素位置的幅值在两个阈值之间,该像素仅仅在连接到一个高于高阈值的像素时被保留。

高阈值的检测结果除了在很大程度上去除噪声,也会损失有效的边缘信息;再利用低阈值检测得到图像保留边缘信息,将边缘没有闭合的图像连接成完整的轮廓,所以需要将两个图像进行对比应用,补充丢失的信息,连接图像的边缘,使图像边缘完整。过程是在高阈值图像结果中扫描找到像素不为0的点,跟踪以该像素点为开始的轮廓线,直到找到终点;与低阈值图像中比较终点位置,若存在则将其包括到最终结果图像中,重复上述步骤,循环到比较不能再继续,一个连接边缘操作完成可标记为访问过,再重复查找轮廓线,一直到找不到新的轮廓线为止。

4.图像识别技术

4.1识别点定位

识别点定位是先利用凸包算法将图像中的包含最大轮廓的点集筛选出来,在点集中查找能够形成最大四边形面积的四个点,即为答题卡的识别点,再用叉积的将四个定位点的顺序和位置进行标识。

凸包可以表达图像的一维属性信息的方式。一个区域的凸包在某些情况下可以用于区域的描述,所以,计算图像凸包会对图像前期、后期处理以及图像检索和特征提取有一定的帮助。凸包是针对一个简单多边形,给定其边界上或内部的任意两个点,连接这两个点的线段上的所有点都被包含在该多边形的边界上或内部的话,则该多边形为凸多边形。简单来说就是把给定区域中的点包围在内部,面积最小的凸多边形。

在解决凸包问题中,介绍两种算法:

(1)graham扫描算法

graham扫描算法通过不断在凸包中加入新的凸点,去除有影响的凸点,形成最后的凸包。算法先排序后扫描,利用排序对杂乱的点集进行整理,极角坐标排序是常用的方式,先找到一个横坐标最小的点作为参考点,再取纵坐标最小的点,这样所有的点都集中在正上方,任意两点与参考点所成的角为锐角。

扫描过程的核心思想是按照排序的顺序将凸点依次加入得到新的凸边,根据凸点与参考点所成的夹角,然后正方向利用叉积判定做好预处理对每个点进行迭代。运用堆栈的思想,若凸边是按照逆时针方向通过凸包,则顶点应该向左转,压栈继续,若右转就弹出,直到和栈顶两点的边成为左转关系。

假设平面上有8个点,经过某些点作一个多边形,使得这个多边形能把所有点都包围起来。这个多边形是凸多边形的时候,即为“凸包”。

具体原理如3图所示:

graham扫描算法具体步骤为:

①把所有点放在二维坐标系中,则纵坐标最小的点一定是凸包上的点,即图中的p0。

②计算各个点相对于p0的夹角α,按从小到大的顺序对各个点排序。当α相同时,距离p0比较近的排在前面。

③先将凸包上的第一个点p0和第二个点p1放在栈里面。现将p2做参考点,找第三个点。

④连接p0和栈顶的那个点,得到直线l。看参考点是在直线l的右边还是左边。如果在直线的右边就执行步骤5;如果在直线上,或者在直线的左边就执行步骤6。

⑤如果在右边,则栈顶的那个元素不是凸包上的点,栈顶元素出栈。执行步骤4。

⑥当前点是凸包上的点,把它压入栈,执行步骤7。

⑦检查当前的点p2是不是步骤3那个结果的最后一个元素。若为最后一个元素则结束循环。否则将p3作为参考点,返回步骤4。

(2)jarvis步进法

jarvis步进法采用打包技术来计算一个点集的凸包,核心思想是找到点集中纵坐标最小的点p0,确定该点为凸包的一个顶点,以该点为基础做射线,按逆时针方向逐个找凸包上的点,每前进一步找到一个点,通过叉积比较,找到具有最小夹角的点,如果夹角相同再找出距离最远的点。当找到的点为起点的时候退出循环。

graham扫描算法是每一步得到一个临时的凸包,时间复杂度为o(nlogn)。

jarvis步进法是每一步求出凸包上的一条边,时间复杂度为o(nh)。其中n代表点集的总个数,h代表的是凸包上点的个数。

叉积记作若令的方向为且符合右手规则,另一种定义就是

叉积的几何意义表示的是以为边的平行四边形的有向面积,运算结果是一个向量,向量的叉积的符号代表向量旋转方向。若为正数,那么对于原点来说,的顺时针方向上;若为负数,那么对于原点来说,的逆时针方向上;如果为0,那么说明两个向量在边界上共线,指向的是同方向或者相反方向。

4.2仿射变换

对有发生形变的答题卡图像利用仿射变换进行矫正。仿射变换是通过二维坐标系到二维坐标系的变换,图像中的二维图形之间的相对位置关系不变,平行线仍然是平行线,但相交直线的夹角在仿射变换的角度下有可能会发生变换。特征是一切形变都不会破坏线条的线性,变形之后水平和垂直方向上的长度比例可以发生变化,但坐标系内各点的变换都是均匀的,不存在局部的扭曲和塌陷的情况。仿射变换主要是通过变量与变换矩阵相乘实现的,具体公式表达为:

要确定两个坐标平面之间的仿射变换,只需要确定变换矩阵即可。不共线的三对对应点决定了唯一的仿射变换。分别将m1,m2,m3点做一一映射,通过这两组三点求出仿射变换矩阵之后,区域内部的所有点都可以根据这个矩阵进行变换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1