ENGINEER BLOG

ENGINEER BLOG

Image Influence APIを使って本の表紙を評価してみた

はじめまして。
イノベーション本部の平田です。
普段は、企画・営業系の仕事をしております。

今回は、チームメンバからA3RTなるものを教えてもらい
実際に少し触ってみたのでご紹介します。

A3RTとは?

A3RT(アート)は「ANALYTICS & ARTIFICIAL INTELLIGENCE API VIA RECRUIT TECHNOLOGIES」の略称です。
A3RTは機械学習のなかでもDeep Learningなどに代表される、いわば人工知能とよばれる分野のロジックを
ひとつのブランドで統一・整備をし、社内へ展開するためにプロジェクト化されたソリューションの総称です。

公式ホームページより

いろいろなAPIが提供されているのですが
その中でも今回はImage Influence APIを使ってみました。

Image Influence APIは、複数の画像に評価スコアをつけるとその傾向を学習して、
他の画像に対する評価スコアを返してくれます。
ちなみに、公式ホームページにあるサンプルのモデルでは、
お肉の画像を評価することができます。

やってみる

どんな画像の評価をしようかなーと考えていたところ、
部屋にある本が目に止まったので本の表紙画像をテーマにやってみることにします。
本も“ジャケ買い”したり、表紙の善し悪しで手に取るか決めることがありますし、
なかなか面白そうです。早速やってみましょう!

0.前提

今回は以下の前提でやってみます。

  • ジャンルはビジネス書に限定
  • 評価スコアは全国売上冊数を基準に設定

1.事前準備

  • API KEYの準備
    APIを利用するためには、専用のAPI KEYが必要です。
    API発行のページからメールアドレスを登録すると、登録したメールアドレス宛てにAPI KEYが届きます。

  • 学習データの準備
    公式ホームページに記載されている制限事項や学習データの仕様に則って準備します。
    いくつか書いてありますが、ポイントは以下でしょうか。

    • 学習に使う画像ファイルは1つのフォルダにまとめて、
      zipファイル形式で固めておく
    • 画像ファイルは500枚以上、1000枚以下
    • 画像ファイル名は「xxxx_y.拡張子」

xxxxは0000~9999までの任意の数字で指定します。
yはその画像の評価スコアです。0~9までの数字で指定します。

今回は売上を基準にしたモデルを作成したいので、
ビジネス書ジャンルの売上上位500位までの銘柄を10段階に分けて、評価スコアを指定しました。
売上1~50位までは「9」、51位~100位までは「8」…といった形です。

2.モデル作成

事前準備ができたらモデルを作成します。
これがたったの3ステップ。なんて簡単。
公式ホームページの手順通りにcurlコマンドを叩けば、誰でも学習モデルを作成できます!

◆学習データをアップロードするURLを取得

事前準備で取得したAPI KEYを「apikey=」以降にセットし、コマンドを叩きます。

curl -X GET https://api.a3rt.recruit-tech.co.jp/image_influence/v1/get_upload_url?apikey=******

すると、レスポンスとして学習データをアップロードするURLが返ってきます。

{
    status: 0,
    message: "ok",
    result: {"url": "https://a3rt-image.・・・・"}
}

◆学習データをアップロード

先ほど取得したURL(レスポンスのhttpsから始まる文字列)をセットし、コマンドを叩きます。
※今回は「images.zip」という名前で学習データを作っています。

curl -D - -X PUT --upload-file /path/to/images.zip "http://a3rt-image.・・・・"

プロンプトが戻れば正しくアップロードできています。

◆モデル作成をリクエスト

最後は、事前準備で取得したAPI KEYを「apikey=」以降にセットし、以下のコマンドを叩きます。

curl -X GET https://api.a3rt.recruit-tech.co.jp/image_influence/v1/order_model?apikey=******

レスポンスでOKと返ってくれば、モデル作成のリクエスト完了です!

3.表紙画像の評価

では、作成したモデルを使って、表紙画像を評価してみます!

評価したい本の表紙画像をimagefile以降にセットして、コマンドを叩きます。
今回は某有名ビジネス書の表紙画像で試してみました。

image

curl -X POST \
-F apikey=****** \
-F predict=1 \
-F imagefile=@C:\Users\・・・\bizpic.jpg \
https://api.a3rt.recruit-tech.co.jp/image_influence/v1/image_score
{
   "status": 0, 
   "message": "ok", 
   "result": {"score": 6.170831203460693}
}

評価スコアは6点でした!
MAX9点とはいえ、個人的にはもう少し高い評価でも良いかなーというところ。
今回は学習データが500枚と少なかったので、精度については改善の余地がありそうです。

まとめ

作成した学習モデルで本の表紙画像を評価することができました。
データの準備が大変ですが、モデル作成や評価自体は簡単に行うことができ、
やっていて楽しかったです!

学習データを増やして精度を上げたり、別のジャンルでも試してみたいと思います!
皆さんもぜひチャレンジしてみてください!