Computer Vision/object detection
Object detection
Object detection
classification + Bounding box
R-CNN
입력 data에 selective search를 이용하여 box를 만든다.(주변 픽셀간의 유사도를 기준으로 segmentation을 만든다.) —> region proposal
각각의 region proposal을 모델에 넣어서 시간이 너무 오래 걸린다.
또한 region proposal은 고전적인 머신러닝 방법을 따른다.(학습을 통해 성능 향상 힘듬)
Fast R-CNN
CNN feature map 추출부터 classification, bounding box regression까지 하나의 모델에서 학습시킴. (end-to-end)
이미 학습된 CNN을 통과시켜 feature map을 추출한다.
Selective search통해서 찾은 RoI(Region of Interest)에 RoI pooling(max pooling)을 거친다.(FC layer 통과하기 위해)
pooling를 거친 벡터를 하나는 softmax(classification), 하나는 bounding box regression을 거친다.
기존의 R-CNN보다 18배 빠름. (하지만, region proposal을 selective search로 수행하는 한계)
Faster R-CNN
Fast R-CNN 에서 selective search를 제거, RPN을 통한 RoI 계산
-
IoU (Intersesction over Union)
- 두 영역의 합집합과 교집합으로 두 영역을 판단. (교집합/합집합)
- 해당 값을 이용해서 NMS를 적용한다.
-
Anchor boxes
- 미리 정의한 bounding boxes
-
RPN(Region Proposal Network)
CNN을 통해 추출한 feature map을 이용한다.
3x3 convolution을 256채널만큼 수행한다.(intermediate layer)
intermediate layer를 classification과 bounding box regression (박스 위치를 교정해주기 위함)의 예측값을 계산한다.
classification을 위한 1x1 convolution의 채널 수
(Object vs. Non-object) * (anchor 개수) = 2k
bounding box regression을 위한 1x1 convolution의 채널 수
(바운딩 박스 꼭지점 x,y좌표 와 너비 높이 정보) * (anchor 개수) = 4k
NMS(Non-Maximum Suppression)
classification을 통해서 높은 점수를 가진 순으로 anchor를 정렬하고, bounding box regression을 적용한다.
이를 통해 나온 점수를 통해 높은 점수를 가진 box만 남기고, 나머지의 중복되는 box를 제거(NMS)한다. —> RoI 계산.
one-stage detector는 pooling과정이 없다.(모든 영역의 loss를 계산)
영상의 의미없는 배경으로 인해 class imbalance 문제가 일어난다.
- Focal loss
- class imbalance 문제를 해결하기 위함.
- 잘못된 class 큰 loss를 준다 (갱신하기 위함).
DETR
anchor box를 통한 RoI 추출, NMS 과정 삭제
transformer를 CV영역으로 확장
보다 end-to-end에 가까운 모습을 보인다.
하지만 transformer를 거치기 때문에 수행시간은 늘어난다.
기존의 Object detection과 다른 새로운 모델이라는 것에 큰 의의.