OCR 精度再突破:YOLO 11 與 Ollama 的強強聯合
引言
我們之前在不同文章中分別探討了兩個強大的框架:Ultralytics YOLO 11,一個高精度的對象檢測模型,以及 Ollama,一個用于部署 LLM 模型的框架。但如果我們把這兩者結合起來,打造一個超精準的 OCR 系統,會怎么樣呢?今天我就要帶你一步步實現這個目標!

核心思路是采用兩階段處理:首先用預訓練的 Ultralytics YOLO 11 模型檢測并定位文本區域(比如車牌),然后將這些區域裁剪出來,傳遞給 Ollama 的視覺語言模型進行精準的文本提取。這種方法能確保我們只從感興趣的區域讀取文本,大幅提升準確率,減少誤報。
按回車或點擊查看完整圖片
兩階段 OCR 架構:Ultralytics YOLO 11 負責檢測,Ollama 負責文本提取
兩階段 OCR 架構:Ultralytics YOLO 11 負責檢測,Ollama 負責文本提取
設置開發環境
在開始實現 OCR 之前,我們先來配置開發環境,并克隆包含本教程所有必要代碼的倉庫。
步驟 1:創建虛擬環境
在 Python 項目中,強烈推薦使用虛擬環境。這樣可以保持依賴的整潔,避免不同項目之間的沖突。你可以在這里找到關于如何設置虛擬環境的詳細教程。
# 創建虛擬環境
mkvirtualenv ultralytics-ocr步驟 2:克隆倉庫并安裝依賴
我已經為本教程創建了一個完整的代碼倉庫,隸屬于我的公司 NeuralNet,我們為企業提供 AI 咨詢服務。
git clone https://github.com/NeuralNet-Hub/ultralytics-ollama-OCR.git
cd ultralytics-ollama-ocr
pip install -r requirements.txt這個安裝過程可能需要幾分鐘,因為它會下載包括 Ultralytics、Gradio 在內的所有必要庫。
步驟 3:啟動應用
安裝完成后,你可以啟動 Gradio 界面:
python main.py --model alpr-yolo11s-aug.pt啟動可能需要幾秒鐘,之后你可以通過瀏覽器訪問 ??http://localhost:7860?? 查看界面。
了解界面組件
應用啟動后,你會看到一個 Gradio 界面,包含以下幾個關鍵組件:
圖片上傳區域:
- 圖片輸入:你可以上傳圖片或從提供的演示圖片中選擇。
- 演示圖片:來自RoboFlow(一個用于數據標注的平臺)的預加載示例圖片,供測試使用。
模型配置:
- Confidence Threshold:Ultralytics YOLO 11模型在計算機視覺中的關鍵參數,決定模型檢測對象時的置信度要求。
- Intersection Over Union (IOU):對象檢測中的重要指標,用于消除重復檢測(如果你是計算機視覺新手,建議深入了解一下這個概念)。
Ollama 服務器配置:
- Ollama 服務器 URL:你的Ollama服務器部署地址。
- 視覺模型選擇:從可用的視覺語言模型中選擇。
如果你不知道如何安裝和部署 Ollama,我的網站 henrynavarro.org 上有詳細的對比指南。

選擇合適的視覺模型
什么是視覺模型?
視覺模型類似于傳統的 LLM,但有一個關鍵區別:除了能回答像“給我一段實現 A、B、C 的 Python 代碼”這樣的問題,它們還能接受圖片輸入,回答“描述這張圖片”或“讀取圖片中的文本”等問題。
推薦模型:
在本教程中,我將使用 Qwen 2.5 VL(視覺語言模型),這是我之前文章中測試過的最喜歡的模型之一。
注意:在撰寫本教程時,Qwen 3 Vision Language 尚未發布,因此我們使用性能依然出色的 Qwen 2.5。
可用視覺模型:
你可以在 ollama.com/models 找到所有可用視覺模型。尋找帶有“vision”標簽的模型,這些模型都適用于我們的 OCR 系統。
了解兩階段 OCR 架構
傳統 OCR 系統會無差別地讀取圖片中的所有文本。如果圖片中有一輛車,車牌上還有其他文本,標準 OCR 會把所有內容都提取出來,導致噪音增加、準確率下降。
我們的解決方案采用了智能的兩階段處理:
工作原理:
- Ultralytics YOLO 11 檢測:定制訓練的模型識別并定位車牌。
- 圖片裁剪:僅提取檢測到的區域。
- Ollama 處理:視覺語言模型使用自然語言提示(如“讀取這個車牌并以 JSON 格式返回”)讀取文本。
- 結果整合:將坐標與提取的文本數據結合。
模型訓練透明度:
所有訓練數據、指標和實驗結果都在我的 Weights & Biases 項目中公開。你可以查看詳細指標,包括 recall、precision、mAP 分數、GPU 功耗,以及我開發的三種模型變體的完整訓練曲線。
為什么這種方法有效:
通過預先選擇感興趣的區域,我們確保文本提取只在真正關心的區域進行。不會再讀取無關的背景文本、標志或車輛 logo。
這種架構結合了兩者的優勢:計算機視覺對象檢測的速度與精度,以及現代視覺語言模型的智能與靈活性。
測試系統
讓我們用界面中提供的演示圖片來實際測試一下 OCR 系統。
快速測試流程:
- 選擇演示圖片:從你的電腦中選擇一張圖片。
- 配置設置:設置Confidence Threshold(建議 0.3–0.5),并根據需要調整IOU。
- 確保 Ollama 連接:確認你的Ollama服務器正在運行,并使用類似Qwen 2.5 VL的視覺模型。
- 處理圖片:點擊處理按鈕,靜待魔法發生。

你會看到:
- 檢測框:Ultralytics YOLO 11在檢測到的車牌周圍繪制邊界框。
- 提取的文本:從每個檢測區域中讀取的干凈、準確的文本。
- JSON 輸出:結構化數據格式,方便與其他系統集成。
- 置信度分數:檢測和文本提取的可靠性指標。
系統能在幾秒鐘內處理圖片,展示了我們兩階段架構的高效性。你可以嘗試不同的 Confidence Threshold,看看它如何影響檢測靈敏度。
需要為你的企業提供專業的計算機視覺解決方案?
本教程展示了如何用 Ultralytics YOLO 11 和 Ollama 構建 OCR 系統,但許多企業需要更復雜的、針對特定用例定制的計算機視覺解決方案。這正是我們 NeuralNet Solutions 擅長的領域。
為什么選擇專業計算機視覺開發?
我們今天構建的 OCR 系統很適合學習和小規模應用,但企業級計算機視覺需要額外的功能:
- 定制模型訓練:基于你的特定數據和用例訓練模型。
- 生產級擴展性:優化流水線,處理每秒數千張圖片。
- 多模態集成:結合對象檢測、OCR、分類和跟蹤。
- 邊緣部署:優化模型以適應移動設備、嵌入式系統和邊緣計算。
- 實時處理:以最小的延遲分析實時視頻流。
企業級計算機視覺解決方案
我們的團隊將概念驗證的計算機視覺項目轉化為生產就緒的系統:
- ?定制 Ultralytics YOLO 11 訓練:針對你的特定對象和環境訓練對象檢測模型。
- ?高級 OCR 流水線:多語言文本提取,包含預處理和后處理。
- ?視頻分析:實時對象跟蹤、行為分析和異常檢測。
- ?質量控制系統:用于制造業的自動化檢查和缺陷檢測。
- ?文檔智能:高級表單處理、表格提取和文檔分類。
- ?邊緣優化:在 NVIDIA Jetson、移動設備和嵌入式系統上部署模型。
本文轉載自??AI大模型觀察站??,作者:AI研究生

















