파이썬 AI 라이브러리 zAI 사용기 -문자인식 (1/5)
목차
파이썬은 다른 사람들이 만들어놓은 라이브러리를 가져다가 사용할 수 있다는 것이 큰 장점이다.
지금도 많은 사람들이 다양한 라이브러리를 만들고 사용하고 있을 것이다. 오늘은 AI를 체함할 수 있는 라이브러리가 있어 사용해보고자 한다.
오늘은 AI라이브러리의 하나인 zAI에 대해서 알아보고자 한다.
zAI는 zero-effort Artificial Intelligence의 앞자를 딴 것으로 머신러닝이나 관련 기술 지식이 하나도 없어도 고수준의 AI작업들을 할 수 있게 해 주는 라이브러리라고 한다.
라이브러리를 설치하는 방법은 여러가지가 있지만, pip install로는 설치가 되지 않는다.
git을 활용해서, 아래와 같이 command창에 입력하면 설치가 된다.
1. git clone https://github.com/BiometricVox/zAI
2. cd zAI
3. python setup.py install
현재 zAI에서 사용할 수 있는 기능은 총 3가지이다.
1. 이미지에서 문자 인식하기
2. 텍스트를 다른 언어로 변환하기
3. 번역된 텍스트를 보이스로 바꾸기
간략히 라이브러리를 알아보면, Google이나 MicroSoft의 AI API를 쉽게 사용할 수 있게 해주는 라이브러리이다. (로컬에서도 실행되는 게 있다고 하는데 확인은 못했다.) 그래서 실제 코드를 보면 API KEY를 입력해야 하는 부분이 있다. 그래도 5~6줄의 코드만으로 AI기술들을 활용해 볼 수 있다는 것은 큰 장점인 듯 하다.
우선 이미지에서 문자 인식을 해 보았다. 사용방법은 간단했다. image를 zImage로 불러오고, ocr()함수를 호출하면 문자가 인식된다. 우선 영어 문장이 있는 이미지를 만들어 테스트 해 보았다.
(test 이미지)
아래와 같은 이미지를 넣고, MicroSoft Azure의 Vision API를 실행해 보았다. MicroSoft 애저의 API KEY를 발급받는 방법이 궁금하다면 아래 포스팅을 참조해보자.
(참조: 마이크로소프트 애저 가입과 API KEY 발급)
zAI를 import 할 때 cv2를 import할 수 없다는 에러가 발생했다. 추가 패키지 설치가 필요한데, pip install opencv-python으로 패키지를 설치하면 해결이 된다.
(추출한 텍스트)
추출 결과는 조금 아쉽다. 문장을 여러 줄로 나눠서 그런지 위의 2줄 밖에 인식을 못하고, 'o'를 잘 인식하지 못했다. 구글 클라우드 API와 비교하고 싶었지만, 구글은 평가 기간이 종료되어 비용을 지불해야 사용이 가능해서 패스했다. ㅡㅜ
한글을 테스트했는데, 에러가 발생한다. 마이크로소프트 API문제는 아닌 것 같고, 언어를 인식하는데서 문제가 발생하는 듯 하다. 참고로 테스트한 그림은 아래 그림이다.
(한글 테스트용 사진)
에러 메시지는 아래와 같았다.
1 2 3 4 5 6 7 8 | File "/anaconda3/lib/python3.6/site-packages/zAI-0.1-py3.6.egg/zAI/zimage.py", line 313, in ocr text = zText(text,lang) File "/anaconda3/lib/python3.6/site-packages/zAI-0.1-py3.6.egg/zAI/ztext.py", line 272, in __init__ self.__check_lang__(lang) File "/anaconda3/lib/python3.6/site-packages/zAI-0.1-py3.6.egg/zAI/ztext.py", line 303, in __check_lang__ raise ValueError('Invalid language provided. lang must be an ISO639-1 code. See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for a complete list') ValueError: Invalid language provided. lang must be an ISO639-1 code. See https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for a complete list | cs |
무슨 애기인지 정확히 알기는 어렵지만 언어 인식에서 문제가 있는 듯 하다. 실제로 위 문제를 해결하고 인식해 보니 결과가 좋지 않다. 한국어로 인식을 못하는 듯 하다.
하지만 zAI라이브러리에서는 ocr()함수에 변수로 언어를 직접 지정해 줄 수는 없다. 위에 보이는 파일 중 zImage.py에서 언어를 지정해줄 수 있는 부분을 찾았다. 코드의 290행 쯤에 language를 unk로 지정한 부분을 찾을 수 있다. language를 ko로 수정하고 detectOrientaion은 false로 하자.
1 2 3 4 5 6 7 8 | params = urlencode({ #'language': 'unk', #'detectOrientation': 'true', # 언어를 지정해보자 'language': 'ko', 'detectOrientation': 'false', }) | cs |
(언어를 한글로 수정했다.)
글자 인식한 결과는 아래와 같았다.
(추출한 텍스트)
AI를 너무 믿은 걸까. '떼니멸래츰'이라는 이상한 말로 인식을 했다. 확실히 한글보다는 영어를, 그리고 복잡한 이미보다는 단순한 이미지의 글자를 잘 인식했다. 실제로 아래 그림은 인식이 정확히 됐다. 구글 API는 어떤 결과를 가져올지 궁금해지는 부분이다.
(테스트 이미지)
(정확히 문자를 인식했다.)
추천포스트
오늘은 이렇게 AI라이브러리라고 하는 zAI를 사용해 보았다. zero-effort라고 하더니 사용하기는 참 쉬웠다. 다음에는 해당 라이브러리를 이용하여 텍스트를 다른 언어로 변환하는 작업을 해 보도록 하겠다.
이미지 하나를 인식하는 코드는 아래와 같다. 별도의 설명이 필요 없을 만큼 직관적이고 사용하기 쉽다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # coding=utf-8 import zAI from zAI import zImage """ "zAI_BACKEND": "local", "MICROSOFT_AZURE_TEXT_TRANSLATION_API_KEY": "", "MICROSOFT_AZURE_BING_VOICE_API_KEY": "", "MICROSOFT_AZURE_FACE_API_KEY": "", "GOOGLE_CLOUD_API_KEY": "", "MICROSOFT_AZURE_VISION_API_KEY": "", "MICROSOFT_AZURE_URL": "" """ # zAI.utils.set_backend_key(key_name='GOOGLE_CLOUD_API_KEY',key_value='(자신의 API키를 넣는다)',save=True) zAI.utils.set_backend_key(key_name='MICROSOFT_AZURE_VISION_API_KEY',key_value='(자신의 API키를 넣는다)',save=True) zAI.utils.set_backend_key(key_name='MICROSOFT_AZURE_URL',key_value='japaneast.api.cognitive.microsoft.com',save=True) # 이미지 지정 image = zImage('./images/test.jpg') image.display() # 이미지 인식 text=image.ocr(backend='Microsoft') text.display() | cs |
문자인식외에도 zAI로 이미지에서 얼굴을 인식하고, 사진의 특징들을 추출하는 작업들을 할 수 있다. 자세한 내용이 궁금하다면 아래 포스팅을 참조해보자.
(참조: 파이썬 AI 라이브러리 zAI 사용기 -AI이미지 추출 (2/5) )
오픈API를 사용하면 다양한 재미있는 일들을 해 볼 수 있다. 파이썬을 활용한 오픈API 사용이 궁금하다면 아래 글을 참조해보자.
(참조: 오픈API를 활용한 사례는 어떤 것들이 있을까?)
이 글 공유하기
'Python > 파이썬 배우기' 카테고리의 다른 글
2018 파이썬 개발자 설문조사 결과 알아보기 (0) | 2019.03.30 |
---|---|
파이썬 AI라이브러리 zAI - 번역과 텍스트음성변환하기 (4/4) (4) | 2018.10.03 |
SQLITE3 파이참에서 SQL로 사용하기 (0) | 2018.09.22 |
파이참 화면 레이아웃 알아보기 (0) | 2018.08.26 |
파이썬 인공지능AI 라이브러리 사용 - 사진 변환 (3/5) (0) | 2018.08.24 |
파이썬 AI 라이브러리 zAI 사용기 -AI이미지 추출 (2/5) (2) | 2018.08.21 |
한스 로슬링 교수와 gapminder 알아보기 (0) | 2018.06.25 |
파이썬프로그래밍 유료&무료 교육 강좌 알아보기 (3) | 2018.02.18 |