郝平?k
摘要:當(dāng)前大多數(shù)機(jī)器閱卷中采用的識(shí)別算法基于模糊識(shí)別,即針對(duì)某類型的試卷,更換多種試卷或者同種試卷不同采集方式下很難準(zhǔn)確對(duì)應(yīng),具有一定的局限性。對(duì)此,本文提出一個(gè)基于OpenCV耦合模板定位的答題卡識(shí)別機(jī)制。首先基于人機(jī)交互劃定學(xué)號(hào)區(qū)與客觀題區(qū);然后基于圖像處理算法定位得到填涂位置,評(píng)價(jià)填涂結(jié)果,完成答題卡識(shí)別。本系統(tǒng)模板制作模塊由C#編程實(shí)現(xiàn),答題卡識(shí)別由C++和OpenCV實(shí)現(xiàn)。最后測(cè)試本文機(jī)制性能,結(jié)果表明:與基于模糊識(shí)別的普通方法相比,本文機(jī)制具有更好的定位效果和識(shí)別準(zhǔn)確度。
關(guān)鍵詞:模板定位;OpenCV;人機(jī)交互;模糊識(shí)別;圖像處理
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)碼:A
1引言
答題卡識(shí)別系統(tǒng)是針對(duì)客觀題答案進(jìn)行檢測(cè)識(shí)別的應(yīng)用性軟硬件的綜合,目前使用的答題卡識(shí)別系統(tǒng)具有閱卷速度快、效率高、準(zhǔn)確率高等優(yōu)點(diǎn),但也存在一定的局限性,必須采用光電閱卷機(jī)和專用機(jī)讀答題卡,成本高昂,普通學(xué)校難以承受;且一旦確定規(guī)格就難以修改[1-3]。而利用價(jià)格相對(duì)低廉的數(shù)碼相機(jī)或復(fù)印機(jī)作為圖像數(shù)據(jù)輸入設(shè)備采集答題卡圖像,再經(jīng)過軟件處理、識(shí)別將獲得的考試信息存入數(shù)據(jù)庫(kù),同樣可以實(shí)現(xiàn)自動(dòng)閱卷的目的,并可以降低設(shè)備成本[4-6]。而且軟件實(shí)現(xiàn)方式方便修改答題卡結(jié)構(gòu)以適應(yīng)不同需求易于普及推廣。
基于軟件處理的答題卡識(shí)別主要應(yīng)用圖像處理與識(shí)別算法,總體分為兩種模式:第一種是模糊識(shí)別,以答題卡圖像中某特定目標(biāo)為參照進(jìn)行識(shí)別,然后根據(jù)位置信息定位客觀題區(qū)域,然后進(jìn)行識(shí)別,實(shí)現(xiàn)答題卡信息讀取。第二種是先模板制作,然后根據(jù)模板定位客觀題位置,進(jìn)行識(shí)別,實(shí)現(xiàn)答題卡信息讀取。第一種方式,由于依靠特定目標(biāo),在更換試卷類型同樣存在識(shí)別不準(zhǔn)的問題。第二種方式,在前期基于人機(jī)交互,用軟件制作出模板,可對(duì)應(yīng)于試卷類型變更。本文研究的機(jī)制就是采用第二種方式,先基于C#編程實(shí)現(xiàn)模板制作軟件的開發(fā),得到模板信息即客觀題位置信息;然后用圖像處理的方式對(duì)客觀題進(jìn)行識(shí)別,完成答題卡識(shí)別。
計(jì)算技術(shù)與自動(dòng)化2015年12月
第34卷第4期郝平:圖像處理耦合模板定位的答題卡識(shí)別研究與應(yīng)用
為了解決當(dāng)前光電閱卷機(jī)和專用機(jī)讀答題卡成本高昂的問題和模糊識(shí)別通用性差的問題,本文提出了一個(gè)基于圖像處理耦合模板定位的答題卡識(shí)別系統(tǒng),實(shí)現(xiàn)對(duì)考生學(xué)號(hào)與客觀題答案的識(shí)別。首先基于模板定位軟件得到考生學(xué)號(hào)區(qū)域和答題卡答案區(qū)域的圖像坐標(biāo);然后開始進(jìn)入批量閱卷階段,基于圖像處理識(shí)別學(xué)號(hào)和答案,再最后在界面上顯示,并上傳至服務(wù)器數(shù)據(jù)庫(kù)。最后實(shí)驗(yàn)證明本文識(shí)別機(jī)制的性能。
2答題卡識(shí)別的整體機(jī)制
程序控制掃描儀采集答題卡圖像,供模板制作和閱卷識(shí)別,具體掃描儀端采集控制程序不是本文研究的重點(diǎn),本文從圖像采集完成開始研究。答題卡上待識(shí)別的內(nèi)容主要是考生學(xué)號(hào)和客觀題答案,如圖1所示。模板的主要信息是:劃定區(qū)域的左上角圖像坐標(biāo)和長(zhǎng)寬、學(xué)號(hào)或者客觀題、單選或多選、區(qū)域幾行幾列。這些信息在圖像載入C#模板制作軟件后,用鼠標(biāo)基于人機(jī)交互的方式劃定和輸入。
模板制作完成并保存后,基于模板信息對(duì)后面的試卷開始批量閱卷,主要經(jīng)過模板定位、填涂位置定位、識(shí)別、顯示結(jié)果,整體機(jī)制的框架如圖2所示。
3基于模板制作的區(qū)域定位
采用模糊識(shí)別定位某個(gè)特定目標(biāo)然后根據(jù)位置信息推算客觀題或者學(xué)號(hào)區(qū)位置,這樣方法在變更試卷類型時(shí)往往準(zhǔn)確率嚴(yán)重下降。本文先用人機(jī)交互的方式,用軟件制作出模板,該模板包含的信息強(qiáng)大,可以有學(xué)號(hào)和客觀題的區(qū)域坐標(biāo)、學(xué)號(hào)的位數(shù)、客觀題是多選或者單選,客觀題的選項(xiàng)數(shù)和個(gè)數(shù)等等(如圖3所示)。模板制作,為后期圖像準(zhǔn)確識(shí)別做好了數(shù)據(jù)準(zhǔn)備,只要在前期花很少的制作時(shí)間,而且制作軟件界面友好易操作,每次不同類型的試卷批量閱卷前,只需制作一次即可用于后面大量的試卷閱卷。
經(jīng)過本文的模板制作軟件處理,得到目模板信息,如圖4所示。本模板制作軟件基于.NET平臺(tái)C#語(yǔ)言開發(fā)實(shí)現(xiàn),秉承了界面友好和開發(fā)效率高的優(yōu)點(diǎn),成功運(yùn)用在了本系統(tǒng)中,為后期圖像處理掃清定位障礙。
模板制作部分關(guān)鍵代碼:
var jsonModel = new JsonModel();//初始化模板
jsonModel.Items = new List
jsonModel.ImageBase64String=Convert.ToBase64String(image);//模板格式轉(zhuǎn)換
jsonModel.PicBoxSize=string.Format("{0},{1}",picBoxSize.Width, picBoxSize.Height); //圖像格式轉(zhuǎn)換
jsonModel.RealImageSize=string.Format("{0},{1}",realImageSize.Width, realImageSize.Height);//圖像格式歸一化
double ratio = (double)realImageSize.Width / (double)picBoxSize.Width;
//遍歷模板
list.ForEach(x =>jsonModel.Items.Add(new Item {
Id = x.Id,
Name = x.Name,//模板對(duì)象名
RectPointType = x.RectPointType,//模板點(diǎn)類型
RectType = x.RectType.ToString(),
DeawType = x.DeawType,
Direction = x.Direction,
ColCount = x.ColCount,//數(shù)據(jù)列
RowCount = x.RowCount,// 數(shù)據(jù)行
Table = x.Table,
Rect = string.Format("{0},{1},{2},{3}", x.SelectRectangle.X, x.SelectRectangle.Y,
x.SelectRectangle.Width, x.SelectRectangle.Height),
RealRect = string.Format("{0},{1},{2},{3}", Convert.ToInt32(x.SelectRectangle.X * ratio), Convert.ToInt32(x.SelectRectangle.Y * ratio),Convert.ToInt32(x.SelectRectangle.Width * ratio), Convert.ToInt32(x.SelectRectangle.Height * ratio))}));
var json = JsonConvert.SerializeObject(jsonModel);
File.WriteAllText(fileName, json);//文件寫入
4基于OpenCV的答題卡識(shí)別
通過模板數(shù)據(jù)易定位學(xué)號(hào)和客觀題區(qū)域,本節(jié)以學(xué)號(hào)為例,展開研究,得到的學(xué)號(hào)區(qū)域圖像如圖5所示。由于試卷背景為白色,填涂顏色為黑色,具有很強(qiáng)的對(duì)比度,本機(jī)制利用自適應(yīng)閾值分割[7-8]和圖像取反[9],得出學(xué)號(hào)區(qū)域二值圖,如圖6所示。然后用形態(tài)學(xué)開運(yùn)算[12]進(jìn)一步去除噪聲,最后基于OpenCV[10-11]匹配函數(shù),定位出填涂目標(biāo)。
本文使用的匹配函數(shù)[12]主要基于面積、周長(zhǎng)、長(zhǎng)軸短軸比、長(zhǎng)軸短軸差,由于檢測(cè)矩形目標(biāo),因此目標(biāo)的面積、周長(zhǎng)、長(zhǎng)軸短軸比、長(zhǎng)軸短軸差具有區(qū)別性,經(jīng)過調(diào)試,可計(jì)算出經(jīng)驗(yàn)值范圍,從而判斷目標(biāo)是否是填涂目標(biāo)。
L=∑s[n](1)
CDB=aixs/aiys(2)
CDC=aixs-aiys(3)
其中,所示L為周長(zhǎng),S[n]為目標(biāo)輪廓邊緣像素點(diǎn)組成的數(shù)組。如式2所示CDB為目標(biāo)輪廓長(zhǎng)軸與短軸的比例,aixs為長(zhǎng)軸,aiys為短軸。如式3所示CDC為目標(biāo)輪廓長(zhǎng)軸與短軸的差值,aixs為長(zhǎng)軸,aiys為短軸。
經(jīng)過本文的閾值分割、形態(tài)學(xué)處理、匹配函數(shù)相結(jié)合的方法,得到學(xué)號(hào)填涂目標(biāo)定位結(jié)果,如圖7所示。
答題卡識(shí)別部分關(guān)鍵代碼:
IplImage* gray = cvCreateImage( cvGetSize(ipl), 8, 1 ); //圖像初始化
cvCvtColor( ipl, gray, CV_BGR2GRAY );//顏色空間轉(zhuǎn)換
IplImage* erzhi = cvCreateImage(cvSize(width,height), 8 , 1);
cvThreshold( gray, erzhi,179,255,CV_THRESH_BINARY);//閾值分割
IplImage* qufan=cvCreateImage(cvSize(width,height), 8 , 1);
cvNot(erzhi,qufan);
IplConvKernel*element=cvCreateStructuringElementEx(5,5,1,1,CV_SHAPE_RECT,0);//構(gòu)建形態(tài)學(xué)結(jié)構(gòu)分子
cvMorphologyEx(qufan,qufan,NULL,element, CV_MOP_OPEN, 1); //形態(tài)學(xué)處理
tmparea=fabs(cvContourArea(contour1)); //面積計(jì)算
zhouchang=fabs(cvArcLength(contour1)); //周長(zhǎng)計(jì)算
End_Rage2D = cvMinAreaRect2(contour1);//最小內(nèi)接矩形
CDB=End_Rage2D.size.height/End_Rage2D.size.width;
CDC= End_Rage2D.size.height-End_Rage2D.size.width;
5實(shí)驗(yàn)與討論
本文機(jī)制基于模板制作得到學(xué)號(hào)與客觀題區(qū)域,圖像處理采用閾值分割與形態(tài)學(xué)處理得到目標(biāo)分明的二值圖,再通過匹配得到目標(biāo)的精確坐標(biāo),輪廓特征有面積、周長(zhǎng)、長(zhǎng)寬比、長(zhǎng)寬差,實(shí)現(xiàn)答題卡信息讀取。經(jīng)過實(shí)驗(yàn)驗(yàn)證,試卷類型變更和試卷采集位置變換的情況下,傳統(tǒng)定位方式是基于模糊識(shí)別定位算法,存在定位不準(zhǔn)確和無法識(shí)別答題卡信息的問題,如圖9所示。
本文定位機(jī)制基于C#模板制作軟件得到準(zhǔn)確的學(xué)號(hào)和客觀題位置坐標(biāo),然后用圖像處理OpenCV函數(shù),準(zhǔn)確定位目標(biāo)位置,并精確完成答題卡識(shí)別,如圖8所示。
為了量化不同算法的識(shí)別精確度,本文采用對(duì)相同一組試卷進(jìn)行檢測(cè),先用傳統(tǒng)算法識(shí)別;然后本文算法識(shí)別,分別記錄所用時(shí)間和識(shí)別結(jié)果,最后進(jìn)行人工校驗(yàn)。結(jié)果見表1。從表中可知,本文算法的識(shí)別精度比傳統(tǒng)機(jī)制要高,所用時(shí)間也少于傳統(tǒng)機(jī)制;而傳統(tǒng)機(jī)制還存在較高的漏檢。
6結(jié)論
為了解決當(dāng)前模糊識(shí)別通用性差的問題,本文提出了一個(gè)基于圖像處理耦合模板定位的答題卡識(shí)別系統(tǒng),采用C++、C#主流語(yǔ)言實(shí)現(xiàn)。首先基于模板定位軟件得到考生學(xué)號(hào)區(qū)域和答題卡答案區(qū)域的圖像坐標(biāo);然后開始進(jìn)入批量閱卷階段,基于圖像處理識(shí)別學(xué)號(hào)和答案。
結(jié)果表明:與普通識(shí)別卡識(shí)別定位算法相比,本文機(jī)制具有更好的識(shí)別精度和更高的效率。
參考文獻(xiàn)
[1]楊青燕. 基于灰度圖像的答題卡識(shí)別技術(shù)[J].山東科技大學(xué)學(xué)報(bào):自然科學(xué)版,2009,13(17):43-46.
[2]KAUL T,GRIEBEL R,KAUFMANN E. Transcription as a Tool for Increasing Metalinguistic Awareness in Learners of German Sign Language as a Second Language[J]. Teaching and Learning Signed,2014,18(11):383-387.
[3]RUSHTON VE,HIRSCHMANN PN,BEARN DR. The effectiveness of undergraduate teaching of the identification of radiographic film faults[J]. Dentomaxillofacial Radiology, 2014, 34(6): 225-232.
[4]HSIUNG CM,LUO LF,CHUNG HC. Early identification of ineffective cooperative learning teams[J]. Journal of Computer Assisted Learning,2014, 30(6):534-545.
[5]李翀倫. 復(fù)雜背景下紅外圖像目標(biāo)的快速定位[J]. 海軍工程大學(xué)學(xué)報(bào),2013, 33(10):2886-2890.
[6]呂鳴. 提高自學(xué)考試答題卡識(shí)別準(zhǔn)確率的探討及實(shí)踐[J]. 中國(guó)考試,2011, 23(2):371-376.
[7]RAJKUMAR TMP,LATTE MV. Adaptive Thresholding Based Medical Image Compression Technique Using Haar Wavelet Based Listless SPECK Encoder and Artificial Neural Network[J]. Journal of Medical Imaging and Health Informatics,2015, 5(2):223-234.
[8]SHARMA P,KHAN K,AHMAD K. Image denoising using local contrast and adaptive mean in wavelet transform domain[J]. International Journal of Wavelets, Multiresolution and Information Processing,2014, 12(06):1450038-1~1450038-15.
[9]SHARMA Y,MEGHRAJANI YK. Extraction of Grayscale Brain Tumor in Magnetic Resonance Image[J].International Journal of Advanced Research in Computer and Communication Engineering, 2014, 3(11): 8542-8545.
[10]葉昕, 秦其明, 王俊. 結(jié)合數(shù)學(xué)形態(tài)學(xué)與多角度模板匹配的高分辨率遙感圖像救災(zāi)帳篷識(shí)別[J]. 測(cè)繪通報(bào), 2015, 5(1): 86-89.
[11]CHOU LD,CHEN CC,KUI CK. Implementation of Face Detection Using OpenCV for Internet Dressing Room[J]. Advanced Technologies, 2014, 260(23): 587-592.
[12]張亞榮, 裴志利. OpenCV耦合三目視覺的標(biāo)準(zhǔn)件目標(biāo)定位研究與應(yīng)用[J].組合機(jī)床與自動(dòng)化加工技術(shù), 2015, 2(1): 35-38.