專利名稱:用于讀取郵政編碼的成像引擎和技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及使用光學代碼閱讀裝置讀取各種類型的郵政編碼的技術(shù)。本發(fā)明的各方面對于成像光學代碼閱讀器(optical code reader)特別有用,這些光學代碼閱讀器被設(shè)計為讀取除郵政編碼外的寬范圍的各種光學代碼。
背景技術(shù):
和目標光學代碼是由具有不同光反射或光發(fā)射特性的圖像區(qū)域構(gòu)成的圖案,通常按先驗的規(guī)則被編制。術(shù)語“條形碼”有時用于描述某種類型的光學代碼。選擇光學代碼的光學特性和圖案以使它們在外觀上區(qū)別于它們所使用的背景環(huán)境。用于以光學代碼識別或提取數(shù)據(jù)的裝置有時被稱為“光學代碼閱讀器”,條型碼掃描器即是其中一種。光學代碼閱讀器在許多不同的環(huán)境中被用于固定或便攜式裝置中,例商店的付費服務(wù),生產(chǎn)場所的工件流和存貨控制以及運輸車輛上跟蹤貨包處理。光學代碼閱讀器已廣泛地適用于郵件的傳送和分撿。
最常用的光學掃描系統(tǒng)設(shè)計為讀取一維條型碼符號(symbol)。條型碼是一種由固定或可變寬度間隔隔開的可變寬矩形條碼的圖案。這些碼條和間隔具有不同的光反射特性。一維條形碼的一個例子是用于識別例如產(chǎn)品存貨的UPC/EAN碼。
本發(fā)明揭示涉及的技術(shù)特別適用于閱讀郵政編碼。典型的郵政編碼特征是沿代碼的主軸方向形成具有均勻?qū)挾群途鶆蜷g隔的碼條序列。該符號(symbology)通常包括了一個稱之為時鐘軌道(clock track)的矩形平行條區(qū)域。某些條碼可以延伸到時鐘軌道的上部和/或下部。這些加長的碼條有時被稱為升高碼條(ascender)或下降碼條(descender),且包含了被編碼信息。
一個郵政編碼的例子是郵政數(shù)字編碼技術(shù)(POSTNET,Postal NumericEncoding Techique)。POSTNET是美國郵政局研制的用于對郵件上的地址信息編碼提供最佳代碼系統(tǒng)。參考
圖1,POSTNET碼12的基本元素是高碼條(tall bar)或升高碼條(例碼條1)和短碼條(例碼條2)。這些碼條分別表示兩種狀態(tài),即二進制1和0。兩種碼條在由線18表示的邊緣處對齊(線18不是代碼符號(codesymbel)的一部分)。代碼的五個碼條表示一個字符,例如郵編的一個數(shù)字。代碼的左右邊界由高碼條3標明。稱為PLANET的郵政編碼其有類似的結(jié)構(gòu),但編碼方式不同。在POSTNET碼中,表示一個字符的5個碼條包括二長三短碼條。在PLANET碼中,表示一個字符的五個碼條包括三長二短碼條。
另一類型的郵政編碼是加拿大郵局編碼。加拿大郵局編碼的一個例子示于圖1(a)。該碼是POSTNET碼的一種修正形式。它是一種四狀態(tài)碼,比上述POSTNET碼增加了字母的編碼容量。該四狀態(tài)的每一狀態(tài)例如是上升碼條4,下降碼條3,全碼條(full bar)6(即同時具有上升和下降部分的碼條)以及短、時鐘碼條7。時鐘軌道位于線8和9之間。(線8和9不是代碼符號的一部分)。另一種郵政編碼是英國(UK)郵政編碼。英國郵政編碼類似于雙層美國編碼,但底部符號翻轉(zhuǎn)且二個時鐘軌道被合并。英國碼每字符使用4個碼條,與之相比美國POSTNET碼每字符用5個碼條。其它四狀態(tài)碼包括澳大利亞、日本和比利時郵政編碼。
郵政編碼可使用成像裝置讀取。例如可使用一種圖像傳感器,它具有二維的光傳感單元陣列,這些單元對應(yīng)于該裝置視場中的圖像元素或像素。這種圖像傳感器可以是二維的或面積型固態(tài)傳感器以及用于產(chǎn)生與視場的二維像素信息陣列相對應(yīng)的電子信號的有關(guān)電路。在1998年6月12日提交的美國專利申請序號NO.09/096,578(授予Correa等人的題為“用于代碼閱讀器的成像引擎和方法”(IMAGING ENGINGE AND METHOD FOR CODE READERS))中揭示了可用于閱讀郵政編碼的成像模塊,通過引用包括于此。另一方面,下述算法的后處理部分可應(yīng)用于運用激光掃描成像的系統(tǒng),這樣的系統(tǒng)例如揭示在1994年7月15日提交的授予Dvorkis等的美國專利申請序號NO.08/275,515中(題為“用于圖像光柵掃描的方法和裝置”),通過引用已加入于此。
本發(fā)明的一個目的為閱讀郵政編碼提供有效和準確的技術(shù)。
本發(fā)明的另一個目的是提供使用一個光學成像裝置讀取郵政編碼的技術(shù)。
本發(fā)明的另一個目的是提供用于使用能夠閱讀各種類型的一維和二維代碼的光學成像器以及用于識別和閱讀各種類型郵政編碼的技術(shù)。
本發(fā)明的另一個目的是提供用于閱讀對于光學代碼閱讀器其類型與取向初始未知的郵政編碼的技術(shù)。
通過下列描述和附圖,本發(fā)明的這些和其它目的和特征將會顯而易見。
發(fā)明概述本發(fā)明是關(guān)于在光學代碼閱讀器方面,尤其其是在成像光學代碼閱讀器方面有用的用于讀取郵政編碼的技術(shù)。
更具體說,揭示了一種用于識別和讀取包含在由光學代碼閱讀器獲得的圖像數(shù)據(jù)陣列中的各種類型的郵政編碼。這些郵政編碼假設(shè)包括了具有規(guī)則排列的平行碼條的一個時針軌道。該系統(tǒng)定義了一種子圖像,它包含可指示郵政編碼存在的一個特征。一條候選基線位于子圖像內(nèi),該子圖像跨過郵政編碼的時鐘軌道從符號的左邊延伸到符號的右邊。如果基線選擇正確,符號中的每個碼條將與基線相交。在基線的上下跟蹤(track)每個碼條以獲得一串基于碼條長度的狀態(tài)。確定代碼類型并翻譯狀態(tài)串以獲得包含在郵政編碼內(nèi)的信息。
在較佳實施例中,通過選擇在左邊界碼條上的第一點,選擇在右邊界碼條上的第二點并讓一條線從第一點走到第二點則可定位從郵政編碼的一個邊界跨越時鐘軌道到另一個邊界的基線。通過測試沿基線上碼條寬度和間隔的均勻性以確定基線是否完全定位于時鐘軌道內(nèi)可驗證端點選擇的正確性。在另一較佳實施例中利用一查找表選擇所述第一和第二點。與新候選基線對應(yīng)的其它各點也被選擇直至找到時鐘軌道。
本發(fā)明的較佳實施例使用的處理技術(shù)用于識別郵政編碼的類型并應(yīng)用適當?shù)姆g算法(translating algorithm),例如用于POSTNET,加拿大郵政編碼、PLANET碼或UK郵政編碼。在這些方法中,首先獲得識別為潛在包含了郵政編碼圖像全部或部分的像素數(shù)據(jù)。最好按上述方式先定位郵政編碼的整個時種軌道。檢查已定位時鐘軌道上的每個碼條以確定每個這種碼條是否延伸到時鐘軌道的上部或下部并獲得該碼的狀態(tài)串。會對碼條的規(guī)則性進行測試,若識別了一個間隙,則對每個丟失的碼條插入一個位置保留符(placeholder)。通過檢查碼條數(shù)目以及出現(xiàn)上升和下降碼條而確定郵碼的類型。至少對一種類型的郵碼施加適當?shù)淖g碼算法并且譯碼成功就終止處理。在較佳實施例中,確定代碼類型的步驟包括確定該碼是否具有表示POSTNET或PLANET碼的大量碼條;根據(jù)出現(xiàn)上升和下降碼條確定代碼的朝上朝下取向;以及試圖按UK郵政編碼對狀態(tài)串譯碼。本方法還包括如是該試圖按UK郵政編碼對狀態(tài)串譯碼失敗,那么試圖按加拿大郵編對狀態(tài)串譯碼的步驟。
根據(jù)本發(fā)明,一旦已識別了構(gòu)成時鐘軌道的碼條,就可閱讀二狀態(tài)和四狀態(tài)的郵政編碼。對于識別的每一碼條,進一步處理確定該碼條是否從時鐘軌道上升或下降。于是,提供了狀態(tài)串。如果基本上所有的碼條都沿著一個方向或另一個方向從時鐘軌道延伸,那么該系統(tǒng)首先試圖按二狀態(tài)碼對狀態(tài)串譯碼。例如,若延伸過時鐘軌道的碼條中少于20%或25%的碼條被識別為下降碼條(其余(the balance)已被識別為上升碼條),那么首先使用的譯碼算法是二狀態(tài)算法。如果這樣按二狀態(tài)碼試圖對狀態(tài)串譯碼失敗,處理器隨后會試圖按四狀態(tài)碼對狀態(tài)串譯碼。這樣的試圖按四狀態(tài)碼對狀態(tài)串譯碼首先會試圖按固定長度四狀態(tài)碼對該碼譯碼。此外,二或四狀態(tài)譯碼試圖使用小于該碼的理論上最大糾錯容量的方式進行處理。
本發(fā)明還提供一種讀取郵政編碼的裝置。這樣的裝置可包括用于獲得二維陣列的圖像數(shù)據(jù)的光學傳感器。包括隨機存取存儲器及微處理器的電路和適當?shù)能浖杀挥脕硖峁┫率龉δ?。一種自動鑒別器(autodiscriminor)功能可用來在潛在包含所有或一部分郵政編碼符號的圖像數(shù)據(jù)中識別一簇子圖像。通過檢查沿著在代碼兩邊界間延伸的一條或多條基線上的碼條或間隔的均勻性,時鐘軌道定位器功能在一簇子圖像中定位出完整的時鐘軌道。碼條跟蹤器功能可用于確定垂直于基線的每個碼條長度,并產(chǎn)生響應(yīng)于它的狀態(tài)串。適當?shù)淖g碼器功能翻譯該狀態(tài)串以產(chǎn)生提供給用戶系統(tǒng)或主機系統(tǒng)的信息。
在較佳實施例中,時鐘軌道定位器包括了含有一系列端點的查找表的存儲器,該表用于產(chǎn)生一條或多條候選基線,碼條和間隔的均勻性將沿著這些基線被評估。走線算法(line walking algorithm)可用于在基線上從一個端點走向第二個端點。以硬件和/或軟件實施的郵政編碼分配器(dispatcher)可用于識別感測的郵政編碼類型并按照適于所識別的郵政編碼類型的譯碼算法對郵政編碼譯碼。
雖然上面提供了對本揭示的概述,本發(fā)明所受的保護由權(quán)利要求書和法律認可的等效文書中的文字語言所限定。
附圖簡單描述圖1是手持式成像光學代碼閱讀器和POSTNET代碼符號的圖示;圖1a是加拿大郵政編碼符號的一例;
圖2是說明圖像代碼數(shù)據(jù)自動鑒別的組合流程圖和系統(tǒng)方框圖;圖3示出了對由自動鑒別器功能識別為郵政編碼的二維像素數(shù)據(jù)進行處理和譯碼的流程圖。
圖4是示出郵政編碼預處理器的流程圖;圖5是示出了時鐘軌道尋找子例程的流程圖;圖6是示出用于檢查碼條寬度和間隔均勻性的子例程的流程圖;圖7是示出對于回填充門限(back filling threshold)的子例程的流程圖;圖7a是用于描述圖7子例程工作的信號波形。
圖8和圖9是示出尋找相對于已定義基線的交叉方向的圖。
圖9是示出對郵政編碼碼條跟蹤(tracking)的圖;圖10是示出具有內(nèi)嵌譯碼器的郵政編碼分配器的流程圖。
詳細說明圖1示出了對準郵政編碼12的手持式、成像條形碼讀對器10。所示郵政編碼12處于閱讀器14的視場內(nèi)并且以相對于閱讀器10的任意角度取向。在較佳實施例中該閱讀器包括了含有諸如CCD之類的面積型圖像傳感器(area image sensor)的成像引擎或模塊。一種合適的成像模塊已在上述專利申請S.N.09/096,578中描述。圖像傳感器將像素陣列數(shù)據(jù)提供給處理這些數(shù)據(jù)的電路并從各種類型的光學代碼中譯出信息。
如上所述,郵政編碼12的特性可用排列在一條線上的通常是平行的一系列碼條來表述。短碼條和部分長碼條定義了一個時鐘軌道,它由平行線18和20限界(引入平行線18和19僅用于說明目的,并不形成郵政編碼符號的一部分)。長碼條視不同情況被描述為“上升”碼條或“下降”碼條。根據(jù)代碼類型,在代碼中可存在不同的碼條長度。例如,如上面結(jié)合圖1a的加拿大郵政編碼例子所述,可存在四種不同的碼條長度。
Ⅰ.不同類型編碼的信號處理和自動鑒別圖2是示出在本發(fā)明的較佳實施例中處理和譯碼圖像傳感器數(shù)據(jù)的組合流程圖和系統(tǒng)方框圖。由圖像傳感器電路獲得的數(shù)據(jù)用100表示。這一數(shù)據(jù)可以是對應(yīng)于目標圖像的二維像素信息陣列的電子信號形式??蓪⒃摂?shù)據(jù)存儲在光學代碼閱讀器的DRAM中以供隨后處理。應(yīng)理解實行圖2和圖3處理的處理軟件可在所有的層次上訪問已存儲的圖像數(shù)據(jù)。在各個處理步驟上,可調(diào)用各部分像素數(shù)據(jù)作進一步處理或確認正在進行(on-going)的分析。
像素數(shù)據(jù)可被劃分為子圖像,例如32×32像素的子圖像。分析這些子圖像已知與各種類型郵政編碼相關(guān)的特性以及已知將特定代碼與其它代碼和環(huán)境(非代碼)圖像區(qū)分開來的特性。特別是,可使用統(tǒng)計自動鑒別的處理過程。在統(tǒng)計自動鑒別中,圖像被劃分成子圖像或分區(qū),并對每個分區(qū)計算一些統(tǒng)計量。具有相似統(tǒng)計量的子圖像可成組形成感興趣的區(qū)域或聚類(cluster)(可能含有代碼)。統(tǒng)計方法的好處是一旦編譯(compile)各統(tǒng)計量只需處理子圖像從而大大減少了計算量要求。此外,統(tǒng)計量的編譯較簡單并能在用于超快系統(tǒng)的硬件中完成。較佳實施例中使用的統(tǒng)計量是局部表面取向的柱狀圖(histogram)。通過分析每一子圖像中的表面切線而類聚子圖像,可獲得統(tǒng)計量。一旦識別該聚類,可進一步分析圖像數(shù)據(jù)以檢測與特定光學代碼類型有關(guān)的特性的存在。一個這類特性可以是郵政編碼的主導方向。統(tǒng)計自動鑒別是美國專利申請S.N 09/096,384(題為“代碼閱讀器的自動鑒定和畫線技術(shù)”(AUTODISCRIMINATION AND LINE DRAWING TECHNIQUESFOR CODE READERS”,由He等提出并授權(quán)給Symbol Technologie.Inc)的主題,該申請加入于此作為參考。另一方面,神經(jīng)網(wǎng)絡(luò)也能用于鑒別可能包含光學代碼的感興趣的圖像區(qū)域。還可用神經(jīng)網(wǎng)絡(luò)來處理圖像數(shù)據(jù)。關(guān)于子圖像的瞄準圖案的投影位置也可用作選擇要進一步處理的子圖像的索引或加權(quán)因子。
在較佳實施例中,由系統(tǒng)微處理器執(zhí)行的自動鑒別軟件確定了哪些子圖像聚類包含了特定類型的編碼以及某些邊界的像素陣列中的坐標或者初步識別的代碼區(qū)域的特性。這一系統(tǒng)標記為104。如圖2所示,圖像數(shù)據(jù)可以初步指定為一維編碼,二維編碼,郵政編碼或MaxiCode(Maxi碼),應(yīng)理解具有可辨認統(tǒng)計圖案的其它編碼類型也可在該處理階段中被識別。圖2的其余部分說明了對一個一維碼的處理方案。專用于處理郵政編碼的技術(shù)示于隨后各圖。
自動鑒別功能104提供了感興趣區(qū)域的端部或邊界的座標,該區(qū)域設(shè)計為潛在地包含了全部或一部分一維條型碼。更具體地說,自動鑒別功能通過提供識別為包含一維條形碼的平行四邊形像素信息的定義角度的座標而提供聚類和方向信息。標號106處的進一步處理產(chǎn)生了代碼的數(shù)字化方式。特別是,標號108處的功能從所關(guān)注的圖像區(qū)域內(nèi)的數(shù)據(jù)中提取一個或多個波形。這一處理過程涉及對系統(tǒng)(畫線)所選線附近像素的分析。上述He等人的美國專利申請中詳細描述了這一處理過程。這一處理結(jié)果就是根據(jù)沿它的主軸跨越該一維碼所畫的相對“較寬”的像素線或像素帶(swath of pixels)中的像素灰度(grey scale)信息所產(chǎn)生的連續(xù)波形109,上述主軸初步由自由鑒別功能104所確定。可從1至n個象素來調(diào)節(jié)該象素線或象素帶的寬度。將波形中的峰值和谷值標識為110。數(shù)字化部分將這一信息轉(zhuǎn)換成與該圖像數(shù)據(jù)或位內(nèi)容相對應(yīng)的電子信號,如112所示的。Duanfeng He和Eugene Joseph在1998年6月12日提交的題為“數(shù)字化條形碼符號數(shù)據(jù)”的美國專利申請中描述了數(shù)字化儀處理過程,該專利申請已轉(zhuǎn)讓給Symbol Technologies,Inc.并通過引用加入于此。隨后在114處翻譯數(shù)字化輸出以提供經(jīng)翻譯的數(shù)據(jù)輸出。116處的信號線表示了要求從跨越同一一維數(shù)據(jù)所畫的不同線上提取數(shù)據(jù)的可能性。對任何所畫線譯碼的失敗可以用來在進一步試圖識別和定位目標碼時觸發(fā)附加的自動鑒別,如線118所示。
如果自動鑒別功能暫時把碼識別為PDF碼,提供起始和/或停止圖案座標并按照上述Correa等人的專利申請所描述的方式繼續(xù)處理過程。如果自動鑒別功能暫時把碼識別為MaxiCode,提供子圖像聚類位置信息并按照上述He等人的專利申請和美國專利申請S.N 09/176,864的方式繼續(xù)處理過程,后一申請是1998年10月22日提交的題為“用于閱讀包括MAXICODE的二維碼的技術(shù)”,已轉(zhuǎn)讓給SymbolTechnologies,Inc,該申請已通過引用加入于此。
如果自動鑒別功能暫時把該碼識別為郵政編碼,就提供一子圖像鏈表,即一個聚類?,F(xiàn)在將討論其處理過程。
Ⅱ.郵政編碼的處理及解碼圖3是示出了處理和解碼由自動鑒別功能識別為郵政編碼的二維象素數(shù)據(jù)的流程圖。
由自動鑒別功能在133處預處理一簇郵政編碼子圖像,以找出郵政編碼時鐘軌道的左右邊界??邕^郵編時鐘軌道從第一碼條到最后一碼條的直線上的端點是郵政編碼預處理器的輸出。在預處理過程中,假定以最強的相關(guān)性或相似性,在由子圖像構(gòu)成的子區(qū)域中定向代碼。搜索左右子圖像以識別在每個左右子圖像中的碼條(對于該代碼的第一和最后一碼條則無此必要)。于是,處理程序試圖識別表示在所識別的碼條之間的時鐘軌道的碼條規(guī)則性。定義一次“嘗試”為試圖定位左右郵編邊界的例程(左右邊界可能落在剛被識別出的碼條以外)。時鐘軌道的高的縱橫比使首次尋找時鐘軌道的第一和最后一條碼條的嘗試變得困難。所以,重復進行預處理,直至找到適當?shù)幕€,且通過重新對準時鐘基線的初始估計識別時鐘軌道的第一和最后碼條(左右邊界)。
一旦時鐘軌道的左右邊界得以定位,134處的走線算法進一步分析數(shù)據(jù)以確定是否存在上升和/或下降碼條。根據(jù)這個信息,解碼器分發(fā)器135暫時確定郵政編碼的類型。上升/下降碼條的位置數(shù)據(jù)及狀態(tài)串傳送到適當翻譯功能136到142并試圖翻譯。如果翻譯不成功,則處理控制可回到解碼器分發(fā)器,以選擇另一種郵編類型,或返回到自動鑒別功能104以選擇另一種代碼類型和/或用于分析的另一子圖像聚類。
A.郵編預處理程序郵編預處理器尋找時鐘軌道并把它傳送至郵編解碼器??缭綍r鐘軌道的從第一碼條到最后一條碼條的直線上的端點是它的輸出。下面詳細說明預處理程序。
如上面所討論的,有若干個包括前端處理程序的預處理器。每一個預處理器從自動鑒別功能接收一個子圖像聚類作為其輸入。(一個聚類是一組子圖像,這些子圖像具有相似的統(tǒng)計特性)。在郵編的情況下,該聚類可能包括額外的圖像數(shù)據(jù),如直接打印在郵編上方的地址信息。
圖4為郵編預處理器流程圖。郵編預處理程序的第一步是定出該圖象聚類內(nèi)的至少部分碼條的位置,如200處所示。我們假定郵編碼包括子圖像的一條直線,這些子圖像之間具有最強的相關(guān)性或相似性。下一步,在202處,在認為可能的郵編位置處的左右子圖像附近搜索,以識別碼條,其中一條對著左邊的碼條,一條對著右邊的碼條。但它們本身未必是郵編的第一及最后一條碼條。這兩碼條的端點(即在方向上與時鐘軌道方向垂直的兩條碼條的最上端及最下端)給204處的Find Clock Track(尋求時鐘軌道)例行程序提供輸入。如求得時鐘軌道,接下來邊界定位器將求取時鐘軌道的第一和最后一條碼條。
成功的處理過程給出時鐘軌道的一個近似位置。但時鐘軌道的高的縱橫比難以使一次嘗試就完全確定其位置。如圖1所示,一個估計的或候選的時鐘軌道22可能不會精確地與由線18和20定義的符號實際時鐘軌道24相對齊。這種對齊狀態(tài)可能甚差,以至估計的時鐘軌道會丟失實際的時鐘軌道的某些部分。
尋找左右碼條端點的第二次迭代讓初始的估計與時鐘軌道的定位重新對齊。如成功,則由線18及線20所代表的時鐘軌道的邊界可以被求得。然后必須重新計算時鐘軌道并再次使用邊界尋求程序段以求取第一和最后一條碼條。如果需要,執(zhí)行更多次的迭代以獲取更精確的對齊。以這種方式,可以求得一系列均勻間隔的碼條中的實際的第一條碼條26及最后一條碼條28。
然而應(yīng)該明白,這些例程運行結(jié)束后未必將圖像識別成郵編,更難以識別出郵編類型。比如,一個簡單的格子具有均勻間隔的碼條,但它不是郵編?,F(xiàn)在必須分析碼條序列以檢測碼條的長度變化。如確有變化,才能假定有郵編存在。作一條直線橫跨時鐘軌道以計算每條碼條的黑白閾值。這條線的端點代表了時鐘軌道的位置并還被保存。郵編解碼器要使用到這些時鐘軌道位置及這些閾值。
1.求取時鐘軌道結(jié)合圖5我們更詳盡地敘述Find Clock Track例程204。這個例程猜測左右碼條的狀態(tài)并檢測是否已找到時鐘軌道。如前所述,時鐘軌道是一系列均勻的碼條和間隔。計算這些均勻性,如果找到時鐘軌道,則其端點在302處保存并該列程返回一個成功信號。不然,改變對左右碼條狀態(tài)的猜測,作一次新的嘗試以識別出時鐘軌道。設(shè)置左右碼條狀態(tài)及尋求時鐘軌道的循環(huán)最多可以重復七次。用于每次迭代的狀態(tài)的選擇由圖5中的LUT(查找表)304所控制。
時鐘軌道的特征不光是有均勻的碼條及間隔,而且有特定的平均碼條寬和間隔之比(間隔寬<4*碼條寬)。利用均勻性來確定一個候選的基線或者時鐘軌道是否正確。
2.檢測均勻碼條圖6是檢測碼條均勻性的例行程序308的流程圖。一個均勻碼條的序列意味著碼條寬度的變化很小。定有一個小的閾值δt,如果某碼條的寬度與碼條平均寬度的誤差大于δt,則該誤差被累加到變量acc_error上。如果累計誤差過大(acc_error>ave_bar*num_bar/16),則返回一個失敗信號,如402所示。不然,如果最大碼條和最小碼條的比值小于2,則返回一個成功信號,如404所示。
3.回填閾值回填閾值程序段如圖4中的206所示。這個例程的輸入是橫跨時鐘軌道的一條直線。求取這條直線上的邊沿,以求取邊沿之間的峰值和谷值,來計算閾值。圖7a顯示介于峰值504和谷值506之間的沿這條直線的亮度曲線,邊沿502已加亮。沿時鐘軌道的每一個子圖像的閾值都要保存。該例程的流程圖由7給出。
B.郵編處理器郵編處理器從預處理器取得如下輸入橫穿所有碼條的一條直線的兩個端點,及一組閾值,使用這些閾值可沿這條直線將碼條從背景中分離出來。
當前所提議的,或正在使用的最復雜的郵政編碼是4-狀態(tài)碼。這種郵編中,碼條可以是上升碼條,下降碼條,時鐘碼條或全碼條(見圖1a)。該處理器的輸出是上升/下降碼條分析(圖3,框134)的結(jié)果。它可以是一串數(shù)字,每一個數(shù)字代表一個碼條的狀態(tài)。碼條狀態(tài)可能是下列之一全碼條,上升碼條,下降碼條,時鐘碼條,或者是這樣一種碼條,其頂部或底部,或者頂部及底部都有一個不清新的狀態(tài)(根據(jù)這個分類,總共有5種狀態(tài))。顯然,碼條狀態(tài)的定義和郵編的4-狀態(tài)相當符合。知道一個碼條是上升碼條還是下降碼條不僅只是知道該碼條是一個“長碼條”的能力,是對于2-狀態(tài)(美國)郵編也是重要的如果郵編,分發(fā)器游發(fā)現(xiàn)狀態(tài)串中沒有升高碼條,而只有下降碼條,它可以將所有下降碼條改為上升碼條,并將串的內(nèi)容顛倒從而翻轉(zhuǎn)這個串。串的旋轉(zhuǎn)導致良好的解碼,當郵編上下倒置時可避免可能發(fā)生的解碼差錯。
郵編處理程序執(zhí)行如下幾個步驟1.參見圖8,找出輸入或基線602的橫跨方向并加以保存,以備后用。將輸入線逆時針旋轉(zhuǎn)90度求得碼條的向上方向,如該圖所示。為允許噪聲的存在,基本方向1(格點上的8個基本方向之一)以及它的兩個相鄰的方向(2和3)在以后的碼條跟蹤中作為一個完整的方向集來使用。將這三個方向根據(jù)它們與精確方向(如圖8所示)的接近程度排列(以后還被用于搜索)。碼條向下的三個方向的集合與上面僅僅相反。這些方向在后面的碼條跟蹤中甚為有用。
2.走線算法(例如Bresen ham的走線算法)用來從輸入線的一端走到另一端。各種畫線算法,如Bresenham算法在New man et al.,Principles of InterativeComputer Graphics.,pp20-27(Mc Graw Hill,2nd Ed.)中有敘述。
3.在走線過程中,當前象素的灰度和局部閾值(這個閾值或者是作為輸入從預處理器接收的,至于它的計算前已有述,或者局部閾值是從沿著輸入線的信號變化而計算而得)相比較。如果灰度未超出這個閾值,則找到了碼條的一條前邊沿。僅當下一個象素比當前象素更暗,行走才繼續(xù)進行,以找到碼條寬度的中心。此時調(diào)用碼條跟蹤例程以識別該碼條的終點。走線一直進行,直到碰到這樣一個象素,其灰度超出局部閾值才停止。這意味著已走出了這個碼條。處理程序再循環(huán)回來,以找尋下一個碼條,直到目的地。
4.碼條追蹤程序從上面步驟中找到的碼條上某給定點出發(fā),并在向上及向下兩個方向(由上面的步驟1求得)上跟蹤碼條。不同方向上走一步的效果不會一樣。如果初始方向是沿柵條方向,則每一步的跨度是相同的。但若初始方向是對角方向,那么每沿對角方向走一步時,就其投影距離來說,只抵到旁邊跨出的半步。并非只有一個系統(tǒng)被用于一個給定的郵編,但不含同時使用二個系統(tǒng)。所以步長調(diào)整有助于精確量度在噪聲環(huán)境下的走步偏離。有了這種調(diào)整,任何特定的條形碼的碼條長度都可以用相同的方法去量度,盡管沒有必要比較不同種的條形碼的碼條長度,因為計算方式不同。碼條追蹤程序的輸出是碼條向上和向下伸展到多遠。碼條相對于走線路徑的起點的位置將被記錄下來,這是供下一步使用的重要信息。
5.一個分段例程用于確保碼條近似地是均勻間隔的。如有間隙,這個間隙將充以適當數(shù)目的保留空位(每個保留空位相當于一個缺失的碼條)。這是一種容差的量度。解碼器下游可以正確地處理含有用保留空位代替未知條形碼的狀態(tài)串。但若不告知它缺少碼條的信息,它就不能正確處理這種情況。類似地,如明顯地存在一個噪聲斑條,引起碼條的一個碼條與它的兩個近鄰碼條間的間隙比起其他的間隙似乎太短,則噪聲斑條(一個虛假的碼條)將被清除。噪聲斑條不同于與其緊密相鄰的真實碼條,是因為它的高度通常較小。
6.時鐘軌道的平均豎直大小以下面的方式求取。所有的碼條高度以及兩兩相鄰的碼條間的所有“重疊”以直方圖來累計。兩碼條間的“重疊”是指一個豎直區(qū)域,在該區(qū)域中兩碼條是平行的,例如在圖1a圈出的并標以數(shù)字518的那個重疊。對直方圖進行濾波以消除可能的噪聲。然后取最小的峰值作為時鐘碼條的大小。
7.根據(jù)已確定的時鐘軌道的高度,找出一個錨接點,以開始碼條分析,錨接點或者是時鐘碼條本身,或者是形成的時鐘軌道的兩條相鄰的碼條的重疊部分。錨接點的選取要能可靠保證時鐘軌道已被正確識別出,并有所期望的大小。利用上面第6段所得到的時鐘軌道的高度,錨接點給出時鐘軌道豎直位置的頂端及底端,同時給出開始分析的起點。
8.從錨接點向左向右分析碼條。分析程序?qū)斍按a條與前一個碼條作比較,以賦于當前碼條一個狀態(tài)數(shù)??赡艿脑?,在每個碼條被分析以后,時鐘軌道的豎直位置將被調(diào)整。而且,每找到一個新的錨接點,時鐘軌道的豎直位置都要更新。分析程序產(chǎn)生一個碼條狀態(tài)串。
C.翻譯分發(fā)和解碼如圖3所示,狀態(tài)串由分發(fā)器135發(fā)送到各個郵編解碼器136到142。分發(fā)器的流程圖如圖10所示。每個狀態(tài)串的解碼器至多由3個單元構(gòu)成。英國和美國的郵編有特定的長度。而加拿大的Post Bar郵編則無此要求。這是因為加拿大的Post Bar有較強的糾錯能力,載斷的郵編也能被解讀出來。對于4-狀態(tài)郵編,單個解碼器可以處理可能的旋轉(zhuǎn)。也可以容納其他的郵編。
分發(fā)器135可以調(diào)用一個適當?shù)募幽么蟮腜ost Bar解碼器的修正版(歸加拿大郵局所有),一個美國郵編解碼器(處理流行的Post Net郵編及為國際郵件而設(shè)計的Planet郵編)以及一個英國郵編解碼器。
圖10所示為一個初始模塊部分502用于在美國郵編與英國郵編之間執(zhí)行預篩選。如果初步顯示那是美國郵編,則系統(tǒng)還要檢查上升碼條和下降碼條的數(shù)目以判定碼的取向,并確定該碼是美國的Planet還是Post Net郵編。相應(yīng)的解碼在504,506,508或510執(zhí)行。如果該碼無法被解碼成美國郵編,在514處進一步計算上升碼條和下降條碼的數(shù)目,它可能在512處試圖將狀態(tài)串解碼成英國郵編。在514處的測試失敗將把這串狀態(tài)送到516處試圖解碼為加拿大郵編。
現(xiàn)在來說明美國郵編和英國郵編的具體的解碼過程。
美國郵編和英國郵編(還沒有被標準地使用),盡管有著顯著的區(qū)別,但它們是密切相關(guān)的。它們都有一個起始碼條及終止碼條模式,都使用一位的校驗和。英國郵編極象兩層的美國郵編,將其底部翻轉(zhuǎn),兩個時鐘軌道合二而一。它與美國郵編的不同之處在于,美國郵編使用5個碼條表示一個字符,而英國郵編使用4個碼條表示一個字符。因此,可以讓兩種解碼器合用同一個算法,以及大量的程序代碼。
一個面向?qū)ο蟮慕獯a器可用來處理這種郵編碼。對于英國郵編,使用兩個對象,一個用于郵編碼的上升碼條部分,另一個用于下降碼條部分。
可以使用下面的解碼過程1.根據(jù)表或一組等式檢查碼條的數(shù)目。每一種郵編政碼僅具有一組固定的容許數(shù)量的碼條集。
2.僅適用于美國郵編碼(a)如有必要(來自前面階段的信息),將狀態(tài)串旋轉(zhuǎn);(b)從本級起所有的下降碼條被忽略。
3.檢查開始和終止模式。對于英國郵編,如果起始和終止模式顯示出郵政編碼上下顛倒,則輸入的狀態(tài)串需要翻轉(zhuǎn)。對于美國郵編,上下顛倒的情況已經(jīng)被糾正。
4.根據(jù)是否存在美國和英國郵編,產(chǎn)生一個或二個對象。每個解碼器采取一個1位的碼條狀態(tài)序列,1表示存在上升碼條(或下降碼條),0表示不存在。將這個序列逐個字符地進行分析,對美國郵編,每個字符有5個碼條(5個比特),對于英國郵編,4個碼條一個字符。當為每個字符收集這些位時,系統(tǒng)可以知道哪一個碼條的狀態(tài)不確定。
5.檢查一致性以使每個字符均有效。對于Post Net和英國郵編,每個字符應(yīng)該有一個2位的集合。對于Planet,每個字符應(yīng)有一個3位的集合。如果一個字符有一些狀態(tài)不確定的碼條,處理程序確定是否能對它糾正之。糾正字符的邏輯原理是這樣的如果從所有已知的碼條有正確數(shù)目的上升碼條,則未知碼條被當作時鐘碼條;反之,如已知正確數(shù)目的時鐘碼條,則未知碼條被看作上升碼條。
6.對于美國郵編,把它符翻譯為它們所代表的數(shù)字。
7.根據(jù)符號邏輯規(guī)范計算校驗和(對英國郵編而言,計算二個校驗和,一個是上升碼條校驗和,另一個是下降碼條校驗和)并和從郵編中讀得的校驗和相比較。如果兩者不同,則解碼失敗。
8.從英國郵編中查找輸出信息當系統(tǒng)讀入多個郵編時,系統(tǒng)將按照一定的順序步驟工作最佳化解碼速度及最高的精確度。在一個實施例中,首先根據(jù)確定后續(xù)讀的所有(例大于75%)加長碼條或者是上升碼條,或者是下降碼條決定試圖對郵政編碼按二狀態(tài)碼解碼。測試各種2狀態(tài)碼。如果這種解碼嘗試失敗了,則狀態(tài)串將被派送到4狀態(tài)解碼器。然后嘗試4狀態(tài)解碼,根據(jù)碼中允許的變化依次進行。例如,首先,對于定長碼進行解碼,然后對可變長度的加拿大郵編解碼(后者符號允許缺失不少碼條)。在具有糾錯能力的情況下,系統(tǒng)首先不使用最大糾錯能力進行解碼。例如試圖進行行加拿大或澳大利亞的郵編解碼時,系統(tǒng)會使用比Reed Soloman碼最大糾錯能力較小的能力。對于美國,英國或日本的郵編,系統(tǒng)將不會應(yīng)用一致校驗值來改正無效字符。系統(tǒng)只是根據(jù)字符串自身修正非法字符。
本發(fā)明的所描述的實施例只是一種示意,而不是一種限制,也并不代表本發(fā)明的各種實施例??梢詫λ沂镜南到y(tǒng)進行修正或改變但并不脫離下述法律所承認的及文字上等效的權(quán)利要求書所提出的精神和范圍。
權(quán)利要求
1.一種用于識別和閱讀在由光學代碼閱讀器獲得的圖像數(shù)據(jù)中的郵政編碼的方法,所述郵政編碼包括規(guī)則平行碼條的時鐘軌道,其特征在于,包括下述步驟定義在所述圖像數(shù)據(jù)中的字區(qū)域,它包含了指示其中存在郵政編碼的特征;用來自所述子區(qū)域的圖像數(shù)據(jù)識別在所述圖像數(shù)據(jù)中從所述郵政編碼一個邊緣跨越所述郵政編碼的所述時鐘軌道到另一邊緣的一條基線;定位與該基線相交的碼條;跟蹤每一高于和低于所述基線的碼條以根據(jù)碼條長度獲得一狀態(tài)串;以及對該狀態(tài)串譯碼。
2.如權(quán)利要求1所述的方法,其特征在于,識別從所述郵政編碼的一個邊緣跨越所述郵政編碼的時鐘軌道到另一邊緣的基線的所述步驟包括識別在所述子區(qū)域左子圖像中的第一碼條和在所述子區(qū)域的右子圖像中的第二碼條;將可位于子圖像中的左郵政編碼邊緣定位到所述第一碼條的左邊;以及將可位于子圖像中的右郵政編碼邊緣定位到所述第一碼條的右邊。
3.如權(quán)利要求1所述的方法,其特征在于,通過下列方法識別從所述郵政編碼的一個邊緣跨越所述時鐘軌道到另一邊緣的所述基線在候選左邊緣碼條上選擇第一點;在候選右邊緣碼條上選擇第二點;以及沿所述基線測試碼條的規(guī)則性以確定所述基線是否完全位于時鐘軌道內(nèi)。
4.如權(quán)利要求3所述的方法,其特征在于,用一個查找表來選擇所述第一和第二點。
5.如權(quán)利要求4所述的方法,其特征在于,響應(yīng)于先前的基線不完全位于所述時鐘軌道內(nèi)的判斷,從所述查找表中選擇不同的第一和第二點。
6.如權(quán)利要求3所述的方法,其特征在于,如果在沿基線測試碼條的規(guī)則性中識別了一個間隙,那么對每個丟失的碼條插入一個位置保留符。
7.一種用于閱讀二狀態(tài)和四狀態(tài)郵政編碼的方法,其中構(gòu)成時鐘軌道的碼條已經(jīng)被識別,其特征在于,包括下列步驟對于每一個識別的碼條確定所述碼條是從所述時鐘軌道處上升了還是下降了;獲得對于包括丟失碼條的位置保留符的條形碼的狀態(tài)串;選擇適于要讀取的郵政編碼類型的二狀態(tài)或四狀態(tài)譯碼算法;以及運用所選的譯碼算法從所述狀態(tài)串翻譯該碼。
8.如權(quán)利要求7所述的方法,其特征在于,讀取U.S.POSTNET碼。
9.如權(quán)利要求7所述的方法,其特征在于,讀取加拿大郵政編碼。
10.如權(quán)利要求7所述的方法,其特征在于,讀取英國郵政編碼。
11.一種用于讀取各種類型郵政編碼的方法,其特征在于,包括獲取識別為潛在地包含郵政編碼圖像的像素數(shù)據(jù);定位所述郵政編碼的整個時鐘軌道;檢查已定位的時鐘軌道內(nèi)的每一碼條以確定是否每個這種碼條是否都延伸到時鐘軌道的上面或下面并獲得對于該碼的一個狀態(tài)串;通過檢查碼條的數(shù)目以及上升碼條和下降碼條的出現(xiàn)情況確定郵政編碼的類型;以及將至少一種郵政編碼的譯碼算法用到狀態(tài)串上。
12.如權(quán)利要求11所述的方法,其特征在于,確定碼型包括下列步驟確定所述碼是否具有表示美國郵政編碼的大量碼條;根據(jù)上升和下降碼條的出現(xiàn)情況確定所述碼的朝上/朝下取向;以及試圖按美國郵政編碼對所述狀態(tài)串譯碼。
13.如權(quán)利要求12所述的方法,其特征在于,進一步包括下述步驟確定所述碼是否具有表示英國碼的大量碼條;以及試圖按英國碼對所述狀態(tài)串譯碼。
14.如權(quán)利要求13所述的方法,其特征在于,進一步包括下述步驟如果試圖按英國碼對所述碼譯碼失敗,則試圖按加拿大郵政編碼對所述狀態(tài)串譯碼。
15.如權(quán)利要求11所述的方法,其特征在于,通過以下步驟定位所述時鐘軌道(a)識別最左和最右的候選碼條;(b)對候選碼條的長度作一系列的猜測以估計一條候選時鐘軌道;(c)測試在所述候選時鐘軌道內(nèi)的碼條和間隔的規(guī)則性;以及(d)重復步驟(a)-(c)直到找到完整的時鐘軌道。
16.一種用于閱讀郵政編碼的裝置,其特征在于,包括光學傳感器,用于獲得二維陣列的圖像數(shù)據(jù);自動鑒別器,用于識別在潛在包含郵政編碼的圖像數(shù)據(jù)中的一個子圖像聚類;時鐘軌道定位器,用于通過從一條候選基線開始估算各候選基線、定位所述碼邊緣和檢查沿著在碼邊緣間延伸的一條或多條候線基線的碼條和間隔的均勻性,而在所述圖像數(shù)據(jù)陣列中定位一完整時鐘軌道,其中所述候選基線從定位在所述聚類內(nèi)的子圖像中的碼條開始延伸;碼條跟蹤器,用于確定垂直于基線的每一碼條的長度并響應(yīng)于它產(chǎn)生狀態(tài)串;和郵政編碼譯碼器,用于對狀態(tài)串譯碼。
17.如權(quán)利要求16所述的裝置,其特征在于,所述時鐘軌道定位器包括含有一系列端點的查找表的存儲器,用于生成一條或多條候選基線,碼條和間隔的均勻性將沿這些候選基線而被評估;
18.如權(quán)利要求17所述的裝置,其特征在于,用走線算法在候選基線上從一個端點走向第二個端點。
19.如權(quán)利要求16所述的裝置,其特征在于,包括一郵政編碼分配器,用于識別感測到的郵政編碼類型以及根據(jù)適于所識別的郵政編碼類型的譯碼算法對所述郵政編碼譯碼。
20.如權(quán)利要求19所述的裝置,其特征在于,通過檢查時鐘軌道碼條的數(shù)目和上升及下降碼條的出現(xiàn)情況并通過試圖根據(jù)用于至少一種郵政編碼的譯碼算法對所述狀態(tài)串譯碼,而確定所述郵政編碼的類型。
21.一種用于讀取二狀態(tài)和四狀態(tài)郵政編碼的方法,其中已識別構(gòu)成時鐘軌道的碼條,其特征在于,包括下列步驟對于每一識別的碼條,確定所述碼條是從所述時鐘軌道上升還是下降以獲得狀態(tài)串;如果基本上延伸超過所述時鐘軌道的所有碼條都是上升碼條或如果基本上延伸超過所述時鐘軌道的所有碼條都是下降碼條,則試圖按二狀態(tài)對狀態(tài)串譯碼;如果試圖按二狀態(tài)碼對所述狀態(tài)串譯碼失敗,則試圖按四狀態(tài)碼對所述狀態(tài)串譯碼。
22.如權(quán)利要求21所述的方法,其特征在于,試圖按四狀態(tài)碼對所述狀態(tài)串譯碼首先是試圖按固定長度四狀態(tài)碼對所述碼譯碼。
23.如權(quán)利要求21所述的方法,其特征在于,利用小于所述碼的理論上最大糾錯能力試圖進行譯碼。
全文摘要
用于識別和閱讀具有上升碼條(4)、下降碼條(5)、全碼條(6)和時鐘碼條(7)的郵政編碼(12)的方法和裝置,它包括了一個手持式代碼閱讀器(10)。通過確定郵政編碼的一幅圖像內(nèi)的取向和位置,該郵政編碼圖像被反復處理并隨后被讀取和譯碼。該系統(tǒng)能鑒別不同格式的編碼圖案。
文檔編號G06K7/14GK1300406SQ00800523
公開日2001年6月20日 申請日期2000年4月7日 優(yōu)先權(quán)日1999年4月7日
發(fā)明者E·約瑟夫, D·F·何 申請人:訊寶科技公司