반응형

오늘은 테서랙트(Tesseract)를 활용한 파이썬(python) OCR 분석을 알아보겠습니다.

파이썬(python)에서 테서랙트(Tesseract)를 사용하기 위해서 pytesseract 패키지를 설치합니다.

또한 이미지 및 open cv를 사용하기 위해서 추가 패키지를 설치합니다.

패키지 설치는 pip 명령어를 사용하거나, 파이참에서 패키지를 바로 설치할 수 있습니다.

pip install pillow 
pip install pytesseract 
pip install opencv-python

정상적으로 패키지가 설치되면 import를 사용해서 패키지를 로드할 수 있습니다.

지난 시간에 사용한 영문 이미지를 동일하게 OCR을 적용하겠습니다.

먼저 tesseract_cmd에 테서랙트(Tesseract) 경로를 선언해주세요.

Image 클래스를 사용해서 영어 이미지를 로드합니다.

마지막으로 image_to_string 함수를 사용해서 영어 문자를 추출합니다.

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'
img = Image.open(r'd:\en.jpg')
print(pytesseract.image_to_string(img))

tesseract_cmd 경로가 틀릴 경우 경로를 찾을 수 없다는 오류를 확인할 수 있습니다.

정확하게 테서랙트(Tesseract)가 설치된 경로를 입력해주세요.

실행 결과 출력 창에 정상적으로 영어 텍스트 추출 정보를 확인할 수 있습니다.

한글 텍스트를 추출하기 위해서는 lang를 사용해서 옵션을 추가합니다.

img2 = Image.open(r'd:\kor.jpg')
print(pytesseract.image_to_string(img2, lang='kor'))

pytesseract는 다양한 옵션을 사용해서 테서랙트(Tesseract)를 제어할 수 있습니다.

https://pypi.org/project/pytesseract/

 

pytesseract

Python-tesseract is a python wrapper for Google's Tesseract-OCR

pypi.org

한글 텍스트도 정확하게 추출됩니다.

OCR은 다양한 이미지 정보를 사용하기 때문에 눈으로 이미지를 확인하거나, 이미지를 변경할 수 있어야 합니다.

파이썬(python)에서는 opencv를 사용해서 이미지를 출력하거나, 이미지 프로세싱을 적용할 수 있습니다.

이미지를 확인하기 위해서 cv2 클래스를 사용해서 이미지를 출력할 수 있습니다.

imread 함수는 이미지를 로드해서 객체에 저장할 수 있습니다.

또한 다양한 옵션을 사용해서 이미지 로드 시점에 기본 색상 변경이 가능합니다.

cv2.IMREAD_UNCHANGED 원본 이미지 사용
cv2.IMREAD_GRAYSCALE 1개 채널 그레이스케일 사용
cv2.IMREAD_COLOR 3개 채널, BGR 이미지 사용
cv2.IMREAD_ANYDEPTH 선택 이미지에 따라 정밀도를 16/32비트, 8비트로 적용
cv2.IMREAD_ANYCOLOR 3개 채널, 색상 이미지 사용
cv2.IMREAD_REDUCED_GRAYSCALE_2 1개 채널, 1/2 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_GRAYSCALE_4 1개 채널, 1/4 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_GRAYSCALE_8 1개 채널, 1/8 크기, 그레이스케일 적용
cv2.IMREAD_REDUCED_COLOR_2 3개 채널, 1/2크기, BGR 이미지 사용
cv2.IMREAD_REDUCED_COLOR_4 3개 채널, 1/4크기, BGR 이미지 사용
cv2.IMREAD_REDUCED_COLOR_8 3개 채널, 1/8크기, BGR 이미지 사용

imshow 함수를 사용해서 이미지를 모니터 화면에 출력하고 waitKey 함수를 사용해서 키 입력할 때까지 무한 대기합니다.

실행 결과 로드된 이미지가 화면에 출력됩니다.

opencv는 다양한 이미지를 변환할 수 있어 OCR 텍스트 추출 시 인식률을 높일 수 있습니다.

파이썬(python)은 테서랙트(Tesseract) 래퍼 클래스(Wrapper Class) pytesseract와 opencv를 사용해서 다양한 이미지 텍스트 추출을 쉽게 진행할 수 있어 매우 편리합니다

다음 시간에는 opencv를 사용해서 이미지를 변경하는 방법을 알아보겠습니다.

감사합니다.

https://believecom.tistory.com/726

 

[python] 파이썬 Tesseract OCR 활용 설치하기

오늘은 파이썬(python)을 활용해서 OCR를 사용하는 방법을 알아보겠습니다. OCR(optical character recognition)은 이미지에 포함된 텍스트 정보를 추출하는 기술입니다. 요즘은 텍스트 정보 추출 기술이 발

believecom.tistory.com

반응형
반응형

오늘은 파이썬(python)을 활용해서 OCR를 사용하는 방법을 알아보겠습니다.

OCR(optical character recognition)은 이미지에 포함된 텍스트 정보를 추출하는 기술입니다.

요즘은 텍스트 정보 추출 기술이 발전되어 AI 기반으로 많이 사용됩니다.

수많은 OCR 제품이 있지만, 무료 사용할 수 있으면서 활용도가 높은 테서랙트(Tesseract)를 사용해서 이미지 텍스트를 추출해보겠습니다.

이번 시간에는 테서랙트(Tesseract)를 설치해서 이미지 텍스트를 추출하는 방법을 알아보겠습니다.

먼저 아래 사이트에서 설치 파일을 다운로드해주세요.

https://github.com/UB-Mannheim/tesseract/wiki

 

UB-Mannheim/tesseract

Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract

github.com

전 Windows 기준으로 v5.0.0 64bit 버전을 다운로드하였습니다.

설치 파일을 더블 클릭해서 실행해주세요.

별도 선택 필요 없이 "Next" 버튼을 클릭하면 바로 설치됩니다.

설치 경로는 기본적으로 "Program Files" 아래 "Tesseract-OCR" 폴더에 설치됩니다.

먼저 이 경로를 복사해주세요.

이제 테서랙트( Tesseract ) 명령어를 사용하기 위해서 시스템에서 환경 변수를 등록해주세요.

복사한 경로를 시스템 환경 변수 "PATH"에 추가해주세요.

정상적으로 추가되면 "tesseract" 명령어로 내용을 확인할 수 있습니다.

이제 OCR을 테스트하기 위해서 영어 이미지를 만들었습니다.

테서랙트(Tesseract) 데이터 부분을 캡처했습니다.

테서랙트(Tesseract) 기본 명령어는 stdout -l를 사용해서 언어를 선택할 수 있습니다.

tesseract [경로] stdout -l [언어]

tesseract d:\en.jpg stdout -l eng

텍스트 추출 결과 영어이라서 그런지 대부분 텍스트를 정상적으로 추출했습니다.

이번에는 한글을 추출하기 위해서 옵션을 "kor"로 변경했습니다.

이미지도 한글이 포함된 이미지를 생성했습니다.

영어와 동일하게 이미지 경로와 언어만 변경했습니다.

그런데 "Failed loading language 'kor' " 오류가 발생하면서 텍스트 추출이 안됩니다.

확인해보면 테서랙트(Tesseract)는 tessdata 폴더에 포함된 언어 정보를 확인해서 텍스트를 추출하는데 'kor' traineddata가 없어서 발생한 문제입니다.

아래 사이트에서 테서랙트(Tesseract)다양한 언어 정보를 확인할 수 있습니다.

https://github.com/tesseract-ocr/tessdata

 

tesseract-ocr/tessdata

Trained models with support for legacy and LSTM OCR engine - tesseract-ocr/tessdata

github.com

아래쪽으로 스크롤하면 "kor.traineddata" 파일을 확인할 수 있습니다.

클릭하고 다운로드해주세요.

테서랙트(Tesseract) "tessdata" 폴더에 다운로드된 kor 파일을 복사합니다.

한글 텍스트를 추출하기 위해서 다시 명령어를 입력하면 정상적으로 한글 텍스트를 추출하는 것을 확인할 수 있습니다.

이번에는 한글과 영어를 한 번에 확인할 수 있는 이미지를 만들었습니다.

명령어는 기존과 동일하지만 언어 부분에 "kor+eng"로 변경했습니다.

tesseract [경로] stdout -l [언어]

tesseract d:\keng.jpg stdout -l kor+eng
tesseract d:\keng.jpg stdout -l kor+eng > keng.txt

정상적으로 한글, 영어 모두 추출되는 것을 확인할 수 있습니다.

한글, 영어를 분리해서 사용할 경우가 가장 추출 내용이 정확합니다.

한글, 영어를 혼합해서 사용할 경우 유실되는 정보가 조금씩 존재합니다. 

별도 텍스트 파일로 저장하고 싶다면 ">" 기호를 사용해서 텍스트 파일을 저장할 수 있습니다.

테서랙트(Tesseract)는 다양한 이미지 정보에 포함된 텍스트 정보를 추출할 수 있는 좋은 모듈입니다.

무료 사용도 가능하고 다양한 언어를 추출할 수 있기 때문에 더욱더 편리합니다.

다음 시간에는 테서랙트(tesseract)를 이용한 파이썬(python) 코드를 알아보겠습니다.

감사합니다.

반응형
반응형

파이썬(python)은 배열을 리스트처럼 자유롭게 사용할 수 있는 언어입니다.

기본적으로 '[]'를 사용해서 정의합니다.

숫자, 문자 모두 사용 가능합니다.

a = [1,2,3,4,5,6,7]
b = ['a','b','c','d']
c = ["aa","bb","cc"]

print(a)
print(b)
print(c)

a, b, c 각각 다른 형태로 리스트를 생성할 수 있습니다.

출력 결과 입력된 정보를 모두 확인 할 수 있습니다.

배열 인덱스를 접근하기 위해서는 0 부터 마지막 개수까지 정수를 입력하면 됩니다.

a = [1,2,3,4,5,6,7]
b = ['a','b','c','d']
c = ["aa","bb","cc"]

print(a)
print(a[0])
print(a[1])
print(a[6])
print(a[-1])

파이썬은 인덱스 값이 -1일 경우 마지막 배열 위치 정보를 확인할 수 있습니다.

a배열의 크기는 7이기 때문에 6이 최대 크기이며, -1을 입력하면 최대 크기인 인덱스 6으로 접근합니다.

출력 결과 마지막 인덱스 크기 값이 같은 것을 확인할 수 있습니다.

 

파이썬은 배열형을 자유롭게 사용이 가능합니다.

a 배열은 정수와 문자를 동시에 사용이 가능합니다.

a = [1,2,'a','b']
b = [1,2,['a','b','c']]
print(a)
print(a[3])
print(a[-1])

print(b)
print(b[1])
print(b[-1])

b배열은 배열 안에 다른 배열도 선언이 가능합니다.

b배열 인덱스 0, 1은 정수 1,2이지만 3번째 인덱스는 문자열 배열입니다.

출력 결과 정수, 문자열, 문자열 배열 모두 확인이 가능합니다.

 

파이썬은 리스트 연산이 가능합니다.

a = [1,2,'a','b']
b = [1,2,['a','b','c']]

print(a + a)
print(a * 2)
print(b * 3)

연산자를 사용해서 리스트를 변경할 수 있습니다.

연산자를 사용하면 기존 리스트 크기가 변경되면서 증가분만큼 리스트가 변경됩니다.

 

선언된 리스트는 다양한 메서드를 사용해서 변경이 가능합니다.

a = [1,2,'a','b']
b = [1,2,['a','b','c']]

print(len(a))
print(a)
print(a.append('a'))
print(a)
del a[-1]
print(a)
a.reverse()
print(a)
a.insert(0,10)
print(a)

리스트 크기를 확인하기 위해서는 len, count를 사용하면 전체 크기를 확인할 수 있습니다.

append 메서드를 사용하면 마지막 인덱스에 요소를 추가할 수 있습니다.

del, remove 메소드를 사용하면 선언된 인덱스 정보를 삭제할 수 있습니다.

reverse 메서드는 배열의 위치를 반대로 변경해줍니다.

마지막으로 insert는 선택 인덱스에 값을 변경할 수 있습니다.

파이썬은 배열을 리스트처럼 자유롭게 사용할 수 있어 다양한 계산이 가능합니다.

리스트는 개발에서 가장 많이 사용되는 요소이기 때문에 꼭 사용법을 익혀주세요.

감사합니다.

반응형
반응형

파이썬(python)은 문자열을 자유롭게 사용할 수 있습니다.

문자열은 배열로 저장하기 때문에 사용하기 더욱더 편리합니다.

파이썬(python) 문자열을 사용하기 위해서는 큰따옴표( " )와 작은따옴표( ' )를 사용합니다.

a = "파이썬 문자열 시작합니다."
b = '파이썬 문자열 시작합니다.'

print(a)
print(b)

이번에는 지난 시간에 설치한 파이참을 사용해서 빌드하겠습니다.

a, b 변수에 문자열을 할당합니다.

출력은 print() 함수를 사용합니다.

출력 결과 동일한 내용 텍스트를 확인할 수 있습니다.

텍스트 선언 시 큰따옴표와 작은따옴표를 같이 사용할 없습니다.

시작한 문자열과 마지막 문자열이 동일해야 오류가 없습니다.

 

파이썬 이스케이프 코드 사용법

a = "이스케이프 코드 라인 피드 \n"
b = '이스케이프 코드 캐리지 리턴 \r'
c = '이스케이프 코드 탭 \t'
d = "이스케이프 코드 작은 따옴표 \'"
e = "이스케이프 코드 큰 따옴표 \""
f = "이스케이프 코드 백슬래시 \\"

print(a)
print(b)
print(c)
print(d)
print(e)
print(f)

파이썬도 다른 언어와 동일하게 문자열 사용 시 이스케이프 코드를 사용해서 특수 문자열을 추가할 수 있습니다.

이스케이프 코드는 라인피드, 캐리지 리턴, 탭, 작은따옴표, 큰 따옴표, 백 슬래시 등을 사용할 수 있습니다.

 

파이썬 문자열 배열 사용법

파이썬은 문자열을 선언하면 배열형태로 저장되어 인덱싱에 따른 위치 정보를 바로 확인할 수 있습니다.

a = "문자열 배열"
b = "python string array"

print(a[0])
print(a[4])

print(b[0])
print(b[5])

영문과 한글 모두 배열로 저장되며, 좋은 점은 유니코드 상관없이 자동으로 문자열을 변형되어 사용이 가능합니다.

한글 2byte, 영문 1byte 구분 없이 배열에 순서대로 저장되기 때문에 초보자가 사용하기 매우 편리합니다.

설정한 인덱스에 따른 위치 문자가 출력됩니다.

배열 크기 보다 클 경우는 오류가 발생합니다.

인덱스는 배열이기 때문에 0부터 시작합니다.

 

파이썬 문자열 연산자 사용법

파이썬은 + 연산자를 사용해서 문자열을 붙일 수 있습니다.

a = "문자열 배열"
b = "python string array"
c = a + "문자열 추가"
f = a * 10

d = a + b

print(d)
print(c)
print(f)

a, b 선언된 문자열을 + 연산자를 사용해서 d에 저장이 가능합니다.

파이썬에서는 '*' 연산자를 사용해서 문자열 복사가 가능합니다.

출력 결과 문자열을 붙어 있는 것을 확인할 수 있습니다.

a 변수를 10 복사한 내용도 확인이 가능합니다.

문자열을 직관적으로 사용할 수 있어 정말 편리합니다.

 

파이썬 문자열 메서드 사용법

파이썬에서는 문자열을 선언하면 객체로 인식하면 다양한 메서드를 사용할 수 있습니다.

a = "문자열 배열"
b = "python string array"
c = "문자열1|문자열2|문자열3"

print(len(a))
print(a.find('배'))
print(a.index("배"))
print(b.isupper())
print(a.rfind('배'))
print(c.split('|'))

a문자열에 "."을 사용하면 메서드를 확인할 수 있습니다.

다양한 메소드를 사용해서 문자열 정보를 확인할 수 있습니다.

문자열 메소드 중에서 split를 사용하면 구분자를 확인해서 배열 형태로 문자열이 저장됩니다.

파이썬은 문자열을 직관적으로 변경하거나, 연산할 수 있어 사용하기 매우 편리합니다.

decode(), encode()를 사용해서 문자열 인코딩도 가능하고, 바이트 배열에 따른 문자열 출력도 가능합니다.

쉽게 문자열을 접근할 수 있어 코드 내용이 많아 질 경우 오류를 최소화할 수 있습니다.

문자열은 매우 중요한 내용이기 때문에 꼭 많이 코딩해보세요.

감사합니다.

반응형
반응형

 파이썬(python)에서도 다양한 자료형을 사용할 수 있습니다.

오늘은 자료형 기본인 숫자에 대해서 알아보겠습니다.

파이썬(Python)은 기본적으로 바로 숫자를 사용해서 연산이 가능합니다.

일반적으로 컴파일을 진행하기 위해서는 변수를 사용해서 숫자를 대입하지만 파이썬에서 바로 사용이 가능합니다

0
>>> 1 + 1
2
>>> 1 - 1
0
>>> 2 * 2
4
>>> 4 * 5
20
>>> 100 / 5
20.0
>>> 100 % 5
0
>>>

 숫자와 연산자를 입력하면 바로 결과를 확인할 수 있습니다.

일반적인 연산자 및 특수 연산자도 사용이 가능합니다.

>>> a = True
>>> b = False
>>> a = true
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> b = false
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'false' is not defined
>>>

불린 타입으로 True, False 사용이 가능합니다.

단 정확하게 True, False를 입력해야 합니다.

소문자로만 사용할 경우 오류가 출력됩니다

>>> a = 14
>>> b = -3
>>> c = 4.56
>>> a
14
>>> b
-3
>>> c
4.56
>>>

숫자, 정수 모두 변수를 사용할 수 있습니다.

변수 선언은 바로 '='을 사용해서 입력하면 됩니다.

타입에 따라서 자동적으로 변하기 때문에 별도 변환이 필요 없습니다.

>>> 2 ** 5
32
>>> 5 << 1
10
>>> 5 >> 1
2
>>> 1 & 3
1
>>> 1 | 3
3
>>> 1 ^ 4
5
>>>

다양한 연산자를 사용해서 연산이 가능합니다.

'**'을 사용할 경우 제곱을 바로 확인할 수 있습니다.

비트 시프트 및 논리 연산도 바로 가능합니다.

>>> a = 10
>>> b = 20
>>> c = 30
>>> a > b
False
>>> a == b
False
>>> c != a
True
>>>

변수를 사용해서 숫자를 대입하면 연산자를 사용해서 참, 거짓을 확인할 수 있습니다.

0
>>> a = 4.56
>>> a
4.56
>>> int(a)
4
>>> float(a)
4.56
>>>

마지막으로 정확한 숫자를 확인하기 위해서는 타입명을 입력하고 변수를 넣으면 변경됩니다.

int(변수), float(변수) int형일 경우 소수점이 빠진 정수를 확인할 수 있습니다.

파이썬(Python)은 다양한 자료형 숫자와 연산자를 즉시 사용할 수 있어 빠른 연산이 가능합니다.

일반적인 컴파일 언어에서는 모든 내용을 등록하고 대기해야 하는 단점이 있지만, 파이썬은 이런 부분이 없기 때문에 직관적으로 다양한 분야에 사용이 가능합니다.

감사합니다.

반응형
반응형

파이썬(Python) 에디터를 사용하면 간단하게 프로그램 확인은 가능하지만,

다양한 .py를 사용하기 위해서는 조금 불편한 점이 있습니다.

오늘은 파이썬으로 개발하기 위해서 사용하기 편리한 프로그램을 알아보겠습니다.

파이썬(python)을 컴파일하기 위해서는 Visual Studio Code도 사용하기 좋지만

별도 plugin 설치가 필요 없는 파이참(PyCharm) 설치 방법을 알아보겠습니다.

www.jetbrains.com/pycharm/download/#section=windows

 

Download PyCharm: Python IDE for Professional Developers by JetBrains

Download the latest version of PyCharm for Windows, macOS or Linux.

www.jetbrains.com

파이참(PyCharm)은 무료 버전으로 바로 다운로드 가능합니다.

Windows, macOS, Linux 모든 버전이 있습니다.

설치 환경에 맞는 탭을 선택하고 "DownLoad" 버튼을 클릭해주세요

다운로드 창이 전환되면서 하단에 다운로드 항목을 확인할 수 있습니다.

크기는 500M 정도로 다운로드 시간이 조금 걸립니다.

설치 파일을 실행하면 파이참(PyCharm)을 설치합니다.

환경 설정만 체크해주면 Project 선택 시 바로 컴파일됩니다.

설치 후 리부팅 여부를 확인하는데 리부팅을 안 하셔도 파이썬이 먼저 설치되어 있다면 바로 사용이 가능합니다.

파이참(PyCharm)을 실행하면 어디서 많이 보더 화면을 확인할 수 있습니다.

이클립스와 비슷한 구성이지만 블랙 스킨을 사용한 툴입니다.

Android Studio 개발사에서 개발한 툴이기 때문에 개발자를 배려하는 다양한 기능이 있습니다.

기본 테스트를 하기 위해서 "Shift" + F10을 클릭하면 컴파일되면서 하단에 실행 정보를 확인할 수 있습니다.

파이썬 에디터처럼 라인프린터 방식은 아니지만,

다양한 프로젝트 구성이 가능하기 때문에 프로젝트 진행 시 사용하면 매우 편리합니다.

이제 파이썬을 공부하기 위해서 모든 준비가 되었습니다.

감사합니다.

반응형
반응형

오늘은 딥러닝부터 AI까지 다양하고 쉽게 접근할 수 있는 파이썬(python) 설치하는 방법을 알아보겠습니다.

파이썬은 1990년 암스테르담의 귀도 반 로섬이 개발한 인터 프린터 언어입니다.

인터 프린터 방식으로 빠른 테스트가 가능하고 직관적이라서 가독성이 매우 좋은 언어입니다.

www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

파이썬은 설치도 매우 간단합니다.

위 사이트로 이동해주세요.

상단에 있는 "Download Python 3.9.4" 버튼을 클릭하면 셋업 파일을 다운로드할 수 있습니다.

하단 리스트에서는 최신 버전에 따른 Release 정보를 확인할 수 있습니다.

"Download" 항목을 클릭해주세요.

최신 버전 정보를 확인할 수 있습니다.

다운로드된 설치 파일을 실행하면 설치 화면을 확인할 수 있습니다.

상단에 설치 경로를 확인할 수 있습니다.

환경변수를 등록하기 위해서 하단에 "Add Python 3.9 to PATH"를 체크해주세요.

별도 환경 변수 등록할 필요가 없기 때문에 정말 편리합니다.

설치부터 많은 사용자를 배려한 형태입니다.

정상적으로 설치되었다면 완료 화면을 확인할 수 있습니다.

검색창에서 Python을 검색하고 클릭하면 파이썬(Python) 에디터를 확인할 수 있습니다.

인터 프린터 방식으로 직관적으로 명령어를 입력할 수 있습니다.

기본적으로 R 프로그램과 동일하게 다양한 연산이 바로 가능합니다.

출력, 변수도 사용하기 매우 편리하기 때문에 기본적으로 쉽게 결과 값을 확인할 수 있습니다.

감사합니다.

반응형

+ Recent posts