こんにちは。SCSKの島村です。
本日は、Google CloudのAIMLサービスの一つである「Vision API Product Search」についてご紹介させていただきます。
Vision API Product Searchとは??
Vision API Product Searchとは:AIを活用して、検索画像から類似画像を提供するサービス
画像を検索するには、検索画像のGoogle Cloud Storage URI、ウェブURLまたはbase64でエンコードされた文字列をVison API Product Searchに渡すことで可能です。
細かな手順を割愛すると、下の3ステップで使用開始することが可能です。
使用手順 | 手順詳細 |
---|---|
商品セットの作成 | 商品セットリソースを作成する。 |
商品の検索 | Vision APIリクエストで類似商品を検索する。 |
商品の作成 | 商品を作成し、商品セットへ商品を追加する。 |
また、Vision API Product Searchは、商品の参照画像が1点のみでも機能します。特にある程度のバリエーションがある場合は、通常3~8枚の画像があれば、より精度の高い結果を得ることが可能となります。
触ってみた!!!(画像を使ったデモ)
実際にサービスの使用感と精度を確認するために、GoogleImageから画像を収集し、簡易的なデモを行ってみました。
今回は、「キッチン」のデータセットを作成し、実際に検索をかけるところまで確認しました。
17枚のキッチンの画像からデータセットを作成
商品セット:”kitchen_tutorial” | ||||
“kitchen_1”
|
“kitchen_2” |
“kitchen_3” |
“kitchen_4” |
“kitchen_5” |
“kitchen_6” |
“kitchen_7” |
“kitchen_8” |
“kitchen_9” |
“kitchen_10” |
“kitchen_11” |
“kitchen_12” |
“kitchen_13” |
“kitchen_14” |
“kitchen_15” |
新たに用意したキッチンの画像をProduct Searchに入力した結果↓↓↓↓↓↓↓↓↓
検索画像 | Responce | 出力画像 (似ている画像として出力されたもの) |
---|---|---|
|
Product set index time: 2022-06-09 06:59:28.006128+00:00 Search results: Score(Confidence): 0.5357654094696045 Image name: projects/———–/locations/———–/products/kitchen_1/referenceImages/image10 Product name: projects/———–/locations/———–/products/kitchen_1 Product display name: Product description: Product labels: [key: “category” |
|
|
Product set index time: 2022-06-09 06:59:28.006128+00:00 Search results: Score(Confidence): 0.45753684639930725 Image name: projects/———–/locations/———–/products/kitchen_1/referenceImages/image14 Product name: projects/———–/locations/———–/products/kitchen_1 Product display name: Product description: Product labels: [key: “category” |
|
・・・サービスを触ってみての感想・・・
推論の信頼度スコア(Confidence)は50%程度だったということで、まだまだモデルの改良の余地はありそうというのが所感です。
今回使用したデータセットの画像については、撮像画角やサイズ・照度などランダムなものを使用しております。また、キッチン以外の背景についても多く散見されます。これら要因が少なからず精度に依存している可能性は考えられます。
また、本サービスは「検索」というサービスであることから「高い精度で一致する<似たようなものが出力される」なサービスであるとも感じ取れました。
まだまだ改良の余地もありそうなので、データセットを変えて検証してみるのもありかもしれません。
サービス利用量については、こちらのドキュメントよりご確認ください。
使用手順とサンプルコード
手順
|
Python Code
|
---|---|
1. オンラインで個別にインポートを行い、商品セットを作成する。 空の商品セットを作成する。これは商品のグループを格納するためのシンプルなコンテナです。 |
from google.cloud import vision
# def create_product_set( |
2. 個別の商品を作成する。 商品セットを作成したら、次のステップとして商品を作成します。 |
# from google.cloud import vision # from google.protobuf import field_mask_pb2 as field_mask # def create_product( |
3. 商品セットに商品を追加する。 商品セットと商品が作成されたら、商品セットに商品を追加できます。 |
from google.cloud import vision
# def add_product_to_product_set( |
4. 商品を更新する。
作成した商品や商品セットを更新んする必要がある場合は、更新用のメソッドを使用できます。 |
from google.cloud import vision from google.protobuf import field_mask_pb2 as field_mask # def update_product_labels( |
5.参照画像を作成する。
個別の商品の参照画像を作成すると、画像にインデックスが追加された後にVision API Product Searchでその画像を使用して商品を検索できます。 |
from google.cloud import vision
# def create_reference_image( |
6. 類似商品を検索する。 新しい画像を入力として受け取り、最も一致する商品を検索することで、作成した商品カタログを区クエリ出来ます。 |
from google.cloud import vision
# def get_similar_products_file( # # Read the image as a stream of bytes. # # Create annotate image request along with product search feature. # # product search specific parameters # # Search products similar to the image. # results = response.product_search_results.results # print(‘Search results:’) |
最後に
今回はGoogle CloudのAIMLサービスの一つである「Vision API Product Search」についてご紹介させていただきました。
今後とも、AIMLに関する情報やGoogle CloudのAIMLサービスのアップデート情報を掲載していきたいと思います。
最後まで読んでいただき、ありがとうございました!!!