python using ocr(python을 이용하여 ocr, 이미지 프로세싱)

Posted by jungbbong
2015. 7. 5. 09:12 프로그래밍/Python

python을 이용하여 이미지 프로세싱

-> 요컨데 이미지의 글을 추출하여 text데이터로 뽑는방법


환경 라즈베리파이2, 라즈비안에서 실행하였음


생각보다 컴파일이 느림

패키지파일들이 의존성이 있기때문에 로컬에서 컴파일하였음...


#컴파일내용들

#개발SDK도구들도 설치함

sudo nice apt-get update

sudo apt-get install autoconf automake libtool

sudo apt-get install libpng12-dev

sudo apt-get install libjpeg62-dev

sudo apt-get install g++

sudo apt-get install libtiff4-dev

sudo apt-get install libopencv-dev libtesseract-dev

sudo apt-get install cmake

sudo apt-get install libleptonica-dev

sudo apt-get install liblog4cplus-dev

sudo apt-get install libcurl3-dev

sudo apt-get install python2.7-dev

sudo apt-get install tk8.5 tcl8.5 tk8.5-dev tcl8.5-dev

#sudo apt-get build-dep python-imaging --fix-missing


#python에서 이미지라이브러리를 사용하기위한 pillow(PIL의 업데이트 버전이라고 보면된다)

#혹시몰라서 둘다설치함 pil 실제코드에서는 PIL을 사용

sudo pip install pillow

sudo pip install pil


#이미지 컨버팅프로그램

sudo apt-get install imagemagick


#옵션

sudo apt-get install git

sudo apt-get install build-essential


#이미지 처리하는 프로그램

#컴파일시 상당시간을 소모함 


wget http://www.leptonica.org/source/leptonica-1.70.tar.gz

tar -zxvf leptonica-1.70.tar.gz

cd leptonica-1.70/

./autobuild

./configure

make

sudo make install

sudo ldconfig


#tesseract
#오픈소스임

wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz 

tar -zxvf tesseract-ocr-3.02.02.tar.gz
cd tesseract-ocr/
./autogen.sh
./configure
make
sudo make install
sudo ldconfig


#환경변수등록

#해당 TESSDATA_PREFIX 폴더의 위치를 등록하여 한국어트레이닝셋을 넣어주어야함

export TESSDATA_PREFIX=/usr/local/share/


#한국어 트레이닝셋 다운로드후 복사

wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.kor.tar.gz

tar xvf tesseract-ocr-3.02.kor.tar.gz

cd tesseract-ocr/

sudo cp -r tessdata/ $TESSDATA_PREFIX



#tesseract를 wrapping하기위한 python package 설치

sudo pip install pytesseract  



#python 코드



*8번째 라인에서 PIL의 image객체의 함수인 convert를 통하여 이미지에 대한 조작을 쉽게 해준다음 getpixel을 사용, 이미지에 대한 특징값을 도드라지게 변경해서 쉽도록 튜닝할수도있다.....

16번째 라인과 17번째 라인의 차이점은 lang 옵션을 쓰도록 수정한것, 한국어 지원을 위하여 한국어 트레이닝셋을 넣은다음에 한국어옵션으로 사용하도록 한것이다




테스트에 사용한 이미지파일



추가적으로 임의의 트레이닝셋을 통하여 사용하는방법을 찾아보는중...