![](https://blitzgate.co.jp/wp/wp-content/uploads/2019/05/catch-3.jpg)
リクルートのAI「Listing API」を使ったレコメンドの作り方
![のえる](https://blitzgate.co.jp/wp/wp-content/uploads/2019/12/user02-1.png)
プロが撮った食事の写真は、どれも食欲をそそられてしまいます。
美味しそうなお肉ならなおさら、食べてみたいものですね。
ですが本当においしいのか、食べてみないとわからない・・・。
そんなときはAIに美味しそうなのか判断してもらいましょう。
今回は 「画像を評価するAI」 を使っていきます。
今回の開発環境は下記のとおりです。
PHP | 7.1.11 |
---|---|
cURL | 7.29.0 |
また、今回のAPIを実行するにあたり curl が必要となります。
まずはAPIキーを取得しましょう。
A3RT の Image Influence API ページ下にある 「API KEY 発行」 ボタンからAPIキーを作成しましょう。
この時、利用規約を最下部までスクロールしないと、同意するボタンが押せません。
メールアドレスを入力し、確認後には登録したメールアドレスにAPIキーが送られてきます。
今回は 「美味しそうなお肉」 を判定してもらいます。
そのため、お肉の画像を用意しましょう。
弊社で試した画像は下記のものになります。
見てるとお腹が空いてきます・・・。
では、ここから画像を評価させていきましょう。
評価させるためのプログラムは下記のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$fileName = 'meet.jpg'; $filePath = dirname(__FILE__).DIRECTORY_SEPARATOR.$fileName; $file = new CURLFile($filePath, 'image/jpeg', $fileName); $data = [ 'apikey' => "[取得したAPIキー]", 'imagefile' => $file, 'predict' => 5, ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.a3rt.recruit-tech.co.jp/image_influence/v1/meat_score"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); $responseJsonStr = curl_exec($ch); // エラーチェック $errorNo = curl_errno($ch); $errorMsg = curl_error($ch); if (CURLE_OK !== $errorNo) { echo sprintf("[CurlErrorCode: %s] %s", $errorNo, $errorMsg); } curl_close($ch); // 結果を配列に変換 $response = json_decode($responseJsonStr, true); print_r($response); |
簡単なプログラムですね。
では返ってきた値を見てみましょう。
1 2 3 4 5 6 7 8 9 |
Array ( [status] => 0 [message] => ok [result] => Array ( [score] => 4.7354097366333 ) ) |
点数は 「4.735点」 と結構辛辣な点数でした・・・。
もっと美味しそうなお肉を探さなければ。。。
お肉以外にも果物や野菜、車や家など、あらゆる画像を学習させることで画像を評価するプログラムが簡単に用意できます。
学習データには下記のような制限があります。
また、作成するZIPファイルは下記のような構成になります。
モデル作成の場合、「アップロードURLの取得」「モデル作成の申請」「モデル作成ステータス確認」の3つのAPIをコールする必要がありますが、それ以降はスコア取得の流れと同じになります。
画像の分類ができれば、スコア(点数)化することができるようになるのは素晴らしいですね
サービスの1つのポイントとして提供することもできるのではないでしょうか?
POPULAR
のえる
Full-stack Developer
人気記事