본문 바로가기
Notes

Albumentations 라이브러리를 이용하여 데이터 증강하기

by Yonghip 2022. 6. 19.

이미지 증강이 이미지 분류 모델에서 눈에 띄는 성능 향상을 보여주기에 언제나 사용해왔지만, 기존에 사용하던 방식인 Keras의 ImageDataGenator는 이미지의 크기가 너무 큰 경우 모든 파일을 전처리하며 가져오기에 시간이 너무 오래 걸렸다.

따라서 이번에는 내가 아는한 가장 빠른 이미지 증강 라이브러리인 Albumentation을 이용하여 이미지를 증강시키는 예제를 포스팅하겠다.

 

Albumentations를 이용하여 이미지 증강하기

 

먼저 증강시킬 이미지와 필요한 라이브러리를 가져옵니다.

 

Albumentations는 아래와 같이 Compose안에 원하는 증강법을 넣어주어 이미지 변환을 수행합니다.

 

 

증강에 확률을 설정하여 이미지를 반복해서 넣어주어 하나의 이미지와 변환법으로 모두 결과가 다른 여러개의 데이터를 만들 수 있습니다.

또한 이미지 반환 시 dictionary형으로 반환하므로 반환값의 ["image"]에서 이미지 픽셀 값만을 가져와야 합니다.

 

 

아래와 같은 코드를 이용하여 이미지를 반복하여 다른 이미지로 만들고 그에 맞게 라벨값을 추가하여 X_train과 y_train을 넣을 시 10배 크기의 X_train과 y_train을 넘파이 어레이로 반환할 수 있습니다.

 

전체 코드

 

 


Albumentations 페이지: https://albumentations.ai/

 

Albumentations

Albumentations: fast and flexible image augmentations

albumentations.ai

코드 링크: https://github.com/hykhhijk/Rock-classifier/blob/master/Augmentation.ipynb

 

GitHub - hykhhijk/Rock-classifier: Rock classifier using CNN

Rock classifier using CNN. Contribute to hykhhijk/Rock-classifier development by creating an account on GitHub.

github.com