공부/data 전처리, 분석
scipy.ndimage.shift 이미지 옮기기에 적용할 수 있는 데이터 증식 방법
Chelsey
2023. 1. 5. 15:55
728x90
예전 캐글 경진대회에 참여하여 데이터를 다룰 때 데이터를 증식시키기위한 코드로 shift를 사용한 것을 본 적 있다.
처음에는 이게 뭔가 ... 싶었는데 그래도 자꾸 보다보니 이해가 된다.
학습을 시킬 땐 데이터가 많으면 좋기 때문에 많은 데이터를 확보해야하는데,
우리의 환경상 원하는 만큼 데이터를 가지기 힘들다.
그럴땐 가지고 있는 데이터를 증식하여 이를 이용하게 되는데 shift를 이용하여 이미지 데이터를 증식시킬 수 있다.
from scipy.ndimage.interpolation import shift
해당 모듈에서 설정할 수 있는 파라미터값 종류를 보자.
shift(inputdata, shift할정도, cval=움직여서남은여백에줄값, mode=움직이고남은여백값을어떤설정에따를것인지)
- input - input할 data를 지정한 변수명을 적으면 된다.
- shift - 얼마나 움직일 것인지 적어주면 된다. 내가 참고한 코드에는 [x , y] 형태로 2차원 이미지를 x축, y축으로 지정해주었다. (axis로 설정하는 방법도 있을 것 같은데 ... ) , 만약 shift=10 으로 적어주게되면 x축과 y축 모두에 +10 이 적용된다.
- cval - 이미지를 (넘파이 배열을) 움직이게 되면 존재하던 데이터가 좌우위아래로 움직이게 되면서 빈 공간이 생긴다. 그 공간의 값을 무엇으로 할 것이냐이다. 이 값을 50으로 주고 mode를 constant값으로 주어 cval 값이 유효하게 하면 옅은 회색으로 나타나는 것을 볼 수 있다.
- mode - 종류가 여러가지이다. reflect는 이미지의 가장자리 값이 빈 공간의 값으로 이어지게 하고, default 인 constant는 cval이 빈 공간의 값으로 유효하게 한다.
728x90