반응형

transformation 5

[논문 읽기] (2019) Learning Data Augmentation Strategies for Object Detection

안녕하세요, 오늘 읽은 논문은 Learning Data Augmentation Strategies for Object Detection 입니다. classification에서 사용하는 augmentation(horizontal flip, resize)을 object detection에 적용하는 것은 성능 향상에 한계가 존재합니다. 해당 논문은 Object Detection을 위한 data augmentation을 연구합니다. Method 최적의 augmentation 방법을 찾기 위해서 search space를 구성합니다. 여러개의 sub-policy를 생성하며, 각 sub-policy에는 2개의 operation이 적용됩니다. operation에는 2개의 hyper parameter가 존재합니다. (1..

[PyTorch] Albumentations 모듈 사용해서 이미지 transformation 적용하기.

안녕하세요 ㅎㅎ 오늘은 Albumentations 모듈을 사용해서 이미지 transformation을 정의하고, 데이터셋에 적용하겠습니다. Albumentations 모듈은 torchvision.transformer 보다 빠르게 작동하며, object detection task에서 이미지를 transform 적용하면 바운딩 박스도 함께 transform 되도록 할 수 있습니다. 즉, 아주 아주 편리합니다 ㅎㅎ 우선 albumentations 모듈을 설치합니다. # install transformation package !pip install -U albumentations 커스텀 데이터셋을 생성합니다. 저의 경우에는 VOC dataset을 사용했습니다. class VOCDataset(Dataset): d..

[PyTorch] data augmentation(resize, flip, shift, brightness, contrast, gamma) 함수 정의하기

파이토치로 data augmentation 함수를 정의해보겠습니다. transformation.Compose 함수로 정의하면 쉽게 data augmentation을 사용할 수 있지만, 이 경우에 모든 dataset에 적용이 됩니다. custum dataset을 train과 val로 나눈뒤에 각각에 다른 transformation을 적용하기 위해 함수를 정의해서 사용합니다. 이번 포스팅에서 정의할 data augmentation은 resize, horizontally flip, vertically flip, shift, brightness, contrast, gamma, scale label) 입니다. 1. 이미지 resize 이미지를 resize 해줌과 동시에 label도 갱신해줘야 합니다. import..

[PyTorch] 이미지 크기와 바운딩박스 좌표를 resize 하는 함수 정의

image transformation을 수행함과 동시에 바운딩 박스 좌표(labels)도 갱신시켜줘야 합니다. 이미지의 크기를 변경하면 객체의 위치도 변경되기 때문에 바운딩 박스 좌표도 그에 맞게 변경하는 함수를 정의하겠습니다. AMD dataset은 AMD, Non-AMD 두 종류의 이미지가 있으며 크기가 다릅니다. 크기를 256x256으로 고정시키고, 그에 따라 바운딩박스의 중심 좌표(label)도 갱신시키는 함수를 정의해보겠습니다. AMD와 Non-AMD 이미지 입니다. 둘의 크기는 다르므로 256x256 크기로 일치시켜주겠습니다. import torchvision.transforms.functional as TF # create a data transformation pipeline for sin..

[PyTorch] 이미지 픽셀의 평균, 표준편차를 계산하여 정규화하기

dataset에 있는 이미지의 평균과 표준편차를 계산하여 정규화(normalize) 해보겠습니다. 1. 데이터셋을 불러옵니다. 저는 torchvision에서 제공하는 STL-10 dataset을 사용했습니다. train dataset을 불러와서 train_ds에 저장합니다. # loading training data from torchvision import datasets import torchvision.transforms as transforms import os path2data = '/data' # if not exists the path, make the path if not os.path.exists(path2data): os.mkdir(path2data) data_transformer = ..

반응형