dl

👀 Computer_Vision

[CV] Object Detection & Segmentation을 위한 패키지 & CUDA 소개

Object Detection & Segmentation을 위한 다양한 패키지들Object Detection & Segmentation을 위한 다양한 패키지들이 있습니다.Keras와 Tensorflow 기반의 다양한 오픈소스 패키지들쉬운 활용과 Customization 가능한 장점이 있습니다.다만 Object Detection 알고리즘 별로 서로 다른 패키지들을 적용해야 하는 단점이 있습니다.OpenCV 의 DNN(Deep Neural Network) 모듈간편하게 Object Detection Inference가 가능합니다.다만 학습이 불가능하며 주로 CPU 위주로 GPU 활용이 어렵다는 점이 있습니다.Tensorflow Object Detection API가장 많은 Detection 알고리즘에 적용이 ..

🖥️ Deep_Learning (Basic)

[DL] Transfer Learning - 전이 학습

Transfer Learning, 즉 전이 학습은 ML(머신 러닝)과 DL(딥러닝)에서 기존의 Pre-Training 된 모델을 새로운 작업에 재사용하는 기법입니다. 이 방법은 특히 대규모 데이터셋에서 학습된 모델을 작은 데이터셋에 적용할 때 유용합니다.전이 학습은 모델이 사전 학습한 지식을 새로운 문제에 적용하여 학습 속도를 높이고 성능을 향상시킬 수 있습니다.Transfer Learning (전이 학습)기존의 Neural Network(신경망)에서 최상위 부분을 새로 정의한 다음, 이 부분을 Training 시키는 것이 Transfer Learning (전이 학습) 이라고 합니다.이때 Neural Network(신경망)의 하위 부분은 이미 Training된 Neural Network(신경망)을 사용하..

👀 Computer_Vision

[CV] OpenCV 영상처리 개요

OpenCV 영상 처리 개요한번 OpenCV의 영상처리 방법에 데하여 알아보겠습니다.OpenCV의 VideoCapture클래스는 동영상을 개별 Frame으로 하나씩 읽어(Read)들이는 기능을 제공합니다.VideoWriter는 VideoCapture로 읽어들인 개별 Frame을 동영상 파일로 Write를 수행합니다.VideoCapture.read() - 영상의 다음 Frame을 읽습니다.VideoWriter.write() - 영상의 Frame을 write 합니다.cap = cv2.VideoCapture(video_input_path)…………vid_writer = cv2.VideoWriter(video_output_path, …..)while True:hasFrame, img_frame = cap.read..

👀 Computer_Vision

[CV] OpenCV 개요

Python 기반 주요 이미지 라이브러리크게 3가지가 있습니다.PIL (Python Image Library)주로 이미지 처리만을 위해 사용합니다.처리 성능이 상대적으로 느리다는 단점이 있습니다.Scikit-Image파이썬 기반의 전반적인 컴퓨터 비전 기능 입니다.사이파이(Scipy)에 기반하고 있습니다.OpenCV오픈소스 기반의 최고 인기 컴퓨터 비전 라이브러리 입니다.컴퓨터 비전 기능 일반화에 크게 기여 했다는 특징이 있습니다.(어려운 기능도 API 몇줄로 간단하게 구현이 가능합니다.)C++ 기반이나 Python도 지원합니다. (Java, C# 등 다양한 언어 지원) OpenCV 특징OpenCV (Open Source Computer Vision Library)는 컴퓨터 비전과 머신 러닝을 위한 오픈..

🖥️ Deep_Learning (Basic)

[DL] 대표적인 CNN Network - LeNet 5, AlexNet, ZFNet, VGGNet, GoogLeNet, ResNet

이번글에서는 다양한 CNN 네트워크에 데하여 알아보겠습니다. LeNet 5LeNet-5는 기본적인 CNN 아키텍처를 정의하며, 현재의 딥러닝의 기초가 되었습니다.주로 손글씨 숫자 인식(MNIST 데이터셋) 문제를 해결하기 위해 개발되었으며, 또한 현대 CNN의 기초를 마련한 모델로 여겨집니다.LeNet-5는 총 7개의 레이어(입력과 출력 포함)로 구성된 네트워크입니다.LeNet-5의 구조는 크게 두 부분으로 나눌 수 있습니다.Convolutional Neural Network (CNN)Fully Connected Network (FCN)각 레이어는 특정한 역할을 수행하며, Convolutional Neural Network(CNN - 합성곱 레이어)와 서브샘플링 레이어(Pooling Layer)를 교대로..

🖥️ Deep_Learning (Basic)

[DL] Convolution & Pooling Layer 구현해보기

이번에는 Convolution Layer, Pooling Layer를 한번 구현해 보겠습니다. Convolution & Pooling Layer 구현해보기4-Dimension Array (4차원 배열)Convolution Neural Network(CNN)에서 Layer 사이를 흐르는 데이터는 4차원입니다.예를 들어서 데이터의 형상이 (10, 1, 28, 28)이면?Height(높이): 28, Width(너비): 28, Channel(채널): 1개인 데이터가 10개라는 이야기 입니다.이를 Python으로 구현하면 아래의 코드와 같습니다.x = np.random.rand(10, 1, 28, 28) # 무작위로 데이터 생성x[0, 0] # 또는 x[0][0] 첫번째 데이터의 첫 채널 공간 데이터에 접근여기에..

🖥️ Deep_Learning (Basic)

[DL] Convolution Neural Network - CNN (합성곱 신경망), Convolution Layer, Pooling Layer

Convolutional Neural Network, CNN은 이미지 인식 & 음식 인식등 다양한 곳에서 사용됩니다.특히 이미지 인식 분야 에서 딥러닝을 활용한 기법은 거이 다 CNN을 기초로 합니다.CNN 전체 구조Convolution Layer(합성곱 계층)과 Pooling Layer(풀링 계층)이 이번에 새로 등장합니다.우리가 본 지금까지의 Neural Network(신경망)은 모든 Neuron과 연결되어 있었습니다.이를 Fully-Connected (FC) - 완전연결 이라고 하며, 완전히 연결된 Layer는 'Affine 계층' 이라는 이름으로 구현했습니다.만약 Affine 계층을 사용하면, Layer가 5개인 Fully-Connected Neural Network(FC 신경망)은 아래의 구림과..

🖥️ Deep_Learning (Basic)

[DL] 올바른 학습을 위해 - Overfitting, Dropout, Hyperparameter

올바른 학습을 위해 Machine Learning에서 Overfitting이 되는 일이 많습니다. Overiftting(오버피팅)은 신경망이 Training data(훈련 데이터)에만 지나치게 적용되어서 그 외의 데이터에는 제대로 대응하지 못하는 상태입니다.Overfitting (오버피팅)오버피팅은 매개변수가 많고 표현력이 높은 모델인 경우, 훈련데이터가 적은 경우에 주로 일어납니다.이 두 요건을 충족하여 Overiftting(오버피팅)을 일으켜 보겠습니다.MNIST Dataset의 훈련데이터중 300개만 사용하고, 7-Layer Network를 사용해서 Network의 복잡성을 높혀보겠습니다.각 Layer의 Neuron은 100개, Activation Function(활성화 함수)는 ReLU 함수를 사..

🖥️ Deep_Learning (Basic)

[DL] Feed-forward Network (피드-포워드 네트워크)

Feed-Forward Network Feed-Forward Networks는 가장 기본적인 인공 신경망 구조중 하나로, Input Layer(입력층)에서 Output Layer(출력층)으로 데이터가 순방향으로 흐르는 구조를 의미합니다. 여기서 Data는 각 Layer(층)을 지날 때마다 가중치에 의해 변환되고, Activation Function(활성화 함수)를 통해 다음 Layer(층)으로 전달됩니다 이러한 네트워크는 순환 연결이나 복잡한 Feedback 루프가 없어서 계산이 비교적 간단하고, 다양한 문제에 적용될 수 있습니다. 정리하자면, 데이터가 네트워크를 통해 한 방향으로만 흐른다는 것을 의미합니다. 입력 데이터는 Input Layer(입력층)에서 시작하여 Hidden Layer(은닉층)을 거쳐..

🖥️ Deep_Learning (Basic)

[DL] 단순한 Layer 구현해보기

이번글에서는 단순한 Layer 부터 한번 구현해 보겠습니다. 앞의 글에서본 계산 그래프의 곱셈 노드를 'MultiLayer', 덧셈 노드를 'AddLayer'라는 이름으로 구현합니다. 곱셈 계층 모든 계층은 forward()와 backward()라는 공통의 Method(인터페이스)를 갖도록 구현합니다. forward()는 Forward Propagation(순전파), backward()는 Back propagation(역전파)를 처리합니다. 한번 구현해 보겠습니다. # coding: utf-8 class MulLayer: def __init__(self): self.x = None self.y = None # x와 y를 인수라 받고 두 값을 곱해서 반환 def forward(self, x, y): sel..

Bigbread1129
'dl' 태그의 글 목록