Android의 OCR 라이브러리tess-two(도입편)

4708 단어 Android

이른바 tess-two


tess-two
OCR 라이브러리Tesseract-OCR는 안드로이드 NDK에 해당합니다.Tesseract-OCR은 HP Lab에서 제작되며 현재 Google이 프로젝트를 상속하고 있습니다.
이것을 사용하면 안드로이드로 카메라를 텍스트에 올려 텍스트를 읽는 프로그램을 쓸 수 있을 것이다.

도입 및 구축


다음은 자신의 업무 기록이다.개발 환경은 YES(10.1)입니다.
펼치면 두 항목(tess-two,eyes-two)과 테스트(tess-two-test)를 확인할 수 있습니다.아이즈투는 OCR에 필요 없을 것 같아서 이번엔 끼어들지 않겠다.

tess-two

cd tess-two
ndk-build
android update project --path .
ant release
빌딩은 상당히 긴 시간을 필요로 한다.
% tess-two-master/tess-two » ndk-build
[armeabi] Compile thumb  : lept <= adaptmap.c
[armeabi] Compile thumb  : lept <= affine.c
[armeabi] Compile thumb  : lept <= affinecompose.c
...
[mips] Compile++      : tess <= resultiterator.cpp
[mips] Compile++      : tess <= tessbaseapi.cpp
[mips] SharedLibrary  : libtess.so
[mips] Install        : libtess.so => libs/mips/libtess.so

% tess-two-master/tess-two » android update project --path .
Updated local.properties
Added file ./proguard-project.txt

% tess-two-master/tess-two » ant release
Buildfile: /Users/nunocky/tmp/tess-two-master/tess-two/build.xml
...
BUILD SUCCESSFUL
Total time: 1 second
※ homebreaw를 통해 ant를 추가합니다.

테스트tess-two-test


사용법을 모르기 때문에 덧붙인tess-two-test를 잠시 이동해 봅시다.
eclipse의'File->Import->Existing Projects into Workspace'에서tess-two,eyes-two,tess-twor-test를 가져옵니다.
  • tess-two-test에서 디렉터리 jni/external을 만들고 그 아래에서tess-two/lib의 내용을 복사합니다.
  • jni/Android.제작mk.
    공유 라이브러리의 파일을 복사하는 데 사용됩니다.
  • Android.mk
    include $(CLEAR_VARS)
    LOCAL_MODULE := liblept
    LOCAL_SRC_FILES := external/$(TARGET_ARCH_ABI)/$(LOCAL_MODULE)$(TARGET_SONAME_EXTENSION)
    include $(PREBUILT_SHARED_LIBRARY)
    
    include $(CLEAR_VARS)
    LOCAL_MODULE := libtess
    LOCAL_SRC_FILES := external/$(TARGET_ARCH_ABI)/$(LOCAL_MODULE)$(TARGET_SONAME_EXTENSION)
    include $(PREBUILT_SHARED_LIBRARY)
    

    tess-two-test의 속성 설정

  • Java Compuiler는 1.6을 지정합니다.1.7이면 구축할 수 없다.
  • 안드로이드→Library를 통해tess-two에 대한 의존 관계를 증가시킨다.
  • Java Build Path→Libraries tess-twor/bin/tess-twor.jar 추가.
  • Order and Export의 tess-two입니다.jar에 대한 검사는 필요 없어요 (이 이유는 잘 모르겠지만)

    실행 테스트


    안드로이드 JUnit Test로 tess-two-test를 이동합니다.

    첫 번째 실행 결과:



    결국 실패했다.오류 메시지를 확인합니다.
    junit.framework.AssertionFailedError: Make sure that you've copied eng.traineddata to/mnt/sdcard/tesseract/tessdata/eng.traineddata
    at com.googlecode.tesseract.android.test.TessBaseAPITest.testGetUTF8Text(TessBaseAPITest.java:94)
    ...

    재시험


    프로젝트의 웹에 배포합니다.그것을 지정된 곳에 놓고 다시 테스트하다.

    온통 푸르다.
    하지만 시험 결과를 보면 알 수 있듯이tess-two-test의 내용은 대부분 비어 있다.마지막 테스트만 OCR과 관련이 있습니다.

    다음 계획


    카메라와의 합작은 물론이고 정지화와 범위를 지정해 자모를 식별하기를 바란다.

    좋은 웹페이지 즐겨찾기