이미지 인식을위한 C ++ 라이브러리 : 문자열에 단어가 포함 된 이미지

StackOverflow https://stackoverflow.com/questions/462860

문제

주어진 글꼴 및/또는 글꼴 높이를 기반으로 문자를 찾을 수 있도록 이미지를 촬영하고 이미지 인식을 수행하기위한 C ++ 라이브러리를 알고 있습니까? 글꼴을 선택할 수없는 사람조차도 좋을 것입니다 (예 : 읽기 : 이미지 이미지).

도움이 되었습니까?

해결책

나는 최근에 이것을 많이보고있다. 당신의 최고는 단순히 Tesseract입니다. OCROPUS를 사용하는 것보다 OCR 위에 레이아웃 분석이 필요한 경우 (TesserAct를 사용하여 OCR을 수행합니다). 레이아웃 분석은 이미지에서 텍스트 위치를 감지하고 라인 분할, 블록 세분화 등과 같은 작업을 수행 할 수 있다고 말합니다.

공유 할 가치가있는 TesserAct 실험을 통해 정말 좋은 팁을 찾았습니다. 기본적으로 나는 이미지에 대해 많은 전처리를해야했다.

  1. 입력 이미지를 300dpi로 상향 조정/다운 크기로 크기.
  2. 이미지에서 색상을 제거하십시오. 회색 규모가 좋습니다. 나는 실제로 디더링 임계 값을 사용하고 입력을 흑백으로 만들었습니다.
  3. 이미지에서 불필요한 쓰레기를 잘라냅니다. 위의 세 가지 모두 NetBPM (UNIX에 대한 이미지 조작 도구 세트)을 사용하여 필요한 것에 대해 거의 100 % 정확도를 얻었습니다.

고도로 사용자 정의 된 글꼴이 있고 TesserAct를 혼자 사용하는 경우 시스템을 "훈련"해야합니다. 기본적으로 많은 교육 데이터를 공급해야합니다. 이것은 Tesseract-Aroc 사이트에 잘 문서화되어 있습니다. 본질적으로 글꼴에 대한 새로운 "언어"를 만들고 -L 매개 변수로 전달합니다.

내가 찾은 다른 훈련 메커니즘은 Nueral Net (BPNET) 교육을 사용하는 Ocropus에있었습니다. 좋은 통계 모델을 구축하려면 많은 입력 데이터가 필요합니다.

Tesseract/Ocropus를 호출하는 측면에서 둘 다 C ++입니다. 읽기 라인 (이미지)만큼 간단하지는 않지만 확인할 수있는 API가 있습니다. 명령 줄을 통해 호출 할 수도 있습니다.

다른 팁

특히 하나를 추천 할 수는 없지만 귀하가 찾고있는 용어는 OCR (광학 문자 인식)입니다.

거기 있습니다 Tesseract-Aroc 이를위한 전문 도서관입니다.

거기에서 웹 사이트에서

TesserAct OCR 엔진은 1995 UNLV 정확도 테스트에서 3 대 엔진 중 하나였습니다. 1995 년에서 2006 년 사이에 작업은 거의 없었지만 아마도 가장 정확한 오픈 소스 OCR 엔진 중 하나 일 것입니다.

나는 당신이 원하는 것이 있다고 생각합니다 어림짐작. Libgocr 프로젝트였습니다. 나는 몇 년 동안 그것을 사용하지 않았지만 열쇠를 설정하면 매우 신뢰할 수있었습니다.

그만큼 Tesseract OCR 라이브러리 C 및 C ++ 라이브러리는 매우 정확한 결과를 제공합니다. 초기 결과는 약 80% 정확했지만 OCR에 공급하기 전에 이미지에 사전 프로세싱을 적용하는 것은 결과가 약 95% 정확했습니다. 사전 예비 프로세싱 란 :

1) BITMAP (B & W는 나에게 더 잘 작동했습니다). 어떻게 할 수 있는지

2) 이미지를 300dpi로 리샘플링합니다

3) LZW TIFF 또는 CCITT Group 4 TIFF와 같은 무손실 형식으로 이미지를 저장하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top