Image Translation(Image) API
    • PDF

    Image Translation(Image) API

    • PDF

    Article Summary

    Image Translation(Image) API

    • 画像内のテキストを認識して抽出(OCR)し、翻訳テキストと翻訳画像を提供
    • ソース言語を指定しなくても Translation APIで言語を自動検出して翻訳結果を提供。この場合、言語の検出に追加の課金は行わず、翻訳リクエストの文字数の基準でのみ課金

    API URL

    Methodリクエスト URL出力フォーマット
    POSThttps://naveropenapi.apigw.ntruss.com/image-to-image/v1/translateJSON

    Header

    NameDescription
    Content-Typemultipart/form-dataの形式で転送
    X-NCP-APIGW-API-KEY-IDNAVERクラウドプラットフォームのアプリ登録時に発行されたClient ID
    X-NCP-APIGW-API-KEYNAVERクラウドプラットフォームのアプリ登録時に発行されたSecret Key

    Parameter

    NameTypeRequiredDescription
    sourceStringtrue原文言語コード
    autoに設定した場合、自動でソース言語を検知
    targetStringtrue翻訳言語コード
    imageFiletrueソース画像ファイル

    対応言語 ソース言語 - 韓国語、英語、日本語、中国語簡体字、中国語繁体字、ベトナム語、タイ語、インドネシア語、フランス語、スペイン語、ロシア語

    ターゲット言語 - 韓国語、英語、日本語、中国語簡体字、中国語繁体字、ベトナム語、タイ語、インドネシア語、フランス語、スペイン語、ロシア語、ドイツ語、イタリア語

    言語言語コード
    韓国語ko
    英語en
    日本語ja
    中国語簡体字zh-CN
    中国語繁体字zh-TW
    ベトナム語vi
    タイ語th
    インドネシア語id
    フランス語fr
    スペイン語es
    ロシア語ru
    ドイツ語de
    イタリア語it

    Response Json形式でリターン

    Field NameTypeDescription
    dataJSON Object
    data.sourceLangString原文言語コード
    data.targetLangString翻訳言語コード
    data.sourceTextString原文テキスト
    data.targetTextString翻訳テキスト
    data.renderedImageString翻訳された画像バイナリをBase64でエンコード
    data.blocksJSON ArrayBlock単位の OCR情報
    data.blocks[].sourceLangString原文言語コード
    data.blocks[].sourceTextString原文テキスト
    data.blocks[].targetTextString翻訳テキスト
    data.blocks[].lbJSON Object左下の座標(x、y内部フィールド存在)
    data.blocks[].ltJSON ObjectLeft Topの座標(x、y内部フィールド存在)
    data.blocks[].rbJSON ObjectRight Bottomの座標(x、y内部フィールド存在)
    data.blocks[].rtJSON ObjectRight Topの座標(x、y内部フィールド存在)
    data.blocks[].linesJSON ArrayLine単位の OCR情報
    data.blocks[].lines[].lbJSON Object左下の座標(x、y内部フィールド存在)
    data.blocks[].lines[].ltJSON ObjectLeft Topの座標(x、y内部フィールド存在)
    data.blocks[].lines[].rbJSON ObjectRight Bottomの座標(x、y内部フィールド存在)
    data.blocks[].lines[].rtJSON ObjectRight Topの座標(x、y内部フィールド存在)
    data.blocks[].lines[].wordsJSON ArrayWord単位の OCR情報
    data.blocks[].lines[].words[].sourceTextString原文テキスト
    data.blocks[].lines[].words[].lbJSON Object左下の座標(x、y内部フィールド存在)
    data.blocks[].lines[].words[].ltJSON ObjectLeft Topの座標(x、y内部フィールド存在)
    data.blocks[].lines[].words[].rbJSON ObjectRight Bottomの座標(x、y内部フィールド存在)
    data.blocks[].lines[].words[].rtJSON ObjectRight Topの座標(x、y内部フィールド存在)

    CURL Example

    $ curl --location --request POST 'https://naveropenapi.apigw.ntruss.com/image-to-image/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\nIMEA","targetText":"NEW\nGURSKEN\nGursken.\nCloset\n49x55x186 cm\nLight beige.\n₩79,900\nIMEA","blocks":[{"sourceLang":"ko","sourceText":"NEW","targetText":"NEW","lines":[{"lb":{"x":195,"y":29},"lt":{"x":201,"y":2},"rb":{"x":255,"y":42},"rt":{"x":261,"y":15}}],"lb":{"x":195,"y":29},"lt":{"x":200,"y":1},"rb":{"x":255,"y":42},"rt":{"x":261,"y":15}},{"sourceLang":"ko","sourceText":"GURSKEN","targetText":"GURSKEN","lines":[{"lb":{"x":191,"y":118},"lt":{"x":194,"y":92},"rb":{"x":317,"y":135},"rt":{"x":321,"y":108}}],"lb":{"x":190,"y":119},"lt":{"x":194,"y":92},"rb":{"x":317,"y":135},"rt":{"x":321,"y":107}},{"sourceLang":"ko","sourceText":"구르스켄","targetText":"Gursken.","lines":[{"lb":{"x":191,"y":159},"lt":{"x":194,"y":135},"rb":{"x":270,"y":167},"rt":{"x":272,"y":142}}],"lb":{"x":190,"y":159},"lt":{"x":193,"y":134},"rb":{"x":269,"y":167},"rt":{"x":272,"y":142}},{"sourceLang":"ko","sourceText":"옷장","targetText":"Closet","lines":[{"lb":{"x":195,"y":207},"lt":{"x":197,"y":177},"rb":{"x":247,"y":211},"rt":{"x":248,"y":180}}],"lb":{"x":194,"y":207},"lt":{"x":197,"y":176},"rb":{"x":247,"y":211},"rt":{"x":249,"y":180}},{"sourceLang":"ko","sourceText":"49x55x186 cm","targetText":"49x55x186 cm","lines":[{"lb":{"x":196,"y":232},"lt":{"x":197,"y":220},"rb":{"x":268,"y":235},"rt":{"x":269,"y":222}}],"lb":{"x":196,"y":232},"lt":{"x":196,"y":218},"rb":{"x":268,"y":235},"rt":{"x":268,"y":222}},{"sourceLang":"ko","sourceText":"라이트베이지","targetText":"Light beige.","lines":[{"lb":{"x":197,"y":252},"lt":{"x":197,"y":237},"rb":{"x":257,"y":252},"rt":{"x":257,"y":237}}],"lb":{"x":197,"y":252},"lt":{"x":197,"y":237},"rb":{"x":257,"y":252},"rt":{"x":257,"y":237}},{"sourceLang":"ko","sourceText":"₩79,900","targetText":"₩79,900","lines":[{"lb":{"x":223,"y":448},"lt":{"x":219,"y":406},"rb":{"x":358,"y":434},"rt":{"x":354,"y":393}}],"lb":{"x":223,"y":448},"lt":{"x":218,"y":406},"rb":{"x":358,"y":434},"rt":{"x":354,"y":392}},{"sourceLang":"ko","sourceText":"IMEA","targetText":"IMEA","lines":[{"lb":{"x":280,"y":570},"lt":{"x":278,"y":563},"rb":{"x":308,"y":562},"rt":{"x":305,"y":554}}],"lb":{"x":279,"y":570},"lt":{"x":277,"y":561},"rb":{"x":307,"y":562},"rt":{"x":305,"y":553}}],"renderedImage":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAJdAcYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/ /OvXLjSIdC8deIfHkhCwtoiSK+P4sHP/oIrk9YsW+InhvwV4ijO91vFtrkkdMHLf8AoFKrhKcaMqdveu2n5XSHQx9R4iNRv3OVJ+tmzz/4pfC+T4cfYpJdYW4a+
    {{ … 省略 … }}
    LP+KdRMlj8DPhhY6PHghdS1lvtM/1CD5R696+DYmlKndLkDoMVNGxSIEHn1o52tjNts9M+J37Uvx7+NN283xF+Juq6hHI2fspuTHCPYRrhcfUVx0MrZ3eZ7AZrNgZmj8wn8KvW6jdjJ6Z61Lk5biNCCYGPceTjsKuWrNhcjqaz7YFSAD95uavwgAAkZOetImRON24gYx2Hp70FnQZRgB0+tRyylSnyg5FSIokXcexNBS2EUMW3MvB70rqQAU53e1OifeSoXGCQcd6az7cADt60AKrAfKvOT170EEHrwOgNRRHErJjgVYCjcG+tADAHZgRkkdQR2qYpt6Oee4P+c0xg0ZyrnilYltoJ6L1pK6AahGducZPXtXN/CaL/inrkksQNVvAD0/5bviupEaHIxxxx+Nc18K0C6DcIDwNTu8j1/fvWkXpcmR43+0KpX4lTBTn/RYskHpweK53QsbuMcDpjvXRftAuzfEm5JP/AC7xfyNc9oYCtnGau/MiT0HwjsNoVEYzjJ5oqTwRGktpyOdp5z70VIH/2Q\u003d\u003d"}}
    

    Python Example

    import requests
    from requests_toolbelt import MultipartEncoder
    import uuid
    import json
    import base64
    
    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": ユーザー_CLIENT_ID,
      "X-NCP-APIGW-API-KEY": ユーザー_CLIENT_SECRET
    }
    
    url = " https://naveropenapi.apigw.ntruss.com/image-to-image/v1/translate"
    res = requests.post(url, headers=headers, data=m.to_string())
    print(res.text)
    
    # renderedImage -> 画像ファイルで出力
    resObj = json.loads(res.text)
    imageStr = resObj.get("data").get("renderedImage")
    imgdata = base64.b64decode(imageStr)
    
    filename = 'a_translated.png'
    with open(filename, 'wb') as f:
        f.write(imgdata)
    

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.