메인 콘텐츠로 건너뛰기
이 항목은 Windows용 FRE에 적용되지만 Windows Visual Components는 필요하지 않습니다.
ABBYY FineReader Engine는 인쇄 품질에 관계없이 사실상 모든 글꼴로 작성된 텍스트를 읽을 수 있습니다. 따라서 일반적으로는 인식 전에 별도의 학습이 필요하지 않습니다. 그럼에도 ABBYY FineReader Engine에는 특수한 경우에 사용할 수 있는 여러 사용자 패턴 학습 도구가 있습니다. 패턴 학습은 다음과 같이 이루어집니다. 한두 페이지를 학습 모드에서 인식하는 동안 사용자가 올바른 문자 값을 입력합니다. 이 데이터는 패턴을 만드는 데 사용됩니다. 패턴은 패턴 학습 과정에서 생성되는 “문자 이미지 — 문자 자체” 쌍의 집합입니다. 패턴은 인식 중 추가 정보의 원천으로 사용됩니다. 그러면 ABBYY FineReader Engine는 이 패턴을 사용해 나머지 텍스트를 인식합니다. 때로는 두 개, 심지어 세 개의 문자까지 서로 “붙어” 있어 ABBYY FineReader Engine가 각 문자를 분리하기 위해 개별 프레임으로 감싸지 못할 수 있습니다. 이런 경우(즉, 프레임을 이동해 하나의 완전한 문자만 포함하고 다른 문자 부분은 포함하지 않도록 할 수 없는 경우)에는 분리할 수 없는 문자 조합 전체를 하나로 인식하도록 ABBYY FineReader Engine를 학습시킬 수 있습니다. 자주 서로 붙어 나타나는 문자 조합의 예로는 ff, fi, fl이 있습니다. 이러한 조합을 리거처라고 합니다. 추가 정보는 사용자 패턴 학습에서 확인할 수 있습니다.

사용해야 하는 경우

다음과 같은 경우에는 Train User Pattern 학습 모드가 유용할 수 있습니다.
  • 장식용 글꼴로 작성된 텍스트를 인식할 때
  • 일반적이지 않은 문자(예: 수학 기호)가 포함된 텍스트를 인식할 때
  • 인쇄 품질이 낮은 대량의 텍스트(100페이지 초과)를 인식할 때
위 항목 중 하나에 해당하는 경우에만 Train User Pattern 학습 모드를 사용하세요. 그 밖의 경우에는 인식 품질이 약간 향상될 수는 있지만, 이에 드는 시간과 노력을 고려하면 얻는 이점이 크지 않을 가능성이 높습니다.
  • 패턴은 사용자 패턴을 만드는 데 사용한 문서와 글꼴, 글꼴 크기, 해상도가 동일한 문서에서만 유용합니다.
  • 패턴 학습은 CJK 언어에서는 지원되지 않습니다. 이러한 언어 중 하나가 인식 언어로 선택되면, 다른 언어용 사용자 패턴을 포함한 모든 사용자 패턴이 무시됩니다.
  • 병렬 프로세스에서 인식할 때는 패턴 학습을 수행할 수 없습니다.
  • 이 경우 자동 페이지 방향 감지가 작동하지 않으므로, 패턴 학습은 페이지 방향이 올바른 페이지에서 수행해야 합니다.

학습을 사용해 인식하는 방법

  1. RecognizerParams 객체를 생성합니다.
  2. IRecognizerParams::TrainUserPatterns 속성을 TRUE로 설정합니다.
  3. IEngine::CreateEmptyUserPattern 메서드를 사용해 빈 사용자 패턴 파일을 생성합니다.
  4. IRecognizerParams::UserPatternsFile 속성에 이 사용자 패턴 파일의 전체 경로를 지정합니다.
  5. 이 인식 매개변수로 인식 메서드(예: IFRDocument::Process)를 호출합니다. 알 수 없는 문자가 발견될 때마다 패턴 학습 대화 상자가 열리고 그 안에 문자 이미지가 표시됩니다.
  6. 패턴 학습을 수행합니다 — Train User Pattern 모드에서 하나 이상의 페이지를 인식합니다. 학습된 문자는 사용자 패턴 파일에 저장됩니다.
  7. [선택 사항] 이 패턴을 편집하려면 Engine 객체의 EditUserPattern 메서드를 호출합니다.
  8. 이 패턴을 사용해 이미지를 인식합니다.
IRecognizerParams::UseBuiltInPatterns 속성이 TRUE로 설정되어 있으면 ABBYY FineReader Engine은 인식에 자체 내장 패턴을 사용합니다. 문자 인식에 표준 ABBYY FineReader Engine 패턴을 사용하지 않으려면 이 속성을 FALSE로 설정합니다. 이 기능은 장식용 글꼴이나 비표준 글꼴로 입력된 텍스트를 인식할 때 유용할 수 있으며, 이런 경우 해당 글꼴에 맞게 특별히 학습된 사용자 정의 패턴을 사용할 수 있습니다. UserPatternsFile 속성(사용자 정의 패턴 파일의 경로가 저장되는 속성)이 비어 있으면 UseBuiltInPatterns 속성은 무시됩니다.
ABBYY FineReader Engine 10 이하에서 생성된 사용자 패턴 파일은 FineReader Engine 12 Release 6 이상에서 열 수 없습니다. 계속 사용하려면 이전 사용자 패턴 파일을 새 형식으로 저장하세요.
  • FineReader Engine 11 또는 FineReader Engine 12 Release 5 이하 버전을 사용합니다.
  • Engine 객체의 MergePatterns 메서드를 호출하고, 이전 패턴 파일 이름이 포함된 string 컬렉션과 새 파일의 전체 경로를 전달합니다.
    FREngine::IEnginePtr Engine;
    FREngine::IFRDocumentPtr frDocument;
    ...
    // DocumentProcessingParams 객체를 생성합니다
    FREngine::IDocumentProcessingParamsPtr dpp = Engine->CreateDocumentProcessingParams();
    // TrainUserPatterns 속성을 설정합니다
    dpp->PageProcessingParams->RecognizerParams->TrainUserPatterns = VARIANT_TRUE;
    // 빈 사용자 패턴 파일을 생성합니다
    Engine->CreateEmptyUserPattern( L"D:\\test.ptn" );
    // 사용자 패턴 파일의 전체 경로를 설정합니다
    dpp->PageProcessingParams->RecognizerParams->UserPatternsFile = L"D:\\test.ptn";
    // 이미지를 처리합니다
    frDocument->Process( dpp );
    ...
    
    FREngine.IEngine engine;
    FREngine.IFRDocument frdoc;
    ...
    // DocumentProcessingParams 객체를 생성합니다
    FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
    // TrainUserPatterns 속성을 설정합니다
    dpp.PageProcessingParams.RecognizerParams.TrainUserPatterns = true;
    // 빈 사용자 패턴 파일을 생성합니다
    string patternFile = "D:\\test.ptn";
    engine.CreateEmptyUserPattern( patternFile );
    // 사용자 패턴 파일의 전체 경로를 설정합니다
    dpp.PageProcessingParams.RecognizerParams.UserPatternsFile = patternFile;
    // 이미지를 처리합니다
    frdoc.Process( dpp );
    ...
    

    참고 항목

    사용자 패턴 학습