Object Detection-CNN을 어떻게 활용할까 (2)

Lee Tae-Sung·2021년 12월 12일
0
post-thumbnail

1. Pretrained CNN 모델

ResNet50 -> 약 2주 동안 GPU *4
그래서 AlexNet, VGG, ResNet 등 대표적인 CNN들은 Pretrain 된 모델이 배포되어 있음.

https://youtu.be/jqNCdjOB15s
=>동빈나의 강의로 해당 강의와 내용들이 정확히 일치하며 멋사 강의에는 언급되지 않는 1-stage / 2-stage로 모델을 구별하는 방법도 제시함.
1-stage는 detection(localization)과 classification을 한번에 2-stage는 순차적으로 해결.

2. R-CNN

  • 최초로 CNN을 object detection에 성공적으로 활용한 모델

  • R-CNN의 작동
    => R-CNN이 무엇? Region with CNN 이름의 뜻 대로 부분별로 CNN을 작동 시키는 것을 말함.

    1) 이미지에서 Region Proposoal을 찾는다.
    => Selective search라는 알고리즘을 이용해 사진에서 물체가 있을 거 같은 2000개의 bounding box 후보를 찾음.
    => 요즘 안쓴다 그냥 그렇다고만 알고 넘어가십숑
    2) 각 bounding box별로 warping을 통해 이미지 크기를 동일하게 만든 후, CNN을 돌려서 feature 값들을 뽑음.
    3) CNN feature로 SVM을 돌려서 classification
    CNN feature를 이용하여 bounding box regression도 같이 진행(linear regression)
    => 사물의 좌표를 찾아내기 위해 regression을 사용

  • 성능(PASCAL VOC 2012 dataset - 20 class detection)
    53.3% mAP

  • R-CNN의 문제점
    Region proposal 마다 CNN을 실행해야해서 오래 걸림(frame 당 13초)
    복잡한 구성(selective search, CNN, SVM)

3. Fast R-CNN

  • Fast R-CNN의 작동
    1) Selective search를 이용해 region proposal을 찾음
    2) 이미지 전체를 CNN에 넣어서 feature map을 얻음
    => CNN의 특징상 위치 데이터가 포함되어 있어 가능
    3) Feature map에서 각 region proposal 에 대응되는 region of interst의 feature를 추출
    4) 각 Rol feature 마다 fc layer를 이용하여 classification과 bbox regression을 수행

  • Fast R-CNN의 장점
    빠른 속도 - frame 당 2.3초
    => 많이 개선되긴 했지만 실시간으로 처리되는 어플리케이션을 만드는데는 한계가 있음
    간소한 구조와 학습 과정
    PASCAL VOC 2012 : 66% mAP

3. Faster R-CNN

  • Fast R-CNN의 수행시간 frame 당 2.3초 중 2초가 selective search
    => ㅋㅋㅋ 뒤에 붙은 인공신경망은 무죄 ㅋㅋ
    => 그래서 selective search를 배제하는데 그걸 가능하게 한 알고리즘이 RPN
  • Faster R-CNN
    1) 이미지 전체를 CNN에 넣어서 feature map을 얻음
    2) Region Proposal Network (RPN)
    K개의 미리 정해 놓은 anchor box 모양을 feature map의 각 index 위치에 대응시킴
    => 후보군을 미리 리스트로 만들어놓고 각 pixel마다 거길 중심으로 하는 k개의 box와 대조/대입을 해봐 각 박스에 물체가 있을지 없을지 classification 결과를 뽑아내고, 또 feature를 봤을 때, 그 anchor box를 어떻게 옮기면 좋을지(그 박스를 이동시켜서 그림 비교해 좌표를 찾는 과정 = bounding box regression)
    이러한 outfut 값을 가지고 비교해 가장 확률이 높은 anchor box를 선택해 Rol feature에 사용함.
    3) 각 Rol feature 마다 fc layer를 이용하여 classification

  • Faster R-CNN의 장점
    End-to-end 모델
    => 인공신경망 알고리즘만을 사용해 해결되는 깔끔하게 해결된다는 뜻 ㅋ
    빠른속도 - 5fps
    => 실시간 수준의 속도
    PASCAL VOC 2012 : 70.4% mAP

4. 다른 대표적인 CNN 기반 object detection기법들

  • SPPNet
    feature map을 서로 다른 크기의 여러 종류의 grid로 자른다는 것.
    => 뭔 소리인지 모르겠음. 시간 될 때, 아래의 유튜브 보기.

    https://www.youtube.com/watch?v=bbKLTeI30vc

  • YOLO
    Faster R-CNN의 두가지 과정을 하나로 섞음
    그래서 속도가 45 fps로 엄청 빨라짐
    대신 성능은 조금 낮음 : 63.4% mAP

현재 yolo V6까지 나온듯

  • SSD
    앞쪽에 있는 low-level feature들도 사용함
    디테일한 것들을 더 잘 잡아낼 수 있음
    PASCAL VOC : 80.0% mAP

profile
긍정적인 에너지를 가진 개발자, 이태성입니다.

0개의 댓글