- 인쇄
- PDF
General OCR
- 인쇄
- PDF
Classic/VPC 환경에서 이용 가능합니다.
이미지 내 모든 영역의 텍스트를 인식하고 추출합니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
메서드 | URI |
---|---|
POST | /general |
요청 헤더
CLOVA OCR API에서 공통으로 사용하는 헤더에 대한 정보는 CLOVA OCR 요청 헤더를 참조해 주십시오.
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
Content-Type: application/json
인 경우
요청 헤더 Content-Type
이 application/json
인 경우의 요청 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
version | String | Required | 버전 정보
|
requestId | String | Required | 임의의 API 호출 UUID |
timestamp | Integer | Required | 임의의 API 호출 시각(Timestamp) |
lang | String | Optional | OCR 인식 요청 언어 정보
|
images | Array | Required | images 세부 정보
|
enableTableDetection | Boolean | Optional | 문서 이미지 내 표(Table) 영역 인식 및 구조화된 형태 제공 여부
|
Content-Type: multipart/form-data
인 경우
요청 헤더 Content-Type
이 multipart/form-data
인 경우의 요청 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
message | Object | Required | 요청 데이터 정보 |
file | File | Required | OCR 인식 이미지 파일 |
message.version | String | Required | 버전 정보
|
message.requestId | String | Required | 임의의 API 호출 UUID |
message.timestamp | Integer | Required | 임의의 API 호출 시각(Timestamp) |
message.lang | String | Optional | OCR 인식 요청 언어 정보
|
message.images | Array | Required | images 세부 정보
|
message.enableTableDetection | Boolean | Optional | 문서 이미지 내 표(Table) 영역 인식 및 구조화된 형태 제공 여부
|
images
images
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
format | String | Required | 이미지 형식
|
name | String | Required | 이미지 이름
|
url | String | Conditional | 이미지 URL 주소
|
data | String | Conditional | Base64 인코딩된 이미지 데이터
|
요청 예시
요청 예시는 다음과 같습니다.
Content-Type: application/json
인 경우
요청 헤더 Content-Type
이 application/json
인 경우의 요청 예시는 다음과 같습니다.
curl --location --request POST 'https://*****.apigw.ntruss.com/custom/v1/33675/8f694ccb00dbd8001e9b0fcbac****************/general' \
--header 'Content-Type: application/json' \
--header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \
--data '{
"version": "V2",
"requestId": "1234",
"timestamp": "1722225600000",
"lang": "ko",
"images": [
{
"format": "jpg",
"name": "demo_2",
"url": "https://www.ncloud.com/file-img/vol02/000/614/********/********_0001.jpg"
}
],
"enableTableDetection": false
}'
Content-Type: multipart/form-data
인 경우
요청 헤더 Content-Type
이 multipart/form-data
인 경우의 요청 예시는 다음과 같습니다.
curl --location --request POST 'https://*****.apigw.ntruss.com/custom/v1/33675/8f694ccb00dbd8001e9b0fcbac**********************/general' \
--header 'Content-Type: multipart/form-data' \
--header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \
--form 'file=@"{file}.pdf"' \
--form 'message="{\"version\": \"v1\", \"requestId\": \"1234\", \"timestamp\": 1722225600000, \"lang\": \"ko\", \"images\": [{\"format\": \"pdf\", \"name\": \"covid_sample\"}]}"'
응답
응답 형식을 설명합니다.
V2
버전으로 요청 시에는 응답 결과 값에 bounding
및 boundingPoly
정보가 표시됩니다.
응답 바디
응답 바디에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
version | String | - | 버전 정보
|
requestId | String | - | API 호출 UUID |
timestamp | Integer | - | API 호출 시각(Timestamp) |
images | Array | - | images 세부 정보 |
images
images
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
uid | String | - | 이미지 UID
|
name | String | - | 이미지 이름
|
inferResult | String | - | 이미지 인식 결과
|
message | String | - | 결과 메시지 |
validationResult | Object | - | 유효성 검사 결과 정보 |
validationResult.result | String | - | 유효성 검사 결과 코드
|
validationResult.message | String | - | 유효성 검사 결과 세부 메시지
|
convertedImageInfo | Object | - | 변환 이미지 정보
|
convertedImageInfo.width | Integer | - | 변환 이미지 가로 길이 |
convertedImageInfo.height | Integer | - | 변환 이미지 세로 길이 |
convertedImageInfo.pageIndex | Integer | - | 변환 이미지 페이지 인덱스 |
convertedImageInfo.longImage | Boolean | - | 변환 이미지 길이 Long 여부
|
combineResult | Object | - | 이미지 인식 결과 결합 정보 |
combineResult.name | String | - | 이미지 결합 필드 이름 |
combineResult.text | String | - | 각 이미지 필드별 출력값 및 고정 텍스트 |
tables | Array | - | Tables 세부 정보 |
fields | Array | - | Fields 세부 정보 |
tables
tables
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
cells | Array | - | Cells 세부 정보 |
inferText | String | - | 인식된 텍스트 |
inferConfidence | Float | - | 인식된 텍스트의 신뢰도
|
boundingPoly | Object | - | Bounding Poly 정보
|
boundingPoly.vertices | Array | - | Bounding Poly Vertices 세부 정보 |
fields
fields
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
name | String | - | 이미지 이름
|
valueType | String | - | 입력값 유형
|
boundingPoly | Object | - | Bounding Poly 정보
|
boundingPoly.vertices | Array | - | Bounding Poly Vertices 세부 정보 |
inferText | String | - | 인식된 텍스트
|
inferConfidence | Float | - | 인식된 텍스트의 신뢰도
|
type | String | - | 인식된 이미지 유형
|
lineBreak | Boolean | - | 인식된 텍스트의 마지막 줄 여부 표시
|
checked | Boolean | - | 체크박스 선택 여부
|
cells
cells
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
boundingPoly | Object | - | Bounding Poly 정보
|
boundingPoly.vertices | Array | - | Bounding Poly Vertices 세부 정보 |
cellTextLines | Array | - | 셀의 라인 세부 정보 |
inferConfidence | Float | - | 인식된 텍스트의 신뢰도
|
rowSpan | Integer | - | 표의 셀이 차지하는(Span) 가로열의 수 |
rowIndex | Integer | - | 표 내 해당 가로열의 위치값 |
columnSpan | Integer | - | 표의 셀이 차지하는(Span) 세로행의 수 |
columnIndex | Integer | - | 표 내 해당 세로행의 위치값 |
cellTextLines
cellTextLines
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
boundingPoly | Object | - | Bounding Poly 정보
|
boundingPoly.vertices | Array | - | Bounding Poly Vertices 세부 정보 |
inferConfidence | Float | - | 인식된 텍스트의 신뢰도
|
cellWords | Array | - | 셀의 텍스트 세부 정보 |
cellWords
cellWords
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
boundingPoly | Object | - | Bounding Poly 정보
|
boundingPoly.vertices | Array | - | Bounding Poly Vertices 세부 정보 |
inferConfidence | Float | - | 인식된 텍스트의 신뢰도
|
inferText | String | - | 인식된 텍스트 |
vertices
vertices
에 대한 설명은 다음과 같습니다.
필드 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
x | Float | - | Bounding Poly X축 좌표 값 |
y | Float | - | Bounding Poly Y축 좌표 값 |
응답 상태 코드
CLOVA OCR API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 CLOVA OCR 공통 응답 상태 코드를 참조해 주십시오.
응답 예시
응답 예시는 다음과 같습니다.
version
이 V2
인 경우
version
이 V2
인 경우의 응답 예시는 다음과 같습니다.
{
"version": "V2",
"requestId": "string",
"timestamp": 1576569034247,
"images": [{
"uid": "9fd73a6aacad4025b3099a36ee55aacd",
"name": "medium",
"inferResult": "SUCCESS",
"message": "SUCCESS",
"validationResult": {
"result": "NO_REQUESTED"
},
"convertedImageInfo": {
"width": 1224,
"height": 1584,
"pageIndex": 0,
"longImage": false
},
"fields": [{
"valueType": "ALL",
"inferText": "아름다운",
"inferConfidence": 0.99992156,
"type": "NORMAL",
"lineBreak": true,
"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
}]
}
},
{
"valueType": "ALL",
"inferText": "이",
"inferConfidence": 0.99958915,
"type": "NORMAL",
"lineBreak": false,
"boundingPoly": {
"vertices": [{
"x": 2314.6516,
"y": 1468.6066
}, {
"x": 2314.6516,
"y": 1328.9293
}, {
"x": 2426.3936,
"y": 1328.9293
}, {
"x": 2426.3936,
"y": 1468.6066
}]
}
},
{
"valueType": "ALL",
"inferText": "세상",
"inferConfidence": 0.9998707,
"type": "NORMAL",
"lineBreak": false,
"boundingPoly": {
"vertices": [{
"x": 2314.6516,
"y": 1604.2931
}, {
"x": 2314.6516,
"y": 1460.625
}, {
"x": 2430.3843,
"y": 1460.625
}, {
"x": 2430.3843,
"y": 1604.2931
}]
}
}
]
}]
}
version
이 V1
인 경우
version
이 V1
인 경우의 응답 예시는 다음과 같습니다.
{
"version": "v1",
"requestId": "1234",
"timestamp": 1724821610657,
"images": [
{
"uid": "{uid}",
"name": "covid_demo",
"inferResult": "SUCCESS",
"message": "SUCCESS",
"validationResult": {
"result": "NO_REQUESTED"
},
"fields": [
{
"valueType": "ALL",
"boundingPoly": {
"vertices": [
{
"x": 581.0,
"y": 123.0
},
{
"x": 650.0,
"y": 123.0
},
{
"x": 650.0,
"y": 149.0
},
{
"x": 581.0,
"y": 149.0
}
]
},
"inferText": "가꾸는",
"inferConfidence": 0.9985
},
{
"valueType": "ALL",
"boundingPoly": {
"vertices": [
{
"x": 399.0,
"y": 1168.0
},
{
"x": 790.0,
"y": 1168.0
},
{
"x": 790.0,
"y": 1215.0
},
{
"x": 399.0,
"y": 1215.0
}
]
},
"inferText": "서울특별시초등학교장",
"inferConfidence": 0.9997
}
]
}
]
}