こんにちは、DX 推進室の安齋@anzooです。
弊社では Alibaba Cloud Image Search を使用した類似画像検索サービス Quick & Accurate を運営しております。
Image Search の仕様を把握してきた今日この頃、回転画像の画像検索が未検証だったため、今回は画像を回転させたときの画像検索を検証してみます。
はじめに
この記事の主な対象読者は類似画像検索サービスに興味がある方、もしくは Image Search の画像検索を踏み込んで検証したい方です。
この記事で触れないこと
- Image Search の使い方
- Image Search と他の類似画像検索サービスの比較
- 画像分類の仕組み
- 物体検出の仕組み
TL;DR
- Image Search には画像に対して回転情報を含めることができないため、同一画像でも回転させると別の画像としてみなされる
- 回転画像によって精度にばらつきが出るため、画像登録及び画像検索時は向きが上下左右正常な画像を使用すること
参考資料
- Image Search の概要と画像検索時のパラメータ
- EC サイト向け Image Search ベストプラクティス
- Image Search を含めた Image Search 検証用 Web アプリ構築ハンズオン
検証内容
前提条件
- 使用する Image Search には全カテゴリの画像がそれぞれ約1万枚ずつ登録済み
- Image Search の検証には Quick & Accurate を使用
- Image Search API は version 1 を使用
- 画像検索レスポンスの詳細は公式ドキュメントを参照
- 画像検索レスポンスの
itemId
は Image Search に登録済みの画像を一意にする識別子 - 画像検索レスポンスの
sortExprValues
は画像の類似度を相対値で示す値で、値が大きいほど類似度が高い
- Image Search には登録画像及び検索画像に対して回転情報を含めることができない
- 検索対象の画像は Pinterest 様よりお借りしました
検証対象
正常画像を以下の通り回転させ、全8パターンで画像検索を実施
- 正常(回転無し)
- 正常の左右反転
- 正常の上下反転
- 正常の上下左右反転
- 正常の左右反転の反時計回り90度回転
- 正常の反時計回り90度回転
- 正常の左右反転の時計回り90度回転
- 正常の時計回り90度回転
検証結果
結果の見方
- 検索画像の各列の1枚目の画像は Quick & Accurate に検索対象としてアップロードした画像
- 検索画像の各列の2枚目のくり抜き画像は Image Search が物体検出をして画像検索を実施した画像を表示したもの
- グレーアウトの箇所は画像検索されていない
sortExprValues
の降順で第5位までを抽出sortExprValues
は小数点第四位で四捨五入を実施
結果
itemId
と sortExprValues
が一致する結果が一つもないことがわかります。
No.1 と No.2 は itemId
が同じですが、sortExprValues
が微妙に異なっています。
考察
- 画像を回転させると、同一画像でも Image Search に異なる画像として扱われるため、物体検出の範囲が異なる
- 物体検出の範囲が異なると類似画像として判断される画像と類似度が異なる
- 人間が回転画像から物体検出をしにくいことが、Image Search にも当てはまる
- 意図しない類似画像が検索されないように、画像登録時及び画像検索時に向きが正常な画像を使用する
まとめ
Image Search の回転画像の検証が無事に終わりました。機械学習レスな類似画像検索サービスの Image Search をぜひ使ってみてください。