[딥러닝CV] 8. Object Detection

PurinYun·2023년 12월 26일
0

AIffel

목록 보기
72/75

[딥러닝CV] 목차

  1. 컴퓨터 비전 태스트 '상상'해 보기
  2. 다층 퍼셉트론(Multi-Layer Perceptron) 구조 복습하기
  3. CNN 하나씩 이해하기 (1) 1-Channel Convolution
  4. CNN 하나씩 이해하기 (2) 3-Channel Convolution
  5. CNN 하나씩 이해하기 (3) Pooling
  6. 심화된 CNN 구조
  7. Transfer Learning 이해하기
    8. Object Detection
  8. Segmentation

1. Image Classification vs. Localization vs. Object Detection

Q. Computer Vision에는 다양한 Task들이 있습니다. 그 Task 안에서도 이미지 안에 하나의 객체가 있는 경우(Single Object)와 이미지 안에 여러 개의 객체가 있는 경우(Multiple Objects)로 크게 2가지로 분류할 수 있습니다. 이 2가지 경우에 해당하는 Task는 어떤 게 있었고 어떤 특징이 있는지 설명해 보세요.

1️⃣ Single Object
• Image Classification: 단 하나의 대상의 true label이 무엇인지 분류합니다.
• Localization: 단 하나의 대상의 위치를 가장 적절하게 지정하는 bounding box(좌표)를 찾습니다.

2️⃣ Multiple Objects
• Object Detection: 여러 개의 bounding box를 찾아 여러 대상의 위치를 가장 적절하게 지정하는 동시에 각 bounding box 내의 대상을 판별합니다.
• Segmentation: 픽셀 단위별로 detection을 수행합니다. (특정 픽셀이 속한 대상 판별) Segmentation 종류에는 Semantic Segmentation와 Instance Segmentation가 있습니다.

Q. Localization (+ Classification)과 Object Detection의 공통점과 차이점에 대해서 설명해 보세요.

Localization과 Detection 모두 대상의 위치를 bounding box로 지정하고,
해당 bounding box 내의 대상이 무엇인지를 판별합니다. (대상과 위치를 찾아줌)

두 task의 차이점으로는 Localization과 비교하면,
Object Detection은 하나의 이미지 내의 여러 대상의 위치를 찾고 분류해야 하기 때문에 Localization에 비해 난이도가 높다.

Q. AlexNet, VGG 등 일반적인 CNN 모델만 사용해서 Object Detection task를 해결할 수 있을까요?

CNN 모델은 데이터의 feature를 잘 찾아내지만 대상의 위치를 잡기 어렵기 때문에 Object Detection에 일반적인 CNN 모델만 사용하는 것은 좋지 않습니다.
(CNN의 한계)

그럼 Object Detection에는 어떤 모델을 사용해야 하는지
다음에서 알아보도록 합시다. 💨

2. Object Detection 모델의 발전 과정

Q. Object Detection task 방법에는 1-stage detector과 2-stage detector가 있습니다. 그 중에서 Two-Stage Detector의 특징과 장점에 대해서 설명해 보세요.


{Faster R-CNN}

Two-Stage Detector는 Region Proposal을 먼저 진행하면서 이미지 내에 대상이 있을 법한 영역인 RoI(Region of Interest)를 찾아냅니다. 그 찾아낸 RoI 안에 있는 이미지를 classification 합니다.

Two-Stage Detector는 두 단계로 나누어져서 느리지만, 정확도가 비교적 높다는 장점이 존재합니다.

Q. Object Detection 모델 중, Two-Stage Detector인 모델을 찾아보고 작성해 보세요.

대표적으로 R-CNN 계열의 모델들이 있습니다. (R-CNN, Fast R-CNN 등) 그 외에도 SPPNet, Pyramid Networks 등이 있습니다.

Q. 이번에는 One-Stage Detector의 특징과 장점에 대해서 설명해 보세요.

RoI(Region of Interest)를 찾아내지 않고 전체 이미지에 대해
Region Proposal 과 classification를 동시에 수행한다.

YOLO v1의 경우에는 전체 이미지를 특정 크기의 grid로 분할한 후, cell의 중심에 object가 있다고 판단되는 특정 cell에 대하여 classification을 수행합니다.

속도는 Two-Stage Detector보다 빠르지만 정확도는 상대적으로 떨어질 수 있습니다. (현재는 정확도가 많이 개선되었습니다.)

자율주행 자동차, 영상 등 real-time processing을 요구하는 태스크에는 One-Stage Detector가 자주 활용됩니다.

Q. Object Detection 모델 중, One-Stage Detector인 모델을 찾아보고 작성해 보세요.

대표적으로 YOLO 계열의 모델들이 있습니다. (YOLOv1, YOLOv3 등) 그 외에도 SSD, Retina-Net 등이 있습니다.

3. R-CNN 모델을 통해 Object Detection 이해하기

Q. R-CNN 모델 전체적인 구조를 보고 R-CNN 모델의 동작을 순서대로 설명해 보세요.

먼저 R-CNN는 2-stage-detector 이다.
Input 이미지가 들어오면 특징을 추출(ROI)한 후에
warp(모양 변경) 후
CNN features 를 가지고 연산을 한다.
CNN features 는 크게 Feature Extractor, Classification으로 나뉘는데
그 중에서 Feature Extractor 만 가지고 와서 Classify 한다.

<<부연설명>>

1️⃣ Region Proposal: 입력 이미지에 selective search 알고리즘을 적용하여 객체가 있을 만한 RoI(Region of Interest)의 후보 2천 개를 추출합니다.

2️⃣ Resize: 추출된 RoI의 후보 2천 개의 크기를 227x227로 변형합니다. (동일한 사이즈로 변형하기 때문에 이미지의 왜곡이 있을 수 있습니다.)

3️⃣ 이미 학습된 CNN 구조(Conv Net)를 통해서 4,096차원의 특징 벡터를 추출합니다.

4️⃣ 각각의 객체별로 학습된 SVM classifier를 이용해서, 추출된 특징 벡터를 분류합니다.

5️⃣ Bounding box regression으로 적절한 객체의 경계(bounding box)를 설정합니다.

Q. 객체가 있을만한 후보를 찾는 Region Proposal과 관련된 여러가지 알고리즘이 있습니다. 그중에서 Selective Search 알고리즘 과정에 대해서 설명해 보세요.

Selective Search는 색, 무늬 크기, 형태를 바탕으로
주변 픽셀 간의 유사도를 계산합니다.
계산한 유사도를 바탕으로 segmentation을 수행한 후,
작은 segment들을 묶어가며 최종 후보를 찾습니다.

Selective Search의 초기 segmentation은
매우 세밀한 영역까지 segmentation 하는 over-segmentation을 하며
유사도가 비슷한 segment들을 반복적으로 묶어갑니다.

Q. R-CNN 모델은 Region Proposal이 끝난 후 최종적으로 Classification을 진행합니다. 이 Classification의 진행과정에 대해서 설명해 보세요.

RoI를 동일한 사이즈로 맞춘 후, Pre-trained된 Convolutional Neural Network 모델을 통해서 feature extraction(4,096차원)을 수행합니다. 앞의 Feature Extraction 결과 바탕으로 학습한 SVM을 이용해서 feature extraction 결과를 분류합니다.

그 후, 2,000개의 proposed region 중에서 IoU 값을 이용해 "non-maximum suppression"을 적용해 적합하지 않은 것을 탈락시킵니다. 마지막으로 Bounding box의 위치를 맞추기 위해서 bounding box regression을 실행합니다.

3-1. Object Detection과 관련된 개념들

(1) Sliding window

Object Detection은 이미지의 “어느 위치”에 Object가 있는지 알아보는 태스크입니다.

Sliding window는 일정 크기의 window를 이미지 위에서 조금씩 옮겨가며 전수조사를 하는 것입니다. Window 사이즈를 바꿔 가면서 Object가 있는 위치를 찾고, 효율적으로 Object 위치를 찾기 위해서 stride를 변경할 수 있습니다. 그러나 계산 비용이 많이 들고 학습 속도가 느리다는 단점이 있습니다.

(2) IoU (Intersection over Union)

IoU는 모델이 예측한 bounding box와 실제 정답인 ground truth box가 얼마나 겹치는 지를 측정하는 지표입니다. 만약 100%로 겹치게 되면 IoU 값은 1이 됩니다.

Area of Union: predicted bounding box와 ground-truth bounding box를 모두 포함하는 영역

Area of Overlap: predicted bounding box와 ground-truth bounding box가 겹치는 부분

(3) NMS (Non Maximum/maximal Suppression)

NMS은 수많은 bounding box 중 가장 적합한 box를 선택하는 기법입니다.

NMS의 과정
1. 모든 bounding box에 대하여 threshold 이하의 confidence score를 가지는 bounding box는 제거합니다.
2. 남은 bounding box들을 confidence score 기준으로 내림차순 정렬합니다.
3. 정렬 후 가장 confidence score가 높은 bounding box를 기준으로 다른 bounding box와 IoU를 구합니다.
4. IoU가 특정 기준 값보다 높으면, confidence score가 낮은 bounding box를 제거합니다.
5. 해당 과정을 순차적으로 반복합니다.

(4) mAP (mean Average Precision)

Precision-Recall Curve: confidence threshold의 변화에 따른 정밀도와 재현율의 변화 곡선입니다.
AP: Precision-Recall Curve의 아래 부분 면적을 의미합니다.
mAP: AP는 하나의 object에 대한 성능 수치이며, mAP는 여러 object들의 AP를 평균한 값을 의미합니다. 따라서 Object Detection 모델의 성능 평가에 사용합니다.

(5) Bounding Box Regression

마무리

Q. 컴퓨터 비전에서 Object detection은 어떤 task 인지 설명해 보세요.

Object detection은 한 이미지 안에 여러 개의 객체(multiple objects)가 있을 때, 객체의 경계를 지정(bounding box regression)해주고, 경계 안에 있는 객체의 class가 무엇인지를 분류하는 작업을 동시에 수행하는 것입니다.

profile
Fantivation

0개의 댓글