Vision API와 관련된 질문과 답변을 올리는 카테고리입니다.
Vision API에 대한 가이드는 Vision API 가이드를 참고하세요.
안녕하세요
저는 카카오 입니다
라는 글이 써진 이미지를 OCR돌렸을때
다른 프로그램들은 ‘안녕하세요’ ‘저는’ ‘카카오’ '입니다’
라고 순서가 보장 되어 나오는데
카카오 OCR은 ‘입니다’ ‘저는’ ‘카카오’ '안녕하세요’
이런식으로 순서가 보장되지않습니다
x,y 정렬로 표시하려고해도 같은 줄에있는 글자여도 라운딩박스를 치는 좌표가 다 달라서 정렬이 되지않는데 방법이 없나요 ?
이미지 위에 해당 좌표로 출력 결과를 올려주면 나오긴하는데 순서가 보장된 텍스트파일이 필요합니다
안녕하세요.
카카오 OCR 담당자 입니다.
말씀해 주신 정렬문제의 경우, recognize API 는 입력 box 의 순서를 그대로 output 으로 내보내주기 때문에, detect API 사용 시 output의 box 의 정렬문제를 문의 주신 것이라고 이해됩니다.
제기해 주신 정렬문제에 대해서는 내부적으로도 공감이 되었습니다. 이미지에서 글자가 비스듬히 배치되는 등 기하학적으로 다양한 케이스에서 완벽히 정렬하기란 대단히 어려운 문제입니다. 하지만, 적어도 많이 사용되는 몇몇의 패턴에 대해서는 가능한한 정렬을 하는 것이 좀 더 나은 개선이 될거라고 생각하여, 문의해 주신 기능 추가를 적극적으로 검토하고 있습니다.
다만, 기능의 개발과 실제 배포까지는 다소 시간이 필요한 상황이라, 이 부분에 대해서는 양해를 해주시면 감사하겠습니다.
기능개선 전에 정렬이 꼭 필요한 상황이라면, detect 를 통해 얻은 box 의 좌표정보를 이용해 box 를 재정렬 한 뒤 recognize 를 호출하는 방식을 사용해 주셔야 합니다.
재정렬 알고리즘은, 근접 box 간 y좌표 위치차이에 약간의 오차를 두어 (box 높이 절반 정도) 로 감안하여 윗줄/같은줄/아랫줄 (y정렬) 을 판단하고 같은 줄의 box 내에서 x 좌표를 통해 x 정렬 하여, 사용하시면 큰 무리가 없을 실 것 같습니다.
감사합니다.