[P_stage] - week9 Day2

eric9687·2021년 10월 3일
0

[Day2] 2021/09/28

강의 리뷰

Object Det 2강 - Stage Detectors

  • Background

    • 입력-> localization -> classification (2 stages)
  • RCNN: 2000개의 region을 각각 통과, 강제 warping, CNN,SVM classifier, bboc regrssor모두 따로 학습. End to End아님

    1. input images
    2. Extract Region proposal: Sliding window/ Selective Search
    3. Compute CNN features
    4. classify Regions
    • sliding window: window를 이미지에 sliding하여 region을 뽑는다. 무수히 많은 region을 뽑아서 사용하지 않음
    • selective search: 이미지의 색, 질감, 모양들을 통해 작은 영역으로 나누고 점차 통합해나간다.
    • Pipeline
      1) 이미지 입력
      2) Selective Search를 통해 약 2000개의 RoI 추출
      3) RoI의 크기를 조절해 모두 동일한 사이즈로 변형
      : CNN의 마지막인 FC의 입력 사이즈가 고정이므로 이과정 수행
      4) RoI를 CNN에 넣어, feature를 추출
      : 각 region마자 4096-dim feature vector추출
      pretrained AlexNet 구조 활용( 마지막에 FClayer추가, 필요에 따라 fine-tuning)
      5-1) CNN을 통해 나온 feature를 SVM에 넣어 분류 진행
      :Input: 2000 * 4096 features
      Output: class(c+1) + confidence scores, 클래스개수 + 배경여부
      5-2) CNN을 통해 나온 feature를 region을 통해 bounding box를 예측
      : SS의 bounding box를 ground truth box로 미세 조정.
    • Training
      - Domain Specific finetuning
      - Dataset 구성
      : IoU > 0.5 = positive sample else negative sample,한 배치에 P 32, N 96
      - Linear SVM
      : ground truth를 positive,0.3보다 작은 IoU 을 negative,한 배치에 P 32, N 96.Hard negative mining기법 사용.
      - Hard negative mining: 배경으로 식별하기 어려운 샘플들을 강제로 다음배치의 negative sample로 mining하는 방법.
      - Bbox regressor: 0.6이상의 IoU를 positive samples. loss 함수로 MSE.
  • SPPNet: RCNN의 CNN부분과 warping의 단점을 해결


    왼: RCNN, 오: SPPNet

    • Spatial Pyramid Pooling: 다양한 RoI를 고정된 feature vector로 바꾸기 위한 방법
      - Binning사용해서 맞춤
  • Fast RCNN: 따로 학습하는 RCNN의 단점 보완, but not end-to-end.

    • Pipeline
      - Vgg16, 이미지를 CNN을 feature추출(CNN한번만)
      - RoI Prejection을 통해 feature map상에서 RoI를 계산
      : Selective search와 conv를 각각하고 투영시킴
      - RoI pooling을 통해 일정한 크기의 feature추출
      : 고정된 vector를 얻기위한 과정,SPP사용(pyramid level:1, Target size: 7*7)
      - Fully connected layer 이후, softmax classifier와 bbox regressor (클래스개수 c+1,배경)
    • Training
      - multi task loss: classification loss + bbox regression
      - Loss: Cross entropy + smooth L1
      - dataset: 0.5이상을 P, 0.1과 0.5 사이를 negative(25%:75%)
      - Hierarchical sampling
      : 한배치에 서로다은 이미지의 RoI가 포함. 한 배치안에서 연산과 메모리를 공유할 수 있음.
  • Faster R-CNN: Fast R-CNN에 RPN추가.

    • Pipeline
      - 이미지를 CNN에 넣어 feature maps추출
      - RPN을 통해 RoI계산: Anchor box에 객체를 포함하는지 판단(미세조정)
      - Anchor box: 각 셀마다 scale과 비율을 다르게 두고, n개의 anchor를 정의(객체의 크기에 대응)
      - NMS
      - 유사한 RPN proposals 제거
      - class score기준으로 proposals 분류
      - IoU가 0.7이상인 proposals영역은 중복영역으로 간주하여 제거
    • Training
      - RPN단계에서 classification과 regressor gkrtmqdmf dnlgo dodzjqkrtmfmf P/N samples구분
      - 데이터셋: 0.7이상의 IoU 또는 highest IoU with GT를 P, IoU 0.3 이하를 N, 그 이외는 학습데이터로 사용하지않음
      - cross entropy + MSE loss
      - region proposal이후 fast RCNN학습을 위해 P/N(0.5기준)
  • 정리

profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글