docomo Developer supportの画像認識API(カテゴリ認識)を使ってみた

# 1. まとめ
ドコモが提供する画像認識APIを利用し画像が正しく認識するか試してみた。
今回はシーン認識(シーンの分類)、料理認識(料理名を認識)、ランドマーク認識(建物物名を認識)を試した。

# 2. 目次

[docomo Developer support](https://dev.smt.docomo.ne.jp/)が提供する[画像認識API](https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=api_usage_scenario)の**シーン認識、料理認識**を使ってみた。

- 1. まとめ
- 2. 概要
- 3. 画像認識API(カテゴリ認識)について
    - 3.1. カテゴリ一覧
    - 3.2. カテゴリごとに認識対象物
    - 3.3. APIリファレンス
- 4. 画像認識APIを試してみる
    - 4.1. 事前準備
        - 4.1.1. docomo Developer supportへのAPI利用申請しAPIキーを取得
    - 4.2. 画像認識APIを試してみる
        - 4.2.1. シーン
        - 4.2.2 料理
        - 4.2.3. ランドマーク
- [5. 参考リンク](#5-%E5%8F%82%E8%80%83%E3%83%AA%E3%83%B3%E3%82%AF)

# 3. 画像認識API(カテゴリ認識)について

## 3.1. カテゴリ一覧

ドコモが提供する画像認識API(カテゴリ認識)は2018年6月現在9種類のカテゴリの認識が可能です。下記がその一覧です。

| カテゴリ名 | 概要 | 
|:--|:--|:--|:--|:--|:--|:--|:--|:--|
| シーン | "結婚式"等のイベント、"水族館"、"遊園地"等の場所、"動物"、"花"等のシーン。シーンの数は約40種類| 
| ファッション（柄） | "ドット"、"ストライプ"等のパターン・柄 | 
| ファッション（洋服の種類） | "コート"、"スーツ"等の洋服の種類 | 
| ファッション（~系） | "カジュアル"、"ビジネス"のファッションの系統 | 
| ファッション（色） | "ホワイト系"、"レッド系"等の色 | 
| 料理 | "カレーライス"等の料理の名称。料理の数は約160種類 | 
| 花 | "バラ"等の花の名称。花の数は約40種類 | 
| 毒キノコ | "カエンタケ"等の毒キノコの名称。キノコの数は約40種類(一部毒キノコでないものを含む) |
| ランドマーク | "城"、"寺"、"神社"、"ビル"、"橋"、"美術館"等の観光名所。ランドマークの数は約1,301種類 | 

## 3.2. カテゴリごとに認識対象物

[認識対象物一覧(PDF)](https://devsite-pro.s3.amazonaws.com/contents_file/image_recognition_category_list_v1.1.0.pdf)

## 3.3. APIリファレンス

[画像認識APIのリファレンスページ](https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=category_classify)を参照

# 4. 画像認識APIを利用してみた

cURLを利用し、画像認識APIを試してみる。

## 4.1. 事前準備

### 4.1.1. docomo Developer supportへのAPI利用申請しAPIキーを取得

APIの利用にはアカウント登録が必要です。アカウント登録を実施し、API利用に必要なAPIキーを払い出してください。詳しくは、[ドコモAPIを使ったアプリケーションを開発しよう](https://dev.smt.docomo.ne.jp/?p=about.api)を参照。

## 4.2 画像認識APIを試してみる

今回は下記の３つのAPIを利用してみます。なお、利用する画像は私の個人で撮影した画像を利用します。

### 4.2.1. シーン

#### 4.2.1.1. 日枝神社

日枝神社の写真を画像認識してみる。「寺社・仏閣・城」と正しく認識できている。

##### 入力画像
![hiejinja_01.JPG](https://qiita-image-store.s3.amazonaws.com/0/262328/2d7fda2f-3569-1d6b-ae06-081e6cf16be5.jpeg)

##### cURL
**{APIKEY}**の部分にはdocomo Developer supportから払い出したAPIKEYを利用する。

```bash
$ curl -F "image=@hiejinja_01.JPG" -F "modelName=scene" -k https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY={APIKEY}
```

##### レスポンス結果
```json
{
    "jobId": "102358_DnvuIWFI1Q",
    "candidates": [{
        "tag": "寺社・仏閣・城",
        "score": 0.9941093921661377
    }, {
        "tag": "建物",
        "score": 0.005862600170075893
    }, {
        "tag": "アウトドア",
        "score": 1.026402969728224e-05
    }, {
        "tag": "ライブ",
        "score": 8.576604159316048e-06
    }, {
        "tag": "結婚式",
        "score": 2.6181326120422455e-06
    }]
}
```

#### 4.2.1.1. 風景/花

「花」と認識できている。

##### 入力画像
![scene_01.jpeg](https://qiita-image-store.s3.amazonaws.com/0/262328/4737c32f-50e4-460f-bfc3-d4160ae3ef25.jpeg)


##### cURL
**{APIKEY}**の部分にはdocomo Developer supportから払い出したAPIKEYを利用する。

```bash
$ curl -F "image=@scene_01.jpeg" -F "modelName=scene" -k https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY={APIKEY}
```

##### レスポンス結果
```json
{
    "jobId": "102358_DnvuIWFI1Q",
    "candidates": [{
        "tag": "寺社・仏閣・城",
        "score": 0.9941093921661377
    }, {
        "tag": "建物",
        "score": 0.005862600170075893
    }, {
        "tag": "アウトドア",
        "score": 1.026402969728224e-05
    }, {
        "tag": "ライブ",
        "score": 8.576604159316048e-06
    }, {
        "tag": "結婚式",
        "score": 2.6181326120422455e-06
    }]
}
```
### 4.2.2. 料理

### 4.2.2.1 醤油ラーメン

「醤油ラーメン」と正しく認識できている。

##### 入力画像
![ramen.jpeg](https://qiita-image-store.s3.amazonaws.com/0/262328/2086711f-6d6d-430a-00bd-9e016a491bb8.jpeg)

##### cURL
**{APIKEY}**の部分にはdocomo Developer supportから払い出したAPIKEYを利用する。

```
$ curl -F "image=@ramen.jpeg" -F "modelName=food" -k https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY={APIKEY}
```

##### レスポンス結果
```json
{
    "jobId": "110027_ymur2AWeeh",
    "candidates": [{
        "tag": "花",
        "score": 0.9381718039512634
    }, {
        "tag": "アウトドア",
        "score": 0.039002977311611176
    }, {
        "tag": "ランニング",
        "score": 0.0073388502933084965
    }, {
        "tag": "遊園地",
        "score": 0.005755985621362925
    }, {
        "tag": "イルミネーション",
        "score": 0.004000102635473013
    }]
}
```

### 4.2.2.2 寿司

「握り寿司」と正しく認識できている。

##### 入力画像
![sushi.JPG](https://qiita-image-store.s3.amazonaws.com/0/262328/4364fecb-6b87-ff19-213a-e9b99e26b2af.jpeg)


##### cURL
**{APIKEY}**の部分にはdocomo Developer supportから払い出したAPIKEYを利用する。

```
$ curl -F "image=@sushi.JPG" -F "modelName=food" -k https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY={APIKEY}
```

##### レスポンス結果
```json
{
    "jobId": "105641_xbGNxUORkE",
    "candidates": [{
        "tag": "握り寿司",
        "score": 1.0
    }, {
        "tag": "手巻きずし",
        "score": 1.9058344312428144e-12
    }, {
        "tag": "海鮮丼",
        "score": 1.0940273480978396e-13
    }, {
        "tag": "巻きずし",
        "score": 3.6218258074724105e-14
    }, {
        "tag": "おにぎり",
        "score": 9.54093782501626e-16
    }]
}
```


### 4.2.3. ランドマーク

### 4.2.3.1. 日枝神社

日枝神社の写真を画像認識してみる。「東京/日枝神社」と正しく認識できている。

#### 入力画像
![hiejinja_01.JPG](https://qiita-image-store.s3.amazonaws.com/0/262328/2d7fda2f-3569-1d6b-ae06-081e6cf16be5.jpeg)

#### cURL
**{APIKEY}**の部分にはdocomo Developer supportから払い出したAPIKEYを利用する。

```bash
$ curl -F "image=@hiejinja_01.JPG" -F "modelName=landmark" -k https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY={APIKEY}
```

#### レスポンス結果
```json
{
    "jobId": "102751_3QeqCDMM3A",
    "candidates": [{
        "tag": "東京/日枝神社",
        "score": 1.0
    }, {
        "tag": "沖縄/波上宮",
        "score": 6.17867389196558e-12
    }, {
        "tag": "広島/廣島護國神社",
        "score": 8.015900362099218e-14
    }, {
        "tag": "茨城/水戸東照宮",
        "score": 1.2188861709229795e-14
    }, {
        "tag": "兵庫/西宮神社",
        "score": 1.169797138794509e-14
    }]
}
```

# 5. **参考リンク**

- [Deep Learningによって広がる画像認識アプリケーション](https://www.nttdocomo.co.jp/corporate/technology/rd/technical_journal/bn/vol24_1/007.html)
- [docomo Developer support](https://dev.smt.docomo.ne.jp/)
- [画像認識API](https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=api_usage_scenario)
- [認識対象物一覧(PDF)](https://devsite-pro.s3.amazonaws.com/contents_file/image_recognition_category_list_v1.1.0.pdf)
- [画像認識APIのリファレンスページ](https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=image_recognition&p_name=category_classify)