Image Translation(Text) API
- 인쇄
- PDF
Image Translation(Text) API
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
Image Translation(Text) API
- 이미지 상의 텍스트를 인식하고 추출(OCR)하여, 번역 텍스트 제공
- 소스 언어를 지정하지 않아도 Translation API에서 자동으로 언어를 감지하여 번역 결과를 제공. 이 경우, 언어 감지에 추가 과금은 하지 않고, 번역 요청 글자수 기준으로만 과금
API URL
Method | 요청 URL | 출력 포맷 |
---|---|---|
POST | https://naveropenapi.apigw-pub.fin-ntruss.com/image-to-text/v1/translate | JSON |
Header
Name | Description |
---|---|
Content-Type | multipart/form-data 형식으로 전송 필요 |
X-NCP-APIGW-API-KEY-ID | NCP 앱 등록 시 발급받은 Client ID |
X-NCP-APIGW-API-KEY | NCP 앱 등록 시 발급받은 Secret Key |
Parameter
Name | Type | Required | Description |
---|---|---|---|
source | String | true | 원문 언어 코드. auto로 설정 시, 자동으로 소스 언어를 감지 |
target | String | true | 번역 언어 코드 |
image | File | true | 원본 이미지 파일 |
지원 언어
소스 언어 - 한국어, 영어, 일본어, 중국어(간체, 번체), 베트남어, 태국어, 인도네시아어, 프랑스어, 스페인어, 러시아어
타겟 언어 - 한국어, 영어, 일본어, 중국어(간체, 번체), 베트남어, 태국어, 인도네시아어, 프랑스어, 스페인어, 러시아어, 독일어, 이탈리아어
언어 | 언어 코드 |
---|---|
한국어 | ko |
영어 | en |
일본어 | ja |
중국어 간체 | zh-CN |
중국어 번체 | zh-TW |
베트남어 | vi |
태국어 | th |
인도네시아어 | id |
프랑스어 | fr |
스페인어 | es |
러시아어 | ru |
독일어 | de |
이탈리아어 | it |
Response
Json 형식으로 리턴
Field Name | Type | Description |
---|---|---|
data | JSON Object | |
data.sourceLang | String | 원문 언어 코드 |
data.targetLang | String | 번역 언어 코드 |
data.sourceText | String | 원문 텍스트 |
data.targetText | String | 번역 텍스트 |
data.blocks | JSON Array | Block단위 OCR 정보 |
data.blocks[].sourceLang | String | 원문 언어 코드 |
data.blocks[].sourceText | String | 원문 텍스트 |
data.blocks[].targetText | String | 번역 텍스트 |
data.blocks[].lb | JSON Object | Left Bottom좌표 (x, y 내부 필드 존재) |
data.blocks[].lt | JSON Object | Left Top 좌표 (x, y 내부 필드 존재) |
data.blocks[].rb | JSON Object | Right Bottom 좌표 (x, y 내부 필드 존재) |
data.blocks[].rt | JSON Object | Right Top 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines | JSON Array | Line 단위 OCR 정보 |
data.blocks[].lines[].lb | JSON Object | Left Bottom좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].lt | JSON Object | Left Top 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].rb | JSON Object | Right Bottom 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].rt | JSON Object | Right Top 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].words | JSON Array | Word 단위 OCR 정보 |
data.blocks[].lines[].words[].sourceText | String | 원문 텍스트 |
data.blocks[].lines[].words[].lb | JSON Object | Left Bottom좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].words[].lt | JSON Object | Left Top 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].words[].rb | JSON Object | Right Bottom 좌표 (x, y 내부 필드 존재) |
data.blocks[].lines[].words[].rt | JSON Object | Right Top 좌표 (x, y 내부 필드 존재) |
CURL Example
$ curl --location --request POST 'https://naveropenapi.apigw-pub.fin-ntruss.com/image-to-text/v1/translate' \
-H "X-NCP-APIGW-API-KEY-ID:{애플리케이션 등록 시 발급받은 client id값}" \
-H "X-NCP-APIGW-API-KEY:{애플리케이션 등록 시 발급받은 client secret값}" \
--form 'image=@"/Users/user/a.png"' \
--form 'source="ko"' \
--form 'target="en"'
{"data":{"sourceLang":"ko","targetLang":"en","sourceText":"NEW\nGURSKEN\n구르스켄\n옷장\n49x55x186 cm\n라이트베이지\n₩79, 900\nIKEA","targetText":"NEW\nGURSKEN\nGursken.\nCloset\n49x55x186 cm\nLight beige.\n₩79, 900\nIKEA","blocks":[{"sourceLang":"ko","sourceText":"NEW","targetText":"NEW","lines":[{"lb":{"x":395,"y":57},"lt":{"x":407,"y":7},"rb":{"x":515,"y":84},"rt":{"x":526,"y":33}}],"lb":{"x":395,"y":57},"lt":{"x":406,"y":6},"rb":{"x":515,"y":83},"rt":{"x":526,"y":33}},{"sourceLang":"ko","sourceText":"GURSKEN","targetText":"GURSKEN","lines":[{"lb":{"x":383,"y":238},"lt":{"x":391,"y":184},"rb":{"x":637,"y":272},"rt":{"x":645,"y":217}}],"lb":{"x":383,"y":238},"lt":{"x":390,"y":182},"rb":{"x":637,"y":272},"rt":{"x":645,"y":217}},{"sourceLang":"ko","sourceText":"구르스켄","targetText":"Gursken.","lines":[{"lb":{"x":387,"y":319},"lt":{"x":392,"y":268},"rb":{"x":541,"y":333},"rt":{"x":545,"y":283}}],"lb":{"x":387,"y":319},"lt":{"x":391,"y":267},"rb":{"x":541,"y":333},"rt":{"x":545,"y":281}},{"sourceLang":"ko","sourceText":"옷장","targetText":"Closet","lines":[{"lb":{"x":394,"y":417},"lt":{"x":395,"y":355},"rb":{"x":497,"y":419},"rt":{"x":499,"y":358}}],"lb":{"x":393,"y":416},"lt":{"x":394,"y":354},"rb":{"x":497,"y":419},"rt":{"x":498,"y":357}},{"sourceLang":"ko","sourceText":"49x55x186 cm","targetText":"49x55x186 cm","lines":[{"lb":{"x":395,"y":465},"lt":{"x":396,"y":441},"rb":{"x":537,"y":469},"rt":{"x":538,"y":444}}],"lb":{"x":394,"y":465},"lt":{"x":395,"y":439},"rb":{"x":537,"y":469},"rt":{"x":537,"y":444}},{"sourceLang":"ko","sourceText":"라이트베이지","targetText":"Light beige.","lines":[{"lb":{"x":397,"y":504},"lt":{"x":397,"y":475},"rb":{"x":516,"y":504},"rt":{"x":516,"y":475}}],"lb":{"x":397,"y":504},"lt":{"x":397,"y":475},"rb":{"x":516,"y":504},"rt":{"x":516,"y":475}},{"sourceLang":"ko","sourceText":"₩79, 900","targetText":"₩79, 900","lines":[{"lb":{"x":452,"y":891},"lt":{"x":444,"y":813},"rb":{"x":721,"y":864},"rt":{"x":713,"y":786}}],"lb":{"x":451,"y":891},"lt":{"x":444,"y":813},"rb":{"x":721,"y":864},"rt":{"x":713,"y":785}},{"sourceLang":"ko","sourceText":"IKEA","targetText":"IKEA","lines":[{"lb":{"x":564,"y":1141},"lt":{"x":560,"y":1125},"rb":{"x":620,"y":1127},"rt":{"x":616,"y":1111}}],"lb":{"x":564,"y":1141},"lt":{"x":560,"y":1125},"rb":{"x":620,"y":1127},"rt":{"x":616,"y":1111}}]}}
Python Example
import requests
from requests_toolbelt import MultipartEncoder
import uuid
data = {
'source': 'ko',
'target': 'en',
'image': ('a.png', open('a.png', 'rb'), 'application/octet-stream', {'Content-Transfer-Encoding': 'binary'})
}
m = MultipartEncoder(data, boundary=uuid.uuid4())
headers = {
"Content-Type": m.content_type,
"X-NCP-APIGW-API-KEY-ID": 유저_클라이언트_아이디,
"X-NCP-APIGW-API-KEY": 유저_클라이언트_시크릿
}
url = "https://naveropenapi.apigw-pub.fin-ntruss.com/image-to-text/v1/translate"
res = requests.post(url, headers=headers, data=m.to_string())
print(res.text)
이 문서가 도움이 되었습니까?