티스토리 뷰

Study/Open CV

Build Tesseract & Leptonica

kkaps 2018. 5. 11. 19:37

글이 길어서 초반에 요약을 하고 들어가자면,


1. Tesseract를 빌드하려고 보니 Leptonica가 필요함


2. Leptonica를 빌드하려고 보니 여러 이미지 라이브러리들이 필요함


3. 그래서 이미지 라이브러리 빌드 -> Leptonica 빌드 -> Tesseract 빌드 순으로 빌드 


의 내용입니다.


여기서 나오는 Leptonica는 v1.76.1 이고 Tesseract는 4.0 입니다.




문자 인식을 위해 OpenCV contrib에 있는 Text 모듈을 사용하려고 하였고, Tesseract가 없으면 안된다는 글이 있어서 빌드 하기로 하였습니다.



The recognition part currently uses open-source Tesseract OCR (https://code.google.com/p/tesseract-ocr/). If Tesseract OCR is not installed on your system, the corresponding part of the functionality will be unavailable.

 

출처: <https://github.com/opencv/opencv_contrib/tree/master/modules/text> 


그래서 일단 뭔지 모르겠지만 tesseract-OCR을 설치하기로 하고 관련 자료를 찾아보았으니 다 무슨 말인지 모르겠고 어려웠고,


VS2015에서 cppan을 사용하면 쉽게 할 수 있다고 하고, 설치 가이드도 tesseract 사이트에 있었으나, 수많은 오류를 뿜어내고, 심지어 그 오류가 무슨 말인지도 모르겠기에 소스를 받아서 빌드하고 사용하기로 마음을 먹었죠.


일단 github의  tesseract site


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


CMake, git, VS 2015이상이 필요하다고 해 모두 준비하고 소스를 다운 받았습니다.



Clone or download에서 zip이나 git desktop으로 다운로드 하던지


cmd 창에서 


* git clone https://github.com/tesseract-ocr/tesseract


로 다운 받을 수 있습니다.



소스를 다 받았으니 일단 아무 생각 없이 CMake 실행


돌려보니 아래와 같은 오류가 발생했습니다.


LeptonicaConfig.cmakeleptonica-config.cmake 라는 파일을 못 찾겠다, 즉 Leptonica라는게 없다고 하는건데요.


그게 뭔지는 잘 모르겠으니 일단 어디있는지 찾아봤습니다.


https://github.com/DanBloomberg/leptonica


tesseract나 OpenCV에서 이미 사용하고 있다고합니다.


일단 github 사이트에서 소스를 다운로드 합니다.


이것도 역시 Clone or Download를 클릭해서 받던지



아니면


* git clone https://github.com/DanBloomberg/leptonica.git


으로 받습니다.


소스를 다 받은 후 CMake를 실행합니다.



configure를 하고 나니 CMake가 성공하긴 했는데 아래의 문구가 신경 쓰입니다.



이게 뭔가 하고 찾아봤더니, Leptonica에서 위의 포맷의 이미지를 열기 위해서 포함시켜줘야 한다고 하는겁니다.


그래서 관련 내용으로 찾다가 VS2015_Tesseract라는 것을 찾았습니다.


https://github.com/peirick/VS2015_Tesseract


이 사이트에 가보니 위에 언급한 것들이 다 모여 있었습니다.



그래서 일단 소스를 받았습니다.

VS2015용 솔루션 파일을 제공해주기 때문에 Visual Studio에서 열어서 확인할 수 있었습니다.



여기서 필요한 파일 포맷의 Library를 빌드해서 포함시키면 되는데, zlib은 필수입니다.


위의 솔루션에서 보면 tesseractlibtesseract 같은 것이 있는데 빌드해보면 안에 파일이 없다고 나옵니다.


아마 여기에 tesseract의 파일들을 추가해서 빌드하면 뭔가 나올거 같지만 해보지는 않았습니다.


그냥 일단 Leptonica에 집중하기로 하고,,,



위에서 생성한 library 파일들을 Leptonica에 포함 시켜줘야 하는데 이를 위해


CMAKE_PREFIX_PATH 


라는 옵션을 사용합니다.


CMAKE_PREFIX_PATH의 사용법은

=>  https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables

 


일단 Leptonica 소스의 root 폴더에 lib과 include 폴더를 생성합니다.

lib 폴더에는 위에서 빌드한 library들을, include 폴더에는 library를 사용하는 header 파일들을 복사합니다.


저는 위의 종류들을 복사했습니다.


복사를 마치고 CMake에 CMAKE_PREFIX_PATH를 추가합니다.


두가지 방법이 있는데

CMakeList.txt 파일에 Leptonica root 경로를 추가하는 방법


set(CMAKE_PREFIX_PATH "D:\\Tools\\OpenCV\\CharRecog\\leptonica-master")


또는


CMake GUI에서 +Add Entry 버튼을 클릭한 후


위와 같이 입력하는 방법 입니다.


위의 과정을 마치면 다시 CMake에서 Configure를 클릭하면 아래와 같이 결과가 나옵니다.



여기서 Generate 해보니 아래와 같은 오류 메시지가 발생하는데,



prefix의 경로가 다른 속성에 이미 포함되어 있다는 말인것 같은데, 일단 무시하고 Open Project로 Visual sutdio을 열어서 빌드 합니다.


빌드 하니 


root/build/bin/Release 폴더에 leptonica-1.76.1.dll 파일이

root/src/Release 폴더에 leptonica-1.76.1.lib 파일이 생성되었습니다.



다시 tesseract로 돌아옵니다.



LeptonicaConfig.cmake 또는 leptonica-config.cmake를 찾을 수 없다는 것 같으니 그 파일이 있는 경로를 Leptonica_DIR에 추가 합니다.


Leptonica/build 밑에 LeptonicaConfig.cmake 파일이 있음을 확인 하고 해당 경로를 추가하여 다시 Config 하였습니다.



config가 성공하였고, Generate 하여 Open Project로 Visual Studio를 실행합니다.


빌드를 해보니 Allheader.h가 없다고 에러가 납니다.


여기 저기 찾아보니 Leptonica를 빌드 할 때 썼던 library, Leptonica의 빌드 결과물, header 파일들을 tesseract에 복사해줘야 한다고 해서


lib, include 폴더를 만들고 해당 파일들을 복사합니다.


저는 위의 파일들을 복사하였네요.


그리고 다시 configure한 후 빌드 하였으나 여전히 allheader.h가 없다고 나옵니다.


이 파일을 찾아보니 Leptonica의 root/src 폴더에 있었습니다.


이 파일을 Tesseract에서도 사용할 수 있도록 tesseract/src/api 폴더에 복사합니다.


그러자 또 다른 파일이 없다고 나옵니다.


없다고 나오는 모든 파일을 Leptonica에서 검색해서 tesseract/src/api 폴더에 복사합니다.


이 부분은 이렇게 하는게 맞는 방법인지 모르겠지만, 이렇게 빌드 하자 성공했습니다.



tesseract-root/Build/bin/Release 폴더에 tesseract40.dll

tesseract-root/Build/Release 폴더에 tesseract40.bin


을 확인할 수 있습니다. 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 30 31
글 보관함