只辨識印刷體。語言選擇最關鍵;第一次執行會下載辨識引擎和模型,之後可離線使用。
這個 OCR 工具能做什麼
拖入文件照片、截圖、掃描頁或一張招牌的照片,裡面的文字會以可選取的文字出現在圖片旁邊。可選 12 種語言:簡體中文、繁體中文、英文、日文、韓文、西班牙文、法文、德文、葡萄牙文、俄文、義大利文、越南文。不論選哪種語言,都會同時辨識英文,夾雜英文名和數字的中文合約一次讀完。每張圖片各自選語言、各自出結果;結果框可編輯,複製前順手改掉個別錯字。
辨識由兩個引擎分擔,依你選的語言自動切換。英文、簡體中文、西班牙文、法文、德文、葡萄牙文、義大利文交給 PaddleOCR 的 PP-OCRv6:一個網路先找出圖裡每一行字,另一個網路逐行讀出,兩個模型合計 6.3 MB。繁體中文、日文、韓文、俄文、越南文交給 Tesseract,因為這個 PP-OCR 模型的字元集裡沒有假名、韓文和西里爾字母,常用繁體字也缺不少。兩個引擎都在瀏覽器的 Worker 執行緒裡執行,只下載一次,之後快取。圖片本身從不離開裝置,這對身分證、合約、病歷很重要。
怎麼用
新增、拖入或貼上圖片。在每張圖片下方選擇文字的語言,這是影響準確率最大的單一因素,然後按「辨識」;第一次執行還要下載引擎。想比較,換一種語言再按一次「辨識」。結果可直接修改,然後「複製」或下載為 .txt。有兩張以上圖片時,底部會出現「複製全部文字」和「合併下載成一個 .txt」。
英文、簡體中文、西班牙文、法文、德文、葡萄牙文、義大利文的結果裡,指向某一行,原圖上對應的框會醒目標示;點原圖上的框,會選取對應那一行。行依整頁的傾斜方向歸併,雙欄頁面按欄讀。「保留換行」依原文分行;「合併成段落」把行接成連續的文字,方便貼進文件。文件是 PDF 的話,先用PDF 轉圖片,一鍵把頁面送到這裡。歪斜的照片先過圖片旋轉和圖片裁切辨識效果更好。
常見地雷
OCR 辨識的是印刷體;手寫、花體字和雜亂背景上的文字會辨識成亂碼,任何瀏覽器工具都改變不了這一點。準確率主要取決於照片:讓頁面填滿畫面、放平、放正,光線均勻,避免陰影和反光,拖入前不要縮小圖片——1200 萬像素拍的 A4 頁最理想,600 像素的縮圖沒有希望。語言選錯是產生亂碼的另一大原因:日文頁面按中文讀、法文按英文讀,都會得到看似合理的垃圾。
表格會變成沒有格線的文字行。周圍沒什麼文字的數字(發票、水錶讀數)辨識得不錯,但永遠值得核對,因為 6 和 8 對機器來說也很像。裝置第一次使用要下載引擎和語言模型,需要連網一次;之後可離線使用。手機上處理大批量會慢,每頁幾秒是正常的。
背景知識:文字是怎麼被辨識的
PP-OCR 分兩步。一個小的偵測網路先標出屬於文字的像素,每塊標出的區域轉成一個可以傾斜的矩形,所以拍歪幾度的照片也能得到整齊的行。每一行被單獨切出、縮放到 48 像素高,交給辨識網路逐字讀出;它認得 6905 個字元:簡體中文、帶重音的拉丁字母、數字和標點。最後把各行依閱讀順序拼回去:行沿整頁的傾斜方向歸併,兩側都是長行的直向空白當作分欄,明顯大於常規行距的間隔當作分段。
換引擎之前,我們用 28 張測試圖把兩個引擎各跑了一遍:13 段文字的乾淨截圖,同樣的圖縮小、傾斜 2.5°、加雜訊並存成低品質 JPEG,再加兩整頁 A4。簡體中文的平均字元錯誤率從 Tesseract 的 18.6% 降到 PP-OCR 的 1.3%,仿照片的那組從 22.2% 降到 2.0%。橘色漸層底上的白色標題,Tesseract 一個字也沒讀出,PP-OCR 全對。乾淨的英文、法文、德文、西班牙文兩者都幾乎全對。在我們的測試機上,用單執行緒 WebAssembly,一張截圖 0.3 到 0.7 秒,一整頁密排的 A4 6 到 8 秒。其餘五種語言仍用 Tesseract:它是依語言分別訓練的 LSTM 網路,這裡用的是 tessdata_best 量化到 8 位元整數的模型;辨識前圖片會轉灰階並放大到長邊約 2000 像素。
哪些場景需要圖片轉文字
從別人寄來的截圖裡複製一段話。把拍下的白板、投影片或書頁變成筆記。從掃描的信件或只有圖片的老 PDF 裡取出文字。從照片裡擷取地址、訂單號或序號。把收據和發票數位化做帳。讀出另一種文字的菜單、招牌或標籤,貼進翻譯器。讓錯誤訊息的截圖可以搜尋。從只有照片的論文裡摘引文。
本站的流程是:需要的話先旋轉、裁切照片,在這裡辨識文字;PDF 先過PDF 轉圖片。文字核對完,照片可以用圖片轉 PDF合成文件。
常見問題
我的圖片會上傳嗎?
不會。辨識在瀏覽器裡執行,依語言使用 PP-OCR 或 Tesseract,兩者都編譯成 WebAssembly。圖片不離開裝置。引擎和模型下載一次並快取,之後可離線使用。
支援哪些語言?
繁體中文、簡體中文、英文、日文、韓文、西班牙文、法文、德文、葡萄牙文、俄文、義大利文、越南文。中日韓可與英文一次同時辨識。
能辨識手寫嗎?
不能——只辨識印刷體。手寫、花體字和雜亂背景上的文字,本工具和任何瀏覽器 OCR 都無法可靠辨識。
怎麼提高準確率?
選對語言,用清晰、光線均勻、擺正的全解析度照片,並裁到文字區域。小圖或模糊圖會自動放大,但無法變清晰。
能辨識 PDF 嗎?
先用 PDF 轉圖片工具把頁面轉成圖片送到這裡,每頁得到一個可編輯的文字區塊。