GASでA3RT「Image Influence API」の使い方を解説!AIによる画像評価

リクルートがオープンで公開しているAIサービス・A3RTにAIが画像を評価する「Image Influence API」があります。

このImage Influence APIのAPIキーを発行し、Google Apps Script(GAS)で実行する方法とサンプルコードを解説します。

リクルートのAI「A3RT」とは

A3RT(アート)は、就職サービスでおなじみのリクルートが提供するAIサービスです。

リクルートがオープンに公開しているAIサービス「A3RT」は無料で利用可能

リクルート社内で開発されたレコメンドや画像認識、自然言語処理など様々なAIがAPIとして提供されています。

2021年2月現在では、11種類ものAIのAPIが利用可能な状態です。

このA3RTはリクルートの社内でも活用されているAIが外部からも無料で利用できるのが最大の特徴といえます。

一からAIサービスを作ると、たくさんの時間が必要ですが、A3RTを活用すれば、APIリクエストを行うだけで手軽にAIサービスを開発することができます。

AIが画像を評価する「Image Influence API」

今回、A3RTのAIサービスの中で紹介したいのが「Image Influence API」です。

Image Influence APIは、APIリクエストで画像を送ると、AIが評価・判定してくれます。

リクルートの無料AIサービス・A3RTの中で画像の判定・評価する「Image Influence API」の画面

あらかじめ、リクルートがお肉の画像をAIに学習しており、そのお肉が他の人からみて美味しそう・良さそうに見えるか判定してくれます。

Image Influence APIにお肉の写真を送ると、お肉の点数をAIが0~9点(小数点あり)のスコアで返してくれます。

さらに、自分で学習用の画像と評価セットを用意すると、AIに学習させることができ、独自の学習モデルを構築できます。

Image Influence APIのAPIキー発行方法

Image Influence APIをGoogle Apps Scriptなどのプログラミングで利用するには、APIキーの発行が必要です。

そこで、まず、Image Influence APIのAPIキーを発行する手順を解説します。

1.Image Influence APIのページにアクセスし、下部に表示される「API KEY 発行」ボタンをクリックします。

リクルートのAI・A3RTの「Image Influence API」のWebページで、APIキー発行ボタンをクリック

2.Image Influence APIを利用に当たっては「利用規約、プライバシーポリシーに同意する」にチェックを入れます。

Image Influence API(リクルートのA3RT)のAPI KEY 発行時には、利用規約に同意する必要がある

3.APIの利用規約とプライバシーポリシーが表示されるので、スクロールして内容を確認し、「同意する」ボタンをクリックします。

リクルートのAIサービス・A3RTの「Image Influence API」の利用規約・プライバシーポリシー(API利用時に同意が必要)

※利用規約を最後までスクロールしないと「同意する」ボタンを押すことができません。

4.利用規約に同意後に、APIキーを受け取るメールアドレスを入力し、「送信」ボタンをクリックします。

Image Influence APIの利用規約・プライバシーポリシーに同意し、メールアドレスを入力して、「送信」ボタンをクリックする

5.Image Influence APIからメールが届くので、本文内に記載されたURLをクリックし、メールアドレスを認証します。

リクルートのA3RTの「Image Influence API」のAPIキーの発行手続き後、メールが届くので、本文内に記載されたURLをクリックしてメール認証する

6.メール認証が完了すると再びメールが届き、そのメールの中にImage Influence APIのAPIキーが記載されています。

リクルートのAIサービス・A3RTの「Image Influence API」のAPIキーがメールで届くので、API利用準備完了

以上の手順でImage Influence APIのAPIキーを取得できます。

このAPIキーを使って、GASでImage Influence APIをリクエストできます。

GASによるImage Influence APIの実行方法

続いて、Google Apps Script(GAS)のスクリプトで、Image Influence APIを実行する方法を解説します。

Image Influence APIは、初期状態ですでにお肉について学習したモデルが用意されています。

API通信でお肉の画像を送ると、お肉をAIが0-9のスコアで評価・判定してくれます。

今回はこの学習済みのモデルを用い、GASでお肉画像をImage Influence APIにリクエストし、予測点数をログ出力するサンプルコードを紹介します。

Image Influence APIはHTTP POSTによるリクエスト

リクルートのA3RTはAPI通信で利用するAIサービスですが、APIのリクエスト方法はHTTP GET/POSTの2種類あります。

今回利用するImage Influence APIはHTTP POSTによるAPIリクエストです。

Google Apps ScriptでHTTP POSTを行うには、UrlFetchApp.fetchメソッドを使用します。

GASによるHTTPリクエスト(GET/POST)方法を解説!UrlFetchAppクラスでフェッチ

※GASによるHTTPリクエスト方法を上記の記事で解説しているので、ご参考ください。

Image Influence API利用のGASサンプルコード

Image Influence APIのAPIキーが発行完了したところで、実際にGoogle Apps ScriptでAPIリクエストするサンプルコードを紹介します。

function myfunction(){
//Googleドライブから特定の画像を読み込む(********部分にファイルIDを指定)
let imageData = DriveApp.getFileById("********").getBlob();
//Image Influence APIにリクエストする関数から評価結果をログ出力する
console.log(evaluateMaet(imageData));
}
function setKeyToProperty(){
//スクリプトプロパティにImage Influence APIのAPIKeyを設定する(++++++++部分にAPIKeyを指定)
PropertiesService.getScriptProperties().setProperty("APIKEY","++++++++");
}
function evaluateMaet(meatImage) {
//Image Influence APIのリクエストURLを設定する
let apiURL = "https://api.a3rt.recruit-tech.co.jp/image_influence/v1/meat_score";
//setKeyToProperty関数で設定したスクリプトプロパティからAPIキーを読み込む
let apiKey = PropertiesService.getScriptProperties().getProperty("APIKEY");
//APIのリクエストでPOSTデータするパラメーターを設定する
let payload = {
'apikey': apiKey,
'predict':'1',
'imagefile': meatImage,
};
//HTTP POSTで前述で設定したパラメーターをオプションで設定する
let options = {
'method' : 'post',
'payload' : payload
};
//APIにリクエストし、返却されたデータをテキスト化して変数に格納する
let res = UrlFetchApp.fetch(apiURL,options).getContentText();
//JSONデータをparseメソッドでオブジェクトに変換する
let json = JSON.parse(res);
//変換したオブジェクトデータからお肉のスコアデータを返却
let meatScore = json["result"]["score"];
return meatScore;
}

Google Apps Script(GAS)でリクルートのAI・A3RTの「Image Influence API」を利用するサンプルスクリプト

GASのサンプルコードは3つの関数で構成されています。

  1. evaluateMeat:Image Influence APIに画像を送り、判定結果を返す関数
  2. setKeyToProperty:APIキーをスクリプトプロパティに設定する関数
  3. myfunction:evaluateMeat関数を実行し、結果をログ出力する関数

最初にsetKeyToProperty関数でAPIキーをスクリプトプロパティに設定

evaluateMeat関数では、引数の画像ファイルをImage Influence APIへのHTTP(POST)リクエストに必要なpayloadに指定します。

UrlFetchApp.fetchメソッドでImage Influence APIにリクエストし、返却されたjsonデータをオブジェクトに変換し、点数を返却します。

ふるさと納税返礼品の牛肉でGASサンプルコードをテスト

実際にmyfunctionでお肉の画像を指定して、GASのサンプルコードを実行してみます。

今回使用するのは、ふるさと納税サイト「さとふる」の佐賀県産の黒毛和牛です。

Image Influence APIでAIが評価・スコアを出すテストのお肉(さとふるより)

上記の画像を事前にGoogleドライブにアップロードした上で、ファイルIDを取得しておきます。

GASのmyfunctionで取得したファイルIDでアップロードした画像を読み込み、作成したevaluateMeat関数の結果をログ出力します。

Google Apps Script(GAS)を使って、リクルートのAI・A3RTの「Image Influence API」をリクエストして画像のスコア・AI評価を取得する

今回のテストのお肉画像では、0-9点中、3.57点という結果になりました。

ふるさと納税の返礼品にあるお肉の画像でいくつか試してみましたが、最高が5点台だったのでまずますの評価であることがわかります。

まとめ・終わりに

今回、リクルートのA3RTのImage Influence APIのAPIキーを発行し、Google Apps Scriptのコードを用意して実行する方法を紹介しました。

Image Influence APIはすでに初期モデルとして、お肉画像の学習モデルが用意されており、簡単にお肉判定プログラムを作成できます。

さらに、少し大変ですが、画像と評価のセットを用意すれば、独自の学習モデルを構築し、スコアを出力するAIモデルを作ることが可能です。

Image Influence APIを使えば、非常に簡単にAIサービスを作成できるので、ぜひ活用してみてください。