이미지를 텍스트로 변환하기 위해서는 약간의 코딩 실력이 필요합니다. 구글에서는 cloud vision API를 배포하여 사용을 더욱 쉽게 해줬는데요. 이를 사용하는 방법에 대해 정리합니다. 앞서 파이썬 라이브러리에서 제공하는 pytesseract, easyocr 모두 사용해보았으나 생각보다 신통치 않습니다.
pip install google-cloud-vision
공식문서: https://pypi.org/project/google-cloud-vision/
구글 클라우드 가입
먼저 구글 클라우드에 가입해야 합니다.
https://console.cloud.google.com/
가입을 완료하면 300달러 무료 크레딧을 받고 3개월 동안 무료 체험판을 사용할 수 있습니다. 3개월 간 무료 크레딧을 다 쓸 때까지는 무료입니다. 체험판 기간이 끝난다고 해서 바로 과금 되지 않고 유료 전환을 물어보니 향후 과금 될 걱정도 필요 없습니다.
새 프로젝트 생성
새로운 프로젝트를 생성합니다.
프로젝트 이름을 넣고 만들기를 클릭합니다. 프로젝트를 새로 만들면 아이디를 부여 받습니다. 프로젝트 아이디는 향후 api 인증을 위해 사용됩니다.
Cloud Vision API 사용 설정
API 사용 설정을 진행합니다. API 라이브러리에서 vision 이라고 검색하면 cloud vision api를 찾을 수 있습니다. 사용 버튼을 클릭해서 활성화합니다.
API 인증정보 설정
API를 사용하기 위해서는 인증이 필요합니다. 그래야 추후 결제도 진행할 수 있으니까요. 여러 인증 방법 중 로컬에서 제일 편한 방법으로 진행해보겠습니다. 구글은 다양한 방식의 인증을 제공하고 있으나 보안에 제일 좋고 코드 작성시에도 편리한 ADC 인증 방법으로 진행합니다.
맥OS
CLI sdk를 다운받아 설치합니다.
https://cloud.google.com/sdk/docs/install-sdk?hl=ko&_ga=2.165623615.-1674019021.1698040862
플랫폼에 따라 다운로드 파일이 다릅니다. 본인의 사양에 맞는 SDK 파일을 다운로드 받아 설치합니다. 더블 클릭으로 간단히 압축을 풀 수 있습니다.
이후 설치를 진행합니다. 터미널을 열어 sdk 파일 압축 푼 경로로 이동하여 인스톨 및 초기화 진행합니다.
install.sh # 인스톨
gcloud init # 초기화
초기화까지 완료하였다면 이제 사용자 인증 정보 파일을 생성합니다.
gcloud auth application-default login # 인증 정보 생성
인증 정보 생성을 위해 해당 명령어를 입력하면 구글 로그인 브라우저가 뜹니다. 클라우드 비전에 가입한 이메일로 로그인하여 인증을 완료합니다.
윈도우 OS
윈도우 OS 에서 또한 CLI SDK 파일을 다운로드 받아 설치합니다. 윈도우즈 파워셀(터미널)을 열어 아래 명령어를 입력합니다. 그럼 설치 팝업이 생성됩니다. 순서에 따라 설치합니다.
(New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
& $env:Temp\GoogleCloudSDKInstaller.exe
설치가 완료되면 제일 먼저 초기화를 진행합니다.
gcloud init
초기화를 완료 후 사용자 인증 정보를 갱신합니다.
gcloud auth application-default login
이후 맥OS 와 똑같이 클라우드 비전에 가입한 이메일 주소로 인증합니다.
인증 완료
정상 인증 시 아래와 같은 팝업 확인이 가능합니다. 이제 인증되었고 API를 사용할 수 있습니다.
인증까지 자세한 내용은 아래 공식문서에서 더 자세히 확인 할 수 있습니다.
링크 : https://cloud.google.com/sdk/docs/install-sdk?hl=ko
API 연결 정상 작동 확인
인증 및 연결 작업이 완료되었습니다. 정상 작동하는지 간단한 코드로 테스트를 진행해보겠습니다. 아래 코드는 이미지를 텍스트로 변환하는 코드입니다.
from google.cloud import vision
client = vision.ImageAnnotatorClient()
with open('test01.png', 'rb') as image_file:
content = image_file.read()
image = vision.Image(content=content)
response = client.text_detection(image=image)
texts = response.text_annotations
print(type(texts))
print(texts[0])
위 test01.png 이미지는 다음과 같습니다.
해당 이미지를 파이썬에서 제공하는 2가지 라이브러리로 먼저 실행해보았는데요. 왜냐면 cloud vision은 과금이 필요하니까 말입니다. 기왕이면 공짜가 좋잖아요.
허나 결과를 아래와 같습니다.
- pytesseract : 거의 인식 못함. 알 수 없는 형태의 글을 보여줌
- easyocr: 거의 인식했으나 오타 많음
그럼 gcloud vision api 결과는 어떨까요?
gcloud vision은 텍스트 변환이 정확할 뿐만 아니라 띄어쓰기 및 줄 바꿈 또한 완벽했습니다. 3개월 무료 후 과금해야 하겠지만 더 많은 돈을 벌면 되니 큰 문제라 생각되지 않습니다.
꽤 많은 이미지를 텍스트화 했는데 10달러를 넘지 않았으니 큰 금액이라고 생각되지 않는 부분입니다.
인증 및 테스트까지 모두 진행해 보았는데요. 결과는 대만족입니다.