AlbumentationでMulti imagesをtransformしたいとき

Albumentationを用いてSegmentation用のコードを書いていると,条件を変えた複数の入力画像を同時にtransformしたくなる時がある.しかしながら,albumentationでは,transformの際,imageとmask以外の入力を受け付けないように見えるので,かなり混乱する.

そこで本記事では,1枚の画像と,複数のマスクを入力するときの書き方を紹介

以下のようなtransformがあったとする

transform = A.Compose([
    A.RandomCrop(width=450, height=450),
    A.HorizontalFlip(p=0.5),
    A.RandomBrightnessContrast(p=0.2),
], bbox_params=A.BboxParams(format='coco'))

複数のマスクを入力する場合は以下

transformed = transform(image=image, image0=image0, image1=image1)

https://albumentations.ai/docs/examples/example_multi_target/

別パターンは以下

transformed = transform(image=image, masks=[mask, mask2])

https://medium.com/pytorch/multi-target-in-albumentations-16a777e9006e

albumentation,Python

Posted by vastee