예전에 재밌어보이는 라이브러리를 하나 찾았는데
OCR : Optical Character Recognition
광학 문자 인식으로 이미지에 있는 텍스트를 문자열로 변환하는 기능인데
쓸만한 라이브러리로는 EasyOCR 이랑 테서렉트가 있음
두 개의 차이점으로 Easy 는 학습이 안돼고 테서렉트는 가능한거로 앎
코드는 파이참에서 테스트 했으며 터미널로 필요한 라이브러리를 설치하면 된다.
프로젝트를 생성하면 왼.아래쪽에 툴 윈도우가 있으며
도구중에서 터미널을 선택하여 명령어로 설치하면 된다.
설치해야 할 라이브러리는 총 두가지로
이미지를 읽을 수 있는 OpenCV와 EasyOCR를 설치하면 된다.
OpenCV
pip install opencv-python 이건 GUI기능이 포함된거고
pip install opencv-python-headless 단순히 이미지 처리만 원한다면
좀 더 가벼운 headless를 설치하면 된다.
EasyOCR
pip install easyocr
소스 코드
import cv2 import easyocr reader = easyocr.Reader(['ko'], gpu=False) src = cv2.imread("../../Data/Sample2.png", cv2.IMREAD_COLOR) result = reader.readtext(src) for (bbox, text, prob) in result: print(f"Text: {text}, Probability: {prob:.2f}")
GPU를 사용하지 않고 변환하는데 많이 느리다.
사용하고 싶으면 CUDA를 따로 설치한다음 gpu=True로 해주면 됨
테스트에 사용한 이미지는 이렇게 두가지로
투명 배경, 하얀 배경 둘다 잘 변환 됨
텍스트 뒤 Probability는 정확도로 0~1사이 백분율을 나타냄
만약 정확도를 더 높이고 싶으면 테서렉트를 사용하거나
이미지 처리를 통해 높이는 방법밖에 없음
댓글 없음:
댓글 쓰기