소비자 카메라 (휴대 전화 포함)로 찍은 이미지에서 감각적 인 단어를 형성하지 않는 영숫자 (a-z0-9)를 추출하려고합니다. 문자는 크기와 글꼴 유형이 같으며 형식이 지정되지 않습니다. 실제 처리는 Windows에서 수행됩니다. Tesseract 감지 품질 향상
cv::medianBlur
적용 회색으로 RGB로 변환
- :
시각 처리 후의 I는 OpenCV의 함께 다음 적용
다음 이미지 미가공 입력을 나타낸다 적응 형 임계 값을 사용하여 이미지를 2 진수로 변환
cv::adaptiveThreshold
- 격자의 행과 열 수를 알고 있습니다. 따라서이 정보를 사용하여 각 그리드 셀을 간단히 추출합니다. 이들에 유사 나는 이미지를 얻을 모든 단계 후
: 최신 교육 자료와
가 그럼 난 정팔 포체를 실행 (최신 SVN 버전) 개별 추출 된 셀 이미지 (개별적으로 시도했습니다. -psm
및 -l
값) : 정팔 포체에 의해 생산
tesseract.exe -l eng -psm 11 sample.png outtext
결과는 매우 좋지 않다 :
- 대부분의 문자가 인식되지 않습니다.
- 그리드 선은 때때로 "l"또는 "i"문자로 해석됩니다.
난 이미 (침식 팽창, 개폐) 형태 학적 작업을 실험하고 오츠 임계 값 (THRESH_OTSU
)와 적응 형 임계 값을 대체하지만 결과는 악화됐다.
인식 품질을 향상시키기 위해 내가 시도 할 수있는 다른 방법은 무엇입니까? 또는 tesseract (예 : 템플릿 일치)를 사용하는 것 외에 문자를 추출하는 더 나은 방법이 있습니까?
편집 (21-12-2014) : 간단한 템플릿 매칭 (정규화 된 상호 상관 및 LMS를 사용했지만 더 나쁜 결과를 사용)을 테스트했습니다. 그러나 나는 각 문자를 findCountours
을 사용하여 추출한 다음 한 문자 만 사용하여 tesseract를 실행하고 각 입력 이미지를 단일 문자로 해석하는 -psm 10
옵션을 사용하여 큰 발전을 이루었습니다. Additonaly 후 처리 단계에서 영숫자가 아닌 문자를 제거합니다. 첫 번째 결과는 탐지율이 90 % 이상인 것이 좋습니다. 주요 문제는 "9"및 "g"및 "q"문자의 오 탐지입니다.
감사합니다,