專利名稱:用于在不同位置執(zhí)行不同解碼算法的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及代碼讀取器,更特別地,涉及試圖優(yōu)化解碼過程以在所獲得的圖像中加快候選碼的分析的代碼讀取器。
背景技術(shù):
多年來,對(duì)使用光學(xué)代碼的產(chǎn)品的自動(dòng)識(shí)別已廣泛實(shí)現(xiàn)于工業(yè)操作以及許多其它應(yīng)用中。光學(xué)代碼是由具有不同光反射或發(fā)射的元素所組成并根據(jù)預(yù)定義規(guī)則聚集而成的圖案。光學(xué)代碼中的元素可以是線性條碼中的條形或空白,或者可以是二維矩陣碼中的開/關(guān)圖案。條碼或符號(hào)可打印在產(chǎn)品包裝的標(biāo)簽上,或通過直接部件標(biāo)記而直接印在產(chǎn)品本身上。條碼或符號(hào)中編碼的信息可利用固定安裝的裝置或便攜式手持設(shè)備中的光學(xué)讀取器來解碼。當(dāng)在手持讀取器設(shè)備的情況下,設(shè)備用戶將設(shè)備朝向代碼,通常借助于該設(shè)備產(chǎn)生的出現(xiàn)在要成像的物體表面的光目標(biāo)圖案,并且該設(shè)備自動(dòng)獲取包括代碼的圖像,或者用戶激活該設(shè)備以獲取圖像。
至少某些讀取器設(shè)備包括能夠生成視場二維圖像的相機(jī)。例如,現(xiàn)有的多種系統(tǒng)利用二維CCD圖像傳感器,其獲取圖像并生成提供至處理器的圖像數(shù)據(jù)。該處理器被編程以檢查圖像數(shù)據(jù)、標(biāo)識(shí)候選碼(例如候選條碼或符號(hào))以及嘗試對(duì)候選碼進(jìn)行解碼。至少某些讀取器設(shè)備被編程以連續(xù)快速地獲取FOV圖像并嘗試對(duì)所獲得圖像中的任何候選碼盡可能快地解碼。為了進(jìn)行解碼,處理器運(yùn)行一個(gè)或多個(gè)解碼算法。
當(dāng)獲取代碼的圖像時(shí),圖像質(zhì)量依賴于若干因素,包括傳感器相對(duì)于設(shè)置代碼的表面之間的角度、設(shè)置代碼的表面的材料和紋理、代碼標(biāo)記質(zhì)量或標(biāo)記后的損壞、周圍和設(shè)備光照特性、與設(shè)置代碼表面的距離、光學(xué)模糊、相機(jī)分辨率等。圖像質(zhì)量影響著處理器運(yùn)行特定算法來解碼代碼的能力。例如,在多種情況下簡單解碼算法不能將圖像中的代碼成功解碼,除非圖像采集周圍的環(huán)境相當(dāng)理想。
為補(bǔ)償不完美的圖像采集,已經(jīng)開發(fā)了相對(duì)較復(fù)雜的解碼算法。例如,已開發(fā)某些解碼算法,其至少部分地補(bǔ)償了不完美的光照、設(shè)置代碼的彎曲表面、不完美的傳感器與設(shè)置代碼的表面的夾角等。
盡管復(fù)雜的解碼算法起到了補(bǔ)償缺陷圖像的作用,但一大缺點(diǎn)在于,復(fù)雜的算法通常需要更多的處理能力和相當(dāng)數(shù)量的時(shí)間來執(zhí)行。下文中,除非另外指出,相對(duì)復(fù)雜的算法或一般而言需要相對(duì)長時(shí)間來執(zhí)行的算法將被稱為“昂貴的”或“較昂貴的”算法,而相對(duì)簡單的算法或一般而言需要相對(duì)短時(shí)間完成的算法將被稱為“廉價(jià)的”或“較廉價(jià)的”算法。
盡管較昂貴的算法在某些應(yīng)用中不會(huì)成為問題,但在圖像被連續(xù)快速獲取的應(yīng)用中,需要相對(duì)長時(shí)間來完成的昂貴算法會(huì)產(chǎn)生遠(yuǎn)超出讀取器處理器性能的計(jì)算需求。更特別地,在某些情況下,圖像傳感器能夠快速地獲取并提供圖像,以使讀取器設(shè)備的處理器在接收下一圖像之前,無法在圖像中的所有候選碼上執(zhí)行昂貴算法。
當(dāng)處理器跟不上對(duì)快速圖像系列中所有候選碼執(zhí)行昂貴算法所需要的計(jì)算需求時(shí),一個(gè)解決方案可以是先行分析下一圖像中的候選,直到讀取器設(shè)備已嘗試解碼當(dāng)前圖像中的所有候選碼。因此,舉例而言,在嘗試解碼第一圖像中所有候選碼的所需時(shí)段期間第二至第四圖像被獲取,當(dāng)?shù)谖鍒D像被獲取且第五圖像中的候選碼被檢查時(shí)第二至第四圖像將被丟棄。雖然這一解決方案保證了該昂貴算法應(yīng)用于當(dāng)前或第一圖像的所有候選碼,但該解決方案在第一圖像中的候選碼被處理時(shí)簡單地忽略了第二至第四圖像中的候選碼,而不管后續(xù)圖像中的候選可能更適合被解碼的事實(shí)。在這種情況下,成功地成像并解碼代碼所需的總時(shí)間將被延長,其中設(shè)備無法成功解碼第一圖像中的任何候選,這將給設(shè)備用戶帶來困擾的延遲。
發(fā)明內(nèi)容
與本發(fā)明某些實(shí)施例的至少一方面相一致,已經(jīng)認(rèn)識(shí)到具有不同相對(duì)開銷(即需要不同時(shí)間量來完成)的解碼算法可用于分析所獲取的圖像,來加快總體解碼過程,以使處理器能夠嘗試至少標(biāo)識(shí)圖像中候選碼的子集的全部并利用至少某一算法來解碼該子集中的全部候選。更特別地,可以有利地由圖像中的位置確定將哪種算法應(yīng)用在圖像的部分來標(biāo)識(shí)候選以及將哪種算法應(yīng)用于圖像中的特定候選碼。例如,在設(shè)備用戶使用期間手動(dòng)地移動(dòng)讀取器設(shè)備以將讀取器的視場(FOV)對(duì)準(zhǔn)待讀取代碼的手持讀取器設(shè)備的情況下,多數(shù)用戶持續(xù)不斷地移動(dòng)讀取器設(shè)備以將該代碼與FOV更好地對(duì)準(zhǔn),并將該讀取器相對(duì)于設(shè)置代碼的表面更好地定位,直到該設(shè)備指示該代碼已被成功解碼(例如發(fā)射光、發(fā)出聲音、在通信信道上返回?cái)?shù)據(jù)等)。因而,在手動(dòng)對(duì)準(zhǔn)過程開始和包括代碼的第一圖像被獲取時(shí),該代碼可能位于FOV外邊界附近,而相機(jī)可能相對(duì)于設(shè)置有代碼的表面形成夾角。通過手動(dòng)調(diào)整以及在后續(xù)成像期間,代碼將更加對(duì)準(zhǔn)于FOV的中心部分而相機(jī)與表面的夾角將更為合適。在這種情況下,至少某些實(shí)施例中,可行的是將FOV劃分為中心關(guān)注區(qū)(ROI)和外圍R0I,嘗試標(biāo)識(shí)中心ROI中的候選碼并利用較昂貴的算法對(duì)中心ROI中的候選碼進(jìn)行解碼,同時(shí)嘗試標(biāo)識(shí)外圍ROI中的候選碼并利用較廉價(jià)的算法對(duì)外圍ROI中的候選碼進(jìn)行解碼。這樣,在FOV不完美地對(duì)準(zhǔn)代碼時(shí)獲取的第一圖像中,代碼可位于外圍ROI中,此時(shí)只有較廉價(jià)的算法用于標(biāo)識(shí)候選碼并對(duì)代碼進(jìn)行解碼。在中心ROI包括代碼的后續(xù)圖像中,較昂貴的算法可用于標(biāo)識(shí)候選碼并解碼該候選碼。在本文許多情況下,較廉價(jià)的算法將成功解碼第一或早期圖像中的候選碼,該設(shè)備將指示成功解碼,并且該過程完成。在其它情況下,當(dāng)?shù)谝换蛟缙趫D像被檢查時(shí),算法不能成功解碼代碼。然而,在后續(xù)圖像中,與代碼相關(guān)的候選碼將反映更優(yōu)選的FOV與代碼的對(duì)準(zhǔn),因而昂貴算法能夠相對(duì)較快地完成,且平均而言,總體解碼過程被縮短。在其它情況下FOV可劃分為三個(gè)或更多個(gè)R0I,不同的解碼算法可應(yīng)用于三個(gè)或更多個(gè)ROI的每一個(gè)中的候選。盡管ROI可基于使用讀取器設(shè)備的假定方式被預(yù)先指定,但在其它實(shí)施例中ROI仍可實(shí)時(shí)地進(jìn)行實(shí)質(zhì)性改變,以反映設(shè)備被使用的方式。例如在某些情況下,“昂貴的R0I”表示處理器嘗試定位并利用較昂貴的解碼算法來解碼候選的ROI,并且可被分配至先前代碼最后被成功解碼的FOV區(qū)域。因此,最近被解碼的代碼位于FOV的左側(cè)附近時(shí),昂貴的ROI可移動(dòng)至該位置,其中FOV的余部可包括較廉價(jià)的ROI。
在某些實(shí)施例中,ROI可實(shí)時(shí)地進(jìn)行實(shí)質(zhì)性改變,以基于設(shè)備能夠多快完成圖像的全部所需候選解碼嘗試來改變其相對(duì)大小。例如,如果在處理器以相似方式從相機(jī)接收下一圖像之前的至少一閾值時(shí)段以前或以內(nèi),處理器對(duì)一個(gè)或一系列圖像完成全部解碼嘗試,則中心昂貴ROI的大小可增加,如果處理器無法在所需時(shí)段內(nèi)嘗試對(duì)全部圖像候選解碼,則昂貴的ROI的大小可減小。通過增加中心昂貴ROI的大小,在中心ROI會(huì)出現(xiàn)更多的候選碼,用于后續(xù)圖像中的解碼嘗試,從而增加完成圖像全部解碼嘗試所需要的時(shí)間。
在某些實(shí)施例中,候選碼的位置可通過其它方式來使用,以確定將哪些算法應(yīng)用于哪種代碼。例如,可能對(duì)于特定的昂貴算法,已知處理器始終能夠在接收下一圖像之前嘗試對(duì)三個(gè)候選進(jìn)行解碼。此時(shí),該處理器可被編程以選擇三個(gè)位置最中心的候選碼用于利用昂貴算法進(jìn)行解碼嘗試,并可嘗試?yán)幂^廉價(jià)的算法解碼所有其它候選。
在其它實(shí)施例中,讀取器設(shè)備處理器可被編程以從圖像中的關(guān)注點(diǎn)開始,以下列次序?qū)蜻x碼排序,即距離該關(guān)注點(diǎn)最近的候選為第一且距離該點(diǎn)較遠(yuǎn)的候選列在其后,并嘗試以該次序來解碼候選碼直到某個(gè)下一圖像事件發(fā)生。此處,下一圖像事件可以是接收到的來自相機(jī)的下一圖像。在其它情況下,下一圖像事件可由計(jì)時(shí)器的超時(shí)來觸發(fā),其超出應(yīng)在接收下一圖像之前期滿的時(shí)段。其它下一圖像事件是可預(yù)期的。
與本發(fā)明某些實(shí)施例的另一方面相一致,讀取器設(shè)備處理器可被編程以將第一相對(duì)廉價(jià)的代碼算法應(yīng)用于一系列圖像中的候選碼,并且如果該設(shè)備處理器未能成功解碼任一圖像中的代碼,可以將該圖像存儲(chǔ)至存儲(chǔ)器。其后,該處理器可被編程以在一組圖像被存儲(chǔ)之后,再次訪問圖像中的一個(gè)或子集或全部并將較昂貴的解碼算法應(yīng)用于一個(gè)或多個(gè)圖像中的全部候選碼或其子集,以嘗試解碼候選。在至少某些情況下,當(dāng)一個(gè)或多個(gè)圖像被再次訪問時(shí),較昂貴的算法以與上述任一種教導(dǎo)相一致的方式來應(yīng)用,例如,通過將昂貴的算法應(yīng)用于一個(gè)或多個(gè)圖像中小于FOV的R0I,通過將昂貴的算法僅應(yīng)用于該圖像或每個(gè)圖像中最接近關(guān)注點(diǎn)的候選的子集(如3個(gè)),等等。在某些情況下,當(dāng)處理器再次訪問一個(gè)以上的圖像時(shí),處理器可首先開始處理最近存儲(chǔ)的圖像并朝更早存儲(chǔ)的圖像進(jìn)行回向處理,因?yàn)樵谥辽倌承?yīng)用(如手持應(yīng)用)中FOV與代碼的對(duì)準(zhǔn)或定位在后續(xù)圖像中會(huì)更好。也可構(gòu)想處理存儲(chǔ)圖像的其它順序。
在其它實(shí)施例中,當(dāng)處理器未能成功解碼圖像中的候選碼時(shí),在對(duì)圖像進(jìn)行存儲(chǔ)用于后續(xù)處理之前,處理器可將解碼成功因子分配至該圖像,其可由該處理器用來標(biāo)識(shí)處理器應(yīng)利用昂貴算法來分析的所存儲(chǔ)圖像的子集。
在其它實(shí)施例中,處理器可被編程以嘗試?yán)昧畠r(jià)算法來解碼全部候選碼,并當(dāng)全部嘗試失敗時(shí),基于任一上述示例所表示的位置,嘗試僅解碼該候選的子集。在該可選項(xiàng)中,處理器可被編程以將解碼成功因子至少分配至基于較廉價(jià)解碼嘗試而具有利用昂貴算法被成功解碼的最大可能性的候選碼的子集(如3-5個(gè)),然后可將該昂貴算法應(yīng)用于該候選子集。
此外,在至少某些實(shí)施例中,當(dāng)處理器再次訪問其之前嘗試?yán)幂^廉價(jià)算法解碼的候選碼時(shí),該處理器可使用應(yīng)用較廉價(jià)算法時(shí)所生成的信息,以加快完成較昂貴算法的過程。例如,當(dāng)處理器能夠利用較廉價(jià)算法來分析四分之三的代碼時(shí),該信息可能被用于加快后續(xù)算法。
某些實(shí)施例包括一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,該方法包括提供被編程以執(zhí)行以下步驟的處理器的步驟:獲取FOV的圖像;標(biāo)識(shí)圖像中至少第一和第二關(guān)注區(qū)(ROI),其中第一 ROI不同于第二 ROI ;嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的候選碼并嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法解碼第二 ROI中的候選碼。在某些情況下,該第一解碼算法在計(jì)算上比第二解碼算法復(fù)雜。在某些情況下,第一解碼算法比第二解碼算法需要更多的時(shí)間量來完成。在某些情況下,第一 ROI包括FOV的中心部分。在某些情況下,第二 ROI包括FOV中圍繞第一 ROI的部分。在某些情況下,該第一解碼算法包括該第二解碼算法以及附加解碼算法。在某些情況下,該第一 ROI包括對(duì)應(yīng)于先前圖像中成功解碼的位置的ROI。在某些情況下,該方法進(jìn)一步包括以下步驟:標(biāo)識(shí)圖像中不同于第一和第二 ROI的至少第三R0I,以及嘗試?yán)貌煌诘谝缓偷诙獯a算法的第三解碼算法對(duì)該第三ROI中的候選碼進(jìn)行解碼。在某些實(shí)施例中,該方法進(jìn)一步包括從個(gè)人接收指示第一 ROI或最佳位置的指示的步驟。在某些情況下,該第一 ROI包括FOV中的位置和相對(duì)于該位置的距離。在某些情況下,該位置由圖像中沿單個(gè)軸向的位置組成。在某些情況下,圖像傳感器組成便攜式代碼讀取設(shè)備的一部分。在某些情況下,圖像傳感器組成手持代碼讀取設(shè)備的一部分。在某些實(shí)施例中,傳感器以重復(fù)方式獲取圖像且其中該第一 ROI的大小至少部分地與嘗試解碼先前獲取圖像的第一 ROI中的候選碼所需時(shí)間相關(guān)地來確定。在某些情況下,傳感器以重復(fù)方式獲取圖像且其中第二解碼算法至少部分地與嘗試解碼先前獲取圖像中的候選碼所需時(shí)間相關(guān)地來選擇。在某些情況下,該第一和第二 ROI在獲取圖像之前被預(yù)先指定。某些實(shí)施例包括一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,該方法包括提供被編程以執(zhí)行以下步驟的處理器的步驟:獲取FOV圖像并將不同的解碼算法應(yīng)用于候選碼,以嘗試解碼該候選碼,其中應(yīng)用于每個(gè)候選的解碼算法與候選碼在FOV中的位置相關(guān)。在某些情況下,該第一解碼算法應(yīng)用于第一關(guān)注區(qū)(ROI)中的候選碼而不同于第一解碼算法的第二解碼算法應(yīng)用于不同于第一ROI的第二ROI中的候選碼。在某些情況下,第一 ROI包括傳感器FOV的中心部分而第二 ROI包括FOV中圍繞第一 ROI的部分。在某些情況下,該傳感器組成手持設(shè)備的一部分。在某些情況下,用于確定哪些解碼算法應(yīng)用于哪些候選碼的函數(shù)發(fā)生改變,以最優(yōu)化解碼過程。在某些情況下,該解碼算法包括至少第一相對(duì)復(fù)雜的解碼算法和第二相對(duì)簡單的解碼算法,且其中該函數(shù)發(fā)生改變以修改采用第一和第二解碼算法的候選碼的比率。在某些情況下,該比率與嘗試?yán)玫谝缓偷诙獯a算法解碼FOV中的候選碼所需時(shí)間相關(guān)地改變。其它實(shí)施例包括一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,該方法包括提供被編程以執(zhí)行以下步驟的處理器的步驟:(i)獲取FOV圖像,(ii)嘗試?yán)玫谝唤獯a算法對(duì)圖像中的候選碼進(jìn)行解碼,(iii)在嘗試解碼候選碼失敗時(shí),將圖像保存在存儲(chǔ)器中,(iv)重復(fù)步驟(i)至(iii)直到閾值數(shù)量的解碼候選碼嘗試失敗和候選碼被成功解碼中之一,在閾值數(shù)量的解碼候選碼嘗試失敗時(shí),訪問保存在存儲(chǔ)器中的圖像并嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法至少對(duì)存儲(chǔ)于存儲(chǔ)器中的圖像的子集中的候選碼進(jìn)行解碼。其它實(shí)施例包括一種用于讀取設(shè)置于物體上的代碼的裝置,該裝置包括具有二維視場(FOV)的圖像傳感器,可鏈接至該傳感器以從其獲取圖像數(shù)據(jù)的處理器,該處理器被編程以執(zhí)行以下步驟:獲取FOV的圖像;標(biāo)識(shí)圖像中至少第一和第二關(guān)注區(qū)(ROI),其中第一 ROI不同于第二 ROI ;嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的候選碼;以及嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法解碼第二 ROI中的候選碼。在某些情況下,該第一解碼算法在計(jì)算上比第二解碼算法復(fù)雜。在某些情況下,第一解碼算法比第二解碼算法需要更多的時(shí)間量來完成。在某些情況下,第一 ROI包括FOV的中心部分。另一實(shí)施例包括一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的裝置,該裝置包括具有二維視場(FOV)的圖像傳感器,可鏈接至該圖像傳感器的處理器,該處理器被編程以執(zhí)行以下步驟:獲取FOV圖像并將不同的解碼算法應(yīng)用于候選碼,以嘗試解碼候選碼,其中應(yīng)用于每個(gè)候選的解碼算法與候選碼在FOV中的位置相關(guān)。在某些情況下,該第一解碼算法應(yīng)用于第一關(guān)注區(qū)(ROI)中的候選碼而不同于第一解碼算法的第二解碼算法應(yīng)用于不同于第一 ROI的第二 ROI中的候選碼。其它實(shí)施例包括一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的裝置,該裝置包括具有二維視場(FOV)的圖像傳感器,可鏈接至該圖像傳感器的處理器,該處理器被編程以執(zhí)行以下步驟:(i)從傳感器獲取對(duì)應(yīng)于FOV圖像的圖像數(shù)據(jù),(ii)嘗試?yán)玫谝唤獯a算法對(duì)圖像中的候選碼進(jìn)行解碼,(iii)在嘗試解碼該候選碼失敗時(shí),將圖像保存在存儲(chǔ)器中,(iv)重復(fù)步驟(i)至(iii)直到閾值數(shù)量的解碼候選碼嘗試失敗和候選碼被成功解碼中之一,在閾值數(shù)量的解碼候選碼嘗試失敗時(shí),訪問保存在存儲(chǔ)器中的圖像數(shù)據(jù)并嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法至少對(duì)存儲(chǔ)于存儲(chǔ)器中的圖像的子集中的候選碼進(jìn)行解碼。為實(shí)現(xiàn)前述和相關(guān)目標(biāo),本發(fā)明包含了下文全面描述的特征。下文的描述和附圖詳細(xì)提出了本發(fā)明的某些說明性方面。然而,這些方面表示應(yīng)用本發(fā)明的原理的各種方式,但只是其中少數(shù)幾個(gè)。本發(fā)明的其它方面、優(yōu)點(diǎn)和新穎性將在隨后的發(fā)明詳細(xì)描述中結(jié)合附圖考慮時(shí)變得顯而易見。
圖1是示出手持代碼讀取器的示意圖,其具有與本發(fā)明至少某些方面相一致的特性;圖2是示出圖1所示包含在手持設(shè)備中的內(nèi)部組件的示意圖;圖3是示例性視場、視場中的示例性關(guān)注區(qū)以及視場中示例性候選碼的視圖;圖4與圖3相似,但不出了相對(duì)于視場和關(guān)注區(qū)在不同相對(duì)位置的候選碼;圖5是示出一種方法的流程圖,由此圖2所示的處理器對(duì)視場中不同關(guān)注區(qū)的候選碼執(zhí)行不同的解碼算法;圖6是與圖3相似的示意圖,但示出了不同的關(guān)注區(qū)圖案;
圖7與圖3相似,但示出了另一關(guān)注區(qū)的圖案;
圖8與圖3相似,但不出了另一關(guān)注區(qū)的圖案;
圖9與圖3相似,但示出了視場內(nèi)的關(guān)注點(diǎn)以及候選碼;
圖10與圖9相似,但示出了視場內(nèi)的關(guān)注線;
圖11是可替代圖5所示過程的一部分的子過程,由此視場內(nèi)的關(guān)注區(qū)圖案被改變以優(yōu)化解碼過程;
圖12是可由圖2所示處理器執(zhí)行的過程,用于優(yōu)化解碼過程;
圖13是可由圖2所示處理器執(zhí)行的另一過程,用于優(yōu)化解碼過程;
圖14是可由圖2所示處理器所執(zhí)行的過程,由此一系列連續(xù)圖像在利用簡單解碼算法解碼候選碼的嘗試中首先被檢查,之后該系列圖像在利用相對(duì)較復(fù)雜的解碼算法解碼候選的嘗試中被重新檢查;以及
圖15是示出可替代圖14所示過程一部分的子過程的流程圖,由此成功因子被分配至圖像并隨后用于標(biāo)識(shí)在后續(xù)解碼過程中使用的圖像子集或圖像次序。
盡管本發(fā)明允許多種修改和可替代的形式,但其特定實(shí)施例已通過附圖中示例示出并在此詳細(xì)描述。然而應(yīng)當(dāng)理解,本文對(duì)特定實(shí)施例的描述并非意圖將本發(fā)明限制于所公開的特殊形式,相反,本發(fā)明意在包含落在如所附權(quán)利要求所定義的本發(fā)明精神和范圍的所有修改、等同和替換。
具體實(shí)施方式
現(xiàn)將本發(fā)明的各方面結(jié)合附圖來描述,其中類似的附圖標(biāo)記在多個(gè)視圖中對(duì)應(yīng)于相似的元素。然而應(yīng)當(dāng)理解,附圖和下文相關(guān)的詳細(xì)描述并非意圖將所請(qǐng)求保護(hù)的主題限制于所公開的具體形式。相反,本發(fā)明意在包含落在要求保護(hù)主題的精神和范圍的所有修改、等同和替換。
本文所用“組件”、“系統(tǒng)”等術(shù)語意指計(jì)算機(jī)相關(guān)實(shí)體,諸如硬件、軟硬件結(jié)合、軟件、或執(zhí)行中的軟件。例如,組件可以是但不限于運(yùn)行在處理器上的進(jìn)程、處理器、對(duì)象、可執(zhí)行文件、執(zhí)行線程、程序、和/或計(jì)算機(jī)。以說明的方式,運(yùn)行在計(jì)算機(jī)上的應(yīng)用以及計(jì)算機(jī)兩者均可為組件。一個(gè)或多個(gè)組件可駐留于進(jìn)程和/或執(zhí)行線程中,并且組件可被定位于一臺(tái)計(jì)算機(jī)和/或分布于兩個(gè)或多個(gè)計(jì)算機(jī)或處理器之間。
“示例性”一詞本文用于表示作為一個(gè)示例、實(shí)例或說明。本文描述為“示例性”的任何方面或設(shè)計(jì)并不一定被解釋為優(yōu)選的或優(yōu)于其它方面或設(shè)計(jì)。
此外,所公開的主題可實(shí)現(xiàn)為利用標(biāo)準(zhǔn)編程和/或工程技術(shù)來生產(chǎn)軟件、固件、硬件或其任意組合以控制計(jì)算機(jī)或基于處理器的設(shè)備來實(shí)現(xiàn)本文詳述的方面的系統(tǒng)、方法、裝置或制品。術(shù)語“制品”(或可替換地是“計(jì)算機(jī)程序產(chǎn)品”)在本文中意圖用于涵蓋從任意計(jì)算機(jī)可讀設(shè)備、載體或介質(zhì)中可存取的計(jì)算機(jī)程序。例如,計(jì)算機(jī)可讀介質(zhì)可包括但不限于,磁存儲(chǔ)設(shè)備(如硬盤、軟盤、磁帶)、光盤(如壓縮盤(CD)、數(shù)字通用盤(DVD)...)、智能卡、以及閃存設(shè)備(如卡、棒)。此外應(yīng)當(dāng)理解,可采用載波來承載計(jì)算機(jī)可讀電子數(shù)據(jù),諸如用于發(fā)送和接收電子郵件或接入網(wǎng)絡(luò)(例如互聯(lián)網(wǎng)或局域網(wǎng)(LAN))的那些數(shù)據(jù)。當(dāng)然,本領(lǐng)域技術(shù)人員將會(huì)理解,對(duì)這種配置可進(jìn)行多種修改而不偏離所要求保護(hù)主題的范圍和精神。
現(xiàn)參見附圖,其中類似的附圖標(biāo)記在多個(gè)視圖中對(duì)應(yīng)于相似的元素,更特別地,參見圖1和圖2,本發(fā)明將在示例性手持符號(hào)或代碼讀取器10的環(huán)境下描述,讀取器10包括具有抓握部分102的外殼101、主體/圓筒部分104以及觸發(fā)器IlUCXD或其它類型的相機(jī)/傳感器105、光學(xué)器件/透鏡106、處理器108、計(jì)時(shí)器109、一個(gè)或多個(gè)指示器LED132、用于照射讀取器視場的LED (未示出)、揚(yáng)聲器/音頻組件134、電池53、存儲(chǔ)器52以及光源/子組件54。處理器108、計(jì)時(shí)器109、電池53、光學(xué)器件106、存儲(chǔ)器52和光源54中的每一個(gè)均安裝于外殼101中或以其它方式由其支撐。處理器108鏈接至計(jì)時(shí)器109、電池53、存儲(chǔ)器52、光學(xué)器件106、相機(jī)/傳感器105、光源54、指示器LED132、照明LED和輸出134中的每一個(gè)。處理器108運(yùn)行存儲(chǔ)于存儲(chǔ)器52的程序以執(zhí)行創(chuàng)造性過程。
除非另外指出,本發(fā)明將在所圖示的手持讀取器設(shè)備10的環(huán)境下描述,并假設(shè)處理器108被編程以檢查所獲取圖像中的候選碼,并嘗試解碼該候選碼,直到候選中的任一個(gè)被成功解碼。當(dāng)候選被成功解碼時(shí),處理器108使LED132和/或輸出134生成信號(hào),以向設(shè)備用戶指示解碼成功。然而,應(yīng)當(dāng)理解,本文至少某些方面和實(shí)施例適用于固定使用的讀取器設(shè)備或處理器被編程以查找和解碼任一圖像或圖像集合中的一個(gè)以上代碼的情況。
仍參見圖1和2,光學(xué)器件106將視場(FOV) 107聚焦在讀取器10中的CXD或其它類型的傳感器設(shè)備105上,由此生成包含位于F0V107中的事物的高分辨率圖像的數(shù)據(jù)。視場107沿FOV軸109居中。因此,當(dāng)F0V107朝向設(shè)置于事物130的表面128上的代碼112且讀取器10被激活以生成圖像時(shí),包括代碼112的圖像被獲取。相機(jī)105生成快速的連續(xù)圖像系列。盡管連續(xù)圖像之間的時(shí)間短暫,但該時(shí)間基于代碼讀取領(lǐng)域技術(shù)人員熟知的若干因素而改變。
現(xiàn)參見圖3,示出示例性F0V107。在所示F0V107中,有三個(gè)候選碼112a、112b和112c,其中只有候選碼112b對(duì)應(yīng)于實(shí)際矩陣碼。因此候選碼112a和112c僅表示圖像偽像,其在圖像初始分析時(shí)具有與偽像是要解碼的實(shí)際矩陣碼相一致的某些特征。
仍參見圖3,在本發(fā)明至少某些實(shí)施例中,F(xiàn)0V107可劃分為分離的關(guān)注區(qū)(ROI),其中不同的解碼算法由處理器108(仍見圖2)使用,以嘗試解碼不同ROI中的候選碼。例如在圖3中,示例性R0I150包括F0V107的圓形中心部分。在這種情況下,第一 R0I150外部的F0V107的余部可被認(rèn)為是第二 R0I212。在這一實(shí)施例中,可以構(gòu)想,將第一解碼算法用于嘗試解碼第一 R0I150中的任何候選碼,而將第二解碼算法用于解碼第二 R0I210中存在的任何候選碼。因此在圖3中,第一解碼算法可用于解碼候選碼112a,而第二解碼算法可用于嘗試解碼候選碼112c。
在至少某些實(shí)施例中,用于嘗試解碼部分處于第一 R0I150且部分處于第二R0I210中的候選碼112b的解碼算法可依賴于候選碼112b存在于ROI150中的百分比。例如,當(dāng)候選112b的50%以上存在于ROI150中時(shí),第一解碼算法可用于嘗試解碼候選112b。在其它實(shí)施例中,如果諸如112b之類的候選的任何部分存在于R0I150中,則第一解碼算法可用于嘗試解碼候選112b。
在上述示例中,在至少某些實(shí)施例中,用于嘗試解碼處于或關(guān)聯(lián)于第一 ROI150的候選碼的第一解碼算法可以是相對(duì)更穩(wěn)健或復(fù)雜的算法,即比第二解碼算法相對(duì)更加計(jì)算密集,因此需要比第二解碼算法更多的時(shí)間量來完成?;谒钑r(shí)間,本文的第一解碼算法被稱為比廉價(jià)的第二解碼算法更昂貴。因此,舉例而言,第一解碼算法平均可能需要第二解碼算法完成所需時(shí)段的三倍或更多倍的時(shí)段。以上結(jié)合圖3描述的其中第一 R0I150包括視場107中心部分的示例在如圖1示出的手持讀取器設(shè)備10的環(huán)境中尤其有利,其中設(shè)備用戶借助于來自設(shè)備10的瞄準(zhǔn)照明而在附近移動(dòng)設(shè)備10,以嘗試將F0V107對(duì)準(zhǔn)要被成像和解碼的代碼。因而,已經(jīng)意識(shí)到嘗試將FOV對(duì)準(zhǔn)待成像代碼的手持設(shè)備用戶通常在附近移動(dòng)設(shè)備,以增進(jìn)FOV和代碼的對(duì)準(zhǔn),直到代碼被成像且成功解碼。因而,雖然待成像代碼在首次獲取圖像時(shí)最初存在于第二R0I210,但在短時(shí)間內(nèi)待解碼的代碼典型地位于F0V107的第一 R0I150中。例如,仍參見圖3,待解碼的實(shí)際代碼112b最初位于所示的外圍R0I210。圖4示出了類似于圖3的圖像,但其后的短時(shí)間內(nèi)手持設(shè)備(仍見圖1)由用戶移動(dòng)以將F0V107更好地對(duì)準(zhǔn)候選112b,以使候選112b存在于ROI150中?,F(xiàn)參見圖5,示出了可由圖2中的處理器108執(zhí)行并與圖3和4描述的示例一致的示例性過程170。在框171中,關(guān)注區(qū)被定義并存儲(chǔ)于圖2所示的存儲(chǔ)器52中。仍參見圖3,被定義并存儲(chǔ)的示例性ROI在所示出的示例中包括ROI150和210。接下來在框172中,圖2中的相機(jī)傳感器105獲取視場107的圖像并將圖像提供至處理器108。接收該圖像后,在框174中處理器108標(biāo)識(shí)圖像中的候選碼。仍然在圖3中,待標(biāo)識(shí)的示例性候選包括候選112a、112b和112c。在框176中,處理器108標(biāo)識(shí)圖像中的ROI150和210。繼續(xù),圖5中的框178,處理器108嘗試?yán)玫谝惠^昂貴或復(fù)雜的解碼算法解碼第一 ROI150中的候選碼。仍參見圖3,在框178中處理器108僅嘗試?yán)冒嘿F算法解碼候選碼112a,因?yàn)槠渌蜻x碼112b和112c位于ROI150之外。在框180中,處理器108嘗試?yán)玫诙蜉^廉價(jià)的解碼算法解碼存在于第二 R0I210中(例如在第一 R0I150以外的視場部分之中)的候選碼。因此,在框180中處理器108嘗試?yán)玫诙^廉價(jià)的解碼算法來解碼候選碼112b和候選碼112c。在框180之后,控制返回至框172,其中相機(jī)105獲取視場107的下一圖像并將該圖像提供至處理器108。圖5所示過程重復(fù)進(jìn)行,直到候選碼中任一個(gè)被成功解碼。因此,舉例而言,如果候選碼112b利用第二較廉價(jià)算法成功解碼,則處理器108通過LED132照射和/或經(jīng)音頻輸出134(仍見圖2)生成聲音來指示代碼已被成功解碼,而該圖像獲取和候選解碼過程暫停。在圖3和4所示的示例中,最終,該第二解碼算法成功解碼候選112b,或者候選112b出現(xiàn)于第一 R0I150中且第一較昂貴的算法由處理器108執(zhí)行以解碼該候選。雖然圖5示出了第一解碼算法首先執(zhí)行,但在其它實(shí)施例中也可首先對(duì)第二 ROI中的候選執(zhí)行第二解碼算法,然后對(duì)第一 ROI中的候選執(zhí)行第一算法。在另外的實(shí)施例中,該第一和第二算法可并行開始或至少部分地并行地執(zhí)行,而非串行執(zhí)行。盡管圖3示出了圓形的中心第一 R0I150,但應(yīng)當(dāng)理解,F(xiàn)0V107可分為多個(gè)其它ROI圖案。例如在圖3示出的至少某些實(shí)施例中,第二 R0I210可分為第二和第三R0I212和210,相應(yīng)地,第二 R0I212包括視場107中圍繞第一 ROI150的部分,而第三R0I210包括視場107中圍繞第二 R0I212的部分。這里可以構(gòu)想,處理器108可被編程以通過類似于上述方式對(duì)出現(xiàn)于第一、第二和第三R0I150、212和210的候選碼分別執(zhí)行不同的第一、第二和第三解碼算法。作為另一示例,參見圖6,示出了 F0V107分為第一和第二 R0I220和222,相應(yīng)地,第一 R0I220包括穿過視場107的中心水平帶,而第二 R0I222包括在帶220上方和下方的視場107余部。圖6所示的實(shí)施例在讀取器設(shè)備被安裝用于傳輸線上固定操作的情況下尤其有效,其中已知用代碼標(biāo)記的物體將典型地位于傳輸線上,因而代碼通常出現(xiàn)于帶R0I220中。參見圖7,示意性地示出了又一 ROI圖案,其中第一 R0I221包括R0V107的矩形區(qū)域,而F0V107的余部形成了第二 R0I223。圖7所示的ROI定義在以下情況下尤其有效,其中組件(例如參見圖7的219)沿傳輸線移動(dòng)穿過F0V107并且相機(jī)105由物體位置傳感器觸發(fā)以獲取用于解碼的圖像,以及其中已知當(dāng)觸發(fā)產(chǎn)生時(shí),出現(xiàn)在示例性物體上的代碼典型地位于第一 R0I221中。圖8示意性地示出了又一 ROI圖案或定義,其中第一 R0I241包括F0V107的中心部分周圍向一側(cè)張開的空間,而第二 R0I242包括F0V107的余部。這一 ROI圖案也可在固定讀取器設(shè)備的環(huán)境下有效,其中傳輸線移動(dòng)物體從右到左穿過視場107,如圖8所示,以使對(duì)于每個(gè)候選,首先嘗試較廉價(jià)的算法隨后是較昂貴的算法,且其中該ROI反映出,在特定應(yīng)用中代碼可典型地出現(xiàn)于F0V107中心水平帶中。在某些實(shí)施例中,可以構(gòu)想,ROI還可由距F0V107內(nèi)一個(gè)或多個(gè)點(diǎn)的距離來定義。為實(shí)現(xiàn)該目的,現(xiàn)參見圖9,示例性中心點(diǎn)或F0V107內(nèi)的關(guān)注中心點(diǎn)由數(shù)字240標(biāo)識(shí)。這里每個(gè)候選碼112a、112b和112c位于視場107的被獲取圖像中,與點(diǎn)240的距離各不相同。第一 ROI可由點(diǎn)240和距離點(diǎn)240的徑向值Rl來定義,以使距離點(diǎn)240的距離為Rl的任何候選均處于第一 ROI中,因此利用第一較昂貴的解碼算法來解碼,而該空間之外的候選位于第二 ROI中并利用第二解碼算法來解碼。在又一實(shí)施例中,可以構(gòu)想,基于獲取下一圖像的已知或估計(jì)時(shí)間,處理器108可被編程以嘗試?yán)玫谝?、相?duì)昂貴的解碼算法僅解碼特定數(shù)量的候選碼,其中候選可基于其位置來選擇,更特別地,基于視場內(nèi)的點(diǎn)(例如參見圖9的240)與每個(gè)候選之間的距離來選擇。例如,處理器108可被編程以嘗試?yán)玫谝唤獯a算法僅解碼距圖9中點(diǎn)240最近的三個(gè)候選碼,并嘗試?yán)玫诙獯a算法解碼視場107中的任何其它候選碼。參見圖10,作為基于到點(diǎn)的距離標(biāo)識(shí)候選碼位置的替換,位置可基于到線250的距離。此時(shí),處理器108首先解碼最接近線250的候選,再向外處理其它候選。除點(diǎn)和線外,也可構(gòu)想其它幾何形狀用于作為候選位置的參考。再次參見圖3,雖然上述參照?qǐng)D3描述的示例以及上述其它示例需要僅對(duì)處于完全獨(dú)立于第一 ROI的第二 ROI中的候選碼執(zhí)行第二解碼算法,但在至少某些實(shí)施例中,第二ROI可包括整個(gè)F0V,以對(duì)視場107中的每個(gè)候選碼執(zhí)行第二、較廉價(jià)的解碼算法。因此,例如在圖3中,在至少某些實(shí)施例中,最初對(duì)候選碼112a、112b和112c中的每一個(gè)執(zhí)行第二解碼算法。如果第二解碼算法成功解碼代碼,處理器108可指示解碼成功并停止該過程。然而,在第二解碼算法未能成功解碼代碼時(shí),第一解碼算法會(huì)用于第一 ROI中的任何候選碼。在另外的實(shí)施例中,第一解碼算法實(shí)際上可包括第二解碼算法,以對(duì)圖像中的所有候選有效地執(zhí)行第二解碼算法。在另外的實(shí)施例中,可基本實(shí)時(shí)地選擇R0I,以反映讀取器設(shè)備用戶如何使用該設(shè)備。例如,昂貴的ROI可選擇為在先前解碼過程期間最近有代碼被成功解碼的FOV區(qū)域,或者當(dāng)前昂貴的ROI可以與在先前解碼期間最近成功解碼代碼的位置相關(guān)地改變。例如,再次參見圖3,如果候選利用廉價(jià)的解碼算法在F0V107左邊界附近被常規(guī)地解碼,這可能證明手持設(shè)備用戶在與代碼對(duì)準(zhǔn)時(shí)常規(guī)地從左側(cè)移動(dòng)該設(shè)備。此時(shí)可以將昂貴的ROI從圖3所示的中心ROI150改變至圖8所示的ROI241,這是有效的。
此外,在至少某些實(shí)施例中,可以構(gòu)想,ROI可以動(dòng)態(tài)調(diào)整,以與讀取器操作相關(guān)地優(yōu)化解碼過程。例如,在至少某些情況下,圖像獲取周圍的環(huán)境可能會(huì)產(chǎn)生可利用復(fù)雜或昂貴的第一解碼算法相對(duì)迅速地解碼的較佳圖像,以使第一 ROI (例如參見圖3的150)的大小能夠增加,同時(shí)在相機(jī)105產(chǎn)生下一圖像之前仍嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的全部候選。
現(xiàn)參見圖11,示出了可代替圖5所示過程的一部分的子過程190,其中第一 ROI的大小被調(diào)整以優(yōu)化解碼過程。為實(shí)現(xiàn)該目的,在圖5的框176中ROI被標(biāo)識(shí)之后,控制轉(zhuǎn)向圖11的框198,其中處理器108嘗試?yán)玫诙獯a算法來解碼第二 ROI中的候選碼。在框200中,處理器108嘗試?yán)玫谝幌鄬?duì)昂貴的解碼算法解碼第一 ROI中的候選碼。在框202中,處理器108判定該處理器是否已經(jīng)嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的所有候選碼。當(dāng)存在附加的候選碼時(shí),控制轉(zhuǎn)向框204,處理器108確定相機(jī)105是否已經(jīng)提供下一圖像。在相機(jī)105還未提供下一圖像時(shí),控制轉(zhuǎn)向框200,重復(fù)上述過程。
仍參見圖11,在框204中,已從照相機(jī)105獲取當(dāng)下一圖像時(shí),控制轉(zhuǎn)向框207,其中第一 ROI的大小被減小,之后控制返回圖5的框174。仍參見框202,當(dāng)處理器108判定該處理器已經(jīng)嘗試?yán)玫谝唤獯a算法解碼第一 ROI中所有候選碼時(shí),控制轉(zhuǎn)向框203。在判斷框203,處理器判定是否已從相機(jī)105接收下一圖像。在未從相機(jī)105接收下一圖像時(shí),控制轉(zhuǎn)向框206,處理器108增加第一 ROI的大小,之后控制轉(zhuǎn)向圖5的框174。在框203中,如果處理器108確定下一圖像已被獲取,則控制簡單地轉(zhuǎn)向圖5的框174而不調(diào)整第一ROI的大小。
盡管未示出,但在某些情況下,如果處理器108在框203判定下一圖像未被獲取,則處理器108可在獲取下一圖像之前確定最小時(shí)間,僅在該最小時(shí)間大于某一閾值的情況下增加第一 ROI的大小。此外,在至少某些情況下,處理器108可被編程以在框206中增加第一 ROI的大小之前,對(duì)一系列圖像要求在框203中的否定值的連續(xù)系列(如5個(gè)、10個(gè)坐^寸/ ο
在至少某些實(shí)施例中,可以構(gòu)想,處理器108僅可執(zhí)行第一相對(duì)慢速和昂貴的解碼算法,但該處理器僅對(duì)視場中的候選碼子集執(zhí)行該解碼算法,其中該子集基于視場中的位置。例如,仍參見圖9,處理器108可被編程以按照依賴于候選碼距F0V107中心點(diǎn)240的距離的次序?qū)蜻x碼進(jìn)行解碼,其中該處理器在下一圖像已被獲取之后停止解碼候選,并使用下一圖像重新開始。因此,例如在圖9中,處理器108開始于嘗試解碼最接近點(diǎn)240的候選112a。接下來,如果時(shí)間允許,處理器108會(huì)嘗試?yán)玫谝唤獯a算法解碼第二最接近的候選碼,候選112b,如果時(shí)間允許,隨后嘗試?yán)玫谝唤獯a算法解碼候選112c,以此類推。
參見圖12,示出了可由處理器108執(zhí)行以按照依賴于候選碼與中心點(diǎn)相對(duì)位置的次序?qū)蜻x碼進(jìn)行解碼的過程300。在框302中,視場的圖像被獲取。在框204中,圖像中的候選碼被標(biāo)識(shí)。在框310中,處理器108嘗試?yán)玫谝幌鄬?duì)昂貴的解碼算法解碼所獲取圖像中的候選碼,從關(guān)注點(diǎn)(例如圖9所示的中心點(diǎn)240)開始并從此點(diǎn)向外進(jìn)行。在框312中,處理器108確定下一圖像是否被獲取。如果相機(jī)105在312已提供下一圖像,則控制返回框304,過程繼續(xù)。在框312中,如果下一圖像未被獲取, 控制轉(zhuǎn)向框314,其中處理器108判定該處理器是否已嘗試解碼視場中的每個(gè)候選碼。當(dāng)處理器108未嘗試解碼視場中的至少一個(gè)候選碼時(shí),控制返回框310,如圖所示,過程繼續(xù)。如果在框314中處理器已嘗試?yán)玫谝唤獯a算法解碼所有候選碼,則控制返回框302,其中處理器108等待接收來自相機(jī)105的下一圖像。在至少某些實(shí)施例中,可以構(gòu)想,相機(jī)105以基本上規(guī)則的間隔(例如,在已知的時(shí)段范圍內(nèi))提供圖像,以使圖像之間的時(shí)段大體上是已知的。在這種情況下,處理器108可被編程以利用計(jì)時(shí)器109為連續(xù)圖像之間的時(shí)段計(jì)時(shí),并在計(jì)時(shí)時(shí)段內(nèi)嘗試解碼盡可能多的候選碼,其中被解碼的候選子集仍基于視場中的位置。舉例而言,再參見圖9,例如處理器108可被編程以按照以下次序解碼候選碼,即處理器首先嘗試最接近中心點(diǎn)240的候選,隨后是次最接近點(diǎn)240的候選,以此類推,直到耗盡成像計(jì)時(shí)時(shí)段。一旦耗盡計(jì)時(shí)時(shí)段,處理器108會(huì)實(shí)質(zhì)上丟棄其尚未嘗試解碼的候選碼,而開始嘗試解碼后續(xù)圖像中的候選。參見圖13,示出了過程320,由此處理器108利用成像超時(shí)計(jì)時(shí)器來控制解碼過程。在框322中,處理器108從相機(jī)105獲取視場的圖像。在框324中,處理器108啟動(dòng)計(jì)時(shí)器109(仍見圖2)。在框326中,處理器108標(biāo)識(shí)圖像中的候選碼。在框328中,處理器108嘗試?yán)玫谝幌鄬?duì)昂貴和緩慢的解碼算法來解碼圖像中的候選碼,從關(guān)注點(diǎn)開始(例如參見圖9的點(diǎn)240)并向外進(jìn)行。在框330中,處理器108判定成像超時(shí)時(shí)段或閾值時(shí)段是否流逝。在超時(shí)時(shí)段未流逝的情況下,控制返回框328,處理器繼續(xù)嘗試解碼候選碼,從關(guān)注點(diǎn)開始向外進(jìn)行。在框330中,一旦超時(shí)時(shí)段流逝,控制返回框322,處理器108從相機(jī)105獲取下一圖像。根據(jù)與本發(fā)明至少某些實(shí)施例相一致的另一方面,在至少某些情況下,處理器108可被編程以首先嘗試?yán)煤唵味鄬?duì)快速的解碼算法來解碼所獲取圖像中的候選碼,并且在圖像之一中的代碼未被成功解碼的情況下存儲(chǔ)連續(xù)圖像用于后續(xù)處理。因此,舉例而言,處理器108可被編程以獲取視場的第一圖像,嘗試?yán)煤唵味焖俚慕獯a算法來解碼第一圖像中的候選碼,并當(dāng)未成功解碼圖像中的代碼時(shí),存儲(chǔ)該圖像用于可能的后續(xù)處理。接下來,處理器108可被編程以獲取視場的第二圖像,對(duì)該第二圖像的候選碼執(zhí)行簡單和快速的解碼算法,并且如果第二圖像中的至少一個(gè)代碼未被成功解碼,則存儲(chǔ)第二圖像用于可能的后續(xù)分析。在至少一個(gè)實(shí)施例中,該過程可對(duì)五個(gè)連續(xù)圖像持續(xù)進(jìn)行,其中如果每個(gè)圖像中的至少一個(gè)代碼未被成功解碼,則被存儲(chǔ)。在該五個(gè)圖像被存儲(chǔ)之后,處理器108可被編程以至少再次訪問所存儲(chǔ)圖像的子集,并嘗試?yán)孟鄬?duì)較昂貴的解碼算法解碼該圖像子集中的候選碼?,F(xiàn)參見圖14,示出過程350,其中處理器108利用第一解碼算法處理所接收的圖像,然后當(dāng)解碼嘗試不成功時(shí)利用第二解碼算法處理這些圖像。在框352中,處理器108將表示所存儲(chǔ)圖像數(shù)量的計(jì)數(shù)器F設(shè)置為零。在框354中,處理器108獲取視場的圖像。在框356,處理器108標(biāo)識(shí)圖像中的候選碼。在框358中,處理器108嘗試?yán)煤唵位蛳鄬?duì)廉價(jià)的解碼算法來解碼圖像中的候選碼。在框360中,其中候選碼未被成功解碼,控制轉(zhuǎn)向框368中,其中圖像以永久方式(即以允許圖像以后被訪問用于可能的附加處理的方式)存儲(chǔ)。在框370,圖像計(jì)數(shù)器F加I。在框372,圖像計(jì)數(shù)器與閾值(例如5)相比較。當(dāng)圖像計(jì)數(shù)器值F不等于該閾值時(shí),控制返回框354,其中另一圖像被獲取且該過程繼續(xù)。當(dāng)圖像計(jì)數(shù)器值F等于閾值時(shí),控制從判斷框372轉(zhuǎn)向處理框374。在框374中,所存儲(chǔ)的圖像被訪問。在框376中,處理器108嘗試?yán)眯枰~外時(shí)間的相對(duì)復(fù)雜解碼算法來解碼所訪問圖像中的候選碼。在框376之后,控制轉(zhuǎn)向框378。
仍參見圖14,在框378中,處理器108判定是否有任一圖像中的代碼已被成功解碼。在代碼未被成功解碼時(shí),控制轉(zhuǎn)向框366,所有圖像從存儲(chǔ)器中清空,然后控制返回框352,圖像計(jì)數(shù)器F重置為零。在框378中,在至少一個(gè)代碼被成功解碼時(shí),控制轉(zhuǎn)向框380,處理器108通過LED132和/或音頻輸出134指示解碼成功。在框380之后,控制轉(zhuǎn)向框366,圖像從存儲(chǔ)器中清空,然后控制返回框352,圖像計(jì)數(shù)器F重置為零。
仍參見圖14,在框360中,當(dāng)處理器108判定代碼被成功解碼時(shí),控制轉(zhuǎn)向框362,處理器108通過LED132和/或音頻輸出134指示解碼成功。在框362之后,控制轉(zhuǎn)向框366,圖像從存儲(chǔ)器中清空,然后控制返回框352,圖像計(jì)數(shù)器F重置為零。
在至少某些實(shí)施例中,可以構(gòu)想,當(dāng)簡單解碼算法被使用以嘗試解碼圖像中的候選并且解碼嘗試均未成功時(shí),可見解碼成功因子分配給該圖像或者分配給圖像中的獨(dú)立候選碼,指示關(guān)于該圖像的一個(gè)或多個(gè)解碼嘗試的成功程度。然后,在對(duì)應(yīng)于若干圖像的解碼嘗試不成功之后,當(dāng)圖像被再次訪問以嘗試?yán)幂^復(fù)雜或昂貴的解碼算法來解碼時(shí),處理器108可被編程以嘗試僅解碼具有高成功因子的候選碼或圖像中的候選,或者利用昂貴解碼算法檢查圖像或候選所采用的次序可以與成功因子相關(guān)。為實(shí)現(xiàn)該目的,如圖15所示,示出了可代替圖14所示過程的一部分的子過程400。仍參見圖14,在框360中,當(dāng)對(duì)圖像中的候選碼的解碼嘗試均未成功時(shí),控制可轉(zhuǎn)向圖15的框402,其中處理器108標(biāo)識(shí)并存儲(chǔ)用于圖像的解碼成功因子或用于圖像中每個(gè)候選子集的獨(dú)立成功因子。在框404中,處理器108以永久方式存儲(chǔ)圖像,并且在框406中,處理器108將圖像計(jì)數(shù)器F加I。
繼續(xù)框408,處理器108判定圖像計(jì)數(shù)器值F是否等于閾值。當(dāng)圖像計(jì)數(shù)器值F不等于閾值時(shí),控制返回圖14的框354。
仍參見圖15,在框408中,當(dāng)圖像計(jì)數(shù)器F等于閾值時(shí),控制轉(zhuǎn)向框410,其中處理器108訪問所存儲(chǔ)圖像中具有最佳解碼成功因子的一個(gè)或多個(gè),或訪問圖像中具有最佳解碼成功因子的候選碼。在框412中,處理器108嘗試?yán)幂^復(fù)雜的解碼算法來解碼具有最佳解碼成功因子的候選碼或解碼在被訪問圖像中的候選碼。在框412之后,控制返回圖14的框378。
在另外的實(shí)施例中,當(dāng)圖像被再次訪問時(shí),圖像之一或圖像子集中的候選碼可利用昂貴的算法基于圖像中的位置來處理。例如在某些情況下,處理器108可僅處理昂貴ROI中的候選或距離點(diǎn)、線或某些其它幾何形狀的閾值距離以內(nèi)的候選,或可利用昂貴算法僅處理最接近幾何形狀的特定數(shù)量的候選碼。
在至少某些情況下,當(dāng)對(duì)不同的關(guān)注區(qū)執(zhí)行不同解碼算法時(shí),不同的關(guān)注區(qū)可以是不重疊的完全分離區(qū)域,或可以至少部分重疊。
以上所公開的特殊實(shí)施例僅僅是說明性的,而本發(fā)明能夠以不同但等同的方式來修改或?qū)崿F(xiàn),這對(duì)受益于本文教導(dǎo)的本領(lǐng)域技術(shù)人員是顯而易見的。此外,在如下文權(quán)利要求所描述之外,沒有對(duì)本文所示的結(jié)構(gòu)或設(shè)計(jì)細(xì)節(jié)的任何限制。因此,顯然以上所公開的特殊實(shí)施例可被改變或修改,并且所有這種變化均認(rèn)為落在本發(fā)明的范圍和精神之內(nèi)。因而本文所尋求的保護(hù)在下文權(quán)利要求中闡述。
如上所述,在至少某些實(shí)施例中,術(shù)語“解碼”用于指代如下過程:在候選碼被標(biāo)識(shí)之后從其中提取顯著特征,然后通過數(shù)學(xué)地解釋該特征來邏輯解碼所提取的特征,以提取所編碼數(shù)據(jù),其中候選碼由某些其它過程標(biāo)識(shí)。在其它實(shí)施例中利用具有不同相對(duì)開銷的算法來標(biāo)識(shí)圖像中的候選碼是可行的,其中被選擇以標(biāo)識(shí)候選碼的算法基于位置或圖像R0L.例如,仍參見圖3,在某些實(shí)施例中相對(duì)昂貴的算法可用于定位候選碼、提取特征或在中心R0I150中邏輯解碼中的每一個(gè),而較廉價(jià)的算法可用于執(zhí)行外圍區(qū)域210中的相同功能。因此,可以通過在解碼算法中包括標(biāo)識(shí)候選碼的步驟以使依賴位置的不同開銷算法應(yīng)用于整個(gè)候選標(biāo)識(shí)、提取和邏輯解碼過程,來修改上述每個(gè)實(shí)施例。此外,在解碼算法包括候選標(biāo)識(shí)過程的至少某些情況下,候選標(biāo)識(shí)過程可具有不同的相對(duì)開銷,而解碼算法的其它部分是相同或基本類似的。例如,仍參見圖3,與外圍R0I210相比,解碼過程的候選標(biāo)識(shí)部分對(duì)于中心R0I150可相對(duì)昂貴,而算法的提取和邏輯解碼部分是一致的。因而本發(fā)明涵蓋落在如所附權(quán)利要求所定義的本發(fā)明精神和范圍的所有修改、等同和替換。為公布本發(fā)明的范圍,提出所附權(quán)利要求。
權(quán)利要求
1.一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,所述方法包括以下步驟: 提供被編程以執(zhí)行以下步驟的處理器: 獲取FOV的圖像; 標(biāo)識(shí)圖像中至少第一和第二關(guān)注區(qū)(ROI),其中第一 ROI不同于第二 ROI ; 嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的候選碼;以及 嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法解碼第二 ROI中的候選碼。
2.如權(quán)利要求1所述的方法,其特征在于,嘗試解碼第一ROI中的候選碼的步驟包括標(biāo)識(shí)第一 ROI中的候選碼,且嘗試解碼第二 ROI中的候選碼的步驟包括標(biāo)識(shí)第二 ROI中的候選碼。
3.如權(quán)利要求1所述的方法,其特征在于,第一解碼算法在計(jì)算上比第二解碼算法復(fù)雜。
4.如權(quán)利要求1所述的方法,其特征在于,第一解碼算法比第二解碼算法需要更多的時(shí)間量來完成。
5.如權(quán)利要求3所述的方法,其特征在于,第一ROI包括FOV的中心部分。
6.如權(quán)利要求5所述的方法,其特征在于,第二ROI包括FOV中圍繞第一 ROI的部分。
7.如權(quán)利要求1所述的方法,其特征在于,第一解碼算法包括第二解碼算法以及附加解碼算法。
8.如權(quán)利要求1所述的方法,其特征在于,第一ROI包括與先前圖像中成功解碼的代碼的位置對(duì)應(yīng)的ROI。
9.如權(quán)利要求1所述的方法,進(jìn)一步包括以下步驟:標(biāo)識(shí)圖像中不同于第一和第二ROI的至少第三R0I,并嘗試?yán)貌煌诘谝缓偷诙獯a算法的第三解碼算法對(duì)第三ROI中的候選碼進(jìn)行解碼。
10.如權(quán)利要求1所述的方法,進(jìn)一步包括從個(gè)人接收指示第一ROI的指示的步驟。
11.如權(quán)利要求1所述的方法,其特征在于,第一ROI包括FOV中的位置和相對(duì)于所述位置的距離。
12.如權(quán)利要求11所述的方法,其特征在于,所述位置由圖像中沿單個(gè)軸的位置組成。
13.如權(quán)利要求1所述的方法,其特征在于,圖像傳感器形成便攜式代碼讀取設(shè)備的一部分。
14.如權(quán)利要求1所述的方法,其特征在于,圖像傳感器形成手持代碼讀取設(shè)備的一部分。
15.如權(quán)利要求1所述的方法,其特征在于,傳感器以重復(fù)方式獲取圖像,且其中第一ROI的大小至少部分地與嘗試解碼先前獲取圖像的第一 ROI中的候選碼所需時(shí)間相關(guān)地來確定。
16.如權(quán)利要求1所述的方法,其特征在于,傳感器以重復(fù)方式獲取圖像,且其中第二解碼算法至少部分地與嘗試解碼先前獲取圖像中的候選碼所需時(shí)間相關(guān)地來選擇。
17.如權(quán)利要求1所述的方法,其特征在于,第一和第二ROI在獲取圖像之前被預(yù)先指定。
18.一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,所述方法包括以下步驟: 提供被編程以執(zhí)行以下步驟的處理器: 獲取FOV的圖像;以及 對(duì)候選碼應(yīng)用不同的解碼算法,以嘗試解碼候選碼,其中應(yīng)用于每個(gè)候選的解碼算法與候選碼在FOV中的位置相關(guān)。
19.如權(quán)利要求18所述的方法,其特征在于,應(yīng)用不同解碼算法的步驟包括標(biāo)識(shí)FOV中的候選碼。
20.如權(quán)利要求18所述的方法,其特征在于,第一解碼算法應(yīng)用于第一關(guān)注區(qū)(ROI)中的候選碼,且不同于第一解碼算法的第二解碼算法應(yīng)用于不同于第一 ROI的第二 ROI中的候選碼。
21.如權(quán)利要求20所述的方法,其特征在于,第一ROI包括傳感器FOV的中心部分,且第二 ROI包括FOV中圍繞第一 ROI的部分。
22.如權(quán)利要求18所述的方法,其特征在于,傳感器形成手持設(shè)備的一部分。
23.如權(quán)利要求18所述的方法,其特征在于,確定哪個(gè)解碼算法應(yīng)用于哪些候選碼的函數(shù)發(fā)生改變以最優(yōu)化解碼過程。
24.如權(quán)利要求23所述的方法,其特征在于,解碼算法包括至少第一相對(duì)復(fù)雜的解碼算法和第二相對(duì)簡單的解碼算法,且其中所述函數(shù)發(fā)生改變以修改采用第一和第二解碼算法的候選碼的比率。
25.如權(quán)利要求24所述的方法,其特征在于,所述比率與嘗試?yán)玫谝缓偷诙獯a算法來解碼FOV中的候選碼所需時(shí)間相關(guān)地被修改。
26.一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法,所述方法包括以下步驟: 提供被編程以執(zhí)行以下步驟的處理器: (i)獲取FOV的圖像; ( )嘗試?yán)玫谝唤獯a算法對(duì)圖像中的候選碼進(jìn)行解碼; (iii)在嘗試解碼候選碼失敗的情況下,將圖像保存至存儲(chǔ)器中; (iv)重復(fù)步驟(i)至(iii)直到閾值數(shù)量的解碼候選碼嘗試失敗以及候選碼被成功解碼中之一; 在閾值數(shù)量的解碼候選碼嘗試失敗時(shí),訪問保存在存儲(chǔ)器中的圖像并嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法至少對(duì)存儲(chǔ)于存儲(chǔ)器中的圖像的子集中的候選碼進(jìn)行解碼。
27.一種用于讀取設(shè)置于物體上的代碼的裝置,所述裝置包括: 包括二維視場(FOV)的圖像傳感器; 可鏈接至傳感器以從其獲取圖像數(shù)據(jù)的處理器,處理器被編程以執(zhí)行以下步驟: 獲取FOV的圖像; 標(biāo)識(shí)圖像中至少第一和第二關(guān)注區(qū)(ROI),其中第一 ROI不同于第二 ROI ; 嘗試?yán)玫谝唤獯a算法解碼第一 ROI中的候選碼;并且 嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法解碼第二 ROI中的候選碼。
28.如權(quán)利要求27所述的裝置,其特征在于,第一解碼算法在計(jì)算上比第二解碼算法復(fù)雜。
29.如權(quán)利要求27所述的裝置,其特征在于,第一解碼算法比第二解碼算法需要更多的時(shí)間量來完成。
30.如權(quán)利要求28所述的裝置,其特征在于,第一ROI包括FOV的中心部分。
31.一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的裝置,所述裝置包括: 包括二維視場(FOV)的圖像傳感器; 可鏈接至圖像傳感器的處理器,處理器被編程以執(zhí)行以下步驟: 獲取FOV的圖像;以及 對(duì)候選碼應(yīng)用不同的解碼算法,以嘗試解碼候選碼,其中應(yīng)用于每個(gè)候選的解碼算法與候選碼在FOV中的位置相關(guān)。
32.如權(quán)利要求31所述的裝置,第一解碼算法應(yīng)用于第一關(guān)注區(qū)(ROI)中的候選碼,且不同于第一解碼算法的第二解碼算法應(yīng)用于不同于第一 ROI的第二 ROI中的候選碼。
33.一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的裝置,所述裝置包括: 包括二維視場(FOV)的圖像傳感器; 可鏈接至圖像傳感器的處理器,處理器被編程以執(zhí)行以下步驟: (i)從傳感器獲取對(duì)應(yīng)于FOV的圖像的圖像數(shù)據(jù); (ii)嘗試?yán)玫谝唤獯a算法對(duì)圖像中的候選碼進(jìn)行解碼; (iii)在嘗試解碼候選碼失敗的情況下,將圖像保存至存儲(chǔ)器中; (iv)重復(fù)步驟(i)至(iii)直到閾值數(shù)量的解碼候選碼嘗試失敗以及候選碼被成功解碼中之一,在閾值數(shù)量的解碼候選碼嘗試失敗時(shí),訪問保存在存儲(chǔ)器中的圖像數(shù)據(jù)并嘗試?yán)貌煌诘谝唤獯a算法的第二解碼算法至少對(duì)存儲(chǔ)于存儲(chǔ)器中的圖像數(shù)據(jù)的子集中的候選碼進(jìn)行解碼。
全文摘要
公開一種用于在不同位置執(zhí)行不同解碼算法的方法和裝置。一種用于使用包括二維視場(FOV)的圖像傳感器對(duì)設(shè)置在物體上的代碼進(jìn)行解碼的方法和裝置,該方法包括提供被編程以執(zhí)行以下步驟的處理器的步驟獲取FOV的圖像并對(duì)所獲取圖像中的候選碼應(yīng)用不同的解碼算法以嘗試解碼候選碼,其中應(yīng)用于每個(gè)候選的解碼算法與候選碼在FOV中的位置相關(guān)。
文檔編號(hào)G06K7/10GK103150535SQ20121059576
公開日2013年6月12日 申請(qǐng)日期2012年11月2日 優(yōu)先權(quán)日2011年11月3日
發(fā)明者J·內(nèi)格羅, 葉薌蕓 申請(qǐng)人:康耐視公司