基于图像处理的对勾识别算法研究
2022-09-07李雪梅车爱静
李雪梅,车爱静
(衡水学院电子信息工程学院 河北 衡水 053000)
0 引言
近年来人才的竞争愈加激烈,为了更好地了解每个员工的工作情况,会定期对工作人员进行考核,考核的标准一般为德、能、勤、绩、廉5个方面。传统的方式先将考核表分发给员工,大家根据标准在对应表格位置处打对勾,再统一收集起来,有专人进行统计,最后得出大家总的得分情况,这种方式费时费力,还容易出现统计错误,因此提出来一种基于图像处理的对勾识别算法,只需将收集好的考核表扫描为图像,即可通过对图像识别对考核表中的对勾位置进行识别,从而统计出得分,节约了时间和人力、物力。
1 图像预处理
首先对收集好的考核表进行扫描处理,得到考核表的数字图像,为了后续识别的准确性,需要对图像进行预处理,包括图像的灰度化、二值化、去噪、倾斜校正、图像归一化等。
1.1 灰度化
一般考核表为黑白图像,只需进行二值化即可,如果考核表是彩色表格,则需先对其进行灰度化。灰度图像信息量较少,又要保留图像有用的特征信息,由科学研究数据得知,人的眼睛对绿色最敏感,而对蓝色最迟钝,因此,对RGB的各个分量分别乘以不同权值,这样使RGB不同分量的重要性能体现出来,处理后的灰度图也更符合实际生活的需要,因此本文选用这种方法。加权平均值算法见式(1):
1.2 去噪处理
纸质考核表转化为电子图像和进行灰度化的过程中由于各种因素的影响会存在噪声,为了后续更好地进行图像的识别,需要对其进行去噪,提高清晰度。常用的滤波方法有:中值滤波、均值滤波和高斯滤波等方法。中值滤波是对一个窗口内的像素点的灰度值重新进行大小排序后,而噪声点处的灰度值用重排后像素的中间值来代替。这样可保存边缘和细节,但由于考核表中有大量的表格线,会被误认为噪声,识别不出表格线,因此不适合中值滤波。高斯模糊处理方法的原理是用周围像素的灰度平均值作为中间像素的值,结果会使得图片中间的一些像素变得模糊。而考核表中有大量的表格线且相隔距离短,结果会造成表格模糊,不易识别表格的内容。双边滤波处理方法将一个高斯方差加在高斯模糊的处理中,可以在去噪的同时保存了边缘的信息,表格线不受影响,既去除了噪声,图像也不会模糊。
1.3 二值化
为了进一步降低计算量,需要对图像进行二值化。图像二值化即设定阈值,将灰度图像进行分类,将[0~255]的灰度级归类为0或1。只要选取的阈值合适,转换之后的图像数据量减少,但并不会影响图像局部和整体的特征。图像二值化最重要的是阈值的选取,根据阈值选取方法的不同可划分为固定阈值法与自适应阈值法。固定阈值法是自己对图片进行实验,确定一个固定的阈值,对于考核表这种灰度级比较简单的图像适合于用固定阈值法进行二值化,考核表版面结构明了清晰,灰度级差别明显,灰度值相对固定,采用固定阈值(200,255)处理原图像得到的二值化图像效果比较好。二值化的图像见图1。
1.4 倾斜校正
用扫描仪扫描的考核表图片有时是倾斜的,为了识别的效果好,要对其进行校正。而考核表中直线较多,比较适合用霍夫(Hough)变换来进行校正[1],本文利用Hough变换原理来检测直线。然后利用得出的直线斜率k0计算图像倾斜角θ=arctan(k0),然后根据求得的倾斜角对图像进行修正,将图像中心作为原点进行旋转。旋转矩阵R如式(2):
得到旋转后的坐标如式(3):
1.5 图像归一化
由于图像采集可能会受到很多因素的影响,造成采集到的图像和原图像的大小不同,影响识别的准确率,所以要进行图像归一化。图像归一化操作是指在不改变原图像信息的情况,将图像转化成规格一致、相对位置不变的图像。由于考核测评表本身是一张A4纸张的大小,所以将尺寸大小统一调整为A4纸张的大小,即可实现图像归一化。
2 感兴趣区域定位
考核测评表的构成比较简单,由3部分组成,即表的标题、主体和备注,主要识别的是主体部分[2]。从考核测评表的几何结构和逻辑结构来看,它的版面规格大小统一,姓名区域和表格区域位置固定,而定位的任务分别在姓名区域和表格区域,识别的主体为表格区域,适合采用感兴趣区域表格检测法来进行表格的定位。所谓感兴趣区域即是一幅图片里需要检测识别的区域,而考核测评表需要识别的部分就是姓名区域和打对勾的表格区域,基于交互式的感兴趣区域简单方便高效,但对要处理的图片有要求,不能过于复杂,目标和背景简单明确。而考核测评表的版面清晰简单,对比明显,正好适合用交互式的感兴趣区域检测方法[3]。
将二值化后的图像的宽和高分别设置为width、high,图像中需要定位的单元格起始点像素的坐标位置为(x,y)。整张考核测评表自需要定位的考核人员姓名开始一共有16行单元格,因此需要进行16次行检测才可将考核表整页的考核人员检测出来。设置行计数器来记录行检测的次数,直到检测16次结束。同样地对于列的检测也是如此,考核表自左侧考核人员姓名开始一共有20列,以左侧像素起始坐标x开始,沿着水平方向从左向右每隔一定的像素点作为一个感兴趣区域,区域在x轴上的起始点,循环执行到图像的最大宽度,如果x的值小于图像的宽度,则继续搜索,直到搜索到最大宽度为止。设置一个列计数器,一旦确定了一个感兴趣区域,计数器则加一次并作为当前感兴趣区域的标记符,计数器从1开始一直记录到20(每行有20个单元格),一行搜索完毕后接着搜索下一行。基于交互式的感兴趣区域检测方法根据预先设定的感兴趣区域大小划分出每一个单元格,并同时用计数器记录当前感兴趣区域作为单元格的位置标记。流程见图2。
3 对勾检测原理
检测出考核测评表的每个感兴趣区域以后,再对表格内的对勾进行识别,而需要识别的对勾都处在一个固定的单元格中,每一个单元格对应着不同考核标准的考核等级,所以只要确定了哪个位置的单元打有对勾,就能获得考核情况。鉴于考核表的版面结构,对于对勾的检测可应用以下两种方法:一是根据像素统计法,二是角点检测法。
像素统计法简单易行,图像经过二值化处理后只有0和1两种灰度级,而没有打对勾的表格里是1灰度级,而打有对勾的表格内在对勾部分是0灰度级,所以只需要检测表格内灰度级为0的像素的多少即可,但是由于手写打勾有时会超出表格到另一个格子里去,所以检测的不是很准确。
而角点检测是检测表格内是否有角点。Harris角点检测算法是一种简单的、基于信号处理的,每个像素点周围小窗口的二阶导数图像的自相关矩阵特征提取算子[4-5],比较适合检测对勾,其检测原理为图像中的一个窗口沿着不同的运动方向在图像不同区域中移动:(1)窗口在图像中的平滑区域里移动时,窗口沿着任何一个方向一直运动下去,其运功轨迹并没有改变,见图3a。(2)窗口在图像中的边缘区域中移动时,窗口一直沿着边缘的方向运动,其运动轨迹也不会发生变化,见图3b。(3)窗口在图像中的交点区域里移动时,窗口的运动轨迹向不同的方向延展发生改变,见图3c。
通过观察Harris角点检测原理图可以发现运动轨迹在图像中不同区域里沿着各个方向发生了不同程度的变化,可根据这一特征确定图像中某一点是否为角点,Harris角点检测是通过平移图像中的窗口,造成图像中灰度发生变化,从而判断出角点的位置。Harris角点检测图像局部灰度变化自相关函数为:
自相关函数E(m,n)代表窗口经过平移[m,n]后得到的图像灰度变化结果,I代表图像中不同像素点的灰度,w(x,y)代表图像的窗口。不同点的灰度变化是不同的,灰度变化最明显的是角点区域。
图像中某一点的微小移动量[m,n]后灰度变化结果,可以进一步化简表示成:
上式中矩阵Q是一个二阶矩阵,类似于自相关函数E(m,n)的Hessian 矩阵可以通过对图像的像素点求导得到:
对图像中任意一像素点进行两次求导,当存在一阶导数并且是极大值,二阶导数为零时,即矩阵Q存在两个较大的特征值,此时认为图像中灰度自相关函数E(m,n)在该点的曲率最大,说明此点是一个角点。一般情况下,没打对勾的单元格内是不存在任何角点的,当有对勾时单元格内会有至少3个强角点存在,见图4。输出有角点表格的位置坐标,即可完成对勾位置的确定。
4 对勾识别实验
采集100张考核测评表的图像,经过预处理后,分别用像素统计法和角点检测法进行对勾识别实验,实验结果见表1。
表1 考核表实验测试
由实验结果可以看出,用角点检测法来识别表格中对勾的识别率高达98%,而像素统计法的识别率略低一些,因此采用角点检测法来检测表格中的对勾比较合适。
5 结语
传统的人工统计考核测评表的结果费时费力,本文运用数字图像处理技术将收集好的考核测评表用扫描仪转换为数字图像,先对其进行预处理,处理完成后确定图像的感兴趣区域,对感兴趣区域进行定位,最后采用角点检测法识别出对勾所在的位置,从而确定被考核人员的考核结果。经过试验测试,此算法用于自动提取识别考核测评表的对勾具有可行性和实用性。