本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是指一種條形碼的識別方法、裝置及設(shè)備。
背景技術(shù):
條形碼是使機(jī)器讀取數(shù)據(jù)的一項(xiàng)通用技術(shù)。目前,大多數(shù)的條形碼都是使用激光掃描的方式來讀取的,這種讀取方式具有價(jià)格低廉和穩(wěn)定的優(yōu)點(diǎn)。但在一些特殊的場景下,激光掃描的方式并不能有效工作:比如讀取任意方向的條形碼或者同時讀取多個條形碼。在某些有難度的場景下激光掃描也無法達(dá)到好的性能,比如光照變化強(qiáng)烈時。
基于圖像的條形碼解碼技術(shù)可以在某種程度上有效解決激光掃描讀取方式存在的問題。它可以讀取任意數(shù)量、任意擺放的條形碼。在物流系統(tǒng)、商品驗(yàn)證等場合下可以大幅度提高效率。
基于圖像的一維條形碼識別技術(shù)可以大致分為以下的四個大類:
1)通過閾值二值化
這種方法將掃描線上的灰度,使用閾值或者動態(tài)閾值進(jìn)行二值化,該方法對于模糊和噪聲敏感。
2)邊緣檢測
這種方法使用Canny算子或者Hough Line檢測邊緣。它具有和閾值二值化方法一樣的缺點(diǎn):對模糊和噪聲敏感。
3)基于統(tǒng)計(jì)的識別
基于統(tǒng)計(jì)學(xué)習(xí)的方法提取條形碼的特征,并學(xué)習(xí)分類,因此對于噪聲和模糊有一定魯棒性,但這種方法的效果很大程度上取決于訓(xùn)練樣本的數(shù)量和質(zhì)量。
4)基于OCR(Optical Character Recognition,光學(xué)字符識別)的數(shù)字識別
大多數(shù)的條形碼具有對應(yīng)的數(shù)字區(qū)域,所以可以通過定位數(shù)字區(qū)域和識別數(shù)字來解碼字符串。該方法丟失了條碼的信息,并且因?yàn)閿?shù)字串不含校驗(yàn)位,因此無法確認(rèn)所得到的結(jié)果的正確性。
基于圖像的條形碼識別任務(wù)的主要挑戰(zhàn)就是由于圖像模糊(比如由于對焦不準(zhǔn)確)和非均勻的光照?,F(xiàn)有技術(shù)中,沒有一種對模糊圖像中的條形碼進(jìn)行準(zhǔn)確識別的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種可以對模糊圖像中的條形碼進(jìn)行準(zhǔn)確識別的條形碼的識別方法、裝置及設(shè)備。
為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供一種條形碼的識別方法,包括:
獲取一輸入的具有條形碼的圖像;
獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)與所述條形碼區(qū)域的條形碼解碼結(jié)果果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
另一方面,本發(fā)明的實(shí)施例還提供一種條形碼的識別裝置,包括:
第一獲取模塊,用于獲取一輸入的具有條形碼的圖像;
第二獲取模塊,用于獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
輸出模塊,用于獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
又一方面,本發(fā)明的實(shí)施例還提供一種設(shè)備,包括:
輸入接口,用于獲取一輸入的具有條形碼的圖像;
處理器,用于獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;并獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果;
輸出接口,用于輸出所述處理器得到的輸出結(jié)果。
本發(fā)明的上述技術(shù)方案的有益效果如下:
上述方案,通過獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出;從而可以對模糊圖像中的條形碼進(jìn)行準(zhǔn)確識別。
附圖說明
圖1是根據(jù)本發(fā)明一個實(shí)施例的總體流程圖。
圖2是根據(jù)本發(fā)明一個實(shí)施例的解釋模糊和非均勻光照對于圖像上條形碼解碼任務(wù)帶來難度的示意圖。
圖3是根據(jù)本發(fā)明一個實(shí)施例的解釋基于圖像的條形碼解碼任務(wù)可以將條碼區(qū)域和字符識別區(qū)域分開的示意圖。
圖4是根據(jù)本發(fā)明一個實(shí)施例的解釋條形碼和數(shù)字字符識別結(jié)果可以來交叉驗(yàn)證得到最終結(jié)果的示意圖。
圖5和圖6是根據(jù)本發(fā)明一個實(shí)施例的解釋通過聯(lián)合優(yōu)化條形碼和數(shù)字字符識別,兩個任務(wù)的結(jié)果都會變得更加準(zhǔn)確的示意圖。
圖7是根據(jù)本發(fā)明一個實(shí)施例的條形碼解碼的流程示意圖。
圖8是根據(jù)本發(fā)明一個實(shí)施例的解釋使用已知的條碼位來初始化模型參數(shù)的示意圖。
圖9是根據(jù)本發(fā)明一個實(shí)施例的解釋通過模糊模型和光照模型產(chǎn)生仿真 信號的示意圖。
圖10是根據(jù)本發(fā)明一個實(shí)施例的條形碼的數(shù)字識別的流程示意圖。
圖11是根據(jù)本發(fā)明一個實(shí)施例的輸出數(shù)字的每一位的流程圖。
圖12是根據(jù)本發(fā)明一個實(shí)施例的解釋錯誤校正的示意圖。
圖13是根據(jù)本發(fā)明一個實(shí)施例的條形碼的識別裝置的示意圖。
圖14是根據(jù)本發(fā)明一個實(shí)施例的設(shè)備的示意圖。
具體實(shí)施方式
為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
本發(fā)明針對現(xiàn)有技術(shù)中,無法對模糊圖像中的條形碼進(jìn)行準(zhǔn)確識別的問題,本發(fā)明的實(shí)施例同時結(jié)合OCR(Optical Character Recognition,光學(xué)字符識別)和條碼解碼,當(dāng)將條形碼解碼和OCR數(shù)字識別結(jié)合起來聯(lián)合優(yōu)化模型時,OCR數(shù)字識別和條碼解碼都會變得更加準(zhǔn)確。在具有條形碼的一幅模糊圖像中:條形碼和數(shù)字字符都對應(yīng)共同的數(shù)字串,可以使用交叉驗(yàn)證來得到最終的結(jié)果。更重要的原因是:OCR數(shù)字字符識別和條碼解碼有一些共有的特性:相同的模糊參數(shù)和相關(guān)的光照分布。
第一實(shí)施例
如圖1所示,本發(fā)明的實(shí)施例提供一種條形碼的識別方法,包括:
步驟11,獲取一輸入的具有條形碼的圖像;其中,該圖像可以是具有條形碼的一幅模糊的圖像;
步驟12,獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
步驟13,獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
本發(fā)明的該實(shí)施例,通過獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所 述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出;從而可以對模糊圖像中的條形碼進(jìn)行準(zhǔn)確識別。
圖2是待解碼的圖像受到模糊和光照變化的影響的示意圖。在圖像拍攝過程中,相機(jī)有可能未能對焦到條形碼區(qū)域,條形碼中白色空隙和黑色條之間出現(xiàn)了模糊而很難準(zhǔn)確檢測到條形碼的邊緣。而光照對條形碼的影響也很明顯,如圖2所述,光照從左到右漸漸增加。無論是傳統(tǒng)基于圖像的解碼技術(shù)還是使用OCR數(shù)字識別,對于圖2所示的條碼圖像都很難準(zhǔn)確提取信息。
圖3是根據(jù)本發(fā)明一個實(shí)施例的解釋基于圖像的條形碼解碼任務(wù)可以將條形碼區(qū)域和字符識別區(qū)域分開的示意圖。大多數(shù)條形碼包括:條形碼區(qū)域31以及條形碼區(qū)域下面對應(yīng)的數(shù)字區(qū)域32,尤其是對于商品包裝上印刷的條碼,利用OCR數(shù)字識別和條形碼解碼結(jié)合起來進(jìn)行識別,可以提高識別的準(zhǔn)確率。一個原因是兩者均有相同的數(shù)字內(nèi)容,可以通過交叉驗(yàn)證猜測到最終的結(jié)果。
圖4是根據(jù)本發(fā)明一個實(shí)施例的解釋條碼和數(shù)字字符識別結(jié)果可以來交叉驗(yàn)證得到最終結(jié)果的示意圖。如果條形碼識別結(jié)果或者數(shù)字字符識別結(jié)果因?yàn)樵肼?、模糊或者光斑有未能識別的數(shù)字,交叉驗(yàn)證可以得到最終的結(jié)果。
更為重要的是:OCR數(shù)字識別和條形碼解碼有一些共有的特性:首先,它們的模糊程度相同。因?yàn)榇蠖鄶?shù)條碼的模糊是因?yàn)橄鄼C(jī)的未能對焦,而這種情況下整幅圖像,無論是條碼區(qū)域還是數(shù)字區(qū)域,模糊程度都是相同的。其次,它們的光照模型是有一定關(guān)系的:如圖3所示,條形碼區(qū)域和數(shù)字區(qū)域均是由左向右依次變亮。當(dāng)結(jié)合這兩種方法聯(lián)合優(yōu)化模型,OCR數(shù)字識別和條碼解碼都會變得更加準(zhǔn)確。這對于模糊嚴(yán)重或者光照嚴(yán)重不均衡的情況時非常有用。
圖5和圖6是根據(jù)本發(fā)明一個實(shí)施例的解釋通過聯(lián)合優(yōu)化條碼和數(shù)字字符識別,兩個任務(wù)的結(jié)果都會變得更加準(zhǔn)確的示意圖。
圖5所示的是條形碼解碼和數(shù)字識別的結(jié)果分別運(yùn)算。由于解碼時光照或 者噪聲的影響,各自結(jié)果中都有太多的位沒有被正確解碼。
圖6所示的是結(jié)合條形碼解碼和數(shù)字識別,兩種方法的結(jié)果都變得更加準(zhǔn)確。具體來說,模糊和光照不均勻都會首先被建模。
之后,使用條形碼部分和數(shù)字部分的信息來調(diào)整參數(shù),分別猜測最終結(jié)果的每一位。
第二實(shí)施例
如圖7所示,本發(fā)明的實(shí)施例提供一種條形碼的識別方法,包括:
步驟21,獲取一輸入的具有條形碼的圖像;其中,該圖像可以是具有條形碼的一幅模糊的圖像;
步驟22,獲取所述圖像中條形碼區(qū)域的第一定位參數(shù)信息;
步驟23,根據(jù)所述第一定位參數(shù)信息,得到條形碼解碼過程產(chǎn)生的第一值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值;
步驟24,獲取所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
步驟25,獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
該實(shí)施例中,步驟23和24并沒有先后順序的限定,二者可以是同時進(jìn)行,且進(jìn)一步的,該步驟23可以具體包括:
步驟231,根據(jù)所述第一定位參數(shù)信息,得到第一仿真信號;
步驟232,根據(jù)所述第一仿真信號與條形碼區(qū)域的條形碼解碼過程得到的條形碼解碼結(jié)果,獲得用于表示所述第一仿真信號與條形碼解碼結(jié)果之間差別的殘差值,并將所述殘差值作為所述第一值輸出。
其中,步驟231中,可以根據(jù)公式:f3(x)=f1(x)+f2(x)得到第一仿真信號;
其中,f1(x)=G(x)×f4(x),G(x)為高斯核函數(shù),σ用于控制高斯核的寬度,f2(x)為根據(jù)所述第一定位參數(shù)得到的光照模型函數(shù),f4(x)為輸入的標(biāo)準(zhǔn)條形碼信號,f3(x)為第一仿真信號。
其中,步驟232中,可以根據(jù)公式:獲得
殘差值;
其中,ebar為殘差值,f5(x)為條形碼解碼過程得到的條形碼解碼結(jié)果,l為條形碼的長度。
而光照模型函數(shù)f2(x)具體可以通過以下步驟獲得:
步驟2321,比較標(biāo)準(zhǔn)光照和輸入光照,得到條形碼的用于對條形碼進(jìn)行定位的第一定位參數(shù),所述第一定位參數(shù)是所述條形碼的守護(hù)位;
步驟2322,對所述守護(hù)位的光照值進(jìn)行線性插值,得到條形碼的其余部分的光照值;
步驟2323,根據(jù)所述守護(hù)位的光照值和其余部分的光照值,得到條形碼的光照模型函數(shù)。
在上述實(shí)施例中,以條形碼的編碼規(guī)則為EAN-13編碼規(guī)則來舉例,如圖8所示,對于具有條形碼的模糊圖像,一開始就能獲得該條形碼的守護(hù)位81,該守護(hù)位用于對條形碼進(jìn)行定位時使用,該守護(hù)位(guard bar)包括有11位黑白條。在獲取模糊圖像的光照模型函數(shù)時,可以利用該守護(hù)位的光照值進(jìn)行模擬,如上述步驟2321、步驟2322以及步驟2323所示;利用該光照模型函數(shù)以及該模糊圖像的模糊模型函數(shù),如上述f1(x)=G(x)×f4(x),而該模型中,高斯核函數(shù),可以是圖像采集設(shè)備(如相機(jī))的1D或者2D信號與高斯核卷積得到,而上述高斯核函數(shù)中,σ控制核的寬度,因此,可以使用使得上述殘差最小的高斯核寬度。
上述實(shí)施例中,猜測每一位數(shù)字,對于0-9中的每個數(shù)字,通過模糊模型和光照模型產(chǎn)生仿真信號。圖9是通過模糊模型和光照模型產(chǎn)生仿真信號的示意圖;91是理想信號,92是使用較小的高斯核產(chǎn)生的仿真信號,93是使用較大的高斯核產(chǎn)生的仿真信號。
第三實(shí)施例
如圖10所示,本發(fā)明的實(shí)施例提供一種條形碼的識別方法,包括:
步驟101,獲取一輸入的具有條形碼的圖像;其中,該圖像可以是具有條形碼的一幅模糊的圖像;
步驟102,獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼與所述條形碼區(qū)域的條形碼解碼結(jié)果的仿真結(jié)果之間的差值;
步驟103,獲取所述圖像中條形碼的數(shù)字區(qū)域的第二定位參數(shù)信息;
步驟104,根據(jù)所述第二定位參數(shù)信息,得到數(shù)字識別過程產(chǎn)生的第二值;其中,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
步驟105,獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
該實(shí)施例中,步驟102和104并沒有先后順序的限定,二者可以同時進(jìn)行。
該實(shí)施例中,步驟104具體可以包括:
步驟1041,根據(jù)所述第二定位參數(shù)信息,得到第二仿真信號;這里的第二定位參數(shù)和上述實(shí)施列中的第一定位參數(shù)信息可以是相同的,對于同一幅模糊圖像來說,其中的條形碼的定位參數(shù)信息如可以是上述實(shí)施例中的守護(hù)位或者與守護(hù)位相關(guān)的定位信息;
步驟1042,根據(jù)所述第二仿真信號與條形碼的數(shù)字識別過程產(chǎn)生的輸入數(shù)字圖像信號,獲得用于表示所述第二仿真信號與數(shù)字區(qū)域的數(shù)字識別結(jié)果之間差別的距離,并將所述距離作為所述第二值輸出。
該實(shí)施例中,上述步驟1041中,具體可以根據(jù)公式:
f9(x,y)=f7(x,y)+f8(x)得到第二仿真信號;
其中,f7(x,y)=G(x,y)×f6(x,y),
其中,G(x,y)為高斯核函數(shù),σ用于控制高斯核的寬度,f8(x)為根據(jù)所述第二定位參數(shù)得到的光照模型函數(shù),f6(x,y)為輸入的標(biāo)準(zhǔn)數(shù)字模板信號,f9(x,y)為第二仿真信號。這里的光照模型函數(shù)f8(x),可以認(rèn)為是光照沿X軸方向變化情況的函數(shù),Y軸方向的光照情況不變;也可以是只考慮條形碼的X軸方向的光照,如條形碼的長度方向的光照情況。
該實(shí)施例中,步驟1042中,具體可以根據(jù)公式:
獲得
所述距離;
其中,edigit為距離值,f10(x,y)為條形碼的數(shù)字識別過程產(chǎn)生的數(shù)字識別結(jié)果,l是條形碼數(shù)字串的長度。
該實(shí)施例中,第二仿真信號同樣如圖9所示,其中,91是理想信號,92是使用較小的高斯核產(chǎn)生的仿真信號,93是使用較大的高斯核產(chǎn)生的仿真信號。
第四實(shí)施例
如圖11所示,本發(fā)明的實(shí)施例提供一種條形碼的識別方法,包括:
步驟111,獲取一輸入的具有條形碼的圖像;其中,該圖像可以是具有條形碼的一幅模糊的圖像;
對于條形碼解碼過程:
步驟112,獲取所述圖像中條形碼的第一定位參數(shù)信息以及所述圖像中條形碼的數(shù)字區(qū)域的第二定位參數(shù)信息;
步驟113,根據(jù)第一定位參數(shù)信息以及輸入的標(biāo)準(zhǔn)條碼信號,產(chǎn)生第一仿真信號;
步驟114,根據(jù)第一仿真信號以及輸入條碼信號,得到條形碼的殘差,將該殘差作為第一值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值;
對于條形碼的數(shù)字識別過程:
步驟115,根據(jù)第二定位參數(shù)信息以及輸入的標(biāo)準(zhǔn)數(shù)字模板,產(chǎn)生第二信真信號;
步驟116,根據(jù)第二信真信號以及輸入數(shù)字圖像,得到距離,將該距離作為第二值;其中,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
步驟117,對所述第一值和第二值求和或者加權(quán)和,得到第三值;
步驟118,獲取所述第三值最小時對應(yīng)的輸出結(jié)果。
該實(shí)施例中,猜測每一位數(shù)字時,任何帶有先驗(yàn)的分類器都可以用來做OCR數(shù)字識別。一種簡單的方式是模板匹配。對于0-9數(shù)字中的每一個模板,可以使用模糊和光照模型作用在原始模板中產(chǎn)生第二仿真信號,然后計(jì)算真實(shí) 輸入的數(shù)字圖像信號與第二仿真信號之間的距離edigit。這里選取K近鄰來增加魯棒性。原始標(biāo)準(zhǔn)輸入模板和仿真之后的模板都保存起來當(dāng)作近鄰的候選數(shù)據(jù)庫樣本。最后,總誤差(即第三值)最小時的數(shù)字當(dāng)作猜測得到的數(shù)字。
第五實(shí)施例
該第五實(shí)施例包括上述第四實(shí)施例的所有步驟,在輸出數(shù)字之后,還可以進(jìn)一步包括:
步驟119,對輸出的結(jié)果數(shù)字進(jìn)行校驗(yàn),如果得到的校驗(yàn)結(jié)果與條形碼的校驗(yàn)位數(shù)字不匹配,則對輸出的數(shù)字進(jìn)行錯誤糾正。
該步驟119中,對輸出的數(shù)字進(jìn)行錯誤糾正的步驟包括:
步驟1191,獲取每個輸出的數(shù)字對應(yīng)的所述第三值;
步驟1192,對所述第三值大于一預(yù)設(shè)值的一個或者多個錯誤數(shù)字進(jìn)行替換,并獲取替換后數(shù)字的第三值;
步驟1193,根據(jù)替換后數(shù)字的第三值,得到替換后數(shù)字的置信度,所述置信度表示所述替換后的輸出數(shù)字與正確的數(shù)字的接近程度;
步驟1194,若所述置信度高于一預(yù)設(shè)閾值,則輸出替換后的數(shù)字。
該實(shí)施例中,根據(jù)公式:得到替換后數(shù)字的置信度;
其中,C為置信度,etotal為是經(jīng)過錯誤數(shù)字校正后的誤差,btotal為沒有進(jìn)行錯誤數(shù)字校正時的誤差,l是條形碼數(shù)字串的長度,為第三值。
如圖12所示,假如經(jīng)過圖11所示的流程,識別出來的條形碼對應(yīng)的數(shù)字串為6,9,1,7,5,6,8,1,9,1,2,3,4,每一位數(shù)字一起來計(jì)算校驗(yàn)和。如果檢驗(yàn)和不匹配,解碼得到的數(shù)字串中必然有一位或者幾位錯誤。本實(shí)施例中,可以將其中最有可能出錯的數(shù)字用候選數(shù)字來代替,代替的方法是滿足使替換之后所新增的誤差最小。
如圖12所示,而針對該數(shù)字串中的每一位數(shù)字對應(yīng)的第三值,即該數(shù)字與正確的數(shù)字之間的誤差分別為0.3,0.2,0.3,.06,.03,0.2,0.5,0.3,0.3,0.1,0.3,0.2,0.4,該數(shù)字串的總誤差為4.0;其中,第4位數(shù)字7以及第7位數(shù)字8以及第11位數(shù)字2的誤差較大,因此,可以對數(shù)字第4位數(shù)字、第 7位數(shù)字和/或第11位數(shù)字進(jìn)行替換;如可以將第4位數(shù)字的數(shù)字7替換為1進(jìn)行校驗(yàn)運(yùn)算,也可同時將第7位數(shù)字8替換為6進(jìn)行校驗(yàn)運(yùn)算,依次類推,多個可以進(jìn)行替換的數(shù)字可以分別進(jìn)行替換后進(jìn)行校驗(yàn)運(yùn)算,也可以同時替換后進(jìn)行校驗(yàn)運(yùn)算,也可以部分替換后進(jìn)行校驗(yàn)運(yùn)算,只要滿替換之后所新增的誤差最小且校驗(yàn)成功。
本發(fā)明的上述實(shí)施例通過將條形碼解碼和OCR數(shù)字識別結(jié)合起來聯(lián)合優(yōu)化模型時,使OCR數(shù)字識別和條碼解碼都會變得更加準(zhǔn)確。
第六實(shí)施例
如圖13所示,本發(fā)明的實(shí)施例還提供一種條形碼的識別裝置130,包括:
第一獲取模塊131,用于獲取一輸入的具有條形碼的圖像;
第二獲取模塊132,用于獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;
輸出模塊133,用于獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果,并輸出。
其中,所述第二獲取模塊包括:
解碼子模塊,用于獲取所述圖像中條形碼區(qū)域的第一定位參數(shù)信息;根據(jù)所述第一定位參數(shù)信息,得到條形碼解碼過程產(chǎn)生的第一值。
其中,所述第二獲取模塊還包括:
識別子模塊,用于獲取所述圖像中條形碼的數(shù)字區(qū)域的第二定位參數(shù)信息;根據(jù)所述第二定位參數(shù)信息,得到數(shù)字識別過程產(chǎn)生的第二值。
需要說明的是,上述所有方法實(shí)施例的具體實(shí)現(xiàn)方式均適用于該裝置的實(shí)施例中,也能相同的技術(shù)效果。
第七實(shí)施例
如圖14所示,本發(fā)明的實(shí)施例還提供一種設(shè)備,包括:
輸入接口141,用于獲取一輸入的具有條形碼的圖像;
處理器142,用于獲取所述圖像中條形碼區(qū)域的條形碼解碼過程產(chǎn)生的第 一值以及所述圖像中數(shù)字區(qū)域的數(shù)字識別過程產(chǎn)生的第二值;其中,所述第一值表示所述條形碼區(qū)域的條形碼解碼的仿真結(jié)果與所述條形碼區(qū)域的條形碼解碼結(jié)果之間的差值,所述第二值表示所述數(shù)字區(qū)域的數(shù)字識別仿真結(jié)果與所述數(shù)字區(qū)域的數(shù)字識別結(jié)果之間的差值;并獲取所述第一值和第二值的和最小時對應(yīng)的輸出結(jié)果;
輸出接口143,用于輸出所述處理器得到的輸出結(jié)果。
處理器142通過總線接口與輸入接口141以及輸出接口143連接??偩€接口可以是可以包括任意數(shù)量的互聯(lián)的總線和橋;總線架構(gòu)還可以將諸如外圍設(shè)備、穩(wěn)壓器和功率管理電路等之類的各種其它電路連接在一起,這些都是本領(lǐng)域所公知的。因此,本文不再對其進(jìn)行詳細(xì)描述。
需要說明的是,上述方法實(shí)施例的所有實(shí)現(xiàn)方式均可以適用于該設(shè)備的實(shí)施例中,也能達(dá)到相同的技術(shù)效果,該實(shí)施例中的設(shè)備如可以是任何一種條形碼識別的設(shè)備。
以上結(jié)合具體實(shí)施例描述了本發(fā)明的基本原理,但是,需要指出的是,對本領(lǐng)域的普通技術(shù)人員而言,能夠理解本發(fā)明的方法和裝置的全部或者任何步驟或者部件,可以在任何計(jì)算裝置(包括處理器、存儲介質(zhì)等)或者計(jì)算裝置的網(wǎng)絡(luò)中,以硬件、固件、軟件或者它們的組合加以實(shí)現(xiàn),這是本領(lǐng)域普通技術(shù)人員在閱讀了本發(fā)明的說明的情況下運(yùn)用他們的基本編程技能就能實(shí)現(xiàn)的。
因此,本發(fā)明的目的還可以通過在任何計(jì)算裝置上運(yùn)行一個程序或者一組程序來實(shí)現(xiàn)。所述計(jì)算裝置可以是公知的通用裝置。因此,本發(fā)明的目的也可以僅僅通過提供包含實(shí)現(xiàn)所述方法或者裝置的程序代碼的程序產(chǎn)品來實(shí)現(xiàn)。也就是說,這樣的程序產(chǎn)品也構(gòu)成本發(fā)明,并且存儲有這樣的程序產(chǎn)品的存儲介質(zhì)也構(gòu)成本發(fā)明。顯然,所述存儲介質(zhì)可以是任何公知的存儲介質(zhì)或者將來所開發(fā)出來的任何存儲介質(zhì)。
還需要指出的是,在本發(fā)明的裝置和方法中,顯然,各部件或各步驟是可以分解和/或重新組合的。這些分解和/或重新組合應(yīng)視為本發(fā)明的等效方案。并且,執(zhí)行上述系列處理的步驟可以自然地按照說明的順序按時間順序執(zhí)行,但是并不需要一定按照時間順序執(zhí)行。某些步驟可以并行或彼此獨(dú)立地執(zhí)行。
上述具體實(shí)施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員 應(yīng)該明白的是,取決于設(shè)計(jì)要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍之內(nèi)。