AIに美味しそうなお肉を判断してもらう
プロが撮った食事の写真は、どれも食欲をそそられてしまいます。
美味しそうなお肉ならなおさら、食べてみたいものですね。
ですが本当においしいのか、食べてみないとわからない・・・。
そんなときはAIに美味しそうなのか判断してもらいましょう。
今回は 「画像を評価するAI」 を使っていきます。
開発環境
今回の開発環境は下記のとおりです。
PHP | 7.1.11 |
---|---|
cURL | 7.29.0 |
また、今回のAPIを実行するにあたり curl が必要となります。
APIキーを取得する
まずは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点」 と結構辛辣な点数でした・・・。
もっと美味しそうなお肉を探さなければ。。。
自分の好きな画像で評価させる
お肉以外にも果物や野菜、車や家など、あらゆる画像を学習させることで画像を評価するプログラムが簡単に用意できます。
学習データには下記のような制限があります。
- 100MB以下のzipファイル形式としてください
- imagesフォルダを作成して、その中に画像ファイルを格納し、フォルダごとzipで圧縮してください
- 画像以外のファイルは使用しないでください
- 壊れた画像ファイルは使用しないでください
- 画像ファイルの数は500枚以上1000枚以下としてください
- 画像ファイルの形式は png , bmp , jpg , jpeg , gif のいずれかとしてください
- 画像ファイル名の規則はxxxx_y.拡張子としてください
(xxxxは0000~9999までの任意の数字)
yは画像の点数です。0~9までの任意の数字を指定してください - 可能であれば各点数ごとに最低50枚の画像を準備してください
※ 例えば5点の画像の場合、0001_5.jpg~0050_5.jpgの50枚以上の画像を準備してください
また、作成するZIPファイルは下記のような構成になります。
モデル作成の場合、「アップロードURLの取得」「モデル作成の申請」「モデル作成ステータス確認」の3つのAPIをコールする必要がありますが、それ以降はスコア取得の流れと同じになります。
さいごに
画像の分類ができれば、スコア(点数)化することができるようになるのは素晴らしいですね
サービスの1つのポイントとして提供することもできるのではないでしょうか?
- おすすめ記事
POPULAR
のえる
Full-stack Developer