跳至內容
測試伺服器
開發伺服器

OCR vTool#

OCR vTool 具備光學字元辨識功能,讓您能夠讀取圖片中的文字(即單詞)。

光學字元辨識的主要目標,是辨識圖像中的物件,或讀取物件上的特定資訊,例如最佳食用期限、序號或產品標籤。

OCR vTool 透過「Image」輸入腳位接收影像,並透過「Texts」與「Regions」輸出腳位輸出文字及所識別單字的分段區域。

如欲購買「OCR vTool 」的授權,請造訪Basler 網站。

OCR vTool

運作原理#

在指定的感興趣區域內,OCR vTool 會將文字分割成單詞和個別字元,並對每個字元進行分類,即辨識其為字母、數字或特殊字元(例如標點符號)。

儘管名稱如此,OCR vTool 並不會讀取單一字元,而是讀取單詞。單詞的最小長度為 2 個字元。

如果您的文字橫跨多行,每一行至少會被視為一個單詞。如果同一行內的單詞之間有較大的空格,演算法會將這些單詞視為獨立的實體。

一個 4 步驟的精靈將引導您完成 vTool 的設定。它會即時回報您的設定所產生的效果。請參閱以下各節,以進一步了解各個步驟的詳情。

預覽區#

預覽區是一個實用的工具,可讓您立即查看在 vTool 設定中進行的任何變更。

預覽區域上方有兩個按鈕,一個是用來切換是否顯示分割區域及辨識字元周圍的邊界框,另一個則是用來突出顯示區域。

預覽區域顯示邊界框、已識別字元及區域高亮顯示

顯示邊界框與已識別的字元#

此按鈕可讓您顯示/隱藏分割區域周圍的邊界框:

顯示/隱藏邊界框及已辨識的字元

在每個被辨識的字元上方,都會顯示辨識結果。這讓您可以快速確認辨識結果是否正確。

預覽區域(區域高亮顯示功能已關閉)

突出顯示地區#

此按鈕可讓您標示出已分割的區域:

「突出顯示區域」圖示

這樣一來,便更容易判斷一個字元是已被完全辨識,還是僅被部分辨識。這對於微調分割設定(例如對比度)非常有幫助。

預覽區域,其中邊界框與已辨識字元均被隱藏

步驟 1:初始設定#

首先,請載入適當的教學影像,來源可以是磁碟中的檔案,或是透過即時攝影機擷取的影像。該教學影像必須在以下方面能代表實際的檢測影像:

  • 文字的位置與方向
  • 字元大小(若您是手動指定字元尺寸)
    在自動模式下,字元大小可隨機變化。

Basler 建議在設定「OCR vTool 」時,使用多張不同的樣本影像。如此一來,您便能更準確地評估文字的影像品質,並檢查分割結果以及候選區塊的信心水準。這些樣本影像最好能涵蓋您預期在應用程式中會出現的完整字元集。

矩形設定#

載入圖片後,圖片中會顯示一個矩形。此矩形用來標示文字所在的區域。您可以透過拖曳矩形的控制點,或直接在預覽區域左側的輸入框中手動輸入數值,來調整其位置、方向及大小。

該區域必須僅包含您要讀取的文字,因為 OCR 演算法無法區分字元與不需要的影像元素(雜訊)或噪點。若無法完全避免雜訊或噪點,您應採取適當措施,例如新增後處理步驟,或使用其他 OCR 輔助工具來定義多個文字區域。此外,請勿將矩形過於緊密地套在文字周圍,因為文字在不同影像間可能會朝各個方向略微偏移。

在定義區域時,請注意貫穿區域矩形的箭頭。這表示閱讀方向。朝其他方向排列的文字將無法被讀取。

為了讓「OCR vTool 」能穩定運作,您要處理的所有影像中的文字方向應大致相同。輕微的偏差(幾度)是可以接受的。Basler 建議將相機定位在能從左至右讀取文字的位置。若您的文字方向不同(但保持恆定),請據此調整區域矩形的位置,同時確保箭頭指向文字的閱讀方向。

如果文字的位置變化很大,且文字周圍的背景空間有限,您應將圖片對齊作為預處理步驟,以確保文字的方向和位置保持穩定。

這是一張範例圖片,其中矩形已稍微旋轉,以配合文字的排列。

OCR Basic vTool - 矩形設定範例

字型設定#

選擇一種字型及其對應的字元集,以配合圖片中的文字。通常,這取決於應用程式或印刷流程的規格。

下表列出了可用的字型,並展示了它們的外觀範例:

字型名稱 描述 外觀
標準混合型 常見於文件中的各種字型,包括帶有或不帶有襯線的字型 標準混合字型
標準無襯線字體 各種無襯線的辦公室字型,常被用於文件中 標準無襯線字型
OCR-A 根據 OCR-A 標準的定義 OCR-A 字型
OCR-B 根據 OCR-B 標準的定義 OCR-B 字型
圓點印花 由點陣印表機產出的各種點陣字型 點陣字型
製藥業 製藥業中使用的無襯線字體 Pharma Font
SEMI SEMI 標準中所定義的、用於半導體產業的字型 SEMI 字型
手寫 手寫數字 手寫字體

根據字型不同,可用的字元集也各異。一個字元集可能包含以下子集中的部分或全部:

  • 大寫字母
  • 小寫字母
  • 數字
  • 特殊字元
    可識別的特殊字元會因字型而異。

下表列出了每種字型所能辨識的字元:

字型名稱 大寫字母 小寫字母 數字 特殊字元
標準混合型 是 是 是 - = + < > . # $ % & ( ) @ * e £ ¥
標準無襯線字體 是 是 是 - / + . $ % * e £ ¥
OCR-A 是 是 是 - ? ! / { } = + < > . # $ % & ( ) @ * e £ ¥
OCR-B 是 是 是 - ? ! / { } = + < > . # $ % & ( ) @ * e £ ¥
圓點印花 是 否 是 - / . * :
製藥業 是 否 是 - / . ( ) :
SEMI 是 否 是 - 。
手寫 否 否 是 不適用

拒絕類別#

「拒絕類別」可讓您處理結果不明確的情況,也就是 vTool 無法辨識的字元。這些字元會被歸類為「被拒絕的字元」,並根據其在「pylon Viewer 」中的出現位置,以不同的問號圖示來表示。

此圖示用於設定對話方塊中:

「設定」對話方塊中「拒絕」類別的問號圖示

此圖示用於釘選資料檢視中:

「Pin 資料檢視」中「拒絕」類別的問號圖示

使用「拒收類別」來更精準地評估結果的信心程度。除了反映字元與訓練字體的契合度外,該信心程度還反映了字元的列印或影像品質。

若信心值最高的結果屬於「拒絕」類別,則該影像區塊無法明確地歸類為某個字元。這可能是由於影像模糊或字元印刷不完整所致。若此情況頻繁發生,則表示影像品質不佳。 在這種情況下,您可以嘗試改善影像品質,或在後處理步驟中將此類字元標記為無法讀取。採用這種方法較為穩妥,因為它允許您改為選擇一個信心值較低的字元。

如果您的分類結果經常出現模稜兩可的情況,您可以考慮使用正規表達式來進行詞彙修正。

若您希望始終返回一個字元,請停用「允許拒絕」選項。

要找出最適合您的設定,請嘗試啟用和停用該選項,並觀察第 4 步驟中的候選清單和辨識出的單字有何差異。

步驟 2:字元尺寸#

字元的分割是基於對字元尺寸(即寬度、高度和筆畫寬度)的某些假設。OCR vTool 支援一種自動演算法,可直接從影像資料中推導出這些尺寸。此外,您也可以手動指定所需的尺寸範圍。字元高度在 20 至 30 像素之間是合適的尺寸範圍,但您也可以指定更大的字元尺寸。低於 20 像素的字元將無法再被可靠地辨識。

資訊

如果文字中的字元大小不一,或是不同圖片中的字元大小各異,請使用自動模式。這樣一來,無論字元大小如何,都能被正確讀取。

手動指定尺寸的典型應用情境,是當自動模式無法在分割過程中排除雜訊時。在這種情況下,手動指定尺寸可望移除不需要的影像元素。

步驟 3:區段設定#

對比#

圖像中字元的分割是基於閾值機制,並以指定的最小對比度值作為閾值。請調整最小對比度,並在預覽區中觀察分割結果。若要獲得更佳的可視化效果,請使用預覽區上方的切換按鈕啟用區域分割視圖。

請選擇一個最低對比度設定,確保所有字元都能被正確分割並讀取。請勿將最低對比度設定得太低,否則可能會導致誤判不必要的雜訊。

現有的字型均經過訓練,僅適用於淺色背景上的深色字元。若此「極性」設定符合您的應用需求,請選用「深色文字搭配淺色背景」選項。

如果您的應用程式涉及深色背景上的淺色字元,則必須使用「淺色於深色」選項。在此情況下,系統會在預處理步驟中將影像進行內部反轉。

若您的應用程式中的文字比背景淺或比背景深,請選擇「兩者皆可」選項。不過,OCR vTool 無法讀取極性混雜的文字。同一文字區域內的文字極性必須一致。

字距#

字元還可能包含點、逗號、連字號等特殊符號。其中大部分是標點符號。然而,連字號和等號則被視為分隔符號。

在某些應用情境中,您可能需要讀取這些字元。若屬此情況,請選擇包含特殊字元的字元集,並啟用「標點符號」和「分隔符號」選項。

在其他應用情境中,您可能希望讀取不含標點符號或分隔符號的文字,例如在讀取日期時,您僅需讀取數字。因此,請選擇「僅數字」字元集,並停用「標點符號」和「分隔符號」選項。

在間距方面,您還必須考慮個別字元之間的距離。要成功將文字分割成獨立區域,字元之間必須有足夠的間距。然而,實際上字元往往排列得太過緊密,導致難以區分。若您發現應用程式中出現這種情況,請啟用「分離相鄰字元」選項。

圓點印花#

「點陣字體」與其他所有字體類型不同,其字元完全由獨立的點構成,而非連續的筆畫。為了能夠讀取點陣文字,OCR vTool 提供了專用的分割與分類選項。若要啟用這些選項,您必須在精靈的第 1 步驟中選取「點陣字體」。字元間有足夠大間距且採用緊湊點陣排版方式的標準點陣字元,可立即被讀取。

若遇到點陣印刷文字,且字元之間的間距與單一字元內各點之間的間距相近或更小,Basler 建議啟用「緊密字元間距」選項。

要成功進行分段,還必須考慮字元中各點之間的間距。在緊湊的點陣列印方案中,各點之間的間距相當緊密,且間距大小保持一致。此類字元可透過啟用「自動」選項(此為預設設定)來順利讀取。在此情況下,系統會採用內建的自動模式。

然而,如果某些間隙比其他間隙更大,單一字元的分割可能會失敗,導致該字元被分割成多個區域。在這種情況下,可透過「最大點間隙」選項手動指定點與點之間允許的最大間隙,這可能會有所幫助。不過,這樣做可能會增加處理時間。

步驟 4:結果#

精靈的最後一步會顯示一個表格,其中列出單字中每個字元位置的潛在候選字元,並附有置信度值。若您點選表格中的某個項目,預覽區中對應的邊界框便會被選取,反之亦然。

展開下拉式清單,即可顯示所有候選項目。這些項目是按照可信度由高至低排序的。這讓您能夠評估角色分類的整體可信度,並向您展示潛在的替代選項。

資訊

信心值是一個介於 0 到 1 之間的數值,用以顯示字元辨識的準確程度。分類結果非常好的情況下,信心值通常會高於 0.99。若信心值低於 0.9 或 0.8,則可能表示該分類結果不可靠。

表格下方是「已識別文字」區域。此處會以簡潔的形式顯示已識別的完整文字內容。

正規表達式#

OCR 常面臨的一大挑戰,在於數字 0、大寫字母 O 和小寫字母 o 之間的辨識困難。像 OCR-A 或 SEMI 這樣的專用 OCR 字型,其設計初衷就是為了區分 0 和 O,但其他字型則未必如此。您可以透過正規表達式來解決這個問題。

正規表達式可讓您進行詞彙修正。所謂詞彙修正,是指不僅僅採用信心度最高的候選詞,還會將其他候選詞一併納入考量,以嘗試找出符合正規表達式的候選詞組合。

要執行此操作,請在結果表格上方的輸入欄位中,輸入與文字中單字數量相等的正規表達式。請以單一空格分隔各個正規表達式。

範例:假設您想讀取最佳食用日期,例如「03/2026」。主要目的是讀取日期或時間中的數字。同時假設還需讀取特殊字元或字母。 在這種情況下,您應選擇一個包含數字、字母和特殊字元的字元集。透過使用正規表達式「(0[1-9]|10|11|12)/202[4-9]」,您不僅能讀取斜線,同時還能維持 MM/YYYY 的日期結構。

資訊

正規表達式無法透過增減字元來調整單字長度。正規表達式必須符合單字長度,且所有圖片中的單字長度都必須保持一致。

對長單字進行拼寫修正可能會增加處理時間。

設定 vTool#

要設定 OCR Basic vTool:

  1. 在vTool「設定」區域的「配方管理」窗格中,按一下「開啟設定」或雙擊該 vTool。
    此時將開啟「OCR 基本設定」對話方塊。

  2. 擷取或開啟一張圖片。
    請使用 單發 按鈕以擷取即時影像,或點擊 開啟圖片 按鈕以開啟現有圖片。
    圖片一經載入,文字識別程序便會立即開始,結果將顯示在預覽區中。
    視窗底部會顯示已辨識的字元,各詞之間以空格分隔。由於此處空間有限,您可能無法看到完整的文字。這僅是顯示已辨識字元的數量。完整的文字將在精靈的第 4 步驟中顯示。
    如需更多資訊,請參閱 步驟 1:初始設定.
    OCR vTool 設定 - 步驟 1

  3. 在「矩形設定」區域中,請手動輸入數值來定義文字區域。
    此外,您也可以使用預覽區域中區域矩形的控制點,來移動、調整大小及旋轉該矩形,使其符合您想要讀取文字的影像部分。
    矩形內的箭頭必須指向文字的閱讀方向。

  4. 在「字型設定」區塊中,請設定以下選項:

    • 字型
    • 字集
    • 拒絕類別
  5. 按一下 下一頁.
    該流程的第 2 步 OCR 基礎 對話方塊隨即開啟。
    如需更多資訊,請參閱 步驟 2:字元尺寸.
    vTool 設定 - 第 2 步

  6. 請決定是否保留預設的自動模式,以啟用字元尺寸的偵測功能。若要手動指定尺寸,請取消勾選「自動」選項,並輸入所需的字元寬度、高度及筆畫寬度範圍。

  7. 按一下 下一頁.
    第 3 步 OCR 基礎 對話方塊隨即開啟。
    如需更多資訊,請參閱 步驟 3:區段設定.
    vTool 設定 - 第 3 步

  8. 請根據您的應用需求調整對比度和極性。

  9. 請根據您的應用需求選擇間距選項。

  10. 若您已選取「Dot Print」字型,請依需求設定相關選項。

  11. 按一下 下一頁.
    第 4 步驟的 OCR 基礎 對話方塊隨即開啟。
    如需更多資訊,請參閱 步驟 4:結果.
    vTool 設定 - 第 4 步

  12. 請在分類表和文字欄位中檢視字元辨識的結果。
    在表格中,您可以展開每個位置以檢視其他分類結果。您將看到已分類的字元及其置信度。
    若已啟用詳細檢視選項,您可以在表格中選取一個字元,預覽區域中對應字元的邊界框便會被標示出來;反之,您也可以點擊預覽區域中的字元區域,以在表格中查看對應的字元。

  13. 如有需要,請輸入正規表達式以進行單字修正。
    每個單字請輸入一個正規表達式。各表達式之間請以單一空格分隔。

  14. 請檢查「已識別文字」欄位中顯示的詞彙。

  15. 按一下「完成」以結束設定程序。

您可以在引腳資料檢視中查看 OCR Basic vTool 的結果。在此處,您可以選擇要顯示哪些輸出。

Inputs#

Image#

可直接從「相機」vTool 或任何能輸出影像的 vTool(例如「Image Format Converter 」vTool)接收影像。

  • 資料類型:圖片
  • 影像格式:8 位元至 16 位元的單色或彩色影像。彩色影像會在內部轉換為單色影像。

Outputs#

Texts#

回傳已識別的文字字串。

  • 資料類型:字串陣列

Regions#

回傳已識別文字的區域。

  • 資料類型:區域陣列

典型前置元件#