[Segmentation] FCN, Fully Convolutional Network
·
DeepLearning/Segmentation
Segmentation? Segmentation이란 이미지상의 물체들을 픽셀 단위로 분할, 검출하는 것이다. Segmentation은 구체적으로 Sementic Segmentation과 Instance Segmentation으로 나뉜다. Sementic Segmentation은 물체를 검출함에 있어 같은 class의 물체는 서로 구분 짓지 않고 검출한다. 반면 Instance Segmentation은 같은 class의 물체라도 서로 다른 객체로 구분 지어 검출하는 것이다. FCN은 Sementic Segmentation의 대표적인 모델 중 하나이다. CNN 한계 FCN은 어떻게 물체를 구분 짓고 픽셀 단위로 검출할 수 있을까? 이런 FCN의 동작 원리를 알기 앞서 CNN의 특징에 대해 알아보자. CNN은..
mAP(mean Average Precision)
·
DeepLearning/Concept
mAP? mAP는 컴퓨터 비전 분야에서 Detection을 할 때 알고리즘의 성능을 평가할 때 쓰이는 지표이다. mAP 설명에 앞서 알아야 하는 개념이 있다. Precision Recall IoU Precision Precision은 정밀도라고 불리며, 모든 검출 결과 중 옳게 검출한 비율을 의미한다. 예를 들어 모델이 검출해낸 Object가 10개, 그중에 8개가 옳게 검출해낸 것이라면 Precision = 0.8. Recall Recall은 재현율이라고 하며, 검출해내야 하는 물체들 중에서 제대로 검출된 것의 비율이다. 예를 들어 라벨이 붙어있는 Object가 10개일 때, 그중 4개를 검출해 낸다면 Recall = 0.4. IoU 물체를 검출할 때 물체를 옳게 검출한 건지 아닌지 결정해주는 기준이 ..
Back Propagation, 역전파
·
DeepLearning/Concept
Neural Network 역전파(Back Propagation)를 설명하기 앞서 인공 신경망(Neural Network)에 대해 간단하게 설명하고 넘어가 보자. 위 그림에서와 같이 인공 신경망은 입력층, 은닉층(여러 개일 수 있다), 출력층을 가지고 있고, 사람의 뉴런 모양과 비슷한 퍼셉트론으로 이루어져 있다. 이 인공 신경망에서 입력 데이터(x1, x2)를 받아 최적의 출력 데이터(o1, o2)를 계산할 수 있는 각 퍼셉트론의 가중치(w1~w8)들을 업데이트하는 과정을 신경망 학습이라고 할 수 있겠다. Forward Propagation 순 전파(Forward Propagation)는 입력 데이터를 은닉층을 거쳐 출력층으로 값을 도출하는 것을 의미한다. 순 전파의 과정을 설명하기 위해 입력층과 가중치..
CNN, Convolutional Neural Network, 합성곱 신경망
·
DeepLearning/Concept
CNN? CNN이란, Convolutional Neural Network의 약자로 Convolution 즉 합성곱을 이용하는 Neural Network이다. Convolution, 합성곱? 합성곱은 Image에 Filter(kernal)을 적용시킬 때 사용하는 연산 방법(?)으로 Image에 필터를 이동시키면서 Output(feature, 특징)을 뽑아낸다. (보통 이미지에 Blur 적용, Edge 검출 등에 활용된다.) 왜 Convolution을 사용하는가? CNN 이전 DNN(Fully Connected Layer만으로 구성된 인공신경망)에서 입력 데이터는 1차원 배열 형태로 한정된다. 때문에 이미지를 입력 데이터로 사용했을 때 위치 정보가 손실된다. CNN에서는 Convolition layer를 사..
IoU (Intersection over Union)
·
DeepLearning/Concept
IoU? - 주로 Object Detection에서 사용되는 도구. - IoU = 교집합 영역의 넓이 / 합집합 영역의 넓이. - Object Detection에서 객체의 위치가 예측한 위치와 얼마나 일치하는지 판별할 때 쓰인다. RCNN에서의 IoU RCNN은 대표적인 Object Detection 알고리즘 중 하나이다. RCNN의 전반적인 순서는 다음과 같다. 1. 이미지를 입력 2. 입력받은 이미지에서 객체에 대한 후보 영역(region proposal) 생성 3. 각 영역마다 CNN, SVM으로 Classification (이미지가 어떤 Class인지 추론) 4. 각 영역이 실제 객체가 있는 영역인지 학습 (영역이 객체의 영역이 맞는지) 순서 3. 의 경우 Class마다 제시되는 Label이 미리..
3. YOLO c++, cpp dll 활용 (MFC)
·
DeepLearning/YOLO
이번엔 앞서 Yolo를 빌드하고 학습하는 방법을 다뤘으니 학습한 가중치 파일을 cpp(MFC) 환경에서 불러와 detect 해보려 한다. 0. git에서 받은 darknet-mask/build/darknet 경로에서 yolo_cpp_dll.sln 을 실행 1. 프로젝트 속성에서 추가 포함 디렉터리 및 라이브러리 경로 설정 2. Release/x64 빌드 3. MFC 프로젝트 생성 MFC 프로젝트를 생성 후 프로젝트 속성에서 darknet-master 경로 설정. 4. C/C++ -> 전처리기에 OPENCV, CUDNN, _CRT_SECURE_NO_WARNINGS 추가 5. include "yolo_v2_class.hpp" 및 lib 추가 라이브러리는 아래와같이 코드로 추가 할 수 있다. #include ..
woongs_93
'DeepLearning' 카테고리의 글 목록 (6 Page)