使用Llama 3.2-Vision大模型,搭建本地Ollama OCR應用 原創
用Python和Ollama的Llama 3.2-Vision模型搭建自己的OCR應用。
?光學字符識別技術,簡稱OCR,目前是數字化印刷文本和提取圖像信息的核心手段,其重要性正日益凸顯。如今,有了AI的加持,尤其是像Llama 3.2-Vision這樣的模型,OCR變得更加強大。本文教會大家用Python和Ollama的Llama 3.2-Vision模型,一步步搭建起自己的OCR應用。
先決條件
在開始之前,先確保已準備好以下條件:
- 一臺安裝了Windows、macOS或Linux的電腦。
- 穩定的互聯網連接,用于下載必要的包和模型。
- 對Python編程的基本了解。
- 系統上安裝了Python(最好是3.7或更高版本)。
步驟1:安裝Ollama
Ollama是一個能讓你在本地運行多模態模型的平臺。安裝步驟如下:
- 下載Ollama:訪問Ollama官方網站,下載適合你操作系統的安裝包。
- 安裝Ollama:根據安裝向導完成安裝過程。
步驟2:安裝Llama 3.2-Vision模型
安裝好Ollama后,你就可以通過在終端運行以下命令來安裝Llama 3.2-Vision模型了:
ollama run llama3.2-vision
此命令下載并設置模型以供本地使用。
步驟3:設置Python環境
現在已經安裝了所有內容,為OCR項目設置一個Python環境:
- 創建項目目錄:建立一個新的文件夾來存放項目文件。在命令行中輸入以下命令:
mkdir llama-ocr && cd llama-ocr
- 創建虛擬環境(這一步是可選的,但推薦):
python -m venv venv
source venv/bin/activate # 在Windows上使用 `venv\Scripts\activate`
- 安裝所需的庫:為了處理圖像和進行base64編碼,我們需要安裝一些庫。使用pip安裝以下庫:
pip install requests Pillow
步驟4:編寫OCR腳本
現在編寫使用Llama 3.2-Vision執行OCR的Python腳本。創建一個名為??ollama_ocr.py?
?的新文件,添加以下代碼:
import base64
import requests
from PIL import Image
SYSTEM_PROMPT = """作為OCR助手。分析提供的圖像并:
1. 盡可能準確地識別圖像中所有可見的文本。
2. 保持文本的原始結構和格式。
3. 如果任何單詞或短語不清晰,請在轉錄中用[unclear]表示。
僅提供轉錄,不要有任何額外的評論。"""
def encode_image_to_base64(image_path):
"""將圖像文件轉換為base64編碼的字符串。"""
with open(image_path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
def perform_ocr(image_path):
"""使用Llama 3.2-Vision對給定圖像執行OCR。"""
base64_image = encode_image_to_base64(image_path)
response = requests.post(
"http://localhost:8080/chat", # 確保此URL與你的Ollama服務端點匹配
json={
"model": "llama3.2-vision",
"messages": [
{
"role": "user",
"content": SYSTEM_PROMPT,
"images": [base64_image],
},
],
}
)
if response.status_code == 200:
return response.json().get("message", {}).get("content", "")
else:
print("錯誤:", response.status_code, response.text)
return None
if __name__ == "__main__":
image_path = "path/to/your/image.jpg" # 替換為你的圖像路徑
result = perform_ocr(image_path)
if result:
print("OCR識別結果:")
print(result)
代碼解釋
- Base64編碼:?
?encode_image_to_base64?
?函數讀取一個圖像文件并將其轉換為base64字符串,這是通過HTTP請求發送圖像所需的。 - 執行OCR:?
?perform_ocr?
?函數向本地Ollama服務發送POST請求,附帶系統提示和base64編碼的圖像。 - 處理響應:腳本檢查請求是否成功,并從JSON響應中檢索識別出的文本。
步驟5:運行OCR腳本
確保將腳本中的"path/to/your/image.jpg"替換成你想要識別的圖片文件的實際路徑。然后,在終端里運行以下命令:
python ollama_ocr.py
應該看到類似于以下的輸出:
OCR識別結果:
您的圖像中識別出的文本將顯示在這里。
步驟6:優化結果
如果對OCR的結果不太滿意,可以嘗試調整腳本中的SYSTEM_PROMPT變量,使其更貼合你的具體需求,或者改善提供給Llama 3.2-Vision的指令的清晰度。
結論
使用Ollama和Llama 3.2-Vision構建OCR應用程序是直接且強大的,這得益于其多模態處理能力。按照上述步驟,你可以在電腦上創建一個功能性的OCR工具,利用先進的AI技術進行文本識別任務。
不妨多試試不同的圖片和提示,充分挖掘這個模型的潛力。隨著AI技術的持續進步,像Llama 3.2-Vision這樣的工具在理解和處理視覺信息方面將變得更加高效和精準。?
本文轉載自公眾號AI科技論談
