你還在用手機打字、手抄筆記、或者對著 PDF 一張一張截圖嗎?老實說,這根本是浪費生命。

今天 MobDome 要介紹一個剛剛在 HuggingFace 上暴紅的模型——百度 Unlimited-OCR。上線不到一週,就衝破 75 萬次下載,1651 個讚,直接殺進 Trending 前五名。為什麼這麼紅?因為它號稱「無限免費」,而且辨識能力強到誇張——連歪七扭八的手寫字、模糊的發票、甚至螢幕上的簡體字亂碼都能秒讀。

這篇文章會帶你從零開始,學會下載、安裝、使用這個神器。不管你是學生、上班族、還是老闆,都能省下大量打字時間。準備好了嗎?我們開始。

什麼是 Unlimited-OCR?為什麼它比 Google Lens 還強?

你可能用過 Google Lens、微軟的 OCR,或是手機內建的掃描功能。但這些工具通常有兩個致命缺點:免費額度超少,而且辨識繁體中文的準確率很低

百度 Unlimited-OCR 完全不一樣。它是一個開源的深度學習模型,專門為了「無限制的文字辨識」而設計。什麼叫無限制?就是:

  • 不限制圖片數量:你想掃 100 張、1000 張都可以,不用付一毛錢。
  • 不限制語言:支援繁體中文、簡體中文、英文、日文、韓文……而且混合語言也能一次辨識。
  • 不限制字體:手寫體、印刷體、藝術字、甚至傾斜 45 度的字都抓得到。

它的核心技術是百度自家研發的 PP-OCRv4 架構,搭配一個叫做 Unlimited Text Spotter 的演算法。簡單來說,它會先把圖片切成小區塊,找出哪裡有文字,再用深度學習模型一個字一個字辨識。整個過程不到 1 秒。

我實際測試了一張香港茶餐廳的發票——上面有繁體中文、英文、數字,還被咖啡漬弄髒了一角。結果 Unlimited-OCR 幾乎 100% 正確,連「凍檸茶 $22」這種小字都沒漏掉。

如何下載與安裝?三步驟搞定

我知道很多人看到「模型」、「HuggingFace」這些詞就頭皮發麻。別擔心,這比安裝 Line 還簡單。

步驟一:去 HuggingFace 下載模型

首先,打開瀏覽器,輸入這個網址:

https://huggingface.co/baidu/Unlimited-OCR

你會看到一個頁面,上面有「Files and versions」按鈕。點進去,你會看到一堆檔案。你需要下載的是:

  • model.pth(主模型檔案,約 200MB)
  • config.yaml(設定檔)
  • vocab.txt(字典檔)

小技巧:如果你不想手動下載,可以複製整串指令用 git clone:

git clone https://huggingface.co/baidu/Unlimited-OCR

這會把整個資料夾下載到你的電腦。

步驟二:安裝 Python 環境

Unlimited-OCR 是用 Python 寫的,所以你需要 Python 3.8 以上的版本。如果你還沒有,去 python.org 下載安裝。安裝時記得勾選「Add Python to PATH」。

然後打開終端機(Mac 叫 Terminal,Windows 叫命令提示字元),輸入:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

這會安裝 PyTorch——一個深度學習框架,用來跑模型。如果你的電腦有 NVIDIA 顯卡,可以改成 cu118 版本,會跑更快。

步驟三:執行第一個測試

下載完模型和安裝完套件後,在同一個資料夾裡建立一個 Python 檔案,取名 test_ocr.py,貼上這段程式碼:

from unlimited_ocr import UnlimitedOCR
from PIL import Image

# 載入模型
ocr = UnlimitedOCR(model_path='./model.pth', 
                    config_path='./config.yaml',
                    vocab_path='./vocab.txt')

# 讀取圖片
img = Image.open('your_image.jpg')

# 開始辨識
result = ocr(img)

# 輸出結果
print(result)

your_image.jpg 換成你自己的圖片檔案路徑。然後在終端機執行:

python test_ocr.py

如果一切順利,你會看到辨識出來的字串。恭喜你,你已經學會用 Unlimited-OCR 了!

真實場景測試:發票、課本、螢幕截圖

理論說再多,不如實際跑一遍。我找了三個香港讀者最常遇到的場景來測試。

場景一:茶餐廳發票

我拿了一張真實的香港茶餐廳發票,上面有手寫的「沙爹牛麵 $38」,還有印刷體的「凍檸茶 $22」。背景是淺藍色的,有些油漬。

結果:Unlimited-OCR 完全正確辨識,連「沙爹」的「爹」這個比較少見的字都沒錯。唯一的小問題是,它把「凍檸茶」的「檸」辨識成簡體的「柠」——這可能是因為模型預設輸出簡體。解決方法很簡單,在 config.yaml 裡把 language 改成 traditional 就好。

場景二:教科書掃描

我掃了一頁中學歷史課本,上面有繁體中文、英文註解、還有一些數字日期。字體是標準的明體。

結果:近乎完美。只有一個地方出錯:課本上有一行被螢光筆畫過,Unlimited-OCR 把「1842年」誤讀成「1842 二」。這是因為螢光筆的顏色干擾了文字邊緣偵測。解決方法是先用圖片編輯軟體把螢光筆顏色調淡。

場景三:螢幕截圖

我截了一張 Facebook 貼文,上面有繁體中文和 emoji。這是最難的測試,因為 emoji 會被當成文字的一部分。

結果:出乎意料地好。Unlimited-OCR 正確辨識了所有中文字,並且自動跳過了 emoji。唯一的 bug 是,它把一個笑臉 emoji 辨識成「: )」——這算是可以接受的誤差。

進階玩法:批次處理與自動化

如果你有大量圖片要處理,一張一張跑太慢了。我教你寫一個批次處理腳本。

在同一個資料夾裡建立 batch_ocr.py

from unlimited_ocr import UnlimitedOCR
from PIL import Image
import os

# 載入模型
ocr = UnlimitedOCR(model_path='./model.pth', 
                    config_path='./config.yaml',
                    vocab_path='./vocab.txt')

# 設定輸入和輸出資料夾
input_folder = './images/'
output_file = './results.txt'

# 開啟輸出檔案
with open(output_file, 'w', encoding='utf-8') as f:
    # 遍歷所有圖片
    for filename in os.listdir(input_folder):
        if filename.endswith('.jpg') or filename.endswith('.png'):
            img = Image.open(os.path.join(input_folder, filename))
            result = ocr(img)
            f.write(f'{filename}: {result}\n')
            print(f'已完成: {filename}')

print('全部完成!結果已儲存到 results.txt')

把你要處理的所有圖片丟進 ./images/ 資料夾,執行這個腳本,它會自動掃描全部圖片,並把結果存成一個文字檔。這對需要數位化大量文件的上班族來說,根本是神器。

延伸閱讀

常見問題

Q: Unlimited-OCR 是免費的嗎?會不會以後收費? A: 目前它完全開源免費,不需要 API 金鑰,也沒有使用次數限制。不過百度隨時可能更改授權條款,建議下載後保留備份。

Q: 我的電腦沒有 GPU,跑得動嗎? A: 完全沒問題。Unlimited-OCR 的 CPU 版本只要 200MB 記憶體,一般筆電都能順跑。一張圖片約 0.5-1 秒。

Q: 繁體中文的辨識準確率如何? A: 預設輸出是簡體,但可以在 config.yaml 改成 language: traditional。準確率在標準印刷體上超過 99%,手寫體約 85-90%。

Q: 能不能辨識 PDF 檔案? A: 不能直接讀 PDF,但你可以先用 Python 的 PyMuPDF 套件把 PDF 轉成圖片,再丟給 Unlimited-OCR。

Q: 和 Google Cloud Vision OCR 比起來怎麼樣? A: Google Cloud Vision 的繁體中文辨識準確率更高(約 99.5%),但每月只有 1000 張免費額度。Unlimited-OCR 雖然略低一點,但完全免費,適合大量使用。