2013-03-12

DippMotionで低解像度の特徴点を扱うときは画像の解像度を増やせ

DippMotion でプロットするときの最低単位は「1画素 (pixel)」です。画像が高解像度だったりして、プロット対象が沢山のpixelから成っている(たとえば特徴点の直径が 30 pixel もある、とか)なら、特に問題はありません。しかし、画像が低解像度だったりして、プロット対象が数 pixel しかないときはこれが問題になりえます。

例:
特徴点の直径がちょうど 4 pixel だった。真ん中のどっちの画素に点を打つべきだろうか…? どちらかを選ばないといけないが、いずれを選んでも「真の中心」からのずれが 0.5 pixel あり、これは直径の約 12% に達する。見た目でも明らかに「ずれてるなぁ」(というか、「偏ってるなぁ」)とわかる。

対策:
irfanview などで全てのフレームの画像を resize または resample し、解像度を 4, 8, 16 倍などにする。たとえば解像度を4倍(縦横2倍ずつ)にすれば、特徴点の直径は 8 pixel となり、真ん中のどちらを選んでも「真の中心」からのずれは直径の約 6% と半減する。8倍(縦横4倍ずつ)にすればさらに半減。当然ながら、calibration の画像も同様に拡大する必要がある。

Drawback:
画像を大きくするほど、画像も DippMotion も重くなるし、あまりにも大きいとそもそも読み込めなくなる。自分の場合は、たしか 4000x4000 程度が限界だった(ビデオカードによるかも)。

どうしても解像度が足りない!という場合は、画像の一部のみを切り出して resize/resample → Dipp し、再構築の前に切り取った分の座標値を(手動で)足してやる、とかは可能と思われる。

No comments: