본문 바로가기
728x90
반응형

AI |Computer Vision15

[Detection] Object detection 기본 용어 정리 및 성능 평가 지표 이번 포스팅을 통해 객체 탐지를 할 때 기본 용어와 성능 평가지표에 대해 알아보자. 1. Region Proposals Region Proposal이란, 주어진 이미지에서 물체가 있을법한 위치(영역)를 찾는 모듈을 의미한다. ex) R-CNN에서는 'Selective Search' 알고리즘을 적용하여 2천개의 물체가 있을법한 박스를 찾는다. → 물체가 있을법한 박스 = RoI (=Region Of Interest) → Selective Search는 주변 픽셀 간의 유사도를 기준으로 Segmentation을 만들고, 이를 기준으로 물체가 있을법한 박스를 추론한다. → R-CNN 이후, Region Proposal도 Neural network가 수행할 수 있도록 발전됨. → 위 사진을 보면, 해당 영역에 .. AI |Computer Vision/Object Detection 2022. 6. 28.
[Classification] CNN으로 MNIST data 분류하기 # 딥러닝 학습 단계 (code 기준) 1) 라이브러리 불러오기 (torch, torchvision, matplotlib 등등) 2) GPU 사용 설정하고 randon value를 위한 seed 설정 3) 학습에 사용되는 hyper-parameter 설정 (learning rate, training epochs, batch size 등) 4) Dataset download & 학습에 사용되기 편하게 DataLoader 생성 5) 학습 모델 만들기 (CNN, DNN 등) 6) Loss function(=Criterion) 정의하고 Optimizer 선언 7) 모델 학습 및 Loss check (=Criterion의 output) 8) 학습된 모델의 성능 Test MNIST 데이터를 CNN을 적용하여 분류해.. AI |Computer Vision/Image Classification 2022. 6. 5.
[Detection] Concept of Object Detection & 2-Stage Detector 1. Concept Image Classification은 하나의 주요 대상을 식별하고 이미지 분류작업에 초점을 맞추었지만, 더 나아가 "물체의 위치를 탐지"하고 분류하는 모델을 객체 탐지(Object Detection)이라고 한다. ex) 자율주행 자동차, 보안 분야에서의 효율적인 자원 관리 등 2. Bounding box 객체 탐지 모델을 만들기 위해서는 물체를 사각형으로 표현하는 'Bounding box'를 생성해야 한다. 이는 (x, y) 좌표와 box의 너비, 높이를 이용해서 표현되며 박스를 통해서 객체를 올바르게 탐지하고, 학습 대상은 박스 영역에만 해당하기 때문에 효율적으로 수행이 가능하다. - 바운딩 박스값은 (Xmin, Ymin, Xmax, Ymax)로 영역을 잡지만, 효율적인 연산을 위.. AI |Computer Vision/Object Detection 2022. 6. 4.
[Classification] Convolution Neural Network(CNN, 합성곱 신경망) Convolution Neural Network(CNN)은 인간의 시신경을 모방한 딥러닝 구조 중 하나이다. 이미지 분류 작업에 매우 높은 성능을 보이며, 이전의 MLP 방식의 이미지 처리와는 다르게 공간적인 구조 정보(Spatial structure)를 유지하면서 학습시키는 방식으로, 이를 위해 사용하는 것이 "CNN" - 공간적인 구조 정보란, 가까운 거리 내 픽셀들끼리의 연관성을 의미한다. - 이번 글에서 간단한 용어와 원리부터 연산하는 실습까지 공부해보자! 1. 기본 용어 정리 1-1. Convolution(합성곱)? Convolution 연산은 공간 영역 필터링을 위한 핵심 연산 방법으로, 입력된 이미지 위에서 stride 값만큼 filter(=kernel)을 이동시키면서 겹쳐지는 부분의 각 원.. AI |Computer Vision/Image Classification 2022. 6. 4.
[Project] Fashion MNIST Classifier (패션 아이템 분류기) ※ 학습 프로젝트 목표 : Fashion MNIST Dataset을 활용하여 분류기(classifier) 학습하고, 성능 검사! → 28 x 28 픽셀 70,000개의 흑백 이미지로, 신발, 드레스 등 10개의 카테고리(class)가 존재한다. → 패션 이미지 데이터를 입력으로 주면 어떤 이미지인지 예측하여 반환되는 모델 설계 # 개요 → Multi layer perceptron, Batch normalization, ReLU를 사용하여 Neural Network 설계 → 성능도(Accuracy) 개선 - Augmentation, Dropout 등 적용 1. Package Load (import 및 환경 설정) import torch import torch.nn as nn import torchvisio.. AI |Computer Vision/Project 2022. 6. 4.
[Pytorch] Gradient Vanishing & Exploding 막는 방법 많은 layers를 가진 Neural Network을 학습할 때, Backpropagation 과정에서 input층으로 갈수록 Gradient가 점점 소멸되는 현상을 Gradient Vanishing. → Weight가 업데이트가 잘 이루어지지 않아서 최적의 모델을 만들어낼 수 없다. → 이번엔 Gradient Vanishing과 그 반대인 Exploding 현상 방지법에 대해 공부! 1. ReLU function 앞서 공부한 내용이므로 조금 복습하면, Sigmoid 함수를 Activation function으로 사용할 경우, 양끝단(입력의 절대값이 큰 경우)에 output이 0 혹은 1에 수렴하면서 기울기(Gradient)가 0에 가까워지는 현상이 발생한다. - 이 때, input측으로 갈수록 제대로 .. AI |Computer Vision/Basic Pytorch 2022. 6. 4.
[Pytorch] Overfitting(과적합) 방지하는 방법 1. Feature 줄이기 (모델의 복잡도 줄이기) - Overfitting을 방지하기 위한 첫번째 방법은 모델의 "Feature를 줄이는 방법"이다. 보통 Neural Network의 복잡도는 hidden layer(은닉층)의 수, parameter의 수로 결정되는데, 모델의 복잡도가 수준 이상으로 높아도 Overfitting(과적합)이 일어날 수 있다. ex) 3개 층의 hidden layer를 2개로 줄이는 등 2. Data Augmentation (데이터 증식) 적은 양의 Training data로 학습시킨 모델의 경우, 해당 데이터만의 패턴을 모두 학습하여 Overfitting이 발생할 확률이 높다. 이를 방지하기 위해 의도적으로 기존의 데이터를 조금씩 변형하여 데이터의 총량을 늘리는 데, 이 .. AI |Computer Vision/Basic Pytorch 2022. 5. 15.
[Pytorch] MLP(Multi-layer)를 사용하여 MNIST 분류하기 # Multi-Layer Perceptron(MLP)로 MNIST data 분류하기 → MNIST : 숫자 0~9까지의 이미지로 구성된 손글씨 Dataset → 60,000개의 Training data, label 와 10,000개의 Test data, label로 구성됨 → 각각의 이미지는 28 x 28 size이며, 해당 이미지가 어떤 숫자인지 분류하는 실습 import torch import torchvision import torchvision.datasets as dsets import torchvision.transforms as transforms # GPU & random seed 설정 device = 'cuda' if torch.cuda.is_available() else 'cpu' to.. AI |Computer Vision/Basic Pytorch 2022. 5. 15.
[Pytorch] MultiLayer Perceptron (MLP) & ReLU function 1. 기본 용어 및 특징 딥러닝에서 통용되고 있는 기본적인 용어들과 특징들을 공부해보자 → Perceptron, Backpropagation, Overfitting 등등 1-1. Perceptron (퍼셉트론) - Single / Multi-layer 인공신경망 중 한 종류로, 무언가를 인지하고 그 정보를 통해 문제를 해결하는 결과를 도출하는 것. 위의 사진처럼 Perceptron의 원리는 input(x)가 들어왔을 때, x들에 weight(가중치)를 곱하고 이 가중치들의 합과 Bias를 더해서 Activation function을 통해 output이 출력되는 것이다. 우리는 어떤 inputs에 대한 정답 label을 가지고 Perceptron의 성능을 확인할 수 있고 Training을 통해 정확한 결과.. AI |Computer Vision/Basic Pytorch 2022. 5. 8.
[Pytorch] Softmax Regression (소프트맥스 회귀) 1. Softmax Regression 이해 앞선 Binary Classification 이후, 이번엔 Softmax Regression(소프트맥스)를 이용하여 3개 이상의 선택지 중 1개를 고르는 Multi-Class Classification 실습을 진행한다. 1-1. Review of Logisitc Logistic regression에서는 Sigmoid 함수를 통해 예측값을 0 ~ 1 사이의 값을 출력한다. 그리고 두 확률의 합은 1이 된다. → ' H(X) = sigmoid(WX + B) ' 1-2. Softmax (= Multi-Class Classification) Softmax Regression은 각 클래스(=선택지)마다 확률을 할당하고, 그 확률의 총합이 1이 된다. 또한 각 클래스가 .. AI |Computer Vision/Basic Pytorch 2022. 4. 20.
반응형