LoginSignup
7
5

More than 5 years have passed since last update.

Computer Vision APIを使って画像分析をやってみた

Posted at

はじめに

ちょっと前に機械学習をもっと知りたくて、まずはAPIを触ったので、メモ書き程度に書きたいと思います。

前提

ディープラーニングを本格的に研究している代表的な企業が以下。

  • Google
  • Microsoft
  • IBM
  • Amazon
  • Docomo

APIの優劣

企業によってAPIの精度が異なるみたいで色々な方の意見を踏まえると、
こんな感じらしいです。

  • 画像情報抽出・分類
    Microsoft > Google,IBM...

  • 文字認識(OCR)
    Google > Microsoft,IBM...

API

Microsoft Computer Vision

今回画像ということで、一番精度の良いと噂のMicrosoft社のComputer Vision APIを使ってみることにしました。

Analyze Image

また、その中でもAnalyze Imageというものを使ってみることにしました。

結果

以下のような感じになりました。

検証画像

640x640_rect_6299664.jpg

検証結果

object(stdClass)#3 (3) {
  ["description"]=>
  object(stdClass)#1 (2) {
    ["tags"]=>
    array(21) {
      [0]=>
      string(4) "food"
      [1]=>
      string(5) "plate"
      [2]=>
      string(6) "indoor"
      [3]=>
      string(5) "table"
      [4]=>
      string(5) "black"
      [5]=>
      string(7) "chicken"
      [6]=>
      string(8) "broccoli"
      [7]=>
      string(4) "meat"
      [8]=>
      string(7) "sitting"
      [9]=>
      string(6) "filled"
      [10]=>
      string(4) "rice"
      [11]=>
      string(4) "cake"
      [12]=>
      string(3) "hot"
      [13]=>
      string(5) "fruit"
      [14]=>
      string(7) "holding"
      [15]=>
      string(4) "bowl"
      [16]=>
      string(4) "dish"
      [17]=>
      string(4) "soup"
      [18]=>
      string(6) "cheese"
      [19]=>
      string(3) "dog"
      [20]=>
      string(5) "white"
    }
    ["captions"]=>
    array(1) {
      [0]=>
      object(stdClass)#2 (2) {
        ["text"]=>
        string(29) "a plate of food with broccoli"
        ["confidence"]=>
        float(0.59819660429909)
      }
    }
  }
  ["requestId"]=>
  string(36) "8df11211-a86c-4c89-a87b-31dfd8e8c9ac"
  ["metadata"]=>
  object(stdClass)#4 (3) {
    ["width"]=>
    int(640)
    ["height"]=>
    int(430)
    ["format"]=>
    string(4) "Jpeg"
  }
}

感想

(´д`)

プログラム

検証に作ったプログラムを載せておきます。

<?php

$url = 'https://westus.api.cognitive.microsoft.com/vision/v1.0/analyze?visualFeatures=Description&language=en';
$file = '{画像パス}';
 
$curl = curl_init();
 
curl_setopt_array(
    $curl,
    array(
        CURLOPT_URL => $url,
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/octet-stream',
            'Ocp-Apim-Subscription-Key: XXXXXXXXXXXXXXXXXXXXXXXX'
        ),
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS  => file_get_contents($file),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_BINARYTRANSFER => true,
    )
);
 
$response = curl_exec($curl);
curl_close($curl);
 
var_dump(json_decode($response));
7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5