-
Python OCR
광학 문자 인식(OCR)
텍스트 이미지를 기계가 읽을 수 있는 텍스트 포맷으로 변환하는 과정입니다. 예를 들어 양식 또는 영수증을 스캔하는 경우 컴퓨터는 스캔본을 이미지 파일로 저장합니다. 이미지 파일에서는 텍스트 편집기를 사용하여 단어를 편집, 검색하거나 단어 수를 계산할 수 없습니다. 그러나 OCR을 사용하면 이미지를 텍스트 문서로 변환하여 내용을 텍스트 데이터로 저장할 수 있습니다.
출처: AWS
테서랙트(Tesseract)
다양한 운영 체제를 위한 광학 문자 인식 엔진이다.이 소프트웨어는 Apache License, 버전 2.0에 따라 배포되는 무료 소프트웨어이며 2006년부터 Google에서 개발을 후원했다. 2006년 테서랙트는 당시 가장 정확한 오픈 소스 OCR 엔진 중 하나로 간주되었다.
출처: 위키백과
설치
오늘은 Python의 Tesseract를 이용하여 OCR을 구현해볼 것이다.
- python version: 3.11
- tesseract version: 5.3.0
- OS: window11
tesseract 설치는 https://github.com/UB-Mannheim/tesseract/wiki 에서 가능하다. 설치방법은 https://yunwoong.tistory.com/51 를 참조하였다.
실행
코드는 매우 간단하다. pli를 사용하여도 되고, OpenCV를 사용하여도 된다. 난 OpenCV를 사용하였다. 이미지를 읽어서 tesseract 에 건내주면 끝이다.
image = cv2.imread(path) rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) text = pytesseract.image_to_string(rgb_image, lang='kor')
학습데이터 변경
인식이 잘 되는 부분도 있고 그렇지않은 부분도 존재한다. https://github.com/tesseract-ocr/tessdata 에 존재하는 한글 학습데이터로 변경한 뒤 다시 진행해본 결과 인식이 훨씬 잘 되는 것을 볼 수 있었다.
이미지 전처리를 추가 해보기
마침 자리에 있던 아몬드를 사진으로 찍어 진행해보았다. 찾아보니, 간단한 이미지 처리를 추가하고 진행하는면 성능이 좀 더 나아졌다. https://turtle-dennis.tistory.com/30 를 참고하여 아주 간단한 이미지 전처리 후 진행해보았지만 내 이미지에선 크게 차이는 없어보였다. 좀 더 심화 된 이미지 전처리는 https://yunwoong.tistory.com/72 를 참고해서 진행해보면 좋을 것 같다.
이미지처리에 대해선 약... 7년전..? 학교수업으로 들은게 전부라 많이 어렵다 😥이번엔 자리에 있던 영수증으로 진행을 해보았다. 이럴 수가 인식률이 너무 낮다.... 이 정도면 아예 인식을 하지 못 하는 것 같다.
ROI를 이용한 OCR
구글링을 하다가 https://en-percent.tistory.com/m/113 에서 ROI를 지정해서 인식하는 것을 보았다. 결과는 놀라웠다! ROI를 지정한 뒤 인식을 하니 인식이 아주 잘 되었다.
pororo
그러다가 kakao brain에서 개발한 pororo 라는 라이브러리가 있다는 것을 알게 되었다. 코딩도 잘 하는 뽀로로
아래처럼 이미지를 입력하면 ROI를 자동으로 지정하고, 결과물로 TEXT를 주었다. 정말 놀라운 인식률이다. 역시 갓카오 👍
이 외에도 다양한 모델과 방법들이 존재한다. 아래 블로거 분이 전문가이신 것 같다. 필요하면 참조해보면 굉장한 도움이 될 듯 하다 👍EasyOCR
비교적 최근에 나온 것이라고 한다.
EasyOCR을 사용해 티켓 속 문자를 텍스트화 해보자 #1 를 참고하여 사용법을 알아보았다. EasyOCR 자체 사용법은 정말 무지무지 간단하다 아래가 끝이다 ㅇ0ㅇ!!
import easyocr reader = easyocr.Reader(['ko','en']) results = reader.readtext('buger.jpg') print(results)
앞서 진행한 사진에 대해서 진행해보았다. 오 아주 좋은 인식률이다. ^_^)/ ** 이런 좋은 라이브러리들을 개발해주시는 분들 감사합니다.. (--)(__) 꾸벅
'2023년' 카테고리의 다른 글
devfest 2023 in songdo (0) 2023.12.10 centOS7 + Superset + Oracle (0) 2023.03.02 Superset 설치 메모 (0) 2023.02.07 Data Mart, Data Warehouse, Data Lake (6) 2023.01.13 Oracle Study (4) 2023.01.11