首頁 >科技週邊 >人工智慧 >使用基於視覺的文本識別的場景文本識別

使用基於視覺的文本識別的場景文本識別

Lisa Kudrow
Lisa Kudrow原創
2025-03-14 09:45:09418瀏覽

由於現實世界中各種各樣的文字出現,場景文本識別(STR)仍然是研究人員的重大挑戰。例如,識別文檔上的文本不同於識別T恤上的文本。在ECCV 2022上引入的場景文本識別(MGP-STR)模型的多粒性預測提供了一種開創性的方法。 MGP-STR將視覺變壓器(VIT)的魯棒性與創新的多晶格語言預測相結合,顯著提高了其處理複雜的STR任務的能力。這導致了更高的準確性和在各種現實世界中挑戰的各種情況,提供了一個簡單而強大的解決方案。

關鍵學習點

  • 掌握MGP-STR的結構和組件,包括視覺變壓器(VIT)。
  • 了解多粒性預測如何提高場景文本識別的準確性和適應性。
  • 探索MGP-STR在現實世界光學特徵識別(OCR)任務中的實際應用。
  • 獲得實施和將MGP-STR與Pytorch一起實施的實用經驗,以進行場景文本識別。

*本文是***數據科學博客馬拉鬆的一部分。

目錄

  • 什麼是MGP-STR?
  • MGP-STR的應用和用例
  • MGP-STR入門
    • 步驟1:導入依賴關係
    • 步驟2:加載基本模型
    • 步驟3:來自圖像的文本預測的輔助功能
  • 結論
  • 常見問題

什麼是MGP-STR?

MGP-STR是一種基於視覺的STR模型,而無需單獨的語言模型。它使用多粒性預測(MGP)策略將語言信息直接集成到其體系結構中。這種隱式方法允許MGP-STR勝過純粹的視覺模型和語言增強方法,從而實現最新的STR結果。

該體系結構由兩個關鍵組成部分組成:

  • 視覺變壓器(VIT)
  • A³模塊

通過簡單而有效的策略,在字符,子詞和單詞級別上進行預測的融合可確保MGP-STR捕獲視覺和語言細節。

使用基於視覺的文本識別的場景文本識別

MGP-STR的應用和用例

MGP-STR主要用於文本圖像上的OCR任務。它隱式結合語言知識的獨特能力使其在不同文本和扭曲文本的現實情況中特別有用。示例包括:

  • 從自然場景中讀取文字(街頭標誌,廣告牌)。
  • 從掃描的表格和文檔(手寫或打印)中提取文本。
  • 分析工業環境中的文本(產品標籤,條形碼)。
  • 增強現實(AR)應用中的文本翻譯/轉錄。
  • 從掃描文檔或印刷材料照片中提取信息。
  • 協助可訪問性解決方案(屏幕讀取器)。

使用基於視覺的文本識別的場景文本識別

關鍵特徵和好處

  • 無需獨立語言模型
  • 多粒性預測
  • 最先進的表現
  • 方便使用的

MGP-STR入門

本節將在示例圖像上使用MGP-STR進行場景文本識別。您需要Pytorch,Transformers庫和依賴項(PIL,請求)。

步驟1:導入必要的庫

導入所需的庫:用於模型處理的變壓器,用於圖像操縱的PIL以及獲取在線圖像的請求。

 <code>from transformers import MgpstrProcessor, MgpstrForSceneTextRecognition import requests import base64 from io import BytesIO from PIL import Image from IPython.display import display, Image as IPImage</code>

步驟2:加載預訓練的模型

通過擁抱面部變壓器來加載MGP-STR基本型號及其處理器。

 <code>processor = MgpstrProcessor.from_pretrained('alibaba-damo/mgp-str-base') model = MgpstrForSceneTextRecognition.from_pretrained('alibaba-damo/mgp-str-base')</code>

步驟3:圖像處理和文本預測功能

創建一個函數來輸入圖像URL,使用MGP-STR處理它們,然後返回文本預測。此處理圖像轉換,base64編碼和文本解碼。

 <code>def predict(url): image = Image.open(requests.get(url, stream=True).raw).convert("RGB") pixel_values = processor(images=image, return_tensors="pt").pixel_values outputs = model(pixel_values) generated_text = processor.batch_decode(outputs.logits)['generated_text'] buffered = BytesIO() image.save(buffered, format="PNG") image_base64 = base64.b64encode(buffered.getvalue()).decode("utf-8") display(IPImage(data=base64.b64decode(image_base64))) print("\n\n") return generated_text</code>

示例(使用原始文本的圖像URL):

這裡省略了帶有圖像URL和預測的示例以節省空間,但是它們將遵循與原始文本相同的結構,以不同的圖像URL調用predict功能。

從圖像示例可以明顯看出該模型的準確性。它的效率值得注意,在使用低RAM使用情況的CPU上運行。這使其很容易適應針對特定領域的任務的微調。

使用基於視覺的文本識別的場景文本識別

結論

MGP-STR有效地結合了願景和語言理解。其創新的多晶型預測為不帶外部語言模型的情況提供了一種全面的方法,提高準確性和適應性。它簡單而準確的體系結構使其成為OCR和STR中研究人員和開發人員的寶貴工具。它的開源性質促進了該領域的進一步進步。

資源

  • Google合作:[鏈接](替換為實際鏈接)
  • arxiv:[link](替換為實際鏈接)
  • github:[link](替換為實際鏈接)
  • 擁抱面:[鏈接](替換為實際鏈接)

關鍵點

  • MGP-STR在沒有單獨的語言模型的情況下整合視覺和語言。
  • 多跨性預測增強了其在各種挑戰中的表現。
  • MGP-STR通過簡單的體系結構實現最新的結果。
  • 它很容易適應各種OCR任務。

常見問題

  • Q1:什麼是MGP-STR,它與傳統STR模型有何不同? A1: MGP-STR使用MGP將語言預測直接整合到基於視覺的框架中,從而消除了對傳統方法中單獨的語言模型的需求。

  • Q2:用於培訓MGP-STR的哪些數據集? A2:基本模型在MJSynth和Synthtext上進行了培訓。

  • Q3:MGP-STR可以將變形或低質量的文本圖像處理嗎? A3:是的,它的多粒性預測機制使其可以應對此類挑戰。

  • 問題4:MGP-STR適合英語以外的其他語言? A4:雖然對英語進行了優化,但可以通過適當的培訓數據適應其他語言。

  • Q5:A³模塊如何促進MGP-STR的性能? A5: A³模塊可以完善VIT輸出,實現子詞級預測並嵌入語言信息。

注意:圖像佔位符與原始輸入相同。切記用實際鏈接替換包圍的鏈接。

以上是使用基於視覺的文本識別的場景文本識別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn