Ocr api 사용시 한글 탐지 결과가 이상하게 나옵니다

Vision API와 관련된 질문과 답변을 올리는 카테고리입니다.
Vision API에 대한 가이드는 Vision API 가이드를 참고하세요.
안녕하세요 OCR api 사용시 영어로된 이미지는 결과값이 정상으로 나오지만 한글 이미지는
깨지는것 같습니다. 그러나 데모 버전에서는 인식을 잘 합니다.

아래는 결과값을 복사 붙여넣기 했습니다.

원본 대신 리사이즈된 이미지를 사용합니다.
[detect] output:
{‘result’: {‘boxes’: [[[130, 684], [418, 684], [418, 706], [130, 706]], [[48, 642], [190, 642], [190, 654], [48, 654]], [[290, 636], [486, 636], [486, 648], [290, 648]], [[71, 621], [243, 621], [243, 635], [71, 635]], [[292, 616], [412, 616], [412, 628], [292, 628]], [[174, 602], [246, 602], [246, 614], [174, 614]], [[69, 601], [163, 601], [163, 613], [69, 613]], [[290, 594], [448, 594], [448, 606], [290, 606]], [[70, 580], [246, 580], [246, 596], [70, 596]], [[345, 578], [433, 575], [434, 585], [346, 588]], [[306, 576], [342, 576], [342, 586], [306, 586]], [[54, 562], [102, 562], [102, 572], [54, 572]], [[110, 560], [246, 560], [246, 572], [110, 572]], [[292, 554], [478, 554], [478, 566], [292, 566]], [[56, 548], [88, 548], [88, 556], [56, 556]], [[310, 536], [316, 536], [316, 544], [310, 544]], [[56, 530], [224, 530], [224, 542], [56, 542]], [[306, 516], [496, 516], [496, 528], [306, 528]], [[56, 513], [229, 513], [229, 525], [56, 525]], [[295, 500], [491, 497], [492, 507], [296, 510]], [[56, 498], [176, 498], [176, 510], [56, 510]], [[58, 482], [100, 482], [100, 492], [58, 492]], [[108, 479], [204, 482], [203, 495], [107, 492]], [[314, 478], [360, 478], [360, 488], [314, 488]], [[318, 448], [328, 448], [328, 458], [318, 458]], [[116, 448], [126, 448], [126, 460], [116, 460]], [[340, 444], [474, 446], [473, 462], [339, 459]], [[138, 446], [196, 446], [196, 462], [138, 462]], [[355, 390], [441, 390], [441, 406], [355, 406]], [[300, 388], [346, 388], [346, 396], [300, 396]], [[374, 366], [472, 366], [472, 376], [374, 376]], [[347, 368], [361, 365], [363, 374], [348, 376]], [[46, 362], [206, 362], [206, 374], [46, 374]], [[328, 348], [474, 348], [474, 358], [328, 358]], [[58, 332], [252, 332], [252, 348], [58, 348]], [[326, 328], [472, 328], [472, 340], [326, 340]], [[308, 316], [344, 316], [344, 322], [308, 322]], [[360, 314], [426, 314], [426, 324], [360, 324]], [[112, 308], [180, 308], [180, 322], [112, 322]], [[402, 300], [484, 300], [484, 308], [402, 308]], [[310, 284], [346, 284], [346, 292], [310, 292]], [[88, 289], [102, 289], [95, 296], [95, 282]], [[162, 282], [240, 282], [240, 296], [162, 296]], [[108, 282], [156, 282], [156, 294], [108, 294]], [[356, 266], [472, 266], [472, 274], [356, 274]], [[46, 258], [100, 258], [100, 268], [46, 268]], [[110, 256], [249, 256], [249, 268], [110, 268]], [[418, 246], [480, 246], [480, 254], [418, 254]], [[352, 230], [416, 230], [416, 236], [352, 236]], [[302, 230], [342, 230], [342, 236], [302, 236]], [[194, 230], [242, 230], [242, 242], [194, 242]], [[108, 230], [190, 230], [190, 242], [108, 242]], [[48, 230], [100, 230], [100, 244], [48, 244]], [[404, 196], [412, 196], [412, 210], [404, 210]], [[368, 196], [396, 196], [396, 208], [368, 208]], [[308, 196], [318, 196], [318, 208], [308, 208]], [[78, 196], [94, 196], [94, 210], [78, 210]], [[426, 194], [482, 194], [482, 210], [426, 210]], [[330, 194], [356, 194], [356, 210], [330, 210]], [[98, 194], [222, 194], [222, 212], [98, 212]], [[396, 100], [452, 100], [452, 132], [396, 132]], [[240, 94], [378, 94], [378, 136], [240, 136]], [[88, 94], [228, 94], [228, 136], [88, 136]], [[392, 46], [498, 46], [498, 74], [392, 74]], [[298, 46], [378, 46], [378, 74], [298, 74]], [[212, 46], [282, 46], [282, 74], [212, 74]], [[46, 46], [196, 46], [196, 74], [46, 74]]]}}

[recognize] output:
{
“result”: {
“recognition_words”: [
"\ubb38\uc758:\ub3c4\ub355\uad50\uc721\uc6d0.063-850-7013~4",
"*\uc2e0\uccad \uc778\uc6d0 \ubbf8\ub2ec\uc2dc \ucd94\uac00 \ubaa8\uc9d1 \uacf5\uace0",
"\u00f8\ubb38\uc758:\ub3c4\ub355\uad50\uc721\uc6d0 (063-850-7013~4)",
“3\uc21c\uc704:0+\u00f8 4\uc21c\uc704:0 5\uc21c\uc704:\uae30\ud0c0”,
"\u00f8 \uc120\ubc1c \ud6c4 \ubd88\ucc38\uc2dc \uc7ac\uc218\uac15 \uc8fc",
“2\uc21c\uc704:0+@”,
“1\uc21c\uc704:0+@+\u00f8”,
"\u00f8 \ud0dc\ub3c4 \ubd88\ub7c9 \ubc0f \uaddc\uc815 \uc0ac\uc720 \uacb0\uaca9\uc790 \uc8fc",
"\ub3d9\ub960\uc790\uac00 \ub2e4\uc218\uc77c \uacbd\uc6b0 \uc2e0\uccad \uc6b0\uc120\uc21c(\uacf5\ud1b5)",
"\ucc38\uc5ec\uc2dc\ucc38\uc5ec\uc778\uc815\uc8fc",
“39%\ubbf8\ubbfc”,
"-\uc6b0\uc120\uc21c\uc704",
"\uc131\uc2e4\ud558\uace0 \uc801\uadf9\uc801 \ucc38\uc5ec\uc790(\uacf5\ub3d9)",
"\ubbf8 [\uc774\uc911 \uc774\uc218\uc790 \ud559\uc810 \ubd80\uacb0, \uc911\ubcf5\uc2e0\uccad \ubd88\uac00]",
"\u00f8\uae30\ud0c0",
“H”,
"\u00f8 \u00f8\uc120\uacfc\uc778\uaca9\uc218\ub828\u00f8 \ub610\ub294 \u00f8\ub9c8\uc74c\uacfc \ud589\ubcf5\u00f8 \uc774\uc218\uc9c0",
"\uacc4\uc808\ud559\uae30 \ucd5c\ub300 \uc2e0\uccad \ud559\uc810(6\ud559\uc810)\ub0b4\uc5d0 \ud3ec\ud568\ub428",
"\u00f8.\uc0ac\ud68c\ubd09\uc0ac(\uad50\uc721\ubcf5\uc0ac\ud65c\ub3d9)\uad50\uacfc\ubaa9 \uc774\uc218\uc9c0",
"\ubbf8 \uc2e0\uccad\uc790\u00f8 \uc120\ubc1c\uae30\uc900 \ud761\uc871\uc790 \uc120\ubc1c\u00f8\uac1c\ub150\ud1b5\ubcf4",
"\u00f8 \ub355\uc131\ud6c8\ub828 \uae30\ubcf8\uacfc\uc815 \uc774\uc218\uc790",
"\uc120\ubc1c\uae30\uc900",
"\ub3c4\uc758\uc2e4\ucc9c\uc778\uc99d \uc900\ube44\uc790",
"\uc8fc\uc758\uc0ac\ud56d",
“A”,
“3”,
"\ubb38\uc758 \ubc0f \uc8fc \uc758 \uc0ac \ud56d",
"\uc120\ubc1c\uae30\uc900",
"\ub3c4\ub355\uad00\ubbfc\uc7a5\ud504\uc721e\ub9b0\uc2a4",
"-\uad50\uc721\uc7a5\uc18c",
“0.27(\uc77c) 09:00~18:00”,
“etar”,
"- \uc6b4\uc601\ubc29\uc2dd:off-line +on-line",
"- 1\uc77c\ucc28: 10.26(\ub85c) 09:00~18:00",
"(\uc878\uc5c5\ud559\uc810 \uc778\uc815\ub418\ub098 \ud3c9\uade0\ud3c9\uc810 \uc0b0\uc815 \uc548\ub428)",
“0 \uad50\uc721\uc77c\uc815: 10.26(\ud1a0)~10.27(\uc77c)”,
"\uad50\uc721\ubc00\ub7c9",
“1,2\uc77c\ucc28 (\ube44\uc219\ubc15)”,
“2\ud559\uc810 [ P&F]”,
"\ub109\uc131\ud6c8\ub828 \uc2ec\ud654\uacfc\uc815 \uc2e0\uccad"
]
}
}

안녕하세요.
카카오 OCR 담당자 입니다.

원본 이미지를 확인하지 못해서, 어떤 기준으로 깨진다고 하시는 것인지 잘 모르겠습니다만, 추측해 보자면 아래와 같은 상황 중 하나일 것으로 예상됩니다.

  1. 한글이 \ub109 등으로 표시됨
  • json encoding 된 상태라 한글이 저렇게 보이는 것입니다. 실제로 json decoding 해보면 최하단 붙임과 같이, 한글이 제대로 출력됩니다. json decoder 는 언어마다 라이브러리가 있고, 1회성으로 사용해 보시려면 웹에서 “json decode” 로 검색해도 다양한 사이트에서 확인하실 수 있습니다.
  1. “39%미민” 처럼 오인식
  • 머신러닝은 통계에 기반한 엔진이기 때문에, 모든 결과가 100% 완벽하기 힘듭니다. 비슷한 다른 글자나 도형등으로 오인식 하는 경우는, 정확률을 높이기 위해 계속 노력하고 있습니다.

감사합니다.


{
“result”: {
“recognition_words”: [
“문의:도덕교육원.063-850-7013~4”,
"*신청 인원 미달시 추가 모집 공고",
“ø문의:도덕교육원 (063-850-7013~4)”,
“3순위:0+ø 4순위:0 5순위:기타”,
“ø 선발 후 불참시 재수강 주”,
“2순위:0+@”,
“1순위:0+@+ø”,
“ø 태도 불량 및 규정 사유 결격자 주”,
“동률자가 다수일 경우 신청 우선순(공통)”,
“참여시참여인정주”,
“39%미민”,
"-우선순위",
“성실하고 적극적 참여자(공동)”,
“미 [이중 이수자 학점 부결, 중복신청 불가]”,
“ø기타”,
“H”,
“ø ø선과인격수련ø 또는 ø마음과 행복ø 이수지”,
“계절학기 최대 신청 학점(6학점)내에 포함됨”,
“ø.사회봉사(교육복사활동)교과목 이수지”,
“미 신청자ø 선발기준 흡족자 선발ø개념통보”,
“ø 덕성훈련 기본과정 이수자”,
“선발기준”,
“도의실천인증 준비자”,
“주의사항”,
“A”,
“3”,
“문의 및 주 의 사 항”,
“선발기준”,
“도덕관민장프육e린스”,
"-교육장소",
“0.27(일) 09:00~18:00”,
“etar”,
"- 운영방식:off-line +on-line",
"- 1일차: 10.26(로) 09:00~18:00",
"(졸업학점 인정되나 평균평점 산정 안됨)",
“0 교육일정: 10.26(토)~10.27(일)”,
“교육밀량”,
“1,2일차 (비숙박)”,
“2학점 [ P&F]”,
“넉성훈련 심화과정 신청”
]
}
}