AlbumentationsのMotionBlurは画像をシフトする

自然画像を対象とした物体検出モデルを学習していてData AugmentationのためにAlbumentationsを使っていたのですが、AlbumentationsのMotionBlurが画像をシフトする事に気づかず、Bounding Boxの真値とずれてハマったので本記事を書きました。

Albumentationsは画像をシフトする

サンプルとして以下の画像で説明します。

真ん中の白いのが物体のつもり

Bounding Boxを付けたものは下記です。

Bounding Box付き

AlbumentationsにはMotionBlurという変換があり、MotionBlurを模することができます。下記はMotionBlurをかけた例です(12個生成しています)。

MotionBlur

動体の物体認識をしていて、そこそこMotion Blurっぽい見え方をしている画像があったので、学習時にこのMotionBlurを適用してMotionBlurにロバストになるようにしていたのですが、実はこのMotionBlurは物体の位置をずらします(冷静に考えればそれはそうですね)。

以下は、MotionBlurをかけて得られた画像にもと画像のBounding Boxを重畳したものです。

BoundingBoxを重畳

一見してわかるように、みごとにBoundingBoxがずれます。

物体検出でAP/ARを求めている場合、細長いオブジェクトだと結構な影響が出ることがあります。自分はこれにハマりました。ちゃんとデータを見ないといけませんね。

おわりに

Data Augmentationをする際は注意深くなりましょう。そしてデータを穴が開くほど観察しましょう。アノテーション結果もプロットして観察しましょう。

変なデータをつかってまずい学習をしてしまった手戻りコストより、データをつぶさに観察するほうがずっと安価で学びが大きいはずです。自戒を込めて。


この記事が気に入ったらサポートをしてみませんか?