Image Translation(Text) API
- 이미지 상의 텍스트를 인식하고 추출(OCR)하여, 번역 텍스트 제공
- 소스 언어를 지정하지 않아도 Translation API에서 자동으로 언어를 감지하여 번역 결과를 제공. 이 경우, 언어 감지에 추가 과금은 하지 않고, 번역 요청 글자수 기준으로만 과금
API URL
Method |
요청 URL |
출력 포맷 |
POST |
https://papago.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://papago.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