国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Hough變換的答題卡識別

2020-03-13 10:56:30羅朝陽張鵬超姚晉晉趙瑞杰
計算機應用與軟件 2020年3期
關鍵詞:二值答題卡矯正

羅朝陽 張鵬超 姚晉晉 王 彥 趙瑞杰

1(陜西理工大學機械工程學院 陜西 漢中 723000)2(陜西省工業(yè)自動化重點實驗室 陜西 漢中 723000)

0 引 言

考試是教育測量的重要手段,也是目前選拔人才的重要手段。所以公平、公正就顯得非常重要,這不僅體現(xiàn)在考試的過程中,還體現(xiàn)在評卷的過程中。以前,這些試卷都是進行人工翻閱批改,其中評卷老師的水平、狀態(tài)、情緒都能影響評卷的結果,這種不確定性有失公平公正。隨著信息技術的不斷發(fā)展,計算機功能的不斷強大,出現(xiàn)了答題卡的計算機閱卷設備,通過電子掃描技術將紙質的答題卡轉化為數(shù)值化的形式,再對其自動評閱,這不僅解決了評卷公正性、準確性的要求還提高了評卷的工作效率。

目前答題卡識別方式主要有兩種:一種是基于光電設備,另一種是基于圖像處理技術。光標閱讀機(OMR)是根據(jù)光電設備將不同區(qū)域的感光能力轉換為計算機處理的電信號,再依據(jù)電信號來識別。這種識別系統(tǒng)具有高效率、高準確率、低功耗的優(yōu)點,但它的缺點也很突出,即必須采用光標閱卷機和專用的答題卡,購買成本和使用成本都非常高昂,且這種形式的答題卡規(guī)格一旦確定就難以修改,所適用的范圍小。圖像處理技術是將圖像采集設備所獲得的圖像供計算機分析識別,從而獲取答題卡上的有效信息。這種識別方式不僅可以完成閱卷工作,還具有成本低廉、使用方便的優(yōu)點,而且可通過軟件方便修改答題卡的結構,以適應不同的需求。

針對獲得的數(shù)字化圖像數(shù)據(jù),陳淑紅等[1]提出基于縱向同步頭和模板匹配的方法進行定位識別;杜聰[2]提出模板匹配的識別方法;郝平[3]提出基于OpenCV耦合模板定位識別。他們都是采用模板匹配的方法來識別,識別的精度全取決于模板。本文提出一種基于Hough變換答題卡識別算法,以此構建基于圖像識別的閱卷系統(tǒng)。

1 方法設計

通過相機或掃描儀采集答題卡的原始圖像,當系統(tǒng)獲取到圖像之后,先對其進行預處理操作;通過Hough直線變換獲取圖像的矯正角度,并將圖像進行矯正操作,矯正后對圖像進行區(qū)域分割,獲得答題區(qū)域和準考證區(qū)域以及考試科目信息區(qū)域;對這些區(qū)域進行識別判斷,以完成閱卷步驟,流程如圖1所示。

圖1 閱卷流程圖

本文所描述的算法通過MATLAB 2017b軟件實現(xiàn),通過在main函數(shù)中調用其他子函數(shù)來實現(xiàn)圖1流程框圖中的內(nèi)容。

算法主程序:

I=imread(p);

%p為答題卡圖像的路徑和名字

[I1,bw1]=Image_Preprocessing(I);

%圖像預處理

[~,~,xy_long]=Hough_Process(bw1);

%hough直線檢測

angle=Compute_Angle(xy_long);

%計算傾斜角度

[I2,bw2]=Image_Rotate(I1,bw1,angle);

%圖像矯正

[bw3,Loc]=Morph_Process(bw2);

%形態(tài)學濾波

[Len,XYz,xy_long]=Hough_Process(bw3);

%

[bw4,bw5]=Image_Segmentation(XYz,bw3);

%圖像分割

[stats1,stats2,Line]=Region_Label(bw4,bw5,XYz,Loc);

%區(qū)域標記

[Anss(i).Answer,Anss(i).Bn]=Analysis(stats1,stats2,Line,I2);

%區(qū)域分析

Hough檢測子程序:

function[Len,XYz,xy_long]=Hough_Process(bw)

[H,T,R]=hough(bw);

%hough矩陣

P=houghpeaks(H,4,′threshold′,ceil(0.3×max(H(:))));

%hough峰值

lines=houghlines(bw,T,R,P,′FillGap′,50,′MinLength′,6);

%hough直線

max_len=0;

for i=1:length(lines)

xy=[lines(i).point1;lines(i).point2];

len=norm(lines(i).point1-lines(i).point2);

%計算直線長度

Len(i)=len;

if len>max_len

max_len=len;

xy_long=xy;

end

%判斷最長直線

XY{i}=xy;

%存儲直線坐標

end

[Len,ind]=sort(Len(:),′descend′);

%直線長度排序

for j=1:length(ind)

XYz{j}=XY{ind(j)};

end

x=xy_long(:,1);

y=xy_long(:,2);

if abs(diff(x))

x=[mean(x);mean(x)];

else

y=[0.75×y(1)+0.25×y(2);0.25×y(1)+0.75×y(2)];

end

%坐標調整

xy_long=[x y];

%輸出調整后的直線坐標

識別判斷子程序(部分):

function[Answer,Bn]=Analysis(stats1,stats2,Line,Img)

aw=[′A′ ′B′ ′C′ ′D′];

for i=1:length(stats1)

%循環(huán)所有的題目

temp=stats1(i).Centroid;

%獲取當前填涂區(qū)域的坐標

for i1=1:length(Dom)

%循環(huán)答題區(qū)域

Loc=Dom(i1).Loc;

%獲取i1區(qū)域中的范圍坐標

if temp(2)>=Loc(1) && temp(2)<=Loc(2)

x=Dom(i1).x;

y=Dom(i1).y;

i_y=(i1-1)×20;

%統(tǒng)計當前的題數(shù)

for i2=1:length(x)

%循環(huán)i1區(qū)域中的題組

xt=x{i2};

for i3=1:length(xt)-1

%循環(huán)題組中的題號

if temp(1)>=xt(i3) && temp(1)<=xt(i3+1)

i_x=(i2-1)×5+i3;

%統(tǒng)計題號

break;

end

end

end

i_n=i_y+i_x;

for i4=1:length(y)-1

%循環(huán)當前題號選項的個數(shù)

if temp(2)>=y(i4) && temp(2)<=y(i4+1)

i_a=aw(i4);

%給出答案

break;

end

end

end

end

Answer(i_n).Loc=[Answer(i_n).Loc;temp];

%

Answer(i_n).no=i_n;

%保存題號

Answer(i_n).aw=[Answer(i_n).aw i_a];

%保存答案

end

2 圖像預處理

答題卡自動閱卷系統(tǒng)是將圖像采集設備獲得的答題卡圖像傳輸給計算機,供其分析識別。但在獲取答題卡的數(shù)字圖像過程中,常常會受到環(huán)境、設備等因素的影響而產(chǎn)生噪聲,從而影響閱卷的準確性。因此,要對獲取到的圖像進行預處理操作,包括對圖像進行灰度拉伸、高斯濾波、圖像二值化,然后再將二值化的圖像進行反轉,這樣就可以大大減少計算的數(shù)據(jù)量。處理結果如圖2所示。

(a) 預處理后的答題卡圖像

(b) 二值反轉后的答題卡圖像圖2 預處理與二值反轉后的答題卡圖像

3 Hough直線傾斜矯正

3.1 Hough變換

霍夫變換是由Paul Hough于1962年首次提出,僅僅用于圖像中直線的檢測?,F(xiàn)在使用的廣義霍夫變換不僅能檢測直線,還可以檢測其他形狀的幾何特征。因為直角坐標的線與參數(shù)坐標中的點具有對偶性,從而可將直角坐標中的線轉換為參數(shù)坐標中的點?;舴蜃儞Q就利用這一原理,將曲線的檢測問題轉化為尋找峰值的問題。

在笛卡爾坐標系中一條過點(x0,y0)的直線可以用斜截式表示:

y0=kx0+b

(1)

式中:斜率k和截距b都是參數(shù)。若將x0和y0視為常數(shù),而將參數(shù)k和b視作變量,則式(1)改寫為:

b=-kx0+y0

(2)

這就將直角空間中的直線轉換成了參數(shù)空間中的點。同理直角空間中的點也可以轉換為參數(shù)空間的直線,變換如圖3所示。

圖3 點-線對偶性

但斜截式的直線方程不能表示所有的直線,如斜率不存在的直線,為了能表示所有的直線,采用極坐標形式的方程來表示直線,則將式(1)改寫為:

ρ=x0cosθ+y0sinθ

(3)

式中:ρ是原點到直線上最近點的距離,θ是x軸與連接原點和最近點直線之間的夾角,如圖4所示。因此,將圖像中的直線與一對參數(shù)(ρ,θ)相關聯(lián),這個參數(shù)(ρ,θ)平面就被稱為霍夫空間。

圖4 直角空間與霍夫空間

3.2 圖像矯正

經(jīng)Hough變換后,會得到很多條直線的橫縱坐標,經(jīng)式(4)計算,選出其中最長的一條直線,如圖5(a)所示,并根據(jù)此直線按式(5)求出矯正角度θ,最后將原圖像按式(6)矯正,矯正后的效果如圖5(b)、(c)所示。

(4)

(5)

(6)

(a) 檢測的最長直線

(b) 矯正后的原圖 (c) 矯正后的二值圖像圖5 檢測的直線圖與矯正后的原圖和二值圖

4 形態(tài)學濾波

形態(tài)學的本質是結構元素與圖像矩陣之間的相互作用,這種作用包括基礎的膨脹和腐蝕,也包括由這兩種復合而成的開和閉。

在形態(tài)變換中,若用E(X)表示二值圖像,B(X)表示結構元素,⊕和Θ兩種符號分別表示形態(tài)學運算中的膨脹運算和腐蝕運算,則:

膨脹定義為:

E⊕B={x:B(x)∩E≠Φ}

(7)

腐蝕定義為:

EΘB={x:B(x)?E}

(8)

設·和°分別是開運算和閉運算的符號,則:

開運算定義為:

E°B=(EΘB)⊕B

(9)

閉運算定義為:

E·B(E⊕B)ΘB

(10)

因此,本文采用的結構元素定義為:

濾波算法定義為:

f=EΘB2⊕B1

(11)

采用此算法對圖5(c)中的二值圖像進行形態(tài)學濾波處理,并將處理后的圖像中的答題邊界符去除,結果如圖6所示。

(a) 濾波前的二值圖 (b) 濾波后的二值圖圖6 濾波結果

5 圖像分割

圖像分割是指將圖像劃分成具有相似性質的若干區(qū)域的過程?,F(xiàn)有的分割方法有基于閾值分割、基于區(qū)域分割、基于邊緣分割以及基于特定理論的分割等[4]。

答題卡的有效信息位于圖像中的特定區(qū)域,包括準考證號區(qū)域、答題區(qū)域以及科目代號區(qū)域,對這些區(qū)域精準定位就可以獲取答題卡中的有效信息。本文采用了基于直線的邊界檢測和區(qū)域分割的方法,將答題卡化分為信息區(qū)域和答題區(qū)域兩部分,分割效果如圖7所示。

(a) 直線邊界檢測

(b) 信息區(qū)域

(c) 答題區(qū)域圖7 分割結果

6 識別判斷

識別包含對信息區(qū)域中準考證號的識別、科目代號的識別,也包含對答題區(qū)域選項的單選識別、多選識別。通過bwlabel獲取答題區(qū)域和信息區(qū)域的標記矩陣,通過regionprops獲取區(qū)域的Centroid屬性,然后根據(jù)此屬性判斷填涂的選項。

根據(jù)前文Hough變換獲得的直線,將答題區(qū)域和信息區(qū)域中的每個選項、信息通過網(wǎng)格劃分出來。然后采用圖8的識別算法進行識別。

圖8 識別算法

對圖7(b)、(c)進行識別,識別結果如表1、表2所示,將表1、表2中的信息疊加到原圖中的效果如圖9所示。

表1 信息區(qū)域識別出的結果

表2 答題區(qū)域識別出的結果

圖9 識別結束后的效果

7 測試與分析

測試環(huán)境:處理器型號為Intel(R) Core(TM) i5-4210U CPU @ 1.70 GHz 2.40 GHz,內(nèi)存4 GB,Windows 10操作系統(tǒng)。仿真軟件為MATLAB 2017b。答題卡圖像是用CCD相機在室內(nèi)拍攝的100張標準答題卡,每幅圖像的大小5 MB,分辨率為4 000×3 000。圖像以JPG格式保存,對拍攝的圖像進行壓縮,產(chǎn)生了馬賽克噪聲,且相機本就包含CCD噪聲,導致圖像中也含有了CCD噪聲。

本方法是根據(jù)答題卡圖像中的直線特征來識別答題區(qū)域和信息區(qū)域,它影響著這些區(qū)域的定位精度。直線特征在算法中有著舉足輕重的作用,在本算法中若用其他特征代替直線特征將很難定位答題區(qū)域和信息區(qū)域。

實驗共進行100份答題卡測試,每份45道題,測試結果如表3所示。

表3 不同份數(shù)的測試結果

表4 不同方法的識別速度

從表3中可以得知每份答題卡平均耗時0.893秒,正確率達到100%,從表4中可以知道本文算法相比于文獻[1]平均耗時2.956秒、文獻[5]平均耗時1.934秒、文獻[8]平均耗時0.909秒具有明顯優(yōu)勢,充分說明本文算法具有高效性。

8 結 語

本實驗實現(xiàn)了答題卡的正確識別,不需要專用的識別設備和答題卡,在普通PC機上就可實現(xiàn)。這不僅降低了購買成本、使用成本,還擴大了應用范圍,并且該方法的識別正確率達到了100%,識別速度為每份0.893 s。因此,本文所描述的識別方法是一種廉價、高效、便捷、實用的閱卷方法,具有實際應用價值。

猜你喜歡
二值答題卡矯正
混沌偽隨機二值序列的性能分析方法研究綜述
支持CNN與LSTM的二值權重神經(jīng)網(wǎng)絡芯片
高技術通訊(2021年2期)2021-04-13 01:09:46
基于二值形態(tài)學算子的軌道圖像分割新算法
測控技術(2018年10期)2018-11-25 09:35:28
“體態(tài)矯正”到底是什么?
中國自行車(2018年2期)2018-05-09 07:03:05
基于曲率局部二值模式的深度圖像手勢特征提取
湖南省動物衛(wèi)生監(jiān)督知識競賽答題卡
矯正牙齒,不只是為了美
福建人(2016年6期)2016-10-25 05:44:15
安全知識競賽答題卡
答題卡
矯正牙齒,現(xiàn)在開始也不遲
Coco薇(2015年7期)2015-08-13 22:47:12
罗源县| 沂南县| 仲巴县| 收藏| 聂拉木县| 南开区| 论坛| 中西区| 富民县| 林州市| 保亭| 利津县| 孙吴县| 陈巴尔虎旗| 合水县| 鹿邑县| 嘉黎县| 阳原县| 潍坊市| 九龙坡区| 瓦房店市| 阿拉善左旗| 邵武市| 湖口县| 无锡市| 汾阳市| 科技| 基隆市| 册亨县| 丹江口市| 驻马店市| 白城市| 综艺| 阳山县| 山西省| 寿光市| 林西县| 定安县| 九龙坡区| 城市| 琼中|