티스토리 뷰

※ 본문에 티스토리 기술 문제로 이미지를 로드 할 수 없게 되었는데 읽는데 큰 지장은 없을 겁니다


이미지에서 문자를 추출하는 기술은 광학 문자 인식(Optical character recognition; OCR)이라는 이름으로 불린다. 이미 많은 OCR 기술이 오픈소스로 등록되어 있는데 여기서는 tesseract-ocr을 사용해서 이미지에 있는 문자를 추출해 보도록 하자. 


tesseract는 구글에서 지원하는 프로젝트이고 인식률이 OCR 기술 중 굉장히 높은 편에 속한다고 한다.


우선 tesseract-ocr을 다운로드 받고 설치해야 하는데 과정은 아래와 같다. (wiki를 참고하면 더욱 자세하게 확인할 수 있다)


필요한 패키지를 설치한다.

$ sudo apt-get install autoconf automake libtool
$ sudo apt-get install autoconf-archive
$ sudo apt-get install pkg-config
$ sudo apt-get install libpng12-dev
$ sudo apt-get install libjpeg8-dev
$ sudo apt-get install libtiff5-dev
$ sudo apt-get install zlib1g-dev


그리고 추가로 libleptonica를 설치한다.

$ sudo apt-get install libleptonica-dev


이제 본격적으로 tesseract-ocr을 사용하기 위해 GitHub에서 소스를 다운로드 받아 컴파일 하도록 하자. 

$ git clone --depth 1 https://github.com/tesseract-ocr/tesseract.git
$ cd tesseract
$ ./autogen.sh
$ ./configure --enable-debug
$ LDFLAGS="-L/usr/local/lib" CFLAGS="-I/usr/local/include" make
$ sudo make install
$ sudo ldconfig


혹시 configure 과정에서 버전에 대한 에러가 출력된다면 이전에 포스팅 된 내용을 확인하도록 하자. 이제 데이터만 얻으면 모든 과정이 끝났다고 할 수 있다. 여기서 데이터란, 언어를 해석할 수 있도록 도와주는 datafile 인데 아래 경로에서 다운로드 받을 수 있다.

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files


한글 해석을 위한 koreng 정도 받으면 되고, 다운로드 받은 파일은 설치 과정에서 별 다른 옵션을 주지 않은 이상 /usr/local/share/tessdata/ 경로에 두면 된다.


이제 터미널에서 한글 이미지를 테스트 해보도록 한다. 실행 명령은 아래와 같다.

$ tesseract 실시간탑텐.png outputbase -l kor


N포털의 실시간 검색어를 캡쳐한 "실시간탑텐.png" 라는 파일을 kor로 해석하라는 의미이다. 이미지 내용은 아래와 같다.



테스트를 진행한 결과는 상당히 실망스럽게도 아래와 같았다. (tesseract  를 실행하면 default 로 떨어지는 확장자가 txt 이다.)

oops@oops:test$ cat outputbase.txt 

실 시 간 급상승



0



9



룬 재 위 1 번 가

겸 덕 시 60 픈 역정

새



정 겨 욘



과 이 브 를 스

흐 녀



혁 의 시부



빅 지크



애 타 는 로 면 스



10 한 쿡 사 녁 겅 시 흄



207061010874 띠 재기



080100.3



 



르

르

르

르

르

르

르

르

르



oops@oops:test$


이번에는 영어로 테스트해 보기로 하고, 영어 데이터를 구했다. 가장 흔히 구할수 있는 New York times 에서 발췌한 데이터를 사용했다. 사용된 이미지를 먼저 살펴보자.


결과는 아래와 같다.

oops@oops:test$ tesseract 뉴욕타임즈.png outputbase -l eng

Info in bmfCreate: Generating pixa of bitmap fonts from string

Tesseract Open Source OCR Engine v4.00.00alpha-378-ge18a802 with Leptonica

Warning. Invalid resolution 0 dpi. Using 70 instead.






oops@oops:test$ cat outputbase.txt 

6hr New flork aims



NEWS

World



u.s.



Po‘mcs



N.V.



Business

Tech



Science

Heann



Spam

Educanon

Ohnuanes

Today‘s Paper

Canecnons



OPINION



Today‘s Omman

ourEd Calumnm

Edmona‘s

Conmbutmg wmers

ourEd Camrrlmors

Omnnnamr



Leners



Sunday Revrew

Tamng Note



Room for Debate

Pubhc Edmr



Video Omman



ARTS

Today‘s Ans



An & Desrgn



Books



Dance



Mawes



Music



N.v.c. Evem Gmde

Telewsmn



Theater



Video Am



uvmn

Automobiles

Crossword



Fond



Educanon



Fasruan & 5M6:

Heann



Jobs



Magazrne



N.v.c. Evem Gmde

Rea‘ Estate



T Magazme



Travel



Weddrngs &

Celebranons



LIanGs a MORE

classmeds



Tools & Semces

Tunes Topics



Pubhc Edmr



N.v.c. Evem Gmde

aloe:



Mummedra

anagravhy



Video



NYT Stare



Tunes Journeys

Subscribe



Manage My Aocoum

Cance‘ Subscrlmnn



Bow Name Page »



sulscnll:

a Home I: wery

a D

e 1inres Insider



5 Crossword



rm Nm‘mls

Arms



Gm Suhxnlflmns

I‘m-name Suhacl‘lflmns

[mm rm



Mamie Afln‘utmns

Rem“ Edman



oops@oops:test$ 

확실히 영어에 대한 인식이 높다는 것을 확인할 수 있었다. 영어 이미지는 여러 가지 활용 방안이 있을 수 있겠지만 한글은 그렇지 못하겠다. 이에 대해서는 인식률을 높일 수 있는 방법에 대해서 다시 살펴봐야겠다.


또한 옵션에 보면 OCR Engine modes가 여러개 있는데 각각으로 돌려봤을 때 큰 차이를 느끼지 못했다. 아니 동일한 결과가 출력되더라. 기타 다른 train data가 있어야 하는 것인지, 아니면 다른 의미인지 조금 더 공부해봐야겠다.


OCR Engine modes:

  0    Original Tesseract only.

  1    Neural nets LSTM only.

  2    Tesseract + LSTM.

  3    Default, based on what is available.


tesseract-ocrApache License를 따른다는 것을 알아두도록 하자.



댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday