本發(fā)明涉及一種用于執(zhí)行光學(xué)字符識(shí)別(OCR)的裝置和方法。該裝置可以是用于附接到例如注射裝置等醫(yī)療裝置并且與醫(yī)療裝置一起使用的輔助裝置。
背景技術(shù):
在醫(yī)療裝置領(lǐng)域中,在需要非常高的精度的情況下不常使用OCR技術(shù),例如以防止藥物的誤配給。因此,許多基于機(jī)械的裝置也具有劑量標(biāo)尺或讀數(shù),其必須人工讀取并且人工記錄劑量。這對(duì)于用戶來說是耗時(shí)的,并且可能潛在地導(dǎo)致錯(cuò)誤。此外,如果要以電子方式傳送數(shù)據(jù)和/或以電子方式分析數(shù)據(jù),則必須首先將數(shù)據(jù)人工輸入到單獨(dú)的電子裝置中。此外,一些患者(例如視力差的患者)可能難以讀取通常較小的機(jī)械讀數(shù)。
存在多種疾病需要通過注射藥劑進(jìn)行定期治療。這種注射可以通過使用注射裝置來進(jìn)行,由醫(yī)務(wù)人員或患者自己注射。作為一個(gè)示例,1型和2型糖尿病可以由患者自己通過注射胰島素劑量來治療,例如每天一次或多次。例如,預(yù)填充的一次性胰島素筆可以用作注射裝置。作為替代,可以使用可重復(fù)使用的筆??芍貜?fù)使用的筆允許用新的藥筒更換空藥物筒。任一種筆可以帶有一套一次性針,在每次使用之前更換。然后可以例如通過轉(zhuǎn)動(dòng)劑量旋鈕并從胰島素筆的劑量窗口或顯示器觀察實(shí)際劑量,在胰島素筆處手動(dòng)選擇要注射的胰島素劑量。然后通過將針插入適當(dāng)?shù)钠つw部分并按壓胰島素筆的注射按鈕來注射劑量。為了能夠監(jiān)視胰島素注射,例如以防止對(duì)胰島素筆的錯(cuò)誤操作或者保持跟蹤已經(jīng)應(yīng)用的劑量,期望測(cè)量與注射裝置的狀況和/或使用相關(guān)的信息,例如關(guān)于所注射的胰島素類型和劑量的信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的第一方面提供了一種在光學(xué)字符識(shí)別過程中執(zhí)行字符隔離的方法,所述方法包括:
接收表示一個(gè)以上字符列的圖像數(shù)據(jù);
確定所述圖像數(shù)據(jù)的每一列中的黑色像素的數(shù)目;
定義豎向分開閾值,所述豎向分開閾值是列中黑色像素的最大數(shù)目;
通過排除黑色像素?cái)?shù)目低于所述豎向分開閾值的任何列,將這些列劃分為不同的像素組和排除列組;
識(shí)別表示所述圖像數(shù)據(jù)中最左側(cè)字符列的像素組;
確定所述圖像數(shù)據(jù)中有一個(gè)還是兩個(gè)表示字符列的像素組;以及
如果確定有兩個(gè)表示字符列的像素組,則針對(duì)最右側(cè)字符列使用預(yù)定寬度值,用以識(shí)別最右側(cè)字符列的右手邊界。
此方法允許最右側(cè)字符列中的字符被正確地分割和隔離,即使它們與右手邊距/框線區(qū)域合并。對(duì)圖像數(shù)據(jù)中的字符的正確分割和隔離允許執(zhí)行準(zhǔn)確且可靠的OCR過程,這對(duì)于在醫(yī)療應(yīng)用中使用OCR技術(shù)特別重要。
識(shí)別圖像數(shù)據(jù)中表示最左側(cè)字符列的像素組可以包括識(shí)別緊鄰最左側(cè)排除列組右邊的像素組。
識(shí)別圖像數(shù)據(jù)中表示最左側(cè)字符列的像素組可以包括:如果緊鄰最左側(cè)排除列組右邊的像素組小于最小數(shù)字寬度閾值,則排除該像素組,因而將在最左側(cè)排除列組右邊的第二像素組定義為圖像數(shù)據(jù)中的最左側(cè)字符列。該過程考慮(并且忽略)了在可以使用字符隔離方法的許多裝置中印制在“0”和“2”之間較小的“1”。
確定圖像數(shù)據(jù)中有一個(gè)還是兩個(gè)表示字符列的像素組,可以包括確定最左側(cè)排除列組的寬度。最左側(cè)排除列組表示最左數(shù)字組左邊的空白空間。該區(qū)域的寬度取決于可見數(shù)碼是否各自包括一個(gè)或兩個(gè)數(shù)字。
如果確定最左側(cè)排除列組的寬度小于最大左邊距閾值,則該方法還可以包括確定在圖像數(shù)據(jù)中有兩個(gè)表示字符列的像素組。
該方法還可以包括確定圖像數(shù)據(jù)中最左側(cè)字符列的寬度。該方法還可以包括使用所確定的圖像數(shù)據(jù)中最左側(cè)字符列的寬度,來確定最左側(cè)字符列是僅包括窄的數(shù)碼還是僅包括寬的數(shù)碼。如果確定最左側(cè)字符列僅包括窄的數(shù)碼,則該方法還可以包括將最大有效劑量結(jié)果設(shè)置為“19”。由于數(shù)嗎“1”在寬度上與每一個(gè)其他數(shù)碼明顯不同,因此對(duì)于隨后的OCR過程的精度來說,識(shí)別最左數(shù)字是否為“1”是重要的。
該方法還可以包括排除接觸圖像左手邊緣的任何像素組。在一些情況下,可能存在應(yīng)當(dāng)被識(shí)別為不表示字符數(shù)據(jù)并且應(yīng)被排除的左手邊框區(qū)域。
該方法還可以包括通過識(shí)別位于左手字符列和右手字符列之間的排除列組,來識(shí)別右手字符列的左手邊界。該過程識(shí)別一個(gè)兩位數(shù)中的數(shù)字之間的間隙。OCR算法可以要求每個(gè)數(shù)字被隔離以便被正確地識(shí)別。
該方法還可以包括確定左手字符列是否比最大數(shù)字寬度閾值寬,如果是,則確定圖像數(shù)據(jù)中的數(shù)碼在8到10的范圍內(nèi)。這種情況可能發(fā)生在數(shù)碼“8”能夠在數(shù)碼“10”之上或之下在圖像數(shù)據(jù)中看見。在這種情況下,很難將字符分開成列。然而,通過將潛在有效結(jié)果限制為“8”、“9”或“10”,仍然可以返回精確的結(jié)果。
本發(fā)明的第二方面提供了一種用于在光學(xué)字符識(shí)別過程中執(zhí)行字符隔離的處理器,所述處理器配置為:
接收表示一個(gè)以上字符列的圖像數(shù)據(jù);
確定所述圖像數(shù)據(jù)的每一列中的黑色像素的數(shù)目;
定義豎向分開閾值,所述豎向分開閾值是列中黑色像素的最大數(shù)目;
通過排除黑色像素?cái)?shù)目低于豎向分開閾值的任何列,將列劃分為不同的像素組和排除列組;
識(shí)別所述圖像數(shù)據(jù)中表示最左側(cè)字符列的像素組;
確定所述圖像數(shù)據(jù)中有一個(gè)還是兩個(gè)表示字符列的像素組;以及
如果確定有兩個(gè)表示字符列的像素組,則針對(duì)最右側(cè)字符列使用預(yù)定寬度值,用以識(shí)別最右側(cè)字符列的右手邊界。
處理器可以被配置為通過識(shí)別緊鄰最左側(cè)排除列組右邊的像素組來識(shí)別表示圖像數(shù)據(jù)中最左側(cè)字符列的像素組。
處理器可以被配置為通過確定最左側(cè)排除列組的寬度來確定圖像數(shù)據(jù)中有一個(gè)還是兩個(gè)表示字符列的像素組。
本發(fā)明的第三方面提供了一種用于附接到注射裝置的輔助裝置,所述輔助裝置包括:
成像組件,所述成像組件被配置為捕獲存在于所述注射裝置的可移動(dòng)部件上的一個(gè)以上數(shù)的圖像;以及
根據(jù)本發(fā)明第二方面的處理器。
附圖說明
附圖示出:
圖1a:藥物輸送裝置的分解圖;
圖1b示出了圖1a藥物輸送裝置的一些細(xì)節(jié)的透視圖;
圖2a:根據(jù)本發(fā)明一個(gè)方面的可釋放地附接到圖1a和1b藥物輸送裝置的傳感器裝置的示意圖;
圖2b:根據(jù)本發(fā)明多個(gè)方面的可釋放地附接到圖1a和1b藥物輸送裝置的傳感器裝置的透視圖;
圖2c:根據(jù)本發(fā)明其他方面的可釋放地附接到圖1a和1b藥物輸送裝置的傳感器裝置的透視圖;
圖3:附接到藥物輸送裝置的傳感器裝置的示意圖,示出了傳感器裝置的部件;
圖4:二值化之后的劑量窗口一個(gè)圖像的示例;
圖5:示出對(duì)圖4圖像進(jìn)行豎向投影的結(jié)果圖;
圖6:示出對(duì)來自圖4圖像數(shù)據(jù)施用模糊函數(shù)的結(jié)果圖;
圖7:將各種閾值應(yīng)用于圖4圖像數(shù)據(jù)的結(jié)果;
圖8:劑量窗口一個(gè)圖像二值化之后的示例,示出較小的“1”用于指示單個(gè)單位的藥劑;
圖9:示出根據(jù)本發(fā)明諸方面的處理器示例性操作的流程圖。
具體實(shí)施方式
在下文中,將參照胰島素注射裝置來描述本發(fā)明的實(shí)施例。然而,本發(fā)明不限于這種應(yīng)用,并且同樣可以被很好地與注射其他藥物的注射裝置,或者與其他類型的醫(yī)療裝置(諸如注射筒、無針注射器和吸入器)一起部署。
圖1a是注射裝置1的分解圖,注射裝置1可以例如代表Sanofi's Solostar(R)胰島素注射筆。
圖1a的注射裝置1是預(yù)填充的一次性注射筆,其包括殼體10并且包含胰島素容器14,針15可以固定到胰島素容器14。針由內(nèi)部針帽16和外部針帽17保護(hù),外部針帽17又可以被帽18覆蓋。從注射裝置1注射的胰島素劑量可以通過轉(zhuǎn)動(dòng)劑量旋鈕12來選擇,然后通過劑量窗口13顯示所選劑量,例如以所謂的國(guó)際單位(IU)的倍數(shù)顯示所選劑量,其中一個(gè)IU是約45.5微克純結(jié)晶胰島素(1/22mg)的生物學(xué)等價(jià)物。在劑量窗口13中顯示的選定劑量的一個(gè)示例可以例如是30IU,如圖1a所示。應(yīng)當(dāng)注意,所選擇的劑量可以同樣好地以不同方式顯示。在殼體10上提供標(biāo)簽(未示出)。標(biāo)簽包括關(guān)于裝在注射裝置內(nèi)的藥劑的信息,包括識(shí)別藥劑的信息。識(shí)別藥劑的信息可以是文本的形式。識(shí)別藥劑的信息也可以是顏色的形式。識(shí)別藥劑的信息還可以被編碼為條形碼、QR碼等。識(shí)別藥劑的信息還可以是以黑白圖案、彩色圖案或陰影的形式。
轉(zhuǎn)動(dòng)劑量旋鈕12產(chǎn)生機(jī)械咔嗒聲,用以向用戶提供聽覺反饋。在劑量窗口13中顯示的數(shù)通過印制呈現(xiàn)在套筒上,套筒包含在殼體10中并且與胰島素容器14中的活塞機(jī)械地相互作用。當(dāng)將針15刺入患者的皮膚部分中,然后推動(dòng)注射按鈕時(shí),將從注射裝置1注射顯示窗口13中顯示的胰島素劑量。當(dāng)注射裝置1的針15在推動(dòng)注射按鈕11之后在皮膚部分中保持一定時(shí)間時(shí),高比例劑量實(shí)際上被注射到患者的身體中。胰島素劑量的注射還引起機(jī)械咔嗒聲,然而該咔嗒聲不同于當(dāng)使用劑量旋鈕12時(shí)產(chǎn)生的那些聲音。
圖1b示出了注射裝置1的劑量按鈕端的透視圖。注射裝置具有位于殼體10上鄰近劑量旋鈕12的導(dǎo)向肋70。注射裝置1還具有位于殼體10上的兩個(gè)縮進(jìn)部52。它們可以相對(duì)于引導(dǎo)肋70對(duì)稱。引導(dǎo)肋70和縮進(jìn)部52用于將輔助裝置(下面詳細(xì)描述)固定在注射裝置1上的正確位置。
注射裝置1可以用于幾個(gè)注射過程,直到胰島素容器14是空的或者達(dá)到注射裝置1的截止日期(例如,在第一次使用后28天)。
此外,在第一次使用注射裝置1之前,可能需要執(zhí)行所謂的“初始注射”以從胰島素容器14和針15去除空氣,例如通過選擇兩個(gè)單位的胰島素,然后在使針朝上地握住注射裝置1的同時(shí)按壓注射按鈕11進(jìn)行“初始注射”。
為了陳述簡(jiǎn)潔,在下文中,將示例性地假設(shè)所排出的劑量基本上對(duì)應(yīng)于所注射的劑量,使得例如當(dāng)提出接下來要注射的劑量時(shí),該劑量等于要由注射裝置1排出的劑量。然而,當(dāng)然可以考慮排出的劑量和注射的劑量之間的差異(例如損失)。
圖1b是注射裝置1端部的特寫。注射裝置具有位于殼體10上鄰近劑量旋鈕12的導(dǎo)向肋70。注射裝置1還具有位于殼體10上的兩個(gè)縮進(jìn)部52。它們可以相對(duì)于引導(dǎo)肋70對(duì)稱。引導(dǎo)肋70和縮進(jìn)部52用于將輔助裝置(下面詳細(xì)描述)固定在注射裝置1上的正確位置。
圖2a是可釋放地附接到圖1a注射裝置1的輔助裝置2一個(gè)實(shí)施例的示意圖。輔助裝置2包括殼體20,殼體20具有配接單元,配接單元被構(gòu)造成抱住圖1a的注射裝置1的殼體10,使得輔助裝置2緊緊地靠在注射裝置1的殼體10上,但是仍然可從注射裝置1移除,例如當(dāng)注射裝置1是空的并且需要更換時(shí)。圖2a是高度示意性的,實(shí)際布置的細(xì)節(jié)在下面參照?qǐng)D2b描述。
輔助裝置2包含用于從注射裝置1收集信息的光學(xué)和聲學(xué)傳感器。該信息的至少一部分,例如所選劑量(以及可任選的該劑量的單位)通過輔助裝置2的顯示單元21顯示。注射裝置1的劑量窗口13當(dāng)附接到注射裝置1時(shí)被輔助裝置2擋住。
輔助裝置2還包括至少一個(gè)用戶輸入換能器,這些換能器作為舉例被示為按鈕22。這些輸入換能器22允許用戶接通/斷開輔助裝置2,以觸發(fā)動(dòng)作(例如,引起與另一裝置建立連接或與另一裝置配對(duì),以及/或者觸發(fā)信息從輔助裝置2到另一裝置的傳輸),或確認(rèn)某事。
圖2b是可釋放地附接到圖1a注射裝置1的輔助裝置2的第二實(shí)施例的示意圖。輔助裝置2包括殼體20,殼體20具有配接單元,配接單元被構(gòu)造為抱住圖1注射裝置1的殼體10,使得輔助裝置2緊緊地靠在注射裝置1的殼體10上,但是仍然可從注射裝置1移除。
信息通過輔助裝置2的顯示單元21顯示。注射裝置1的劑量窗口13當(dāng)附接到注射裝置1時(shí)被輔助裝置2擋住。
輔助裝置2還包括三個(gè)用戶輸入按鈕或開關(guān)。第一按鈕22是電源開/關(guān)按鈕,經(jīng)該電源開/關(guān)按鈕,可以例如接通和斷開輔助裝置2。第二按鈕33是通信按鈕。第三按鈕34是確認(rèn)或OK按鈕。按鈕22、33、34可以為機(jī)械開關(guān)的任何合適形式。這些輸入按鈕22、33、34允許用戶接通/斷開輔助裝置2,觸發(fā)動(dòng)作(例如,引起與另一裝置建立連接或與另一裝置配對(duì),以及/或者觸發(fā)信息從輔助裝置2到另一裝置的傳輸),或者確認(rèn)某事。
圖2c是可釋放地附接到圖1a注射裝置1的輔助裝置2的第三實(shí)施例的示意圖。輔助裝置2包括殼體20,殼體20具有配接單元,配接單元被構(gòu)造為抱住圖1a注射裝置1的殼體10,使得輔助裝置2緊緊地靠在注射裝置1的殼體10上,但是仍然可從注射裝置1移除。
通過輔助裝置2的顯示單元21顯示信息。注射裝置1的劑量窗口13當(dāng)附接到注射裝置1時(shí)被輔助裝置2擋住。
輔助裝置2還包括觸敏輸入換能器35。它還包括一個(gè)單個(gè)的用戶輸入按鈕或開關(guān)22。按鈕22是電源開/關(guān)按鈕,通過該電源開/關(guān)按鈕,輔助裝置2可以例如接通和斷開。觸敏輸入換能器35可以用于觸發(fā)動(dòng)作(例如,引起與另一裝置建立連接或與另一裝置配對(duì),以及/或者觸發(fā)信息從輔助裝置2到另一裝置100的信息傳輸),或者用于確認(rèn)某事。
圖3示出了圖2a、2b或2c的輔助裝置2在附接到圖1a注射裝置1的狀態(tài)下的示意圖。
多個(gè)部件被裝在輔助裝置2的殼體20中。這些部件由處理器24控制,處理器24例如可以是微處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA),等等。處理器24執(zhí)行存儲(chǔ)在程序存儲(chǔ)器240中的程序代碼(例如軟件或固件),并且使用主存儲(chǔ)器241例如存儲(chǔ)中間結(jié)果。主存儲(chǔ)器241還可以用于存儲(chǔ)關(guān)于已執(zhí)行的排出/注射的日志。程序存儲(chǔ)器240可以例如是只讀存儲(chǔ)器(ROM),并且主存儲(chǔ)器可以例如是隨機(jī)存取存儲(chǔ)器(RAM)。
在諸如圖2b所示的實(shí)施例中,處理器24與第一按鈕22相互作用,經(jīng)由該第一按鈕22,輔助裝置2可以例如接通和斷開。第二按鈕33是通信按鈕。第二按鈕可以用于觸發(fā)與另一裝置建立連接,或者用于觸發(fā)向另一裝置傳輸信息。第三按鈕34是確認(rèn)或OK按鈕。第三按鈕34可以用于確認(rèn)呈現(xiàn)給輔助裝置2的用戶的信息。
在諸如圖2c所示的實(shí)施例中,可以省略按鈕33、34中的兩個(gè)。相反,提供了一個(gè)以上電容傳感器或其他觸摸傳感器。
處理器24控制目前表示成液晶顯示器(LCD)的顯示單元21。顯示單元21用于向輔助裝置2的用戶顯示信息,例如有關(guān)注射裝置1當(dāng)前設(shè)置或者將進(jìn)行的下一次注射的信息。顯示單元21也可以被實(shí)現(xiàn)為觸摸屏顯示器,例如用于接收用戶輸入。
處理器24還控制光學(xué)傳感器25,該光學(xué)傳感器25被表示為光學(xué)字符識(shí)別(OCR)讀取器,能夠捕獲劑量窗口13的圖像,在劑量窗口13中顯示當(dāng)前選擇的劑量(通過呈現(xiàn)在裝于注射裝置1中的套筒19上的數(shù)碼、字符、符號(hào)或字形,這些數(shù)碼、字符、符號(hào)或字形能夠通過劑量窗口13看見)。OCR讀取器25還能夠從捕獲的圖像中識(shí)別字符(例如數(shù)碼),并將該信息提供給處理器24。作為替代,輔助裝置2中的單元25可以僅是光學(xué)傳感器,例如照相機(jī),用于捕獲圖像并將關(guān)于所捕獲圖像的信息提供給處理器24。然后,處理器24負(fù)責(zé)對(duì)所捕獲圖像執(zhí)行OCR。處理器24可以被配置成執(zhí)行兩個(gè)以上不同的OCR過程,每個(gè)OCR過程使用不同的算法。
處理器24還控制諸如發(fā)光二極管(LED)29的光源以照亮劑量窗口13,在劑量窗口13中顯示當(dāng)前選擇的劑量。漫射器可以用在光源的前面,例如由一塊丙烯酸玻璃制成的漫射器。此外,光學(xué)傳感器可以包括透鏡系統(tǒng),例如包括兩個(gè)非球面透鏡,導(dǎo)致放大。放大率(像尺寸與物尺寸比率)可以小于1。放大率可以在0.05至0.5的范圍內(nèi)。在一個(gè)實(shí)施例中,放大率可以是0.15。
處理器24還控制光度計(jì)26,該光度計(jì)26配置成確定注射裝置1的殼體10的光學(xué)性質(zhì),例如顏色或陰影。光學(xué)性質(zhì)可以僅存在于殼體10的特定部分中,例如被包括在注射裝置1內(nèi)的套筒19或胰島素容器的顏色或顏色編碼,該顏色或顏色編碼例如可以通過殼體10中(和/或套筒19中)的另一個(gè)窗口看見。然后將關(guān)于該顏色的信息提供給處理器24,處理器24然后可以確定注射裝置1的類型或被包含在注射裝置1中的胰島素的類型(例如具有紫色的SoloStar Lantus和具有藍(lán)色的SoloStar Apidra)。作為替代,可以使用相機(jī)單元代替光度計(jì)26,然后可以向處理器24提供殼體、套筒或胰島素容器的圖像,以通過圖像處理來確定殼體、套筒或胰島素容器的顏色。此外,可以提供一個(gè)以上光源以改進(jìn)對(duì)光度計(jì)26的讀取。光源可以提供特定波長(zhǎng)或光譜的光,以改進(jìn)光度計(jì)26的顏色檢測(cè)。光源的布置方式可以是例如通過劑量窗口13避免或減少不期望的反射。在一個(gè)示例實(shí)施例中,代替光度計(jì)26或除了光度計(jì)26之外,可以部署相機(jī)單元用以檢測(cè)與注射裝置和/或包含在其中的藥劑相關(guān)的代碼(例如條形碼,其可以例如是一維或二維條形碼)。該代碼可以例如位于殼體10上或被包含在注射裝置1中的藥劑容器上,這僅僅是幾個(gè)例子而已。該代碼可以例如指示注射裝置和/或藥劑的類型,和/或其他屬性(例如,到期日期)。
處理器24還控制聲學(xué)傳感器27(和/或從聲學(xué)傳感器27接收信號(hào)),聲學(xué)傳感器27被配置成感測(cè)由注射裝置1產(chǎn)生的聲音。這種聲音可以例如在通過旋轉(zhuǎn)劑量旋鈕12撥選劑量時(shí)和/或在通過按壓注射按鈕11排出/注射劑量時(shí),和/或在執(zhí)行預(yù)注射時(shí)產(chǎn)生。這些動(dòng)作在機(jī)械上相似,但仍然發(fā)出不同的聲音(對(duì)于指示這些動(dòng)作的電子聲音,情況也是如此)。聲學(xué)傳感器27和/或處理器24可以被配置成區(qū)分這些不同的聲音,例如能夠安全地識(shí)別出注射已經(jīng)發(fā)生(而不是僅僅是初始注射)。
處理器24還控制聲學(xué)信號(hào)發(fā)生器23,聲學(xué)信號(hào)發(fā)生器23被配置成產(chǎn)生例如可以與注射裝置1的操作狀態(tài)相關(guān)的聲學(xué)信號(hào),例如作為對(duì)用戶的反饋。例如,聲學(xué)信號(hào)可以由聲學(xué)信號(hào)發(fā)生器23發(fā)出,作為要注射的下一劑量的提醒,或者作為警告信號(hào),例如在誤用的情況下。聲學(xué)信號(hào)發(fā)生器例如可以被實(shí)施為蜂鳴器或揚(yáng)聲器。除了聲學(xué)信號(hào)發(fā)生器23之外或作為聲學(xué)信號(hào)發(fā)生器23的替代,觸覺信號(hào)發(fā)生器(未示出)也可以用于例如通過振動(dòng)提供觸覺反饋。
處理器24控制無線單元28,無線單元28被配置成以無線方式向另一裝置發(fā)送信息,并且/或者從另一裝置接收信息。這種傳輸可以例如基于無線電傳輸或光學(xué)傳輸。在一些實(shí)施例中,無線單元28是藍(lán)牙收發(fā)器。作為替代,無線單元28可以被有線單元取代或補(bǔ)充,該有線單元被配置成例如經(jīng)由電纜或光纖連接以有線方式向另一裝置發(fā)送信息,并且/或者從另一裝置接收信息。當(dāng)發(fā)送數(shù)據(jù)時(shí),可以顯式或隱式地定義所傳送的數(shù)據(jù)(值)的單位。例如,在胰島素劑量的情況下,通??梢允褂脟?guó)際單位(IU),或者所使用的單位可以明確地例如以編碼形式傳送。
處理器24從筆檢測(cè)開關(guān)30接收輸入,該筆檢測(cè)開關(guān)30可操作以檢測(cè)筆1是否存在,即,檢測(cè)輔助裝置2是否連接到注射裝置1。電池32通過電源31為處理器24和其他組件供電。
圖3的輔助裝置2因此能夠確定與注射裝置1的狀況和/或使用相關(guān)的信息。該信息被顯示在顯示器21上以供裝置的用戶使用。該信息可以由輔助裝置2本身處理,或者可以至少部分地提供給另一裝置(例如血糖監(jiān)視系統(tǒng))。
注射裝置1和輔助裝置2被配置為使得光學(xué)傳感器25的視場(chǎng)大致居中地位于劑量窗口13的中心上方。制造公差可能意味著視場(chǎng)在橫向和豎向兩個(gè)方向上略微偏心。
在一些實(shí)施例中,由于空間限制和需要將數(shù)碼限定為一定大小,在數(shù)碼套筒19上僅印制偶數(shù)。在一些其他實(shí)施例中,可以在數(shù)碼套筒只印制奇數(shù)。然而,可以將任何數(shù)目單位的藥劑撥選到注射裝置1中。在一些替代實(shí)施例中,每個(gè)數(shù)碼,即增大的整數(shù),可以印制在套筒上。在這些實(shí)施例中,可以將半個(gè)單位的劑量撥選到注射裝置中。注射裝置可以限于撥選最大80個(gè)單位的劑量。在另外的替代實(shí)施例中,可以僅印制每第3個(gè)數(shù)碼、每第4個(gè)數(shù)碼或每第5個(gè)數(shù)碼。所印制數(shù)碼之間的劑量位置可以用刻度線標(biāo)記。術(shù)語“印制”在本文中用于指示數(shù)碼被標(biāo)記在數(shù)碼套筒的表面上,然而本領(lǐng)域技術(shù)人員將理解,數(shù)碼可以以多種已知方式印制、蝕刻、標(biāo)記、粘貼,或以其他多種已知方式對(duì)輔助裝置2的光學(xué)傳感器25可見。
在下面的實(shí)施例中,將假設(shè)在劑量套筒19上僅印制偶數(shù),但是可以將任何數(shù)目的單位撥選到注射裝置中。
處理器24被配置為執(zhí)行算法,該算法允許能在光學(xué)傳感器25的視場(chǎng)中看見的數(shù)碼(或部分?jǐn)?shù)碼)被分開,并且準(zhǔn)備與所存儲(chǔ)的模板進(jìn)行比較,以便識(shí)別這些數(shù)碼。該算法對(duì)可見數(shù)碼執(zhí)行光學(xué)字符識(shí)別(OCR)過程,并且使用OCR過程的結(jié)果,以便精確地確定當(dāng)前被撥選到注射裝置1中的劑量。該算法可以在軟件或固件中被實(shí)施,并且可以被存儲(chǔ)在輔助裝置2的程序存儲(chǔ)器240中。存儲(chǔ)算法的處理器24和存儲(chǔ)器240一起在這里可以被稱為“處理器組件”。
整個(gè)算法可以被分為預(yù)處理部分、OCR部分和后處理部分,其中每個(gè)部分通常包含幾個(gè)步驟。
在預(yù)處理部分中,通過執(zhí)行以下步驟來評(píng)估和改進(jìn)圖像數(shù)據(jù)質(zhì)量:
·有缺陷和不良像素校正
·光校正
·失真和傾斜校正
例如,曝光控制算法丟棄太亮或太暗的圖片,并且利用調(diào)整過的曝光參數(shù)拍攝新圖片。數(shù)碼可以印制在斜面上,以便于人們識(shí)別和定位,但是如果該斜面被移除則可以更容易解碼。為了在此描述和要求保護(hù)的本發(fā)明的目的,預(yù)處理是可選的特征。算法的OCR部分可以被設(shè)計(jì)為執(zhí)行所需的標(biāo)準(zhǔn),而無需對(duì)圖像進(jìn)行預(yù)處理,并且/或者光學(xué)傳感器25可以被配置為產(chǎn)生足夠質(zhì)量的圖像以便直接對(duì)它們執(zhí)行OCR。
在OCR部分中,接著對(duì)圖像數(shù)據(jù)進(jìn)一步處理,并且在結(jié)束時(shí)可得出所識(shí)別的字符。OCR過程包括以下步驟:
·二值化
·分割
·模式匹配
·位置計(jì)算
后處理可能涉及各種檢查和產(chǎn)生要顯示的結(jié)果。后處理包括以下步驟:
·執(zhí)行完整性檢查
·滯后計(jì)算
·在顯示器上顯示最終結(jié)果
本文描述和要求保護(hù)的發(fā)明涉及OCR過程的分割部分。為了本文描述和要求保護(hù)的本發(fā)明的目的,OCR過程的預(yù)處理、后處理和其他部分是可選特征。
由于對(duì)傳感器裝置2的高可靠性要求,在一些實(shí)施例中可能存在并行操作的兩種OCR算法。兩種OCR算法具有相同的輸入(圖像),并且旨在提供相同的輸出。它們都執(zhí)行類似的步驟,然而在每個(gè)步驟中使用的各個(gè)方法可以變化。這兩種OCR算法可以在二值化、分割、模式匹配和位置計(jì)算步驟中的一個(gè)步驟中或在這些步驟中的不止一個(gè)步驟中不同。兩個(gè)OCR部分使用不同方法來提供相同結(jié)果,增加了整個(gè)算法的可靠性,因?yàn)閿?shù)據(jù)按照兩種獨(dú)立的方式被處理過。
關(guān)鍵的挑戰(zhàn)是實(shí)現(xiàn)圖像捕獲和隨后的OCR過程,該OCR過程包括分割成能可靠地從顯示器識(shí)別數(shù)碼、字符和/或字形的小系統(tǒng),以確定劑量值。該系統(tǒng)由電池供電,體積小,并且由于緊湊設(shè)計(jì)和使用壽命要求而具有有限的成像以及處理能力。用于這種類型裝置的處理器通常具有約100MHz以下的時(shí)鐘頻率、高達(dá)32kByte RAM和512kb閃存的存儲(chǔ)器(這些規(guī)格是示例性的并不要進(jìn)行限制)。然而,OCR過程的結(jié)果應(yīng)當(dāng)是能夠?qū)崟r(shí)得到的,這意味著用戶在撥選進(jìn)一個(gè)劑量時(shí),可以在撥選的同時(shí)從輔助裝置讀取該劑量。典型的計(jì)算時(shí)間約為70ms。
圖4示出劑量窗口13的一個(gè)圖像400二值化之后的示例,其中,撥入了“47”個(gè)單位的劑量。實(shí)線橫線402表示光學(xué)傳感器25的視場(chǎng)的中心線。劑量窗口13的圖像首先被光學(xué)傳感器25捕獲。在應(yīng)用上述預(yù)處理步驟之后,經(jīng)二值化過程將灰度圖像轉(zhuǎn)換成純黑白圖像。根據(jù)在淺色套筒上具有深色數(shù)碼的注射筆的設(shè)計(jì),黑白圖像將用黑色像素指示存在數(shù)字,而用白色像素指示不存在數(shù)字。
在一些實(shí)施例中,使用固定閾值在黑色和白色像素之間進(jìn)行劃分。在二值化圖片中,灰度值等于或高于閾值的像素變?yōu)榘咨叶戎档陀陂撝档南袼刈優(yōu)楹谏?。高閾值將?dǎo)致偽像(白色區(qū)域中的黑色部分),而低閾值具有在某些情況下丟失部分?jǐn)?shù)字的風(fēng)險(xiǎn)。在一些實(shí)施例中,閾值被選擇為無論在何種情況下都不丟失數(shù)字部分,因?yàn)樗惴ㄔ搶?duì)于偽像來說是魯棒性的(即,可以在存在一些偽像的情況下執(zhí)行精確的OCR過程)。在測(cè)試中,使用了能夠檢測(cè)256個(gè)灰度值的傳感器,閾值為127顯示出良好的結(jié)果。
在所提出的一種算法中,接著執(zhí)行分割過程,該分割過程從右到左分析二值化圖像。在這個(gè)過程中,排除右手邊距,并且識(shí)別右手?jǐn)?shù)碼列的位置。然后,確定是否存在左手?jǐn)?shù)碼列。對(duì)于數(shù)碼0-8,只有一個(gè)右手?jǐn)?shù)碼列。最后,左手側(cè)處的刻度線被排除,只留下被隔離開的(一個(gè)或若干)數(shù)碼列。所提出的這個(gè)算法工作良好,只要右手?jǐn)?shù)碼列與右手邊距清楚地分開即可。
從圖4中可以看出,在某些情況下,數(shù)碼向右移動(dòng)得足夠遠(yuǎn),使得右側(cè)數(shù)碼列和右手邊距合并在一起。在這種情況下,算法將排除整個(gè)右側(cè)數(shù)碼列,因此不能正確地識(shí)別所撥選的劑量。
本發(fā)明的算法以不同的方式分析圖像數(shù)據(jù),即使在右手?jǐn)?shù)碼列與右手邊界合并的情況下,也能夠正確地隔離右手?jǐn)?shù)碼列,現(xiàn)將對(duì)此進(jìn)行描述。
處理器24首先執(zhí)行“豎向投影”,在豎向投影中,分析構(gòu)成二值化圖像的像素列。單獨(dú)地分析每個(gè)像素列,并計(jì)算每列中黑色像素的數(shù)目和。
圖5中的曲線500示出了對(duì)圖4中的圖像400進(jìn)行這種豎向投影的結(jié)果。然后根據(jù)下式通過組合相鄰列,對(duì)該原始數(shù)據(jù)進(jìn)行模糊化:
Cy=By-2+4By-1+6By+4By+1+By+2
其中,Cy是模糊化的投影值,By是列“y”中的黑色像素的總和。
作為替代,可以使用以下公式:
Cy=By-2+4By-1+8By+4By+1+By+2
圖6中的曲線600示出在來自圖4的圖像數(shù)據(jù)上施用模糊函數(shù)的結(jié)果。這種模糊化處理消除了小的干擾,防止它們對(duì)該算法的結(jié)果造成不利影響。在實(shí)踐中,可以使用具有模糊化功能以以便消除小干擾影響的任何公式,上面的具體公式僅作為示例給出。
然后,該算法通過使用多個(gè)不同的閾值,將像素列分開成不同的像素組和排除列組,這些閾值在下面用大寫字母示出。當(dāng)曲線低于VERICAL_SEPARATE_THRESHOLD時(shí),假定曲線兩側(cè)的像素處于不同的實(shí)體中,并且被放入不同的像素組中。黑色像素?cái)?shù)目最小的列被用作分割器,并且不是任何像素組的一部分。
當(dāng)曲線低于VERICAL_WHITESPACE_THRESHOLD時(shí),假定該區(qū)域?yàn)榭?,即白色。在隔離和識(shí)別像素組之后,通過在邊緣處去除黑色像素少于VERICAL_THRESHOLD的列,從兩側(cè)修剪每個(gè)像素組。
圖7示出將這些閾值應(yīng)用于圖4圖像數(shù)據(jù)的結(jié)果。這些被分開的像素組通過加陰影/加剖面線以及利用字母a)-d)來識(shí)別。排除列組未加陰影。
在先前提出的算法中,如果曲線上升到VERTICAL_INVALID_THRESHOLD以上,則像素組被標(biāo)記為無效,這種情況只發(fā)生在黑色豎線穿過幾乎沒有任何白色像素的圖像時(shí),用像素組a)表示的右邊距的情況就是這樣。像素組a)在本文中也可被描述為右手邊緣區(qū)或區(qū)域、右手邊框區(qū)或區(qū)域、或右手邊界區(qū)或區(qū)域,這些術(shù)語在本文中可以互換使用。在這種情況下,“無效”意味著不認(rèn)為該像素組表示所印制的數(shù)碼。然而,在像素組a)和像素組b)之間的間隙不清晰,即曲線不低于VERICAL_SEPARATE_THRESHOLD的情況下,則先前的算法將像素組a)和b)一起排除。因?yàn)橄袼亟Mb)表示右手字符列,所以該算法將不能正確地識(shí)別圖像中的數(shù)碼。因此,本發(fā)明不使用VERTICAL_INVALID_THRESHOLD,而是以不同的方式將像素組b)與右手邊界分開,如下所述。
該算法的任務(wù)是識(shí)別表示字符列的像素組。一般來說,每個(gè)字符列包括豎向排列的多于一個(gè)字符。這些字符在后面的步驟中被彼此分開。在一些實(shí)施例中,該算法被設(shè)置為使像素組在接觸圖像左手邊界(任選的是,并且在接觸圖像右手邊界)的情況下無效。同樣,這里使用的“無效”意味著像素組被排除考慮作為數(shù)碼。這導(dǎo)致像素組d)被排除在考慮之外。
該算法識(shí)別表示圖像數(shù)據(jù)中最左側(cè)字符列的像素組。這是通過識(shí)別緊接在最左側(cè)排除列組右邊的像素組來完成的。例如,這可以通過識(shí)別出低于VERICAL_SEPARATE_THRESHOLD的第一列的右邊的第一組像素(具有更高的列號(hào))來實(shí)現(xiàn)。因此,像素組c)被識(shí)別出作為表示最左側(cè)字符列。
接下來,該算法確定圖像數(shù)據(jù)中有一個(gè)還是兩個(gè)表示字符列的像素組。這通過確定最左側(cè)排除列組的寬度(即圖7中像素組d)和c)之間的列)來實(shí)現(xiàn)。如果圖像中可見的數(shù)碼(即數(shù)碼0-8)布置在單個(gè)列中,則該第一間隙的寬度將大于在圖像包含兩列數(shù)碼時(shí)的寬度。因此,如果第一排除列組寬于閾值MAX_LEFT_MARGIN_TWO_DIGITS,則確定圖像數(shù)據(jù)僅包括單個(gè)數(shù)碼列。如果第一排除列組比該閾值窄,則假設(shè)存在兩個(gè)字符列。
在該算法確定圖像中有兩個(gè)表示字符列的像素組的情況下,可以推斷出右手?jǐn)?shù)字的范圍。因此,即使右手?jǐn)?shù)字與圖像右邊的黑色邊緣區(qū)域合并,也可以隔離出這些數(shù)字進(jìn)行分析。
首先,識(shí)別最左側(cè)字符列右邊的排除列組。在大多數(shù)情況下,這將是從圖像左側(cè)開始的第二排除列組。然后通常將清楚右手字符列的左手邊界位于何處(對(duì)于一些特殊情況,參見下面的描述)。出現(xiàn)在圖像數(shù)據(jù)中的數(shù)碼寬度(以像素為單位)是已知的,因?yàn)閷?duì)注射裝置1和輔助裝置3的設(shè)計(jì)意味著光學(xué)傳感器35位于距劑量窗口13預(yù)定的距離處。在一個(gè)示例中,除“1”之外的每個(gè)數(shù)碼的寬度是十四個(gè)像素,而“1”的寬度是七個(gè)像素。每個(gè)數(shù)碼可以具有26個(gè)像素的高度。然而,確切的像素?cái)?shù)目取決于所印制數(shù)碼的字體大小以及所使用的字體類型、傳感器裝置2及其相對(duì)于注射裝置1的布置、以及由傳感器裝置中的透鏡或由窗口13引起的任何放大。繼續(xù)上述示例,由于只有偶數(shù)被印制在數(shù)碼套筒19上,所以數(shù)碼“1”只能出現(xiàn)在左手字符列(數(shù)碼10-18)中,因此,右手字符列將只包含14個(gè)像素的寬度。因此,一旦識(shí)別出右手字符列的左手邊界,則右手邊界被定義為進(jìn)一步向右十四個(gè)像素處。為了增加可靠性,可以將數(shù)字寬度設(shè)置為比期望寬度多少量像素列。
在將字符列橫向分割成單個(gè)數(shù)字之后,可以按如下方式實(shí)施可選的數(shù)碼修剪過程,以考慮光學(xué)系統(tǒng)的公差以及數(shù)字的印制公差,例如數(shù)字寬度和位置。該過程可以應(yīng)用于任何數(shù)字的左右邊緣,但是當(dāng)應(yīng)用于右手?jǐn)?shù)字的右手邊緣時(shí)是特別有用的,以為了確保它們與右手邊緣(像素組a))充分分開,進(jìn)行準(zhǔn)確的OCR分析。因此,這種可選的修剪可以使OCR識(shí)別更準(zhǔn)確。
數(shù)字已經(jīng)被分開為右左字符列。
使用右手?jǐn)?shù)字作為示例,首先對(duì)右手字符列的最右側(cè)像素列執(zhí)行豎向投影,以確定該列中黑色像素的數(shù)目。在該示例中,數(shù)字的預(yù)期高度為26個(gè)像素。例如,如果該列中26個(gè)像素中的多于19個(gè)是黑色的,則該列被確定為最可能是像素組a)的部分,而不是數(shù)字的部分,然后將其丟棄。這對(duì)于分別區(qū)分?jǐn)?shù)碼6和8尤其重要,這時(shí),右邊的黑色豎向列容易導(dǎo)致誤解,即在字符識(shí)別步驟中將“6”誤認(rèn)為“8”。
另一方面,在最右像素列中6個(gè)或更少的像素是黑色的情況下,也可以丟棄該列,因?yàn)闆]必要進(jìn)行OCR步驟。由于只有偶數(shù)(2、4、6、8)出現(xiàn)在右手字符列,所以在緊挨著最右像素列左邊的列中,總有更多的黑色像素。因此,丟棄最后一列對(duì)OCR沒有負(fù)面影響。
在一些注射裝置設(shè)計(jì)中,較小的“1”用于指示單個(gè)單位的藥劑。這個(gè)較小的1在豎向上位于“0”和“2”之間,但偏向左邊,如圖8的二值化圖像800所示。該“1”小于用于數(shù)碼10-18的1。在存在這種特殊情況的情況下,該算法具有另外的步驟識(shí)別該情況并且確保數(shù)碼被正確解碼。這涉及如前所述計(jì)算第一字符列的寬度。如果該寬度低于閾值DIGIT_MIN_ONE_WIDTH,則推斷該列表示圖8中所示的小“1”。然后使該列無效并且不在隨后的OCR和位置檢測(cè)步驟中使用該列。如果第一字符列等于或?qū)捰贒IGIT_MIN_ONE_WIDTH,但是低于閾值DIGIT_MAX_ONE_WIDTH,則推斷第一字符列包含“正?!?(如數(shù)碼10-18中的1)。隨后可以通過將最大可能有效結(jié)果設(shè)置為“19”在OCR過程中使用該信息。
另一種特殊情況是“9”個(gè)單位被撥入注射裝置1中。在這種情況下,數(shù)碼“8”和“10”在圖像中部分或全部出現(xiàn),數(shù)碼“8”大約位于“10”的0和1之間的間隙上方。因此,算法執(zhí)行另外的檢查,看左手字符列是否寬于閾值MAX_DIGIT_WIDTH(太寬而不能是單個(gè)數(shù)字)。如果是這種情況,則推斷數(shù)碼套筒19在數(shù)碼8和10之間。然后可以相應(yīng)地調(diào)整用于劃分字符列的閾值,以允許將數(shù)字隔離開用于分析。
圖9示出了處理器24在分析由光學(xué)傳感器25捕獲的圖像中所進(jìn)行的示例性操作的流程圖。
在步驟900中,處理器24從光學(xué)傳感器25接收?qǐng)D像數(shù)據(jù)。該圖像數(shù)據(jù)可以是二值化的數(shù)據(jù),或者處理器24可以執(zhí)行二值化過程。作為替代,處理器可以對(duì)灰度圖像執(zhí)行接下來的步驟。在步驟902中,處理器24分析圖像數(shù)據(jù),以確定圖像中每列的黑色像素的數(shù)目。在步驟904中,定義豎向分開閾值。在實(shí)踐中,該閾值可以是預(yù)定義的,并且被預(yù)編程到輔助裝置的存儲(chǔ)器中。然而,它也可以由處理器基于光水平等動(dòng)態(tài)地定義。
在步驟906中,處理器24將圖像的列劃分為若干像素組,并由排除列組分開。這是通過排除黑色像素?cái)?shù)目低于先前定義的豎向分開閾值的任何列來完成的。在步驟908中,處理器識(shí)別表示圖像中最左側(cè)字符列的像素組。這是通過識(shí)別緊接最左側(cè)排除列組右邊的像素組來完成的。
在步驟910中,處理器24確定圖像中有一個(gè)還是兩個(gè)表示字符列的像素組。這是通過確定最左側(cè)排除列組的寬度來實(shí)現(xiàn)的。如果最左側(cè)排除列組低于預(yù)定寬度,則假定存在兩個(gè)字符列。如果最左側(cè)排除列組高于預(yù)定寬度,則假定存在一個(gè)字符列。
在步驟912處,在確定了在圖像數(shù)據(jù)中存在兩個(gè)字符列的情況下,在OCR算法中將預(yù)定寬度值(以像素為單位)用于右手字符列。這可以包括通過識(shí)別左、右字符列之間的排除列組,來確定右手字符列的左手邊界。然后,將右手邊界定義為進(jìn)一步向右預(yù)定寬度值(以像素為單位)處。在這個(gè)新的豎向分割過程之后,執(zhí)行OCR算法的其余部分。
在處理器24可以輸出針對(duì)被撥選到注射裝置1中的藥劑單位數(shù)目的結(jié)果之前,需要幾個(gè)另外的步驟。為了完整性,在下面描述這些步驟,然而這些步驟是任選的,對(duì)于定義本發(fā)明不是必要的。
處理器24然后執(zhí)行“橫向投影”,其中分析構(gòu)成二值化圖像的像素行。這個(gè)過程以與上述針對(duì)豎向投影相同的方式進(jìn)行。橫向投影的結(jié)果被添加到豎向投影的結(jié)果,于是,識(shí)別出可見數(shù)碼的邊緣。在許多情況下,圖像中的一些數(shù)碼將僅部分可見。因此,不是部分可見數(shù)碼的所有邊緣都進(jìn)行檢測(cè)。處理器24可以用全數(shù)碼的預(yù)期高度(以像素行為單位)預(yù)編程,因此能夠識(shí)別部分可見數(shù)碼的存在。
可以明確地看出,“橫向投影”和“豎向投影”可以同樣好地基于代之以計(jì)算白色像素和的分析,假設(shè)每行和列中白色像素的預(yù)期數(shù)目是已知的。
OCR過程的下一步驟是選擇可見數(shù)碼中的一個(gè)進(jìn)行解碼和識(shí)別。這是通過將這些數(shù)碼中的一個(gè)指定為“主數(shù)字行”來實(shí)現(xiàn)的?;谀膫€(gè)可見數(shù)碼具有最大高度來選擇主數(shù)字行。這是因?yàn)橛≈圃谔淄采系乃袛?shù)碼具有大致相同的高度,并且可以假定具有最大高度的數(shù)碼將是完全可見的,因此容易以高確定性解碼。如果兩個(gè)數(shù)碼(具有不同的豎向位置)可見并且具有相同的高度,則最上面的數(shù)碼被選擇為主數(shù)字行。主數(shù)字行是隨后用于確定被撥入注射裝置1中的劑量的數(shù)碼。
然后執(zhí)行模式匹配過程,以識(shí)別主數(shù)字行中的數(shù)字。用于每個(gè)數(shù)碼的模板可以存儲(chǔ)在輔助裝置2的存儲(chǔ)器中,然后可以將所識(shí)別的數(shù)字與這些模板進(jìn)行比較。在一種直接了當(dāng)?shù)姆椒ㄖ?,可以在逐像素基礎(chǔ)上執(zhí)行模式匹配。然而,這可能需要高計(jì)算能力。此外,該方法易于遇到圖像和模板之間位置變化的問題。在一些其他實(shí)施例中,執(zhí)行特征識(shí)別過程。特征可以是橫線、豎直線或?qū)蔷€、曲線、圓或閉合環(huán),等等??梢栽谒x數(shù)碼的圖像中識(shí)別這些特征,并且與模板進(jìn)行比較。
在另外的實(shí)施例中,模式匹配算法可以基于矢量比較過程。例如,模板可以是矢量形式,描述每排黑色像素(連續(xù)延續(xù))相對(duì)于延伸穿過模板中心的豎直線的位置和長(zhǎng)度。所捕獲的每個(gè)數(shù)字的二值化圖像可以類似地被轉(zhuǎn)換成矢量,并依次與每個(gè)存儲(chǔ)的模板進(jìn)行比較以找到最佳匹配。
當(dāng)將所所捕獲圖像的矢量與特定數(shù)字模板進(jìn)行比較時(shí),任何偏差都導(dǎo)致對(duì)圖像與該模板之間的匹配可能性加以罰分。罰分的量值可以取決于與模板相比圖像中丟失的或多出的黑色像素?cái)?shù)目。在將數(shù)字圖像與每個(gè)模板進(jìn)行比較并且已經(jīng)施加了所有的罰分之后,做定關(guān)于存在哪個(gè)數(shù)字的決策。在良好的光學(xué)條件下,正確的模板將具有非常低的罰分,而所有其他模板將具有高的罰分。如果主數(shù)字行由兩位數(shù)字組成,則對(duì)兩個(gè)數(shù)字執(zhí)行該過程,然后處理器24對(duì)結(jié)果進(jìn)行組合,產(chǎn)生該數(shù)碼的最終結(jié)果。
對(duì)于某些數(shù)字可能存在特殊措施。例如,“1”在寬度上明顯偏離所有其他數(shù)字,導(dǎo)致常見的錯(cuò)誤檢測(cè)。為了解決這個(gè)問題,如果某數(shù)字的二值化圖像比“1”的預(yù)期寬度寬,則當(dāng)與所存儲(chǔ)的矢量模板“1”比較時(shí),其接收額外的檢測(cè)罰分。
在一些例外情況下,如果主數(shù)字行模式匹配結(jié)果的置信水平低于特定閾值(例如99%),則處理器可以對(duì)一個(gè)以上其他可見的或部分可見的數(shù)碼執(zhí)行第二模式匹配過程。由于數(shù)碼的順序是已知的,因此該第二模式匹配可以用作第一模式匹配返回正確結(jié)果的檢查。如果結(jié)果中的置信水平仍然不夠高,則可以由光學(xué)傳感器25捕獲第二圖像,并且重復(fù)該過程。作為替代,可以顯示錯(cuò)誤消息。
一旦已經(jīng)成功地識(shí)別出主數(shù)字行的數(shù)字或若干數(shù)字,就應(yīng)用加權(quán)函數(shù)以便確定撥選到注射裝置1中的劑量。為了制定加權(quán)函數(shù),確定主數(shù)字行相對(duì)于圖像中心的豎向位置。這可以通過計(jì)算包括主數(shù)字行的中間像素行相對(duì)于表示光學(xué)傳感器25中圖像中心線的像素行的偏離來完成。
例如,在一些實(shí)施例中,光學(xué)傳感器包括光敏元件的矩形64×48陣列。所得到的二值化圖像是具有這些相同尺寸的像素陣列。第24和/或第25像素行可以被指定為圖像的中心行。確定包括主數(shù)字行的中間像素行的位置。然后計(jì)算包括主數(shù)字行的中間像素行和圖像中心行(或若干中心行)之間的偏離,以像素行為單位。這種偏離可以是正的或負(fù)的,取決于偏離的方向。在將偏離量相應(yīng)地應(yīng)用于確定的數(shù)碼之前,通過將偏離量除以連續(xù)數(shù)碼之間的距離(以像素行為單位),將偏離量轉(zhuǎn)換為分?jǐn)?shù)。因此,該偏離允許確定數(shù)碼相對(duì)于傳感器的旋轉(zhuǎn)位置。如果主數(shù)字行的中心像素行與圖像的中心像素行相同,則偏離量為零,并且位置等于主數(shù)字行號(hào)。然而,由于輔助裝置2中和/或注射裝置1中的制造公差以及由于使用者施加在數(shù)碼套筒上的壓力,在大多數(shù)碼情況下可能存在一些偏離。
印制在數(shù)碼套筒上的連續(xù)數(shù)碼之間的距離是恒定的,因?yàn)閿?shù)碼表示與注射裝置機(jī)構(gòu)的離散機(jī)械運(yùn)動(dòng)相關(guān)的劑量。因此,所捕獲圖像中連續(xù)數(shù)碼之間的距離(以像素行為單位)也應(yīng)該是恒定的。數(shù)碼的預(yù)期高度和數(shù)碼之間的間隔被預(yù)編程到算法中。
作為一個(gè)示例,每個(gè)數(shù)碼的預(yù)期高度可以是22個(gè)像素,數(shù)碼之間的間隔的預(yù)期高度可以是6個(gè)像素。因此,連續(xù)數(shù)碼的中心像素行之間的距離將是28個(gè)像素。
繼續(xù)該示例,如果從圖像的頂部到底部對(duì)像素行順序地編號(hào),則對(duì)加權(quán)函數(shù)的應(yīng)用可以在數(shù)學(xué)上被定義為:
位置=主數(shù)字行號(hào)+[2×偏離量/(數(shù)碼的預(yù)期高度+間隔的預(yù)期高度)]
其中,偏離量=中心圖像行編號(hào)-主數(shù)字行中心行編號(hào)
因此,如果主數(shù)字行在圖像的上半部分中,則偏離是正的,而如果主數(shù)字行在圖像的下半部分中,則偏離是負(fù)的。例如,如果主數(shù)字行中顯示的數(shù)碼為“6”并且偏離量為零,則所計(jì)算的位置將是:
位置=6+[2×0/(28)]=6
因此,將如預(yù)期那樣返回“6”的結(jié)果。
考慮75個(gè)單位被撥選到注射裝置1中的另一個(gè)示例,如果頂部數(shù)碼“74”被選擇為主數(shù)字行,并且根據(jù)上述等式存在11個(gè)像素行的正偏離,并同樣假定組合起來的數(shù)碼/間隔高度為28個(gè)像素,則所計(jì)算出的位置將是:
位置=74+[2×11/(28)]=74.79
然后將該結(jié)果四舍五入為最接近的整數(shù),以如預(yù)期那樣給出“75”的位置確定。
在應(yīng)用最終后處理部分之后,處理器24使得該結(jié)果顯示在輔助裝置2的顯示單元21上。如前所述,由于空間限制,不是每個(gè)數(shù)碼都可以印制在數(shù)碼套筒上。在一些實(shí)施例中,只有偶數(shù)印制在數(shù)碼套筒上。上述位置確定步驟允許輔助裝置2顯示劑量值,即使這些值可能沒有出現(xiàn)在數(shù)碼套筒上。因此,向輔助裝置2的用戶提供所撥選劑量的更清楚的指示。
如果用戶正慢慢地?fù)苋雱┝?即,慢慢旋轉(zhuǎn)劑量旋鈕12),則上述位置四舍五入可能導(dǎo)致在兩個(gè)數(shù)碼之間顯示閃爍。為了防止這種情況,后處理步驟可以包含滯后規(guī)則,使得所顯示的數(shù)碼一定程度上取決于先前顯示的數(shù)碼。該滯后計(jì)算可以是在顯示結(jié)果之前在算法中執(zhí)行的最后步驟。
本領(lǐng)域技術(shù)人員將理解,上述加權(quán)函數(shù)和位置確定僅表示一個(gè)示例,可以使用許多其他計(jì)算方法來獲得相同的結(jié)果。本領(lǐng)域技術(shù)人員還將理解,可以修改和改進(jìn)上述數(shù)學(xué)計(jì)算以縮短計(jì)算時(shí)間。因此,加權(quán)函數(shù)碼的精確形式不是必要的。
該算法還可以被配置為對(duì)圖像數(shù)碼執(zhí)行其他類型的操縱,例如改變一個(gè)以上數(shù)字的大小,將數(shù)碼剪切到定義的像素區(qū)域,以及將以斜體字印制的數(shù)碼剪切成直立位置。這些操作可以在與存儲(chǔ)的模板進(jìn)行模式匹配比較之前執(zhí)行。作為替代,這些操作可以在二值化過程之前在對(duì)所所捕獲圖像進(jìn)行圖像預(yù)處理步驟中執(zhí)行。還可以執(zhí)行附加的陰影、失真和曝光校正。