OCR 任何AI
拖放 或 點擊選擇
私密與安全
一切都在您的瀏覽器中進行。您的檔案絕不接觸我們的伺服器。
極速
無需上傳,無需等待。在您拖放檔案的瞬間即可轉換。
完全免費
無需帳戶。無隱藏費用。無檔案大小限制花招。
光學字元辨識(OCR)將文字影像—掃描、智慧型手機相片、PDF—轉換為機器可讀的字串,並且越來越多地轉換為 結構化資料。現代 OCR 是一個清理影像、尋找文字、讀取它並匯出豐富元數據的流程, 以便下游系統可以搜尋、索引或擷取欄位。兩個廣泛使用的輸出標準是 hOCR,一種用於文字和版面的 HTML 微格式,以及 ALTO XML,一種以圖書館/檔案館為導向的綱要;兩者都保留位置、閱讀順序和其他版面提示,並受到 像 Tesseract這樣的熱門引擎支援。
流程快速導覽
預處理。 OCR 品質始於影像清理:灰階轉換、去噪、 二值化(二值化)和歪斜校正。標準的 OpenCV 教學涵蓋了全域、 自適應 和 Otsu 二值化—適用於光線不均或 雙峰直方圖的文件的必備步驟。當頁面內的光線變化時 (想想手機快照),自適應方法通常優於單一全域閾值;Otsu 會透過分析直方圖自動選擇一個閾值。傾斜校正同樣重要:基於霍夫變換的 歪斜校正(霍夫線變換)與 Otsu 二值化結合,是生產預處理流程中常見且有效的方案。
偵測與辨識。 OCR 通常分為文字偵測(文字在哪裡 ?)和文字辨識(它說什麼?)。在自然場景和許多掃描中,完全卷積 偵測器,如 EAST ,可以有效地預測字或行級的四邊形,而無需繁重的提案階段,並且已在 常見的工具套件中實現(例如, OpenCV 的文字偵測教學)。在複雜的頁面(報紙、表格、書籍)上,行/區域的分割和閱讀順序推斷很重要:Kraken 實現了傳統的區域/行分割和神經基準線分割,並明確支援 不同的腳本和方向(LTR/RTL/垂直)。
辨識模型。 經典的開源主力 Tesseract (由 Google 開源,源於 HP)從字元分類器演變為基於 LSTM 的序列 辨識器,可以從 CLI 發出可搜尋的 PDF、 hOCR/ALTO 相容輸出等。現代辨識器依賴於序列模型,而無需預先分割的字元。 連接主義時間分類 (CTC) 仍然是基礎,它學習輸入特徵序列和輸出標籤字串之間的對齊;它廣泛 用於手寫和場景文字流程。
在過去幾年中,Transformer 重塑了 OCR。 TrOCR 使用視覺 Transformer 編碼器和文字 Transformer 解碼器,在大型合成語料庫上進行訓練,然後 在真實資料上進行微調,在印刷、手寫和場景文字基準測試中表現出色(另請參閱 Hugging Face 文件)。與此同時,一些系統繞過 OCR 進行下游理解: Donut(文件理解 Transformer) 是一種無 OCR 的編碼器-解碼器,可直接從文件 影像輸出結構化答案(如鍵值 JSON)(儲存庫, 模型卡),避免了在單獨的 OCR 步驟為 IE 系統提供資料時出現錯誤累積。
引擎和函式庫
如果您想要跨多種腳本的「開箱即用」文字閱讀, EasyOCR 提供了一個包含 80 多種語言模型的簡單 API,可傳回框、文字和可信度—方便用於原型和 非拉丁腳本。對於歷史文獻, Kraken 以基準線分割和腳本感知閱讀順序而著稱;對於靈活的行級訓練, Calamari 建立在 Ocropy 的基礎上(Ocropy),帶有(多)LSTM+CTC 辨識器和用於微調自訂模型的 CLI。
資料集和基準
泛化取決於資料。對於手寫, IAM 手寫資料庫 為訓練和評估提供了不同作者的英文句子;它是 行和字辨識的長期參考集。對於場景文字, COCO-Text 在 MS-COCO 上分層了廣泛的註釋,帶有印刷/手寫、清晰/不清晰、腳本和 完整轉錄的標籤(另請參閱原始 專案頁面)。該領域也嚴重依賴合成預訓練: 野外合成文字 將文字渲染到具有逼真幾何和光線的相片中,為預訓練 偵測器和辨識器提供大量資料(參考 程式碼和資料)。
ICDAR 的穩健閱讀 下的競賽使評估保持務實。最近的任務強調端對端偵測/閱讀,並包括將字 連結成片語,官方程式碼報告 精確率/召回率/F-score、交並比 (IoU) 和字元級編輯距離度量—反映了從業人員應該追蹤的內容。
輸出格式和下游使用
OCR 很少以純文字結尾。檔案館和數位圖書館更喜歡 ALTO XML ,因為它除了內容之外還編碼了實體版面(帶座標的區塊/行/字),並且它與 METS 打包配合得很好。 hOCR 微格式則相反,它使用 ocr_line 和 ocrx_word 等類別將相同的思想嵌入到 HTML/CSS 中,從而可以輕鬆地使用 Web 工具進行顯示、編輯和轉換。Tesseract 兩者都支援—例如, 直接從 CLI 產生 hOCR 或可搜尋的 PDF(PDF 輸出指南);像 pytesseract 這樣的 Python 包裝函式增加了便利性。當儲存庫具有固定的接收 標準時,存在用於在 hOCR 和 ALTO 之間進行轉換的轉換器—請參閱此精選清單 OCR 檔案格式工具。
實用指南
- 從資料和清潔度開始。 如果您的影像是手機相片或品質參差不齊的掃描件, 請在進行任何模型調整之前投資於二值化(自適應和 Otsu)和歪斜校正(Hough)。您通常會從強大的預處理方案中獲益更多,而不是更換 辨識器。
- 選擇正確的偵測器。 對於具有規則欄的掃描頁面,頁面分割器(區域 → 行)可能就足夠了;對於自然影像,像 EAST 這樣的單次偵測器是強大的基準,可以插入許多工具套件(OpenCV 範例)。
- 選擇與您的文字相符的辨識器。 對於印刷體拉丁文, Tesseract (LSTM/OEM) 堅固而快速;對於多腳本或快速原型, EasyOCR 是高效的;對於手寫或歷史字體,請考慮 Kraken 或 Calamari 並計劃进行微調。如果您需要與文件理解(鍵值擷取、VQA)緊密耦合, 請在您的綱要上評估 TrOCR (OCR) 與 Donut (無 OCR)—Donut 可能會移除整個整合步驟。
- 衡量重要指標。 對於端對端系統,報告偵測 F-score 和辨識 CER/WER(均基於 Levenshtein 編輯距離;請參閱 CTC);對於版面繁重的任務,請追蹤 IoU/緊密度和字元級歸一化編輯距離,如 ICDAR RRC 評估工具套件中所示。
- 匯出豐富輸出。 首選 hOCR /ALTO (或兩者),以便保留座標和閱讀順序—這對於搜尋結果高亮、表格/欄位 擷取和來源至關重要。Tesseract 的 CLI 和 pytesseract 使其成為一行程式碼即可完成的操作。
展望未來
最強勁的趨勢是融合:偵測、辨識、語言模型,甚至特定於任務的解碼 正在合併到統一的 Transformer 堆疊中。在 大型合成語料庫 上進行預訓練仍然是一個力量倍增器。無 OCR 模型將在目標是結構化輸出 而不是逐字記錄的任何地方積極競爭。也期待混合部署:一個輕量級偵測器加上一個 TrOCR 風格的 辨識器用於長格式文字,以及一個 Donut 風格的模型用於表格和收據。
進一步閱讀和工具
Tesseract (GitHub) · Tesseract 文件 · hOCR 規範 · ALTO 背景 · EAST 偵測器 · OpenCV 文字偵測 · TrOCR · Donut · COCO-Text · SynthText · Kraken · Calamari OCR · ICDAR RRC · pytesseract · IAM 手寫 · OCR 檔案格式工具 · EasyOCR
常見問題
什麼是OCR?
光學字符識別(OCR)是一種技術,用於將不同類型的文檔,如掃描的紙質文檔、PDF文件或由數字相機拍攝的圖像,轉換為可以編輯和可搜索的數據。
OCR如何工作?
OCR通過掃描輸入的圖像或文檔,將圖像分割成單個字符,然後將每個字符與使用模式識別或特徵識別的字符形狀數據庫進行比較。
OCR有些什麼實際應用?
OCR用於各種行業和應用,包括數字化打印文件、啟用文字轉語音服務、自動化數據錄入過程,以及幫助視障用戶更好地與文字互動。
OCR總是100%準確的嗎?
儘管OCR技術已取得了巨大的進步,但它並不是絕對可靠的。準確性可能會因原始文檔的質量和使用的OCR軟件的具體情況而異。
OCR可以識別手寫字嗎?
儘管OCR主要用於識別印刷文字,但一些先進的OCR系統也能識別清晰、一致的手寫。然而,通常由於個人寫作風格的多樣性,手寫識別的準確度較低。
OCR可以處理多種語言嗎?
是的,許多OCR軟件可以識別多種語言。但是,需要確保你使用的軟件支持特定的語言。
OCR和ICR有何區別?
OCR是光學字符識別的縮寫,用於識別印刷的文字,而ICR,或稱為智能字符識別,則較為先進,用於識別手寫的文字。
OCR能處理所有字體和文字大小嗎?
OCR在處理清晰易讀的字體和標準文字大小上效果最佳。雖然它能識別各種字體和大小,但在處理不常見的字體或極小的文字大小時,其準確性可能會降低。
OCR技術有哪些限制?
OCR在處理低分辨率的文件、複雜的字體、打印質量差的文字、手寫,以及字和背景迎合度不足的文件時可能出問題。另外,儘管它可以識別多種語言,但可能無法完美覆蓋所有語言。
OCR可以掃描彩色文字或彩色背景嗎?
是的,OCR可以掃瞄彩色文字和背景,雖然它對高對比度的顏色組合,如黑色文字和白色背景效果更好。如果文字和背景的顏色 對比度不足,其準確性可能會降低。
什麼是 AI 格式?
Adobe Illustrator CS2
APNG(動畫可攜式網路圖形)是一種檔案格式,它擴充了廣泛使用的 PNG(可攜式網路圖形)格式的功能,以支援動畫。它被建立出來,目的是為了提供一種更有效率且更易於取得的替代方案,用於在網路上傳遞動畫影像,取代 GIF(圖形交換格式)。APNG 保留了 PNG 的無失真壓縮和透明度功能,同時引入了儲存多個畫格的能力,允許建立流暢、高品質的動畫。
APNG 格式建立在現有的 PNG 結構之上,引入了專門為動畫設計的新區塊類型。APNG 中使用的主要區塊是 `acTL`(動畫控制)區塊和 `fcTL`(畫格控制)區塊。`acTL` 區塊置於檔案的開頭,包含有關動畫整體的資訊,例如畫格數和動畫應循環播放的次數。`fcTL` 區塊出現在每個畫格之前,並提供特定於畫格的詳細資訊,包括畫格的尺寸、位置和延遲時間。
APNG 的主要優點之一是它與標準 PNG 檢視器向後相容。APNG 檔案以與一般 PNG 檔案相同的簽章和關鍵區塊開頭,允許它在不支援 APNG 的應用程式中顯示為靜態影像。這確保了使用舊版瀏覽器或影像檢視器的使用者仍然可以檢視動畫的第一個畫格,在各種平台上維持相容性。
APNG 中的動畫處理基於一系列畫格,每個畫格由一個獨立的影像表示。第一個畫格通常是一個完全渲染的影像,而後續的畫格可以是完整畫格或僅包含與前一個畫格變更的部分畫格。這種方法允許更有效率的儲存和更快的載入時間,因為不變的像素不需要為每個畫格重新繪製。
要建立一個 APNG 檔案,可以使 用影像編輯工具或專門的軟體來組裝個別畫格並產生必要的區塊。畫格通常會匯出為獨立的 PNG 檔案,然後使用 APNG 編碼器將它們合併成一個單一的 APNG 檔案。編碼器會分析畫格,決定最佳的編碼方法(完整畫格或部分畫格),並產生 `acTL` 和 `fcTL` 區塊來控制動畫播放。
當一個 APNG 檔案載入到相容的檢視器中時,檢視器會讀取 `acTL` 區塊來決定動畫屬性,然後依序處理畫格。與每個畫格關聯的 `fcTL` 區塊提供了必要的資訊來正確渲染畫格,包括它的持續時間和在畫布中的位置。檢視器會以指定的順序顯示畫格,使用延遲時間來控制動畫速度和循環行為。
APNG 比傳統的 GIF 動畫提供了多項優點。它支援 24 位元色彩和 8 位元透明度,與 GIF 受限的 256 色調色板相比,允許更鮮豔且更詳細的圖形。APNG 也提供了更好的壓縮,在等同的影像品質下產生更小的檔案大小。此外,APNG 允許變動的畫格速率,能夠更精確地控制動畫的時序和流暢度。
然而,APNG 確實有一些限制。儘管它受到 Firefox、Chrome 和 Safari 等主要網路瀏覽器的支援,但它的採用率不如 GIF。一些舊版的瀏覽器和影像檢視器可能沒有內建支援 APNG,需要使用者安裝擴充功能或使用替代軟體來檢視動畫。此外,與 GIF 相比,建立 APNG 檔案可能會更複雜,因為它涉及處理多個畫格和了解特定的區塊結構。
儘管有這些限制,APNG 近年來由於其優異的影像品質、更小的檔案大小,以及網路瀏覽器和影像編輯工具的支援度越來越高而獲得普及。它已成為在網站上傳遞高品質動畫的首選,特別是對於需要透明度和流暢播放的短循環動畫。
總之,APNG 是一種強大且多功能的檔案格式,它擴充了 PNG 的功能以支援動畫。透過利用現有的 PNG 結構並引入新的區塊進行動畫控制 ,APNG 提供了一個比 GIF 更有效率且視覺上更吸引人的替代方案。儘管它的支援度可能不如 GIF 廣泛,但網路瀏覽器對 APNG 的採用度越來越高,以及對高品質動畫的需求不斷增加,使其成為設計師和開發人員在網路上建立引人入勝且互動式內容的寶貴工具。