画像入力として画像を検索できないかと思い色々調べたところVision API Product Searchというサービスに辿り着きました。
Vision API Product Searchとは小売業者向けのサービスで画像を商品を登録し、その商品を商品セットとして追加できます。この商品セットに対して独自での画像でクエリを行うことで視覚的および意味的に類似した結果をランク付きで返してくれるサービスとなります。
実際に手を動かしながらクイックスタートを実施した上で気になった点をまとめました。
画像を使って画像を検索したいと思う方はぜひご一読ください。
実際に手を動かして検証したい方は以下のクイックスタートからどうぞ
気になったこと
商品セット、商品、画像について
Vision API Product Searchが参照する先はCSVファイルとなります。
CSVファイルにはproduct-set-id
の列があり、商品セットとしてIDを設定することができます。このIDをもとに画像を検索することができます。
そして画像はimage_uri
の列にCloud StorageのURIとして記述してあります。
商品セット、商品、画像の作成と管理方法
商品セットの作成方法
空の商品セットを作成した後、その商品セットに商品を追加していく流れとなります。
なお、一括インポート機能を使用することで、すでに商品を含む商品セットを作成することもできます。
商品の作成と管理
CSVファイルのフォーマットをもとに商品リソースの作成ができます。
商品のオプションの説明やラベルを指定することもできます。
参照画像の作成とインデックスの処理
推奨事項も確認の上、参照画像をしましょう。
- ファイルの大きさが最大サイズ(20 MB)を超えないように
- 商品を論理的に強調して、関連するビジュアル情報が含まれるような視点を考慮
- 欠けている視点を補うような参照画像を作成します。たとえば、右足の靴の画像しかない場合は、その画像ファイルの鏡像バージョンを左足の靴として提供
- 解像度の最も高い画像をアップロード
- 商品の背景を白
- 背景が透明の PNG は単色の背景に変換
また画像はCloud Storageバケットに保存する必要があるので注意が必要です。
一括インポートを使用することで複数の参照画像を作成することができます。
商品のインデックスは約30分ごとに更新されます。
商品セットのindexTime
フィールドを確認することでインデックス登録が正常に完了したことを確認することができます。
画像の登録を自動化するために
手動での画像の追加となるが画像がCloud Storageバケットにアップロードをトリガーに商品を作成し、作成された商品に参照画像を作成することもできそうですね。
ただし商品にラベルなどを設定したい場合には手元での更新が必要ですね。
その他の機能
商品の検索
ローカルの画像や他のCloud Storageの画像を使用して指定した商品セット内の画像を検索することも可能です。
画像を追加する前に手元で検証したい場合には便利ですね。
1枚の画像に複数の商品がある場合
Vision API Product Searchによって識別された商品が境界ボックスとして示されます。
境界ボックスで示されたそれぞれの商品ごとにscore
が表示されます。
他のソリューション(BigQueryのマルチモーダルエンべディング)
BigQueryのマルチモーダル エンべディングを利用することでVision API Product Searchと同様に画像から類似画像の検索が可能です。
こちらのサービスはCloud Storageに画像を保存してBigQuery上でインデックスを作成することですぐに検索が可能なソリューションです。