專利名稱:二維碼識別方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及二維碼的識別技術(shù)。
背景技術(shù):
二維碼是通過基于傳統(tǒng)條碼的一種新的編碼方案,對字符、文字、圖像等信息進(jìn)行糾錯編碼后,將得到的二進(jìn)制碼流表示成的二維條碼符號。所述二維碼與傳統(tǒng)的條碼比較,具有信息容量高、糾錯能力強、不依賴于數(shù)據(jù)庫支持等特點。目前其廣泛適用于證件識讀、物流和電子數(shù)據(jù)交換等方面。
所述二維碼的識別是通過圖像處理過程和譯碼過程來完成。在所述圖像處理過程中,主要包括模塊定位和數(shù)據(jù)采樣兩個部分。所述模塊定位部分的目的是搜索包含二維碼的定位圖形(例如QR符號的位置探測圖形、校正圖形等),對所述定位圖形進(jìn)行校正尺度、平移、旋轉(zhuǎn)等仿射變換處理,最后在處理后的定位圖形中定位二維碼中各模塊的位置。數(shù)據(jù)采樣部分的目的是提取各模塊對應(yīng)的二進(jìn)制碼流,包括數(shù)據(jù)碼流和糾錯碼流。所述二進(jìn)制碼流形成數(shù)值矩陣。所述譯碼過程是將所述數(shù)值矩陣,輸入給譯碼器,通過所述譯碼器對所述二進(jìn)制碼流進(jìn)行譯碼處理后,輸出相應(yīng)的信息結(jié)果。
當(dāng)提取后的二進(jìn)制碼流中的數(shù)據(jù)碼流中的誤碼數(shù)低于二維碼的糾錯容量時,二維碼可以通過自身的糾錯機制恢復(fù)出正確的信息;但是,當(dāng)誤碼數(shù)高于糾錯容量時,糾錯機制失敗,此時譯碼后得到的信息中可能包含大量錯誤,這些錯誤將會導(dǎo)致無法正確識別所述二維碼。
目前采用的圖像處理方法一般都是基于邊緣檢測進(jìn)行模塊的分割定位,然后提取各模塊對應(yīng)的二進(jìn)制碼流完成數(shù)據(jù)采樣過程,這種方法容易受噪聲干擾。此外,在某些應(yīng)用場景(例如用手機讀取名片上的二維碼)下,二維碼的體形小、模塊密度大,然而采集設(shè)備的焦距、分辨率等條件有限,這樣會導(dǎo)致采集到的圖像模糊、噪聲多、圖像中二維碼的模塊分辨率較低,給二維碼的圖像處理帶來困難。因此,在圖像處理過程中,如何從包含二維碼的圖像中盡量正確地提取二進(jìn)制碼流,是正確識別二維碼的關(guān)鍵問題。
與本發(fā)明有關(guān)的現(xiàn)有技術(shù)一提供了一種識別二維碼的方法,其主要思想是按照一次采集一張包含二維碼的圖像的圖片的方法采集圖像數(shù)據(jù),然后對采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,然后將得到的二進(jìn)制碼流構(gòu)成的矩陣進(jìn)行譯碼,根據(jù)譯碼結(jié)果獲取識別信息。
采用現(xiàn)有技術(shù)一時,由于按照一次采集一張包含二維碼的圖像的圖片的方法采集圖像,這樣采集到的圖像的效果不同,會直接導(dǎo)致二維碼識別的準(zhǔn)確度降低。
與本發(fā)明有關(guān)的現(xiàn)有技術(shù)二提供了另一種識別二維碼的方法,其主要是在視頻處理過程中,按照連續(xù)采集幀數(shù)據(jù)的方式采集圖像數(shù)據(jù),然后對采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,并將得到的二進(jìn)制碼流構(gòu)成的矩陣進(jìn)行譯碼,根據(jù)譯碼結(jié)果獲取識別信息。
現(xiàn)有技術(shù)二由于采集到的圖像數(shù)據(jù)是按照連續(xù)采集幀數(shù)據(jù)的方式采集的,所以最終能夠獲得正確的譯碼結(jié)果,但是由于對采集到的每一幀圖像數(shù)據(jù)都要進(jìn)行一一處理,必然會導(dǎo)致二維碼識別的時間比較長。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種二維碼識別方法和系統(tǒng),通過本發(fā)明,在連續(xù)的視頻處理過程中對采集到的每一幀圖像數(shù)據(jù)進(jìn)行處理時,不僅能夠提高二維碼的識別準(zhǔn)確度,而且能夠提高二維碼的識別速度。
本發(fā)明通過如下的技術(shù)方案實現(xiàn)本發(fā)明提供一種二維碼識別方法,其包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;然后將其累計到當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;對累計后得到的數(shù)值矩陣進(jìn)行譯碼處理,得到對應(yīng)的譯碼結(jié)果。
其中,所述將其累計到當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中的過程,具體包括對于當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù),利用其對應(yīng)的清晰度加權(quán)其對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣與所述第一數(shù)值矩陣進(jìn)行組合。
其中,當(dāng)采集到圖像對應(yīng)的圖像數(shù)據(jù)后,還包括根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并對所述可識別的圖像數(shù)據(jù)進(jìn)行圖像處理,得到對應(yīng)的數(shù)值矩陣;否則,丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
其中,所述的方法還包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣的譯碼結(jié)果的版本正確,且數(shù)值正確時,輸出所述譯碼結(jié)果。
其中,所述的方法還包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣的譯碼結(jié)果的版本不正確時,則丟棄所采集到的圖像數(shù)據(jù)。
本發(fā)明還提供一種二維碼識別系統(tǒng),包括數(shù)據(jù)采集單元、圖像處理單元和譯碼器,所述數(shù)據(jù)采集單元用于采集圖像數(shù)據(jù);所述圖像處理單元,用于對所采集到的圖像數(shù)據(jù)進(jìn)行模塊定位,并提取所述圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣;所述譯碼器用于對輸入的數(shù)值矩陣進(jìn)行譯碼處理;其還包括第一計算單元,用于當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;第二計算單元,用于將所述第一數(shù)值矩陣?yán)塾嫷较乱粡垐D像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;然后將其輸入給譯碼器。
其中,所述第二計算單元還用于對于當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù),利用其對應(yīng)的清晰度加權(quán)其對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣與所述第一數(shù)值矩陣進(jìn)行組合,得到對應(yīng)的數(shù)值矩陣。
其中,所述的系統(tǒng)還包括可識別圖像數(shù)據(jù)確定單元,用于根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并將所述可識別的圖像數(shù)據(jù)傳送給所述圖像處理單元;否則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
其中,所述的系統(tǒng)還包括判斷單元,用于判斷當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的譯碼結(jié)果的版本是否正確,若版本不正確,則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并將所述版本不正確的判斷結(jié)果傳送給所述采集單元;若版本正確,則繼續(xù)判斷所述譯碼結(jié)果中的數(shù)值是否正確,當(dāng)數(shù)值正確時,則輸出所述譯碼結(jié)果;當(dāng)數(shù)值不正確時,將譯碼結(jié)果的版本正確、但數(shù)值不正確的判斷結(jié)果傳送給所述第一計算單元。
由上述本發(fā)明提供的具體實施方案可以看出,本發(fā)明當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣?yán)塾嫷疆?dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中,因此在連續(xù)的視頻處理過程中對采集到的每一幀圖像數(shù)據(jù)進(jìn)行處理時,可以利用清晰度對解碼有錯誤的矩陣進(jìn)行加權(quán)后,再繼續(xù)解碼,從而能夠重復(fù)利用曾經(jīng)獲取過的比較清晰的圖像的數(shù)值矩陣,達(dá)到提高二維碼識別的速度和準(zhǔn)確度的目的。
圖1為本發(fā)明提供的第一實施例的流程圖;圖2為本發(fā)明提供的第二實施例的流程圖;圖3為本發(fā)明提供的第三實施例的結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明提供的第一實施例是一種二維碼識別方法,其主要思想是在連續(xù)的視頻處理過程中對采集到的圖像數(shù)據(jù)進(jìn)行處理時,通過圖像的清晰度來選取用來識別的圖像數(shù)據(jù),并且當(dāng)對選取到的圖像數(shù)據(jù)進(jìn)行圖像處理并譯碼后返回版本正確但數(shù)值錯誤時,利用所述清晰度對所述圖像中各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行加權(quán),并且與再次選取的用來識別的圖像中的各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行組合后,再進(jìn)行譯碼處理,從而達(dá)到提高二維碼識別的速度和準(zhǔn)確度的目的。
其具體實施過程如圖1所示,包括如下內(nèi)容步驟S101,采集一張圖像對應(yīng)的圖像數(shù)據(jù),并計算采集到的圖像數(shù)據(jù)的清晰度。
通過圖像采集設(shè)備,如攝像頭連續(xù)采集圖像數(shù)據(jù)。清晰度是衡量圖像品質(zhì)優(yōu)劣的標(biāo)準(zhǔn)之一,一般指圖像細(xì)節(jié)邊緣變化的敏銳程度。二維碼由黑白交替的條塊組成邊緣部分特征,其數(shù)值化的描述多用圖像清晰度評價函數(shù)。實際工程中有很多圖像清晰度評價函數(shù)可以計算圖像數(shù)據(jù)的清晰度,例如可以選取基于sobel邊緣檢測算子的清晰度評價函數(shù)來計算清晰度。
步驟S102,判斷所計算出的清晰度是否大于清晰度閾值,若否,則執(zhí)行步驟S106,即丟棄所采集到的幀圖像數(shù)據(jù),然后繼續(xù)步驟S101;若大于,則執(zhí)行步驟S103。
步驟S102中,當(dāng)采集到的圖像數(shù)據(jù)的清晰度大于清晰度閾值時,說明采集到的幀圖像數(shù)據(jù)根本不能識別,此時,直接將其丟棄掉,避免了對這些圖像數(shù)據(jù)的處理,因此這樣能夠提高圖像的處理速度和準(zhǔn)確度。
步驟S103,對采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,獲得當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣。
步驟S104,對當(dāng)前圖像各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行譯碼,得到相應(yīng)的譯碼結(jié)果。
步驟S105,判斷譯碼結(jié)果的版本是否正確,若不正確,則繼續(xù)步驟S106,即丟棄所采集到的圖像數(shù)據(jù),然后繼續(xù)步驟S101;否則,繼續(xù)執(zhí)行步驟S107。
由于圖像數(shù)據(jù)的版本與圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣間存在特定的對應(yīng)關(guān)系,如圖像數(shù)據(jù)的V4版本對應(yīng)32×32數(shù)值矩陣,因此根據(jù)圖像處理后得到的數(shù)值矩陣就能夠計算得到對應(yīng)的圖像數(shù)據(jù)的版本。另外,譯碼結(jié)果中的版本信息是根據(jù)圖像處理后得到的數(shù)值矩陣中的一部分?jǐn)?shù)據(jù)來譯碼獲得,將譯碼結(jié)果中的版本信息與根據(jù)數(shù)值矩陣計算得到的圖像數(shù)據(jù)的版本進(jìn)行比較,如果二者相同,則確認(rèn)譯碼結(jié)果的版本正確;否則,則認(rèn)為譯碼結(jié)果中的版本不正確。
步驟S107,判斷所述譯碼結(jié)果的數(shù)值是否正確,若正確,則直接執(zhí)行步驟S117,即輸出譯碼結(jié)果;若不正確,則執(zhí)行步驟S108。
在譯碼結(jié)果中,可以獲得譯碼過程中當(dāng)前圖像數(shù)據(jù)對應(yīng)的糾錯等級,由所述糾錯等級可以求得糾錯率(如30%)。同樣可以獲得譯碼過程中遇到的錯誤,并求得錯誤率(如20%)。根據(jù)所述糾錯百分比以及所述錯誤率判斷譯碼結(jié)果的數(shù)值是否正確,具體如下判斷錯誤率是否高于糾錯率,若是,則確定所述譯碼結(jié)果的數(shù)值出現(xiàn)錯誤;若錯誤率未高于所述糾錯率,則計算所述錯誤率與糾錯率的比值,并將所得到的比值與設(shè)定的閾值系數(shù)進(jìn)行比較,如果所述比值高于所述閾值系數(shù),則確定所述譯碼結(jié)果中的數(shù)值出現(xiàn)錯誤;如果所述比值未高于所述閾值系數(shù),則認(rèn)為所述譯碼結(jié)果中的數(shù)值正確。
步驟S108,存儲用計算出的當(dāng)前采集到的圖像數(shù)據(jù)的清晰度加權(quán)所述圖像數(shù)據(jù)中各個模塊對應(yīng)的數(shù)值矩陣后得到的數(shù)值矩陣。
例如,假設(shè)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度為C0,所述圖像數(shù)據(jù)中各個模塊對應(yīng)的數(shù)值矩陣為P0,則利用所述C0加權(quán)所述P0后,得到P0=C0×P0。
步驟S109,采集下一張圖像對應(yīng)的圖像數(shù)據(jù),并計算采集到的圖像數(shù)據(jù)的清晰度。
步驟S110,判斷所計算出的清晰度是否大于清晰度閾值,若小于,則執(zhí)行步驟S116,即丟棄當(dāng)前所采集到的圖像數(shù)據(jù),然后繼續(xù)步驟S109;若大于,則執(zhí)行步驟S111。
步驟S111,對當(dāng)前采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,獲得當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣。
步驟S112,利用當(dāng)前所采集到的圖像數(shù)據(jù)的清晰度對所述當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行加權(quán),并將加權(quán)處理后得到的數(shù)值矩陣與本地存儲的數(shù)值矩陣進(jìn)行組合,得到組合后的數(shù)值矩陣。
由于假設(shè)當(dāng)前采集到的圖像數(shù)據(jù)為第二張圖像的圖像數(shù)據(jù),其對應(yīng)的清晰度為C1,對應(yīng)的數(shù)值矩陣為P1,此時本地存儲的數(shù)值矩陣為P0=C0×P0;則此時利用所述C1對所述P1加權(quán),然后再將得到的數(shù)值矩陣與所述P0進(jìn)行組合,得到P0=(C0×P0+C1×P1)/(C0+C1)。
由于Pi為0/1矩陣,其中i=0,1...N;所以P0=(C0×P0+C1×P1)/(C0+C1)之后,4舍5入結(jié)果仍然為0/1矩陣。
假設(shè)當(dāng)前采集到的圖像數(shù)據(jù)為第三張圖像的圖像數(shù)據(jù),其對應(yīng)的清晰度為C2,對應(yīng)的數(shù)值矩陣為P2,此時本地存儲的數(shù)值矩陣為P0=(C0×P0+C1×P1)/(C0+C1);則此時利用所述C2對所述P2加權(quán),然后再將得到的數(shù)值矩陣與所述P0進(jìn)行組合,得到P0=(C0×P0+C1×P1+C2×P2)/(C0+C1+C2)。
步驟S113,對所得到組合后的數(shù)值矩陣進(jìn)行譯碼處理,得到對應(yīng)的譯碼結(jié)果。
步驟S114,判斷所述譯碼結(jié)果的版本是否正確,若不正確,則執(zhí)行步驟S116,即丟棄所采集到的圖像數(shù)據(jù),然后繼續(xù)執(zhí)行步驟S109;否則,執(zhí)行步驟S115。
步驟S115,判斷所述譯碼結(jié)果的數(shù)值是否正確,若不正確,則繼續(xù)執(zhí)行步驟S108;若正確,則執(zhí)行步驟S117,即輸出譯碼結(jié)果。
上述實施例中,也可以在執(zhí)行完步驟S111之后,對采集到的后續(xù)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣進(jìn)行步驟S104至步驟S107的處理過程,當(dāng)步驟S107判斷后,得到判斷結(jié)果為譯碼結(jié)果的數(shù)值不正確時,則保存數(shù)值矩陣的結(jié)果和清晰度。與存儲的數(shù)值矩陣的結(jié)果用清晰度歸一化后進(jìn)行加權(quán)得到新的數(shù)值矩陣,然后再進(jìn)行步驟S112及其之后的操作。
上述實施例中也可以只保存一個最清晰的圖像的數(shù)值矩陣Pm和相應(yīng)的清晰度Cm,之后每保存一張新的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣時,根據(jù)所述清晰度Cm來加權(quán)所述新圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣。加權(quán)采用如下公式P0=(Cm×Pm+Ci×Pi)/(Cm+Ci)。
之后4舍5入結(jié)果仍然為0/1矩陣。Pi表示當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,Ci表示對應(yīng)的清晰度。
本發(fā)明提供的第二實施例是另一種二維碼識別方法,其與第一實施例的區(qū)別是當(dāng)采集到圖像數(shù)據(jù)后,不再通過清晰度來選取可識別的圖像數(shù)據(jù);而是僅僅通過利用清晰度對得到的數(shù)值矩陣進(jìn)行加權(quán)處理,并累計上次處理后的數(shù)值矩陣的方法來提高二維碼識別的速度和準(zhǔn)確度的目的。其具體實施過程如圖2所示,包括步驟S201,采集一張圖像對應(yīng)的圖像數(shù)據(jù),并計算采集到的圖像數(shù)據(jù)的清晰度。
通過圖像采集設(shè)備,如攝像頭連續(xù)采集圖像數(shù)據(jù)。
步驟S202,對采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,獲得當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣。
步驟S203,對當(dāng)前圖像各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行譯碼,得到相應(yīng)的譯碼結(jié)果。
步驟S204,判斷譯碼結(jié)果的版本是否正確,若不正確,則繼續(xù)步驟S205,即丟棄所采集到的圖像數(shù)據(jù),然后繼續(xù)步驟S201;否則,繼續(xù)執(zhí)行步驟S206。
步驟S206,判斷所述譯碼結(jié)果的數(shù)值是否正確,若正確,則直接執(zhí)行步驟S215,即輸出譯碼結(jié)果;若不正確,則執(zhí)行步驟S207。
步驟S207,存儲用計算出的當(dāng)前采集到的圖像數(shù)據(jù)的清晰度加權(quán)所述圖像數(shù)據(jù)中各個模塊對應(yīng)的數(shù)值矩陣后得到的數(shù)值矩陣。
步驟S208,采集下一張圖像對應(yīng)的圖像數(shù)據(jù),并計算采集到的圖像數(shù)據(jù)的清晰度。
步驟S209,對當(dāng)前采集到的圖像數(shù)據(jù)進(jìn)行圖像處理,獲得當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣。
步驟S210,利用當(dāng)前所采集到的圖像數(shù)據(jù)的清晰度對所述當(dāng)前圖像中各個模塊對應(yīng)的數(shù)值矩陣進(jìn)行加權(quán),并將加權(quán)處理后得到的數(shù)值矩陣與本地存儲的數(shù)值矩陣進(jìn)行組合,得到組合后的數(shù)值矩陣。
步驟S211,對所得到組合后的數(shù)值矩陣進(jìn)行譯碼處理,得到對應(yīng)的譯碼結(jié)果。
步驟S212,判斷所述譯碼結(jié)果的版本是否正確,若不正確,則執(zhí)行步驟S214,即丟棄所采集到的圖像數(shù)據(jù),然后繼續(xù)執(zhí)行步驟S208;否則,執(zhí)行步驟S213。
步驟S213,判斷所述譯碼結(jié)果的數(shù)值是否正確,若不正確,則繼續(xù)執(zhí)行步驟S207;若正確,則執(zhí)行步驟S215,即輸出譯碼結(jié)果。
上述實施例中,也可以在執(zhí)行完步驟S209之后,對采集到的后續(xù)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣進(jìn)行步驟S203至步驟S206的處理過程,當(dāng)步驟S206判斷后,得到判斷結(jié)果為譯碼結(jié)果的數(shù)值不正確時,則保存數(shù)值矩陣的結(jié)果和清晰度。與存儲的數(shù)值矩陣的結(jié)果用清晰度歸一化后進(jìn)行加權(quán)得到新的數(shù)值矩陣,然后再進(jìn)行步驟S210及其之后的操作。
上述實施例中也可以只保存一個最清晰的圖像的數(shù)值矩陣Pm和相應(yīng)的清晰度Cm,之后每保存一張新的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣時,根據(jù)所述清晰度Cm來加權(quán)所述新圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣。加權(quán)采用如下公式P0=(Cm×Pm+Ci×Pi)/(Cm+Ci)。
之后4舍5入結(jié)果仍然為0/1矩陣。Pi表示當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,Ci表示對應(yīng)的清晰度。
本發(fā)明提供的第三實施例是一種二維碼識別系統(tǒng),其結(jié)構(gòu)如圖3所示,包括數(shù)據(jù)采集單元、圖像處理單元和譯碼器,以及第一計算單元、第二計算單元和判斷單元;當(dāng)為例進(jìn)一步提高系統(tǒng)的處理速度和準(zhǔn)確度時,所述二維碼識別系統(tǒng)還可以包括可識別圖像數(shù)據(jù)確定單元。
系統(tǒng)中各個單元的功能如下所述數(shù)據(jù)采集單元用于采集圖像數(shù)據(jù);所述圖像處理單元,用于對所采集到的圖像數(shù)據(jù)進(jìn)行模塊定位,并提取所述圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣;所述譯碼器用于對輸入的數(shù)值矩陣進(jìn)行譯碼處理;判斷單元,用于判斷當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的譯碼結(jié)果的版本是否正確,若版本不正確,則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并將所述版本不正確的判斷結(jié)果傳送給所述采集單元;若版本正確,則繼續(xù)判斷所述譯碼結(jié)果中的數(shù)值是否正確,當(dāng)數(shù)值正確時,則輸出所述譯碼結(jié)果;當(dāng)數(shù)值不正確時,將譯碼結(jié)果的版本正確、但數(shù)值不正確的判斷結(jié)果傳送給所述第一計算單元。
第一計算單元,用于當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;第二計算單元,用于將所述第一數(shù)值矩陣?yán)塾嫷较乱粡垐D像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;然后將得到的數(shù)值矩陣輸入給譯碼器。
所述可識別圖像數(shù)據(jù)確定單元,用于根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并將所述可識別的圖像數(shù)據(jù)傳送給所述圖像處理單元;否則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
系統(tǒng)中各個單元間的信號傳遞關(guān)系如下所述數(shù)據(jù)采集單元采集一張圖像對應(yīng)的圖像數(shù)據(jù)后,將其輸送給可識別圖像數(shù)據(jù)確定單元。
所述可識別圖像數(shù)據(jù)確定單元,用于根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并將所述可識別的圖像數(shù)據(jù)傳送給所述圖像處理單元;否則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
所述圖像處理單元將所述圖像數(shù)據(jù)進(jìn)行模塊定位,并提取所述圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,然后輸入給所述譯碼器。
所述譯碼器對輸入的數(shù)值矩陣進(jìn)行譯碼處理,并返回譯碼結(jié)果給所述判斷單元。
所述判斷單元判斷所述譯碼結(jié)果的版本是否正確,若版本不正確,則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并將所述版本不正確的判斷結(jié)果傳送給所述采集單元;若版本正確,則繼續(xù)判斷所述譯碼結(jié)果中的數(shù)值是否正確,當(dāng)數(shù)值正確時,則輸出所述譯碼結(jié)果;當(dāng)數(shù)值不正確時,將譯碼結(jié)果的版本正確、但數(shù)值不正確的判斷結(jié)果傳送給所述第一計算單元。判斷譯碼結(jié)果的版本是否正確以及判斷譯碼結(jié)果中的數(shù)值是否正確的具體過程,與第一實施例中的相關(guān)描述雷同,這里不再詳細(xì)描述。
當(dāng)?shù)谝挥嬎銌卧邮盏疆?dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣。
所述采集單元接收到版本不正確的判斷結(jié)果時,則繼續(xù)采集下一張圖像對應(yīng)的圖像數(shù)據(jù),并通過所述圖像處理單元對所述圖像數(shù)據(jù)進(jìn)行模塊定位,數(shù)據(jù)采樣處理后,提取出對應(yīng)的數(shù)值矩陣。
所述第二計算單元利用當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的清晰度加權(quán)所述圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣與所述第一計算單元計算出的第一數(shù)值矩陣進(jìn)行組合,得到相應(yīng)的數(shù)值矩陣。然后將所得到的數(shù)值矩陣輸送給所述譯碼器。
所述譯碼器對所述輸入的數(shù)值矩陣進(jìn)行譯碼處理,得到相應(yīng)的譯碼結(jié)果,然后將所述譯碼結(jié)果輸入給所述判斷單元。
由上述本發(fā)明提供的具體實施方案可以看出,本發(fā)明當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣?yán)塾嫷疆?dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中,因此在連續(xù)的視頻處理過程中對采集到的每一幀圖像數(shù)據(jù)進(jìn)行處理時,可以利用清晰度對解碼有錯誤的矩陣進(jìn)行加權(quán)后,再繼續(xù)解碼,從而能夠重復(fù)利用曾經(jīng)獲取過的比較清晰的圖像的數(shù)值矩陣,達(dá)到提高二維碼識別的速度和準(zhǔn)確度的目的。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種二維碼識別方法,其特征在于,包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;然后將其累計到當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;對累計后得到的數(shù)值矩陣進(jìn)行譯碼處理,得到對應(yīng)的譯碼結(jié)果。
2.如權(quán)利要求1所述的方法,其特征在于,所述將其累計到當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中的過程,具體包括對于當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù),利用其對應(yīng)的清晰度加權(quán)其對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣與所述第一數(shù)值矩陣進(jìn)行組合。
3.如權(quán)利要求2所述的方法,其特征在于,當(dāng)采集到圖像對應(yīng)的圖像數(shù)據(jù)后,還包括根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并對所述可識別的圖像數(shù)據(jù)進(jìn)行圖像處理,得到對應(yīng)的數(shù)值矩陣;否則,丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣的譯碼結(jié)果的版本正確,且數(shù)值正確時,輸出所述譯碼結(jié)果。
5.如權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣的譯碼結(jié)果的版本不正確時,則丟棄所采集到的圖像數(shù)據(jù)。
6.一種二維碼識別系統(tǒng),包括數(shù)據(jù)采集單元、圖像處理單元和譯碼器,所述數(shù)據(jù)采集單元用于采集圖像數(shù)據(jù);所述圖像處理單元,用于對所采集到的圖像數(shù)據(jù)進(jìn)行模塊定位,并提取所述圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣;所述譯碼器用于對輸入的數(shù)值矩陣進(jìn)行譯碼處理;其特征在于,還包括第一計算單元,用于當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;第二計算單元,用于將所述第一數(shù)值矩陣?yán)塾嫷较乱粡垐D像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;然后將其輸入給譯碼器。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述第二計算單元還用于對于當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù),利用其對應(yīng)的清晰度加權(quán)其對應(yīng)的數(shù)值矩陣,然后將得到的數(shù)值矩陣與所述第一數(shù)值矩陣進(jìn)行組合,得到對應(yīng)的數(shù)值矩陣。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,還包括可識別圖像數(shù)據(jù)確定單元,用于根據(jù)當(dāng)前采集到的圖像數(shù)據(jù)的清晰度以及設(shè)定的清晰度閾值判斷當(dāng)前采集到的圖像數(shù)據(jù)是否為可識別的圖像數(shù)據(jù),并當(dāng)所述圖像數(shù)據(jù)的清晰度大于所述設(shè)定的清晰度閾值時,則確定當(dāng)前所采集到的圖像數(shù)據(jù)為可識別的圖像數(shù)據(jù),并將所述可識別的圖像數(shù)據(jù)傳送給所述圖像處理單元;否則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并采集下一張圖像對應(yīng)的圖像數(shù)據(jù)。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,還包括判斷單元,用于判斷當(dāng)前采集到的圖像數(shù)據(jù)對應(yīng)的譯碼結(jié)果的版本是否正確,若版本不正確,則丟棄當(dāng)前所采集到的圖像數(shù)據(jù),并將所述版本不正確的判斷結(jié)果傳送給所述采集單元;若版本正確,則繼續(xù)判斷所述譯碼結(jié)果中的數(shù)值是否正確,當(dāng)數(shù)值正確時,則輸出所述譯碼結(jié)果;當(dāng)數(shù)值不正確時,將譯碼結(jié)果的版本正確、但數(shù)值不正確的判斷結(jié)果傳送給所述第一計算單元。
全文摘要
本發(fā)明公開了一種二維碼識別方法和系統(tǒng),其當(dāng)當(dāng)前采集到的圖像數(shù)據(jù)的數(shù)值矩陣的譯碼結(jié)果的版本正確,但數(shù)值錯誤時,利用當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的清晰度,加權(quán)當(dāng)前所采集到的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣,得到第一數(shù)值矩陣;然后將其累計到當(dāng)前采集到的下一張圖像對應(yīng)的圖像數(shù)據(jù)對應(yīng)的數(shù)值矩陣中;對累計后得到的數(shù)值矩陣進(jìn)行譯碼處理,得到對應(yīng)的譯碼結(jié)果。通過本發(fā)明,在連續(xù)的視頻處理過程中對采集到的每一幀圖像數(shù)據(jù)進(jìn)行處理時,可以利用清晰度對解碼有錯誤的矩陣進(jìn)行加權(quán)后,再繼續(xù)解碼,從而能夠重復(fù)利用曾經(jīng)獲取過的比較清晰的圖像的數(shù)值矩陣,達(dá)到提高二維碼識別的速度和準(zhǔn)確度的目的。
文檔編號G06K9/00GK1971583SQ20061014416
公開日2007年5月30日 申請日期2006年11月28日 優(yōu)先權(quán)日2006年11月28日
發(fā)明者高飛 申請人:北京中星微電子有限公司