작성
·
419
0
안녕하세요 선생님 flip관련 질문이 있습니다.
위 사진에서 Flip부분이 Horizontal Flip을 의미하는것 같은데요, Vertical Flip을 적용하고 싶으면 어떠한 방법을 사용하면 좋을까요?
답변 3
1
augmentation은 원본이미지에 추가로 별도의 이미지를 만드는게 아닙니다.
원본 학습데이터를 모델에서 train 시킬 때 이 이미지를 변환하는 것입니다.
가령 50%의 확률로 flip이 된다고 가정하고, 원본 이미지 10개가 a, b, c, d, e, f, g, h, i, j 가 있고, 여기에 flip을 적용하면 원본 이미지 a가 a'와 같이 된다고 하겠습니다.
그럼 epoch를 반복해서 수행할 때마다
a, b, c, d, e, f, g, h, i, j 원본 이미지는 a', b, c, d', e', f, g, h', i', j 와 같이 50%의 이미지가 random 하게 변환되는 것입니다. 이걸 계속 반복하면서 모델에 입력하는 것입니다.
이런 효과로 원본이미지 대비 더 많은 이미지를 학습하는 효과를 augmentation이 갖는것이지만, 원래 이미지가 물리적으로 더 늘어나는 것은 아닙니다.
따라서 원본이미지에 추가로 학습을 하는것도 아니고 원본이미지를 flip 적용한 이미지만 학습한다는 의미도 아니며, 원본이미지를 epoch시마다(정확하게는 batch 시마다) 변형해서 사용한다는 것입니다.
감사합니다.
1
안녕하십니까,
검증해보진 않았지만, 아래 소스코드의 349 line정도를 보시면, direction이라는 option이 있습니다.
https://github.com/open-mmlab/mmdetection/blob/master/mmdet/datasets/pipelines/transforms.py
dict(type='RandomFlip', flip_ratio=0.5, direction='vertical') 로 적용하면 될 듯 싶습니다.
감사합니다.
0
flip_ratio=0.5 이면 50%의 확률로 이미지를 뒤집는다는 의미같은데요,
원본이미지에 추가로 학습을 하는것이 아니라 원본이미지를 flip 적용한 이미지만 학습한다는 의미인가요?