AlbumentationsのMotionBlurは画像をシフトする
自然画像を対象とした物体検出モデルを学習していてData AugmentationのためにAlbumentationsを使っていたのですが、AlbumentationsのMotionBlurが画像をシフトする事に気づかず、Bounding Boxの真値とずれてハマったので本記事を書きました。
Albumentationsは画像をシフトする
サンプルとして以下の画像で説明します。
Bounding Boxを付けたものは下記です。
AlbumentationsにはMotionBlurという変換があり、MotionBlurを模することができます。下記はMotionBlurをかけた例です(12個生成しています)。
動体の物体認識をしていて、そこそこMotion Blurっぽい見え方をしている画像があったので、学習時にこのMotionBlurを適用してMotionBlurにロバストになるようにしていたのですが、実はこのMotionBlurは物体の位置をずらします(冷静に考えればそれはそうですね)。
以下は、MotionBlurをかけて得られた画像にもと画像のBounding Boxを重畳したものです。
一見してわかるように、みごとにBoundingBoxがずれます。
物体検出でAP/ARを求めている場合、細長いオブジェクトだと結構な影響が出ることがあります。自分はこれにハマりました。ちゃんとデータを見ないといけませんね。
おわりに
Data Augmentationをする際は注意深くなりましょう。そしてデータを穴が開くほど観察しましょう。アノテーション結果もプロットして観察しましょう。
変なデータをつかってまずい学習をしてしまった手戻りコストより、データをつぶさに観察するほうがずっと安価で学びが大きいはずです。自戒を込めて。
この記事が気に入ったらサポートをしてみませんか?