亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Hough變換的答題卡識別

        2020-03-13 10:56:30羅朝陽張鵬超姚晉晉趙瑞杰
        計算機(jī)應(yīng)用與軟件 2020年3期
        關(guān)鍵詞:區(qū)域信息

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

        1(陜西理工大學(xué)機(jī)械工程學(xué)院 陜西 漢中 723000)2(陜西省工業(yè)自動化重點(diǎn)實(shí)驗(yàn)室 陜西 漢中 723000)

        0 引 言

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

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

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

        1 方法設(shè)計

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

        圖1 閱卷流程圖

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

        算法主程序:

        I=imread(p);

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

        [I1,bw1]=Image_Preprocessing(I);

        %圖像預(yù)處理

        [~,~,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)學(xué)濾波

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

        %

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

        %圖像分割

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

        %區(qū)域標(biāo)記

        [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;

        %存儲直線坐標(biāo)

        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

        %坐標(biāo)調(diào)整

        xy_long=[x y];

        %輸出調(diào)整后的直線坐標(biāo)

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

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

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

        for i=1:length(stats1)

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

        temp=stats1(i).Centroid;

        %獲取當(dāng)前填涂區(qū)域的坐標(biāo)

        for i1=1:length(Dom)

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

        Loc=Dom(i1).Loc;

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

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

        x=Dom(i1).x;

        y=Dom(i1).y;

        i_y=(i1-1)×20;

        %統(tǒng)計當(dā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)當(dāng)前題號選項的個數(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 圖像預(yù)處理

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

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

        (b) 二值反轉(zhuǎn)后的答題卡圖像圖2 預(yù)處理與二值反轉(zhuǎn)后的答題卡圖像

        3 Hough直線傾斜矯正

        3.1 Hough變換

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

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

        y0=kx0+b

        (1)

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

        b=-kx0+y0

        (2)

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

        圖3 點(diǎn)-線對偶性

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

        ρ=x0cosθ+y0sinθ

        (3)

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

        圖4 直角空間與霍夫空間

        3.2 圖像矯正

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

        (4)

        (5)

        (6)

        (a) 檢測的最長直線

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

        4 形態(tài)學(xué)濾波

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

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

        膨脹定義為:

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

        (7)

        腐蝕定義為:

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

        (8)

        設(shè)·和°分別是開運(yùn)算和閉運(yùn)算的符號,則:

        開運(yùn)算定義為:

        E°B=(EΘB)⊕B

        (9)

        閉運(yùn)算定義為:

        E·B(E⊕B)ΘB

        (10)

        因此,本文采用的結(jié)構(gòu)元素定義為:

        濾波算法定義為:

        f=EΘB2⊕B1

        (11)

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

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

        5 圖像分割

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

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

        (a) 直線邊界檢測

        (b) 信息區(qū)域

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

        6 識別判斷

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

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

        圖8 識別算法

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

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

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

        圖9 識別結(jié)束后的效果

        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相機(jī)在室內(nèi)拍攝的100張標(biāo)準(zhǔn)答題卡,每幅圖像的大小5 MB,分辨率為4 000×3 000。圖像以JPG格式保存,對拍攝的圖像進(jìn)行壓縮,產(chǎn)生了馬賽克噪聲,且相機(jī)本就包含CCD噪聲,導(dǎo)致圖像中也含有了CCD噪聲。

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

        實(shí)驗(yàn)共進(jìn)行100份答題卡測試,每份45道題,測試結(jié)果如表3所示。

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

        表4 不同方法的識別速度

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

        8 結(jié) 語

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

        猜你喜歡
        區(qū)域信息
        永久基本農(nóng)田集中區(qū)域“禁廢”
        分割區(qū)域
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        關(guān)于四色猜想
        分區(qū)域
        基于嚴(yán)重區(qū)域的多PCC點(diǎn)暫降頻次估計
        電測與儀表(2015年5期)2015-04-09 11:30:52
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        區(qū)域
        民生周刊(2012年10期)2012-10-14 09:06:46
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        无码夜色一区二区三区| 国产网站一区二区三区| 亚洲av综合av成人小说| 亚洲aⅴ无码成人网站国产app| 亚洲乱码少妇中文字幕| 少妇人妻在线伊人春色| 色综合久久中文字幕综合网| 精品三级av无码一区| 欧美一级特黄AAAAAA片在线看| 亚洲二区三区在线播放| 亚洲高清一区二区三区在线播放 | 亚洲无码一二专区| 91亚洲国产成人久久精品网站| 国产一区二区精品亚洲| 免费人妻无码不卡中文字幕18禁| 一级二级中文字幕在线视频| 国产美女高潮流的白浆久久| 久久精品免费中文字幕| 国产人妻久久精品二区三区特黄| 欧美日韩中文字幕久久伊人| 亚洲av区一区二区三区| 日日摸日日碰人妻无码 | 国产成人亚洲综合无码DVD| 久久精品国产亚洲av试看 | 国产麻传媒精品国产av| 国产真人无遮挡免费视频| 91桃色在线播放国产| 欧洲美熟女乱av亚洲一区| 制服丝袜人妻中文字幕在线| 麻豆人妻无码性色AV专区| 日本成人午夜一区二区三区| 国产精品久久久久乳精品爆| 国产91网址| 亚洲一区二区三区码精品色| 免费在线黄色电影| 国产肉体ⅹxxx137大胆| 亚洲av综合色区无码一二三区| 亚洲一区二区三区在线观看播放| 人妻被公上司喝醉在线中文字幕| 夜夜爽妓女8888888视频| 日本一区二区不卡视频|