解碼條形碼的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實(shí)施例通常涉及對(duì)條形碼進(jìn)行解碼。
【背景技術(shù)】
[0002]條形碼通常用于編碼信息以用于各種目的,例如自動(dòng)化部件識(shí)別。條形碼可以為二維(例如通常矩形)識(shí)別符,其包括一個(gè)或者多個(gè)空間連續(xù)的交替并行條(bar)和空格(space)的序列。條和空格中的每一個(gè)通常稱為元素。一個(gè)或者多個(gè)連續(xù)元素的序列組成元素序列。條形碼元素序列中的元素可以通過(guò)其相對(duì)寬度來(lái)編碼信息。
[0003]通常,條形碼通過(guò)在一致反射基板(例如紙或者金屬)上打印(或者使用墨汁)或者標(biāo)記(例如通過(guò)蝕刻)來(lái)創(chuàng)建。該條通常具有比基板低的反射,并且因此好像比他們之間的空格好像更暗(例如當(dāng)在白紙上使用黑墨汁來(lái)打印條形碼時(shí))。但是條形碼可以其它方式打印,例如當(dāng)在黑色目標(biāo)上白漆來(lái)打印條形碼時(shí)。為了將條形碼與背景更容易區(qū)分,通常與其它打印或者可視結(jié)構(gòu)相對(duì)遠(yuǎn)地放置條。這些距離在第一條之前和最后條之后創(chuàng)建空格,通常稱為靜止區(qū)(quiet zone) 0可替換地,可以打印或者標(biāo)記空格和靜止區(qū),并且基板隱含形成了條。
[0004]然而。閱讀器通常難于解碼亞分解(under-resolved)的條形碼,例如亞米樣的(例如由于低采樣率或者低分辨率傳感器而造成)條形碼和/或模糊的(例如由于閱讀器的不良聚焦或者移動(dòng)效果)條形碼。
【發(fā)明內(nèi)容】
[0005]本文中描述的技術(shù)提供用于解碼亞分解的條形碼,例如亞采樣的和/或模糊的條形碼。可以通過(guò)以下假設(shè)來(lái)建模掃描樣本的局部反射,即局部反射為集成了落入對(duì)應(yīng)掃描樣本箱的實(shí)際條形碼反射輪廓下的區(qū)域的結(jié)果。也可以使用其它建模技術(shù),例如加權(quán)求和,其中,越靠近掃描樣本箱中心的輪廓值也許越導(dǎo)致整個(gè)反射。
[0006]在一些方面中,提供了一種用于解碼條形碼的計(jì)算機(jī)化方法。該方法包括:由計(jì)算裝置從指示出沿著通過(guò)條形碼的掃描的掃描信號(hào)的傳感器接收數(shù)據(jù)。該方法包括:由計(jì)算裝置確定沿著掃描的條形碼內(nèi)的單位寬度圖案的第一字符單位網(wǎng)格。該方法包括:由計(jì)算裝置基于第一字符單位網(wǎng)格來(lái)確定使單位寬度圖案與掃描信號(hào)的一部分關(guān)聯(lián)的至少一個(gè)采樣系數(shù)集合。該方法包括:由計(jì)算裝置基于至少一個(gè)采樣系數(shù)集合和掃描信號(hào)的一部分來(lái)確定單位寬度圖案的元素寬度圖案。
[0007]在一些方面中,提供了一種用于解碼條形碼的條形碼閱讀器。該條形碼閱讀器包括處理器,其被配置為運(yùn)行在存儲(chǔ)器中存儲(chǔ)的模塊,所述模塊被配置為導(dǎo)致所述處理器從指示沿著通過(guò)條形碼的掃描的掃描信號(hào)的傳感器接收數(shù)據(jù)。存儲(chǔ)器中存儲(chǔ)的模塊被配置為導(dǎo)致處理器確定沿著掃描的條形碼內(nèi)的單位寬度圖案的第一字符單位網(wǎng)格。存儲(chǔ)器中存儲(chǔ)的模塊被配置為導(dǎo)致處理器基于第一字符單位網(wǎng)格來(lái)確定使單位寬度圖案和掃描信號(hào)的一部分關(guān)聯(lián)的至少一個(gè)采樣系數(shù)集合。存儲(chǔ)器中存儲(chǔ)的模塊被配置為導(dǎo)致處理器基于至少一個(gè)采樣系數(shù)集合和掃描信號(hào)的一部分來(lái)確定單位寬度圖案的元素寬度圖案。
[0008]在一些方面中,提供了一種非暫時(shí)計(jì)算機(jī)可讀介質(zhì)。非暫時(shí)計(jì)算機(jī)可讀介質(zhì)具有可執(zhí)行指令,其可操作地致使設(shè)備:從指示沿著通過(guò)條形碼的掃描的掃描信號(hào)的傳感器接收數(shù)據(jù)??蓤?zhí)行指令可操作地致使設(shè)備:確定條形碼內(nèi)的單位寬度圖案沿著掃描的第一字符單位網(wǎng)格??蓤?zhí)行指令可操作地致使設(shè)備:基于第一字符單位網(wǎng)格來(lái)確定使單位寬度圖案和掃描信號(hào)的一部分關(guān)聯(lián)的至少一個(gè)采樣系數(shù)集合。可執(zhí)行指令可操作地致使設(shè)備:基于至少一個(gè)采樣系數(shù)集合和掃描信號(hào)的一部分來(lái)確定單位寬度圖案的元素寬度圖案。
[0009]在回顧下面的附圖、詳細(xì)描述以及權(quán)利要求之后將更充分理解所公開(kāi)主題的這些和其它能力。應(yīng)當(dāng)理解的是,本文中采用的措辭和術(shù)語(yǔ)是處于描述目的并且不應(yīng)當(dāng)理解為限制。
【附圖說(shuō)明】
[0010]當(dāng)結(jié)合下面附圖考慮時(shí),可以參考所公開(kāi)主題的下面詳細(xì)描述來(lái)更全面明白所公開(kāi)主題的各個(gè)目標(biāo)、特征和優(yōu)勢(shì),其中相同參考附圖識(shí)別相同元素。
[0011]圖1A示出使用兩寬度符號(hào)來(lái)生成的條形碼;
[0012]圖1B示出兩寬度符號(hào)的維度;
[0013]圖2示出使用多寬度符號(hào)生成的條形碼;
[0014]圖3示出示例性掃描信號(hào);
[0015]圖4示出根據(jù)一些實(shí)施例的用于解碼條形碼的ISPM和O相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0016]圖5示出根據(jù)一些實(shí)施例的用于解碼條形碼的ISPM和O相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0017]圖6示出根據(jù)一些實(shí)施例的根據(jù)一些實(shí)施例的用于解碼條形碼的ISPM和0.5相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0018]圖7示出根據(jù)一些實(shí)施例的根據(jù)一些實(shí)施例的用于解碼條形碼的ISPM和-0.25相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0019]圖8示出根據(jù)一些實(shí)施例的根據(jù)一些實(shí)施例的用于解碼條形碼的1.33SPM和0.33相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù)
[0020]圖9示出根據(jù)一些實(shí)施例的根據(jù)一些實(shí)施例的用于解碼條形碼的0.75SPM和-0.25相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0021]圖10示出根據(jù)一些實(shí)施例的用于解碼條形碼的0.84SPM、2.1寬度(W)和-0.16相位處的多寬度條形碼的示例性掃描線亞采樣和采樣系數(shù);
[0022]圖11示出根據(jù)一些實(shí)施例的用于解碼條形碼的通用的基于圖像的解碼算法的示例性計(jì)算機(jī)化方法;
[0023]圖12示出根據(jù)一些實(shí)施例的用于解碼條形碼的激光掃描器解碼算法的示例性計(jì)算機(jī)化方法;
[0024]圖13A至圖13B示出根據(jù)一些實(shí)施例的用于解碼來(lái)自掃描信號(hào)的條形碼的示例性計(jì)算機(jī)化方法;
[0025]圖14A至圖14C示出根據(jù)一些實(shí)施例的用于定位且解碼用于解碼條形碼的第一定界字符的示例性計(jì)算機(jī)化方法;
[0026]圖15示出示出根據(jù)一些實(shí)施例的用于確定用于解碼條形碼的單位采樣系數(shù)的示例性計(jì)算機(jī)化方法;
[0027]圖16示出示出根據(jù)一些實(shí)施例的用于從用于解碼條形碼的掃描信號(hào)分?jǐn)?shù)字符的示例性計(jì)算機(jī)化方法;
[0028]圖17示出根據(jù)一些實(shí)施例的用于解碼來(lái)自用于解碼條形碼的多寬度條形碼的掃描信號(hào)的字符的示例性計(jì)算機(jī)化方法;并且
[0029]圖18示出根據(jù)一些實(shí)施例的用于解碼來(lái)自用于解碼條形碼的兩寬度條形碼或者多寬度條形碼的掃描信號(hào)的字符的示例性計(jì)算機(jī)化方法。
【具體實(shí)施方式】
[0030]本文中描述的技術(shù)使用采樣(例如包括顯著亞采樣)的量化效應(yīng)的模型來(lái)解碼亞分解的條形碼。在一些實(shí)施例中,該建??梢酝ㄟ^(guò)沿著由掃描樣本箱進(jìn)行的特定掃描樣本的掃描而接近于有效掃描采樣區(qū)域?qū)挾葋?lái)生成。掃描樣本箱可以為沿著以下掃描的位置的范圍,在該掃描上,反射信息被假設(shè)為集成了那個(gè)掃描樣本。在一些實(shí)施例中,掃描采樣箱具有等于掃描采樣間距的寬度并且以掃描樣本位置為中心,使得所有掃描樣本箱在沒(méi)有重疊的情況下共同覆蓋掃描的區(qū)域。本領(lǐng)域的技術(shù)人員將明白其它樣本箱寬度也是可能的。
[0031]在一些實(shí)施例中,可以通過(guò)以下假設(shè)來(lái)建模掃描樣本的局部反射,即局部反射為集成了落入對(duì)應(yīng)掃描樣本箱的實(shí)際條形碼反射輪廓下的區(qū)域的結(jié)果。也可以使用其它建模技術(shù),例如加權(quán)求和,其中,越靠近掃描樣本箱中心的輪廓值也許越導(dǎo)致整個(gè)反射。
[0032]多個(gè)條形碼設(shè)計(jì)(稱為符號(hào))中的任何一個(gè)可以用于條形碼。每個(gè)符號(hào)可以指定條、空格和靜止區(qū)尺寸限制以及如何準(zhǔn)確編碼信息。條形碼符號(hào)的示例包括代碼128、代碼93、代碼39、Codabar, I2of5、MS1、二五代碼和UPC-ΕΑΝ。條形碼可以包括傳統(tǒng)“線性”符號(hào)(例如代碼128和代碼39),在該符號(hào)中沿著一維編碼所有信息。條形碼也可以包括單獨(dú)“堆疊的” 2D符號(hào)行(例如DataBar、PDF417、MicroPDF以及一些復(fù)合符號(hào)的2D組成),所有這些本質(zhì)上允許條形碼在彼此頂部堆疊以編碼更多信息。
[0033]許多條形碼符號(hào)分成兩個(gè)分類:兩寬度符號(hào)和多寬度符號(hào)。例如,兩寬度符號(hào)的示例包括代碼39、交叉二五碼、Codabar、MS1、二五碼以及Pharmacode。兩寬度符號(hào)的每個(gè)元素是窄的或者寬的。窄元素具有等于最小特征尺寸的寬度X。寬元素具有等于寬元素尺寸的寬度W。寬元素尺寸W通常為最小特征尺寸的固定實(shí)數(shù)倍。二級(jí)符號(hào)由此允許每個(gè)元素表示兩個(gè)可能值中的一個(gè),X或者W。
[0034]多寬度符號(hào)包括例如代碼128、代碼 93、UPC-EAN、PDF417、MicroPDF 和 DataBar。多寬度符號(hào)的每個(gè)元素為最小特征尺寸的整數(shù)倍數(shù)n(例如,η為I和元素的最大寬度之間的整數(shù),其可以取決于符號(hào))。術(shù)語(yǔ)模塊通常用于指示多級(jí)條形碼的最小特征尺寸,使得多級(jí)條形碼符號(hào)的每個(gè)元素由整數(shù)數(shù)量的模塊組成。針對(duì)多個(gè)多寬度符號(hào)(例如代碼128,代碼93和UPC-ΕΑΝ)而言,η在I和4之間變化,但是可以為更大(例如,如針對(duì)DataBar,其中η可以在I和4之間變化)。
[0035]兩寬度條形碼和多寬度條形碼中的任何元素序列的數(shù)據(jù)由對(duì)應(yīng)的量化元素寬度的序列來(lái)編碼。元素序列的元素寬度的序列通常稱為元素序列的元素寬度圖案。用于兩寬度元素序列的元素寬度圖案為由窄(“X”)和寬(“W”)元素組成的二進(jìn)制圖案。例如,用于條(W)、空格⑴、條(X)、空格⑴、條(X)、空格(W)、條(X)、空格⑴和條(W)的元素寬度圖案被表示為WXXXXWXXW,其中,X為最小特征尺寸并且W為寬元素寬度。用于多寬度元素序列的元素寬度圖案為指示出序列中的每個(gè)對(duì)應(yīng)元素的模塊的寬度的整數(shù)倍圖案。例如,用于條(η = I)、空格(η = I)、條(η = I)、空格(η = 3)、條(η = 2)、空格(η = 3)的元素寬度圖案表示為111323。
[0036]條形碼元素通常分組成連續(xù)字符(例如字母和數(shù)字),其可以從它們相應(yīng)元素中解碼成字母-數(shù)字值。在一些實(shí)施例中,該數(shù)據(jù)從整個(gè)元素寬度序列(例如Pharmacode條形碼)直接確定??梢葬槍?duì)任何特定符號(hào)的可能字符稱為其字符集合。取決于該符號(hào),在字符集合中存在多個(gè)不同類型的字符,包括定界字符和數(shù)據(jù)字符。通常,僅存在幾種不同的可能定界字符圖案但是存在大量可能的數(shù)據(jù)字符元素寬度圖案。它是從條形碼的一端到另一端表示的數(shù)據(jù)字符值的串,其極大地限定用于整個(gè)條形碼的編碼串。
[0037]定界字符(有時(shí)稱為守衛(wèi)圖案)通常出現(xiàn)在條形碼的開(kāi)始處和結(jié)束處。定界字符可以用于允許閱讀器例如檢測(cè)符號(hào),確定哪里開(kāi)始和停止閱讀并且/或者確定符號(hào)類型。在條形碼的開(kāi)始處和結(jié)束處放置的定界字符通常分別稱為開(kāi)始字符和停止字符。一些符號(hào)(例如UPC-A以及DataBar)也具有描繪數(shù)據(jù)字符的區(qū)部的在符號(hào)內(nèi)的定界字符。最后,一些符號(hào)(例如代碼128)具有確定出如何解釋數(shù)據(jù)字符的不同開(kāi)始定界符。
[0038]數(shù)據(jù)字符為編碼條形碼中的實(shí)際信息的字符。數(shù)據(jù)字符的元素寬度圖案與字母-數(shù)字值相關(guān)聯(lián)。通常也指定被稱為校驗(yàn)碼字符的特定數(shù)據(jù)字符。該字符的數(shù)值本質(zhì)上為所有其它數(shù)據(jù)字符的數(shù)值的總和,以允許閱讀器檢測(cè)誤讀的字符串。用于所有數(shù)據(jù)字符的字母數(shù)字值的序列形成了原始字符串,其然后有時(shí)使用具體格式化規(guī)則來(lái)轉(zhuǎn)換成用于該條形碼的實(shí)際編碼的元素集合。
[0039]不管類型如何,字符集合的每個(gè)字符值與唯一元素寬度圖案相關(guān)聯(lián)。例如,代碼39字符集合中的用于“A”和“B”的元素寬度圖案分別為WXXXXWXXW和XXWXXWXXW。如上面解釋的,因此,用于“A”的元素寬度圖案WXXXXWXXW為條(W)、空格⑴、條(X)、空格⑴、條(X)、空格(W)、條(X)、空格(X)和條(W),其中,X為最小特征尺寸并且W為寬元素寬度。代碼128字符集合中的用于“A”和“B”的元素寬度圖案分別為111323和131123。
[0040]針對(duì)大部分符號(hào)而言重要注意的是:特定類型的所有字符在條形碼中具有相同物理寬度。例如,兩寬度符號(hào)的字符通常用于恒定數(shù)量的窄條、窄空格、寬條以及寬空格,并且通常開(kāi)始于條元素。用于特定兩寬度符號(hào)(例如代碼39)的字符也結(jié)束于條,并且使用特定空格(被稱為字符間的間隙,具有一致而隨意寬度)來(lái)分離個(gè)別字符。在字符之間具有字符間的間隙的這種符號(hào)通常稱為離散符號(hào),而不具有這種間隙的符號(hào)稱為連續(xù)符號(hào)。相反,多寬度符號(hào)字符通常具有固定數(shù)量的總模塊,其每一個(gè)恰好為一個(gè)模塊寬度,該總模塊具有固定數(shù)量的條和空格,并且通常開(kāi)始于條且結(jié)束于空格(并且因此不具有字符間的間隙)。
[0041]圖1A示出使用兩寬度符號(hào)代碼39生成的條形碼100。條形碼100包含元素序列102A、102B、102C到102N的集合(本文共同稱為元素序列102)。元素序列的集合編碼字符串PATENT 104。使用數(shù)據(jù)字符(例如編碼數(shù)據(jù)字符P的元素序列102B和編碼數(shù)據(jù)字符A的元素序列102C)來(lái)編碼字符串PATENT 104中的每個(gè)字母。元素序列102A和102N編碼用*指出的定界字符。因此,元素序列102A和102N標(biāo)示條形碼100的開(kāi)始和結(jié)束。如圖1A,每個(gè)元素序列102在條形碼100中具有相同物理寬度。
[0042]圖1B是元素序列102A的放大視圖。元素序列102A包括元素154,其為具有最小特征尺寸X的空格。元素序列102A包括元素152,其為具有寬元素尺寸W的空格。元素序列102A包括元素156,其為具有最小特征尺寸X的條。元素序列102A包括元素158,其為具有寬元素尺寸W的條。
[0043]圖2示出使用多寬度符號(hào)代碼128生成的條形碼200。條形碼200包含元素序列202A、202B、202C、202D到202E的集合(本文共同稱為字符序列202)。元素序列的集合編碼該字符串PATENT