인프런 커뮤니티 질문&답변

fish2631님의 프로필 이미지
fish2631

작성한 질문수

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

mmdetection의 flip 관련

작성

·

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

fish2631님의 프로필 이미지
fish2631
질문자

flip_ratio=0.5 이면 50%의 확률로 이미지를 뒤집는다는 의미같은데요,

원본이미지에 추가로 학습을 하는것이 아니라 원본이미지를 flip 적용한 이미지만 학습한다는 의미인가요?

fish2631님의 프로필 이미지
fish2631

작성한 질문수

질문하기