Boostcamp AI Tech

[Boostcamp Day-29] Computer Vision - Object Detection

ju_young 2021. 9. 10. 22:32
728x90

Object detection

1. Two-stage detector

  • Gradient-based detector(e.g., HOG)(2005)

경계선의 특징을 잘 모델링하기위한 엔지니어링을 수행했다. 간단한 선형 모델인 SVM을 사용

  • Selective search(2013)

bounding box를 제한해서 추출해주는 방법이다.

  1. 우선 아래 그림의 맨 왼쪽처럼 잘게 분할을 해주는데 이것을 Over-segmentation이라 부른다.
  2. 비슷한 영역끼리 반복적으로 합친다.
  3. 반복적으로 합친 큰 segmentation이 나오는데 이런 segmentation이 포함된 bounding box를 후보로 추출해준다.

  • R-CNN(2014)
  1. selective search를 사용하여 region proposal들을 extract한다.
  2. extract된 region은 warp되어 CNN 연산이 수행된다.
  3. classifier는 간단하고 고전적인 모델인 SVM을 사용한다.

  • Fast R-CNN(2015)
  1. Selective Search를 통해 RoI를 찾는다.
  2. 전체 이미지를 CNN에 수행시켜 feature map을 추출
  3. Selective Search으로 찾은 RoI를 feature map 크기에 맞춰 projection
  4. projection된 RoI에대해 RoI Pooling을 적용시켜 고정된 크기의 feature vector를 얻는다.
  5. 얻은 feature vector는 FC Layer를 통과 후 두 개의 branch로 나뉜다.
  6. 한 쪽은 softmax를 통해 classification을 수행하고 다른 한 쪽은 bounding box regression을 통해 Selective Search로 찾은 box의 위치를 조정한다.
  • Faster R-CNN
  1. IoU(Intersection over Union) : 두 영역의 ovelap을 측정하는 기준

  1. Anchor boxes : 미리 정의된 bounding box를 의미하며 IoU에 따라 positive sample인지 negative sample인지 판단할 수 있다. 예를 들어 IoU가 0.7보다 크면 positive, 0.3보다 작으면 negative라고 할 수 있다.
  2. 이전 Fast R-CNN까지 Selective search를 사용하여 region을 추출했지만 Faster R-CNN에서는 Region Proposal Network(RPN)을 사용하여 region을 추출한다.

  1. feature map위에 N x N 크기의 Window를 받아 해당 영역에 어떤 물체(object)가 있는지 없는지를 classification layer(cls layer)와 bounding box의 4개 좌표 (x,y,w,h)를 결정하는 bounding box regression(reg layer)으로 구성된다.

5. Non-Maximum Suppression (NMS)

  • 가장 높은 점수를 받은 bounding box를 선택
  • 다른 box들과의 IoU를 비교
  • IoU가 50%이상인 bounding box는 삭제
  • 다음으로 높은 점수로 이동
  • 반복 수행

  • Summary of the R-CNN family

2. Single-stage detector

빠른 속도와 간단한 구조를 가진다.

  • You only look once(YOLO)

좀 더 자세히 살펴보면 가운데 위쪽은 BBox에 대한 정보를 나타내는 것이고 서로 다른 크기의 많은 BBox가 그려져있다. 위에서 처럼 그리드를 7x7로 나누고 각 그리드 셀에서 크기가 일정하지 않은 BBox를 2개씩 생성한다고하자. 그러면 그리드 셀이 총 49개이므로 BBox는 98개가 만들어진다. 이 중 BBox 안에 어떤 object가 있을 것 같다고 확신(confidence scrore)할수록 BBox 테두리를 굵게 그려진다. 따라서 BBox의 위치정보와 confidence score의 정보를 포함하고 있다고 말할 수 있다.

Fast R-CNN과 같은 방식으로 positive sample을 구별한다.

  • Single Shot MultiBox Detector (SSD)

YOLO의 경우 맨 마지막 레이어에서만 prediction을 하기 때문에 localization 정확도가 떨어진다. 이러한 점을 보완하기 위해 SSD라는 방법이 나왔다.

SSD는 multi scale object를 잘 처리하게 위해서 중간 feature map을 각 해상도에 적절한 bounding box를 출력할 수 있도록 하였다.

YOLO보다 더 빠르고 정확한 성능을 가진다.

3. Two-stage detector vs. one-stage detector

  • Focal loss

one-stage detector의 경우 RoI pooling이 없기 때문에 모든 영역에서의 loss가 계산된다. positive sample은 적은데 negative sample은 많이 가지기 때문에 Class Imbalance 문제가 발생하게 된다.

이런 문제를 해결하기위해 Focal loss를 사용한다.

  • RetinaNet

4. DETR(Detection Transformer)

 

728x90