OCR(Optical Character Recognition)은 이미지를 텍스트로 변환하는 기술로, 문서 디지털화 및 데이터 추출에 유용하게 활용된다. 이 글에서는 Llama 3.2-Vision 모델과 Ollama 플랫폼을 사용해 로컬 환경에서 OCR 애플리케이션을 구축하는 방법을 소개한다.
1. 사전 준비
애플리케이션 구축 전에 다음 준비가 필요하다.
- Python 3.7 이상: 프로젝트를 실행하기 위한 필수 요소.
- Ollama 플랫폼: Llama 3.2-Vision 모델을 실행하는 데 필요한 소프트웨어.
Ollama 설치 방법
- Ollama 공식 웹사이트에 접속해 운영 체제에 맞는 설치 패키지를 다운로드한다.
- 설치 후, 터미널에서
ollama
명령어를 실행해 설치가 제대로 되었는지 확인한다.
2. Llama 3.2-Vision 모델 설정
Llama 3.2-Vision 모델을 다운로드하고 설정하려면 터미널에서 다음 명령어를 실행한다.
ollama run llama3.2-vision
이 명령어는 모델을 자동으로 다운로드하고 로컬 환경에 설정한다.
3. Python 환경 구성
프로젝트 디렉토리 생성
원하는 경로에 새로운 디렉토리를 생성한다.mkdir ocr-project && cd ocr-project
가상 환경 설정 (선택 사항)
Python의 가상 환경을 설정해 프로젝트 의존성을 관리한다.python -m venv venv source venv/bin/activate # Windows는 `venv\Scripts\activate`
필수 라이브러리 설치
프로젝트에 필요한 라이브러리를 설치한다.pip install requests Pillow
4. OCR 스크립트 작성
다음 Python 코드는 이미지를 Llama 3.2-Vision 모델로 보내 OCR 결과를 반환받는 과정을 보여준다.
코드 예제
import base64
import requests
from PIL import Image
# 이미지 파일을 Base64로 인코딩
def encode_image_to_base64(image_path):
with open(image_path, "rb") as img_file:
return base64.b64encode(img_file.read()).decode('utf-8')
# Ollama API 호출 함수
def call_ollama_api(image_base64):
url = "http://localhost:11434/api" # Ollama의 기본 API 엔드포인트
payload = {
"model": "llama3.2-vision",
"image": image_base64
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
return response.json()
# OCR 실행
if __name__ == "__main__":
image_path = "sample_image.jpg" # OCR을 실행할 이미지 경로
image_base64 = encode_image_to_base64(image_path)
result = call_ollama_api(image_base64)
print("OCR 결과:", result)
코드 설명
이미지 인코딩
이미지 파일을 Base64 형식으로 변환해 API 요청에 포함한다.API 호출
Ollama의 로컬 서버로 POST 요청을 보내고 결과를 JSON 형식으로 반환받는다.결과 출력
OCR 결과를 콘솔에 출력한다.
5. 애플리케이션 테스트
위 스크립트를 실행해 sample_image.jpg
와 같은 이미지 파일에서 텍스트를 추출할 수 있다. Ollama가 실행 중이어야 하며, API 요청이 정상적으로 처리되면 텍스트 결과가 출력된다.