반응형

분류 전체보기 823

[PyTorch] ShuffleSplit와 subset 함수를 사용하여 dataset 분할하기

안녕하세요! 이번 포스팅은 sklearn 패키지에서 제공하는 ShuffleSplit과 torch.utils.data의 Subset 함수를 사용하여 데이터셋을 분할하도록 하겠습니다. shufflesplit 함수는 데이터셋 인덱스를 무작위로 사전에 설정한 비율로 분할합니다. 즉, 4:1 로 분할하고 싶은 경우에 무작위 인덱스로 4:1 비율로 분할합니다. subset 함수로 데이터셋을 생성하면 부모 set이 업데이트(transformation)된 경우에 subset도 함께 업데이트 됩니다. 제가 사용하는 데이터셋은 999개의 이미지로 구성됩니다. train 0.8, test 0.2로 분할하겠습니다. # split the data into two groups # trian 0.8, test 0.2 from sk..

[PyTorch] skimage모듈 mark_boundaries 함수를 사용하여 segmentation 경계 표시하기

안녕하세요! 이번 포스팅에서는 skimage 모듈의 mark_boundaries 함수를 사용하여 senmentation 경계 표시하는 법을 살펴보겠습니다 ㅎㅎ ! mark_boundaries 함수를 사용하면, 이미지와 마스크 파일을 하나로 결합하여, 이미지 내에서 마스크 경계 부분만 표시합니다. 아래 사진이 예시입니다 ㅎㅎ 우선 필요한 라이브러리를 import 합니다. import os import numpy as np import matplotlib.pyplot as plt from PIL import Image from scipy import ndimage as ndi from skimage.segmentation import mark_boundaries 데이터 셋을 다운로드 받습니다. https:/..

Google Colab에 파일 업로드하기

안녕하세요! 이번 포스팅에서는 Google Colab에 파일 업로드 하는 방법을 살펴보겠습니다. 자꾸 까먹어서 기록합니다 ㅎㅎ!! 우선, 파일을 저장하고 싶은 디렉토리로 이동합니다. 저는 root 디렉토리에 data 디렉토리를 생성하여 해당 디렉토리에 파일을 업로드 하겠습니다. cd /root !mkdir data cd /root/data/ 디렉토리를 생성했고, 해당 디렉토리로 이동했습니다. 이제 파일을 업로드 하겠습니다. from google.colab import files file_uploaded = files.upload() 위 코드를 실행하면 아래와 같은 창이 나옵니다. 파일 선택후 업로드하면 됩니다 ㅎㅎ

[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..

[논문 읽기] 구현 코드로 살펴보는 SegNet(2016), A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

안녕하세요, 오늘 읽은 논문은 SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation 입니다. SegNet은 semantic pixel-wise segmentation을 위한 fully convolutional neural network architecture 입니다. encoder network와 decoder network로 구성되며 이후에 pixel-wise classification layer가 따라옵니다. encoder은 VGG16 network와 동일하게 13 conv layer로 구성되며, decoder network의 역할은 저해상도의 pixel-wise classification을 위해encoer f..

[논문 읽기] Class-Balanced Loss(2019), Class-Balanced Loss Based on Effective Number of Samples

안녕하세요, 오늘 읽은 논문은 Class-Balanced Loss Based on Effective Number of Sample 입니다. Class-Balanced Loss는 long-tailed data set에서 class imbalance 문제를 해결하기 위해 제안되었습니다. long-tailed data set은 몇 개의 클래스가 데이터의 대부분을 차지하고, 나머지 클래스가 차지하는 양은 적은 데이터셋을 의미합니다. 이 경우에 기존의 해결 방법은 re-sampling 및 re-weighting 같은 re-balancing 방법을 사용하는 것이었습니다. 해당 논문에서는 samples수가 증가함에 따라 새롭게 추가되는 정보의 양은 줄어든 다는 점에 집중하여 문제를 해결하려 하며, 이를 위해 각 데이..

[논문 읽기] CenterNet2(2021), Probabilistic two-stage detection

안녕하세요, 오늘 읽은 논문은 CenterNetv2, Probabilistic two-stage detection 입니다. 해당 논문은 one-stage 모델을 RPN으로 사용하여 class-agnostic한 region proposal을 생성한 후에 region proposal을 분류하는 head를 추가하여 two-stage 모델로 변경합니다. CenterNet에 FPN구조를 추가하고, CenterNet이 생성한 proposals들을 추가한 head로 분류하여 최종 결과를 나타내는 CenterNetv2는 2021년에 SOTA를 달성합니다. one-stage 모델을 RPN으로 사용한다니 신박하네요..ㅎㅎ two-stage에서 사용하는 RPN은 recall을 최대화하는 목적으로 region proposal..

[논문 읽기] SKNet(2019), Selective Kernel Networks

안녕하세요, 오늘 읽은 논문은 Selective Kernel Networks 입니다. 일반적으로 CNN 모델은 각 레이어에서 동일한 크기의 kernel_size를 지닌 conv 연산을 수행합니다. 예를 들어, ResNet은 1x1 conv와 3x3conv를 반복해서 사용합니다. SKNet은 kernel_size를 고정시키지 않고, 입력 이미지의 정보에 따라 kernel_size가 변화하도록 설계한 모델입니다. 입력 이미지 내의 객체 크기가 커지면 kernel_size도 마찬가지로 커지는 것을 실험적으로 증명하며 논문에서 제안하는 selective kernel convolution을 다른 모델에 적용해 성능이 향상된다는 것을 보여줍니다. selective kernel convolution은 split, f..

[ISLR] 주성분 회귀(PCR, Principal Components Regression)

주성분 회귀(Principal components regression, PCR) 주성분 회귀 기법은 p개의 변수를 m개의 변수로 축소하여 m개의 변수들로 선형회귀 모델을 fit합니다. m개의 변수는 주성분 요소(Z1, ..., Zm) 입니다. 주성분 요소는 데이터의 공분산 행렬에 SVD를 적용하여 구할 수 있습니다. PCR 기법은 설명변수 X1, ..., Xp를 가장 잘 나타내는 선형결합 또는 방향을 찾는 것입니다. 이러한 방향은 비지도 방식으로 식별되는데, 반응변수 Y가 주성분 방향을 결정하는데 이용되지 않기 때문입니다. 즉, 반응변수는 주성분을 찾는 것을 지도하지 않습니다. 따라서 PCR은 설명변수들을 가장 잘 설명하는 방향이 반응변수를 예측하는데 사용하기에도 가장 좋은 방향이 된다는 보장이 없습니다..

[ISLR] 주성분 분석 개요(Overview of Prinicipal Components Analysis)

차원축소 방법 중 하나인 주성분 회귀를 알아보겠습니다. 차원축소 방법을 간단히 살펴보면 p개의 변수를 m개의 변수로 축소하여 bias를 증가시키고 variance를 감소합니다. 따라서 overfitting을 방지하는 효과가 있습니다. 주성분 회귀(Principal Components Regression) 주성분분석(PCA, Principal Components Analysis)는 변수의 큰 집합으로부터 저차원의 특징을 유도하기 위한 유명한 방법입니다. PCA는 비지도학습의 방법이며, 여기서는 회귀를 위한 차원축소 방법으로서 PCA를 사용하는 것을 살펴보겠습니다. 주성분 회귀를 알아보기 전에 주성분분석을 잠깐 살펴보겠습니다. 주성분분석 개요(An Overview of Principal Components ..

반응형