ホーム API/ツール API 画像認識

画像認識

    画像認識APIは、画像内の物体や背景情報をもとに名称等を返却するAPIです。現在4つの機能を提供しており、(1)料理やランドマーク等を認識するカテゴリ認識機能、(2)画像内の複数の物体の位置と種類を特定する物体検出機能、(3)画像と似た画像を検索できる類似画像検索機能、(4)書籍や食品パッケージの種類を認識するオブジェクト認識機能をご利用いただけます。

    画像認識API利用イメージ
    API
    基本情報

    ■画像認識(カテゴリ認識、物体検出、類似画像検索、オブジェクト認識)

    提供 : REST※1, SDK(Android, iOS, Server side JAVA)

    ※1 ユーザデータ登録、カテゴリ認識、物体検出、類似画像検索はRESTのみ提供

    ご利用いただくためには「アカウント登録(無料)」が必要です。

    リファレンスを参照するAPI機能名を選択してください

    画像認識

    画像認識を用いて、スマートフォンのカメラなどで撮影された画像に写る被写体を認識し、被写体の情報を返却します。スマートフォンのカメラなどで撮影された画像をご利用ください。撮影する際は、被写体の正面をできるだけ大きく撮影してください。

    テクニカルガイドライン

    本機能の使用には、カテゴリを指定する必要があります。指定するカテゴリにより、認識対象物や認識速度が変化します。認識に要する時間は、通信環境にも依存しますが、最短2秒程度です。

      質問画像(入力画像)の注意事項

    • JPEG,PNG,GIF,BMPまたはTIFF形式の画像データ(透過PNGは対象外)
    • 推奨画像サイズはVGA(640×480)相当。縦長・横長のどちらも可
    • 認識対象物の全体を、正面から大きく撮った写真が望ましい
    • アップロードする画像サイズの上限は10MB

      画像認識の精度が落ちる質問画像(入力画像)

    • VGA相当よりも画像サイズが小さい場合
    • 画質が悪い場合
    • 白一色など特徴の少ない被写体の場合
    • 被写体の一部が隠れている場合
    • 被写体に照明が反射し、白くなっている場合

    リクエストURL

    https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/recognize

    メソッド : POST
    文字コード : UTF-8

    リクエストヘッダ

    キー 必須 説明
    Content-Type リクエストボディのコンテンツタイプを指定。
    application/octet-stream

    リクエストクエリパラメータ

    キー 必須 説明
    APIKEY APIにアクセスするアプリの認証に利用する。
    recog 認識対象物に合わせて、認識に用いるカテゴリを切り替えるために用いる。
    カテゴリ一覧から指定する。
    あらかじめ被写体の種別が決まっている場合は、recogを適切に指定することで、認識精度・認識速度が向上する可能性がある。
    numOfCandidates - 画像認識の認識の結果として表示される候補数を指定する。
    1から20までの自然数(デフォルト値は10)。

    リクエストボディ(application/octet-stream形式)

    キー 必須 説明
    - 画像データ(バイナリ)

    レスポンスヘッダ(処理成功)

    キー 必須 説明
    Content-Type 受信データのMIMEタイプは、下記を返却。
    application/json;charset=UTF-8

    レスポンスボディ(処理成功)(JSON形式)

    画像認識API(オブジェクト認識)は、recognitionId及び、candidatesの内score、itemId、categoryのみが返却対象。

    キー 必須 説明
    recognitionId 認識ジョブの識別ID。
    サンプル値) 947ec350-299c-11e4-800f-0afa47a658a2
    candidates - 認識結果一覧。
    オブジェクトのリストになっており、各オブジェクトが認識結果の各候補。
       score - 認識結果候補の確からしさを表すスコア。値が高いほど候補と被写体の類似度が高いことを示す。
    itemId -

    認識結果候補のID。

    画像認識API(オブジェクト認識)では、登録した画像ラベルが返却。

    画像認識API(商品認識)では、商品に一意のIDが返却。商品の名称は、detailで返却。

    category - 認識結果候補として返却された物体のカテゴリ。
    サンプル値) "food"
    imageUrl - 認識結果候補の画像のURL。
    サンプル値) "http://sample.com/samlpe_image.jpg"
    detail - 認識結果の詳細情報。
    詳細情報の各項目は商品詳細情報を参照。
    sites - 認識結果候補の物体に関連するサイト情報。
    リスト(オブジェクト)。
       url - 認識結果候補の物体を扱うECサイトのURL。
    title - 認識結果候補の物体を扱うECサイトのタイトル。
    imageUrl - 認識結果候補の物体を扱うECサイトの画像のURL。
    relatedContents - 認識結果候補の物体に関連するコンテンツ。
    リスト(オブジェクト)。
       url - 認識結果候補の物体に関連するコンテンツのURL。
    title - 認識結果候補の物体に関連するコンテンツのタイトル。
    imageUrl - 認識結果候補の物体に関連するコンテンツの画像のURL。
    abstract - 認識結果候補の物体に関連するコンテンツの概要。

    レスポンスヘッダ(処理失敗)

    キー 必須 説明
    Content-Type 受信データのMIMEタイプは、下記を返却。
    application/json;charset=UTF-8

    レスポンスボディ(処理失敗)(JSON形式)

    キー 必須 説明
    error エラーオブジェクト。
    code エラーコードを参照
    message エラーメッセージ(機能コード : エラー内容)を参照

    リクエストサンプル

    POST https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/recognize?APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&recog=book&numOfCandidates=2
    Content-Type: application/octet-stream
    画像データ(バイナリ)

    cURLコマンドサンプル

    curl -X POST -H 'Content-type: application/octet-stream' --data-binary "@質問画像ファイル名" 'https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/recognize?APIKEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&recog=book&numOfCandidates=2

    レスポンスサンプル(処理成功)

    Content-Type: application/json;charset=UTF-8
    {
    "recognitionId": "b11b1b22-233f-11e4-8aaf-0afa47a788a2",
    "candidates": [
            {
            "score": 44.0234375,
            "itemId": "book_2101060417", 
            "category":"book",
            "imageUrl":"http://www.example.co.jp/sample.jpg",
            "detail":{
                "isbn13":"97848887181416",
                "pages":"123" , 
                "itemName":"サンプル"
                },
            "sites":[
                {
                "url":"http://www.docomo.sample/dp/406394901X" ,
                "title":"【10%オフ】サンプル本" ,
                "imageUrl":"http://www.docomo.sample/dp/406394901X/68473543.gif" 
                }
                ],
            "relatedContents":[
                {
                "url":"http://www.sample_search.co.jp/サンプル本",
                "title":"サンプル本 検索結果",
                "abstract":"商品名で検索"
                }
                ]
            },
            {
            "score": 0.124523,
            "itemId": "book_907010604758",
            "category":"book",
            "imageUrl":"http://www.example.com/lasdfs9342rfsda/image.png",
            "detail":{
                "isbn13":"97848887505050",
                "publisher":"サンプル社" , 
                "itemName":"サンプル本"
                "author":["test"],
                "releaseDate":"2099/99/99"
                }
            "sites":
                {
                "url":"http://www.example.com/lasdfs9342rfsda",
                "title":"books example",
                "imageUrl":"http://www.example.com/lasdfs9342rfsda/image.png",
                }
                ],
            }
          ]
    }

    レスポンスサンプル(処理失敗)

    HTTP/1.1 XXX
    Content-Type: application/json;charset=UTF-8
    {
        "error": {
            "code": "101",
            "message": "The API you requested is not supported."
        }
    }

    カテゴリ一覧

    画像認識に用いるエンジンのカテゴリ一覧。
    リクエストクエリパラメータのrecogに下表のカテゴリを指定します。
    あらかじめ被写体の種別が決まっている場合は、recogを適切に指定することで、認識精度・認識速度が向上する可能性があります。

    カテゴリ recog 概要
    ユーザカテゴリ - ユーザカテゴリ作成により作成されたユーザカテゴリ。
    商品認識 product-all 対応している全カテゴリの商品(書籍、食品パッケージ)を認識。
    他のカテゴリに比べて、認識に時間がかかる場合があります。他のカテゴリを指定する事で、認識速度の向上が見込めます。
    書籍認識 book 市販されている書籍の表紙の認識が可能。
    食品パッケージ認識 food パッケージラベルのついた市販の食品や飲料の画像認識が可能。
    (例 : インスタントラーメン、ペットボトル、缶など)。
    パッケージラベルのないものは認識できません(例 : 野菜、果物、料理など)。
    DVD認識 ※ dvd 市販されているDVDのジャケットの認識が可能。
    CD認識 ※ cd 市販されているCDのジャケットの認識が可能。
    TVゲームソフト認識 ※ game 市販されているTVゲームソフトのパッケージの認識が可能。
    PCソフト認識 ※ software 市販されているPCソフトのパッケージの認識が可能。

    ※非公開対象です。利用をご希望の方は、 お問い合わせ よりご相談ください。

    商品詳細情報

    画像認識API(商品認識)で取得できる商品の詳細情報(detail)。
    商品の詳細情報で取得可能な項目は、カテゴリ(candidates/category)によって異なります。
    商品認識時に返却されます。

    ■書籍カテゴリ(book)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "18"
    author 著者
    ※配列
    サンプル値) ["ドコモ 太郎"]
    translator 訳者
    ※配列
    サンプル値) ["ドコモ花子"]
    publisher 発売元(出版社を含む)
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    type 種別(コミック、雑誌等)
    サンプル値) "新書"
    pages ページ数
    サンプル値) "352"
    isbn10 ISBN10桁コード
    サンプル値) "4877831841"
    isbn13 ISBN13桁コード
    サンプル値) "978-4877831848"
    lang 言語
    サンプル値) "英語"

    ■食品パッケージカテゴリ(food)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "20"
    maker メーカー
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    brand ブランド
    サンプル値) "サンプルブランド"
    dimension 商品の寸法
    サンプル値) "40.8 x 27.2 x 13.0 cm"
    weight 商品の重量
    サンプル値) "8 kg"
    quantity 内容量
    サンプル値) "47"
    preservation 保存方法
    サンプル値) "常温"
    producingArea 産地
    ※配列
    サンプル値) ["日本"]
    ean13 EAN13桁コード
    サンプル値) "4988009083790"
    ean8 EAN8桁コード
    サンプル値) "09083790"

    ■DVDカテゴリ(dvd)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "18"
    actor 出演
    ※配列
    サンプル値) ["ドコモ 太郎"]
    director 監督
    ※配列
    サンプル値) ["ドコモ花子"]
    maker 発売元
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    format 形式(DVD、BDなど)
    ※配列
    サンプル値) ["DVD"]
    lang 言語
    サンプル値) "英語"
    captionLang 字幕
    サンプル値) "英語"
    regionCode リージョンコード
    サンプル値) "2"
    runningTime 収録時間
    サンプル値) "62'29"
    discs ディスク枚数
    サンプル値) "1"
    ean13 EAN13桁コード
    サンプル値) "4988009083790"
    ean8 EAN8桁コード
    サンプル値) "09083790"

    ■CDカテゴリ(cd)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "18"
    artist アーティスト(オーケストラ、演奏者を含める)
    ※配列
    サンプル値) ["ドコモ 太郎"]
    composer 作曲
    サンプル値) "ドコモ花子"
    conductor 指揮
    サンプル値) "ドコモ太郎"
    label レーベル(販売元)
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    format 形式(CD,MP3等)
    ※配列
    サンプル値) ["CD"]
    songs 収録曲数
    サンプル値) "2"
    time 収録時間
    サンプル値) "12'29"
    discs ディスク枚数
    サンプル値) "1"
    ean13 EAN13桁コード
    サンプル値) "4988009083790"
    ean8 EAN8桁コード
    サンプル値) "09083790"
    sparsCode SPARSコード
    サンプル値) "DDD"

    ■TVゲームソフトカテゴリ(game)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "18"
    platform プラットフォーム
    サンプル値) "サンプルゲーム機"
    ceroRating CEROレーティング
    サンプル値) "A"
    maker メーカー
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    ean13 EAN13桁コード
    サンプル値) "4988009083790"
    ean8 EAN8桁コード
    サンプル値) "09083790"

    ■PCソフトカテゴリ(software)

    キー 説明
    itemName 認識物体の名称
    サンプル値) "サンプル"
    releaseDate 発売日
    サンプル値) "2014/12"
    ageRequirement 年齢制限
    サンプル値) "18"
    platform プラットフォーム
    サンプル値) "サンプル OS"
    media メディア
    サンプル値) "DVD"
    systemRequirements 動作環境
    サンプル値) "2GB以上"
    maker メーカー
    サンプル値) "サンプル社"
    seller 販売元
    サンプル値) "サンプル社"
    ean13 EAN13桁コード
    サンプル値) "4988009083790"
    ean8 EAN8桁コード
    サンプル値) "09083790"

    HTTP主要ステータスコード

    ステータスコード 説明
    200 OK 成功応答
    204 No Content 成功応答、レスポンスが空
    400 Bad Request リクエストパラメータ、リクエストボディ不正
    403 Forbidden リクエストを何らかの理由でサーバ側が拒否した場合
    404 Not Found サポートしていないAPIのURIを指定された場合、リクエストで指定されたリソースが存在しない場合
    405 Method Not Allowed リソースに対して許可されていない操作を指定された場合
    408 Request Time-out リクエストが時間以内に完了しなていない場合
    500 Internal Server Error サーバ内部エラー
    503 Service Unavailable サービスが停止もしくは混雑などで応答不能な状態の場合

    エラーコードとエラーメッセージ一覧

    エラーコード エラーメッセージ エラーの詳細
    101 The API you requested is not supported. サポートしていないAPIのURIを指定された場合
    102 The API version you requested is inactive. リクエストのバージョン番号がサポート対象外の場合
    103 Some query parameters are missing on your request. 各APIのURIに指定する必須パラメータが指定されていない場合
    104 Requested query prameters are invalid. 各APIのURIに指定するパラメータに不正な値が指定された場合
    105 Request body is invalid format. リクエストボディが各APIの要求する形式通りでない場合
    106 Prameters in request body are invalid. リクエストボディ内のパラメータに不正な値が指定された場合
    107 The server encountered an error while reading the query image file. The query image may not be valid. Please check its format. 画像認識において、画像の形式が不正
    201 Your request was denied. リクエストを何らかの理由でサーバ側が拒否した場合
    202 Your request was not completed in time. リクエストが何らかの理由で処理時間内に終了できなかった場合
    301 The resource you requested wa not found. リクエストで指定されたリソースが存在しない場合
    302 The HTTP method you requested is not permitted. リソースに対して許可されていない操作を指定された場合(例:GETのみ対象なのにDELETEを指定された場合)
    401 The query image does contains enough features for image recognition. Please try a different image (recognitionId: {recognitionId}). 画像認識エンジンにおいて、ポストされた画像から十分な特徴点を抽出できなかった。
    501 The server encountered a temporary error in file system and could not complete your request. ファイルシステム操作でIOエラーが発生した場合
    502 The server encountered a temporary error in data base and could not complete your request. DB操作でエラーが発生した場合
    503 The server encountered a temporary error in intra-server netwrork and could not complete your request. サーバ内ネットワーク通信にて異常が発生した場合
    504 The server encountered a temporary error in image recognition engine and could not complete your request. 画像認識エンジンでエラーが発生した場合
    605 The server encountered a temporary error and could not complete your request. 上記以外のリソースにて異常が発生した場合(メモリ不足を除く)
    601 The server encountered a temporary error in front server applications and could not complete your request. プログラムのバグが原因と思われるエラーが発生した場合(メソッド呼び出し時に契約違反を検知など)
    よくあるご質問
    APIなどの各サービスに関するよくある質問を掲載します。
    お問い合わせ
    「docomo Developer support」及び「作ろうスマートフォン/iモードコンテンツ」に関するお問い合わせです。よくあるご質問や技術ブログで解決しない場合は、お問い合わせください。