파이썬은 tesseract에서 제공하는 pytesseract를 이용하여 간단하게 문자인식과 숫자인식을 할 수 있습니다. 먼저 장점으로는 한두줄의 코딩만으로 문자를 추출할 수 있는 장점이 있고 단점으로는 요즘 OCR 에서 핫한 딥러닝 기반의 OCR 보다는 낮은 수준의 인식률입니다. 실제 사용하기는 무리가 있고 테스트 프로그램이나 토이 프로그램에 적용할 만한 수준이라 보시면됩니다.
1. 코드
import pytesseract
import cv2
img=cv2.imread('test.jpg',cv2.IMREAD_COLOR)
result = pytesseract.image_to_string(img, lang='kor')
print(result)
코드를 작성하시기전 pytesseract와 opencv라이브러리는 pip를 통해 설치 하시면됩니다. 네 단 4줄입니다 너무 간단한가요? 처음 설명드린데로 간단하지만 회전되있는 문자나 살짝 뒤틀린 문자에서는 문자인식 및 숫자인식을 정확히 못하는 현상이 발생할 수 있습니다. 저번에 opencv ip카메라 접속에 대한 포스팅을 했었는데요. 조금만 응용해서 ip카메라에 접속해서 그 화면을 실시간으로 문자인식(OCR)하는 프로그램을 만들어 볼 수도 있습니다.
2022.01.25 - [개발] - 파이썬 IP카메라 연동하기 OPENCV 사용(RTSP 정리)
import pytesseract
import cv2
cam=cv2.VideoCapture(rtsp://admin:admin123@192.168.29.30:554/cam/realmonitor?channel=1&subtype=1)
while True:
_,img=cam.read()
result = pytesseract.image_to_string(img, lang='kor')
print(result)
cv2.imshow("TEST",img)
cv2.waitKey(1)
이런식으로요 웹캠도 같고 모든 이미지 파일은 이런식으로 파이썬을 통한 문자인식을 할 수 있습니다. 실시간 동영상으로 확인해보시면 사진보다는 굉장히 낮은 인식률을 확인 하실 수 있을겁니다. 문자인식 숫자인식 인식률을 높이는 방법은 차차 포스팅 해나가도록 하겠습니다.
2. pytesseract 와 OCR
눈치 채셨겠지만 pytesseract.image_to_string(img, lang='kor')부분에서 lang부분에서 각자 원하는 문자를 선택 하여 인식 할 수 있습니다. 자세한 함수 사용법과 업데이트 사항은 해당 링크에서 확인 하실 수 있습니다. 여러가지 인자를 바꿔보고 다른 함수도 전부 한줄 또는 두줄이면 쉽게 할 수 있으니 하나씩 써보길 추천드립니다.
https://pypi.org/project/pytesseract/
좀더 나는 정확도가 높은 문자인식을 배워보고 싶다 또는 적용해보고 싶다고 하시면 해당 링크를 추천드립니다. clovaai 에서 제공하는 deep-text-recognition인데 이내용도 시간이 된다면 다뤄보도록 하겠습니다.
https://github.com/clovaai/deep-text-recognition-benchmark
'개발' 카테고리의 다른 글
파이썬 DB연결 (pymssql - insert select update 예제) (0) | 2022.05.10 |
---|---|
파이썬 TCP 통신 UDP 통신 예제 (소켓 프로그래밍) (0) | 2022.04.19 |
파이썬 영상저장 (opencv를 이용한 ip카메라 영상저장) (0) | 2022.03.02 |
파이썬 가상 컴포트 열기 시리얼통신 (0) | 2022.01.27 |
파이썬 IP카메라 연동하기 OPENCV 사용(RTSP 정리) (0) | 2022.01.25 |
댓글