画像検索について(特にContent-based image retrieval)(3)
banuです.
画像検索の第3回です.
前回
ある画像に含まれる物体のsemantics(高次の概念)をlow-level(低次)な概念で記述する
という作業が必要だという話をしました.ということで,今回はどのように低次の特徴量を求めるかという話をします.
説明をまとめると
- 領域分割(image segmentation)
- 特徴量計算(low-level image features)
- 類似度(similarity measure)
となります.
1.領域分割
まずは領域分割ということですが,これはなぜ必要なのでしょうか.人間は2枚の画像を見たときに,”画像全体”を一つの概念でとらえるより,画像中の”物体”の概念の集合としてとらえる傾向があります.おおざっぱに言うと,海に浮かぶ船の写真があったとき,”なんとなく青い画像”ではなくて”海”+”空”+”船”の画像と認識すると言うことです.これは当たり前のようなことかもしれませんが,計算機にとっては非常に困難な問題です.(それ故に,実現されている類似画像検索は”なんとなく全体が似ている“画像を探しているものが多いように見受けられます.もしくは,単一の概念で表現できるような画像のみを対象する.例えば”顔”,”森”,”靴”など.)
このとき,とりあえず”海”と”空”と”船”に正確に分割することはあきらめて,何らかの基準を用いて画像をいくつかの領域に分割することを考えます.詳細は割愛しますが,だいたいは似たような色でうまくグルーピングすることで領域を分割します.具体的にはこのあたり(またはこんな感じで)を見るとなんとなくわかると思います.こうして分割された領域が得られたので,これらの領域の特徴量を計算して,それらを比較することで画像の類似度を計算することができます.
2.特徴量計算
特徴量といっても難しく考える必要はなく,単に色,模様,形状といったものを数値で表現したものです.もちろん領域の色といったとき,”赤”だの”青”だの単純に言うことはできないので,何らかの統計量を使います.最も単純なものとしては”平均色”を使うというものがありますが,実際はもう少し複雑なものを使います.ここでは,領域ごとに何らかの特徴量が計算されているというのが重要です.
3.類似度
ここでは”領域”どうしの類似度と,”画像全体”の類似度の両方を計算します.
“領域”レベルの比較の場合,ミンコフスキー距離(Minkowski distance)を使うのが普通です.これはユークリッド距離(いわゆる距離といったら普通はこれです)を一般化したものです.この距離が近いほど類似度が大きくなります.
“画像全体”の比較の場合はもう少し難しくなります.なぜなら,普通は2枚の画像が異なる数の領域に分割されているからです.そのため,対応関係を定めるのが非常に面倒になります.なので,皆さんそれぞれ工夫を凝らした手法を提案しています.詳細は割愛します.
(元ネタのほうに書いてあったので一応このような説明をしましたが,物体を分割するのが困難だというのが今回の本題です)
———
なんか長くなってきたのでこのへんでやめます.このようにして得られた低次の特徴と高次の概念(空,海,船)の間には大きなギャップが存在します.次回は,このギャップをどのようにして埋めるのかを考えていきたいと思います.