프로젝트

CLOVA OCR custom api request body 필드 정리

Jenner 2024. 3. 20. 13:25

 

필드명 필수여부 타입 설명 제약사항
version Yes string 버전 정보 필수로 V1, 혹은 V2를 입력
V2 사용을 권장하며, V2사용시 boundingPoly 정보가 제공됨
 
requestId Yes string API 호출 UUID  
timestamp Yes 0 API 호출 Timestamp  
lang No string OCR 인식시 요청할 언어 정보 설정 가능한 언어값은 'ko'/'ja'/'zh-TW' 이며, lang 필드가 설정되지 않은 경우, 도메인의 언어 설정값이 default로 설정됨. 콤마(,)를 통해 여러 언어를 호출할 수 있습니다. (예 : "ko,ja,zh-TW")
images Yes string Json array로 입력되며, 현재는 1개의 이미지 입력만 허용 (한국어/일본어) General OCR은 50MB, Template OCR은 30Mb까지 지원
images.format Yes string 이미지 포맷 설정 “jpg”, “jpeg”, “png”, "pdf","tiff" 이미지 포맷 지원하며 pdf는 최대 10장까지 인식 지원함 (General OCR 한정 지원함)
images.url No string images.url 혹은 images.data 중 하나가 존재해야 함 URL은 이미지를 가져 올 수 있는 공개 URL이어야 함
images.data No string images.url 혹은 images.data 중 하나가 존재해야 함(URL과 데이터가 모두 존재하면 데이터를 사용하고 URL은 무시) images.data는 base64 인코딩 이미지 바이트
images.name Yes string 이미지 명 입력
이미지를 식별하는데 사용되며, 응답 결과 확인에 사용됨
 
images.templateIds No json array 텍스트 OCR API에서는 사용되지 않음
Template OCR API에서는 이 필드를 설정하지 않으면 도메인에 배포된 모든 서비스 템플릿으로 자동 분류됨
 
enableTableDetection No Boolean 문서 내 표(Table) 영역을 자동 인식 후 글자(Text)와 함께 구조화된 형태로 제공. General OCR 한정 지원함

 

  • requestId UUID로 생성후 전송 필요
  • version

boundingPoly 예시 : (아마도 이미지 인식의 꼭짓점들을 말하는 듯하다) 나의 경우 필요없으나 권장사항이므로 V2를 사용해봄

(버전별로 업데이트 내역이 있으므로 사용해야 할 것이 최신 버전에 있다면 해당 버전 이상을 사용해야 할듯)

 

 "boundingPoly": {
                    "vertices": [{
                        "x": 2713.7295,
                        "y": 1277.0492
                    }, {
                        "x": 2713.7295,
                        "y": 977.7408
                    }, {
                        "x": 2841.4343,
                        "y": 977.7408
                    }, {
                        "x": 2841.4343,
                        "y": 1277.0492
                    }]
                }

 

  • timestamp : 밀리초단위 실행해보기

 

 

 

 

CLOVA OCR Custom API

 

api.ncloud-docs.com

 

  • images객체 : input에서 입력된 files객체와 상이한 부분이 있으므로 약간의 수정후 request 필요 예상. 
    ex: type 과 images.format

 

  • 용량 : 제한 Template OCR은 30Mb

CLOBA 요청시 body에 들어가는 기본 객체

const baseBody = {
      images: [
        {
          format: 'png',
          name: 'medium',
          data: undefined,
          url: undefined,
        },
      ] as ImageType[],
      lang: 'ko',
      requestId: uuid4(),
      resultType: 'string',
      timestamp: 0,
      version: 'V2',
    };

 

 

Template OCR은 30Mb이므로 이미지의를 base64로 인코딩한 결괏값을 제한하면 될것 같다.