1.一种基于机器视觉的答题卡识别方法,其特征在于,包括如下步骤:(1)设计答题卡模板;用黑色矩形框选填涂区域部分,在答案填涂区域增加横纵向同步定位头,在信息填写区域增加横纵向同步定位头;(2)使用图像采集设备,采集标准答案答题卡图像与待识别答题卡图像;(3)对采集到的答题卡图像进行矫正与提取;(4)使用轮廓检测与最大矩形框识别方法对步骤(3)获取的答题卡图像进行区域划分,划分为答题卡答案填涂部分、信息部分与同步头部分;(5)将标准答案答题卡图像制作为蒙版,对待识别答题卡图像进行RGBA抠图;(6)使用剪切的纵向同步定位头,经灰度投影、归一化、Savitzky‑Golay滤波等操作,通过处理后的灰度投影曲线最低点所在横坐标,求得纵向同步头中心位置,得到答题卡填涂区域选项的每一行对应的纵坐标位置信息;(7)将(5)中两个图像匹配叠加,利用RGBA颜色空间特性对叠加后的图像识别。2.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,步骤(2)所述图像采集设备包括底座、普通摄像头、稳定支架、拍摄平面和数据传输接口;所述稳定支架固定在底座上,普通摄像头固定在稳定支架上,距离拍摄平面一定高度,且与拍摄平面保持水平。3.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,所述步骤(3)实现过程如下:使用边缘检测、二值化、形态学填充方法,消除答题卡图像内部细节和纹理;利用minAreaRect函数的第三个参数得到矩形框应旋转的角度,对答题卡图像进行矫正;继续消除矫正后的答题卡图像的内部细节与纹理,进而使用轮廓检测方法得到处理后的答题卡图像的角点信息,利用角点对答题卡图像进行分割,实现对答题卡图像的提取。4.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,所述步骤(4)实现过程如下:利用findContours与contourArea函数,寻找答题卡图像的最大矩形框,即答题卡答案填涂区域的黑色线框,得到黑色线框的角点坐标,完成对答题卡填涂区域的剪切;利用黑色线框上方的两个角点对答题卡的信息区域进行分割,利用线框的右侧两个角点,实现对答题卡填涂区域与信息区域的纵向同步头的分割。5.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,所述步骤(5)实现过程如下:制作标准答案答题卡蒙版:将标准答案填涂部分设置为透明(255,255,255,0),其余部分设置为黑色(0,0,0,255);具体操作为对区域划分后的标准答案答题卡的答案填涂部分进行灰度转化、高斯滤波、二值化、黑白反转操作;将反转后的图像转化为RGBA颜色空间,进而对该图像抠图;待识别答案抠图制作:将待识别答案答题卡的填涂部分设置为黑色(0,0,0,255),其余部分设置为透明(0,0,0,0);具体操作为对区域划分后的待识别答案答题卡的答案填涂部分进行灰度转化、高斯滤波、二值化、多次形态学腐蚀膨胀操作;将处理完成的图像转化为RGBA颜色空间,进而对该图像进行抠图。6.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,所述步骤(6)实现过程如下:纵向同步头灰度转化后,将图像长边视为x轴,短边视为y轴,将同步头灰度值投影在长边x轴方向,按照灰度值长边从左到右依次遍历,累加每个所处xi位置的一列灰度值并保存在数组ax中;对于xi位置的累加灰度值投影为:
其中,w为纵向同步头图像短边的长度,I(i,j)为纵向同步头灰度图中第i行第j列元素的灰度值;对数组ax进行归一化,使得灰度值的范围在‑1~1之间,得到灰度中值m:对于累加灰度值小于等于灰度中值m的灰度值:对于累加灰度值大于灰度中值m的灰度值:
7.根据权利要求1所述的基于机器视觉的答题卡识别方法,其特征在于,所述步骤(7)实现过程如下:叠加匹配,将步骤(5)中待识别答案抠图调整为步骤(5)中标准答题卡蒙版图像的大小后,对答题卡蒙版图像与待识别答题卡图像采用叠加方法;如果叠加后的图像在答案空缺处完全填充,则答案空缺处的像素值全部为(255,255,255,255);如果叠加后的图像在答案空缺处,未完全填充,则答案空缺处的已填涂像素值为(255,255,255,255),未填涂的像素值为(255,255,255,0);如果叠加后的图像在答案空缺处,完全没有被填充,即为答题卡中答案填错部分,则待填涂区域处的像素全部为(255,255,255,0);设定front key与back key前后两个指针,在特定纵坐标位置上,逐个遍历该行像素中RGBA中的R通道像素值;如果前一个像素R值小于后一个像素的R值,则将front key设定在后面像素的位置,即识别到标准答案答题卡蒙版的一个待填涂区域起始位置;继续遍历,如果后一个像素的R值小于前一个像素的R值,则将back key设定在前面的像素处,即识别到标准答案答题卡蒙版的该待填涂区域结束位置,且该行的待填涂位置数量加1,该待填涂所处位置的空缺像素个数,按照如下公式进行计算:maska_num=backkey‑frontkey+1通过front_key与back_key之间像素的alpha值个数与预设好的阈值,判断该位置处是否被填涂;如果两指针间,即对某一待填涂位置而言,alpha通道中未填充的像素个数与待填涂空缺像素个数的比值超过预设的阈值,则说明该位置处没有被填涂,即填错;逐行遍历叠加后的图像,根据未填涂个数与待填涂个数,计算考生最终得分情况。