Group Study (2024-2025)/Machine Learning 심화

[ML심화] 7주차 스터디

think932 2024. 11. 17. 23:46
논문리뷰 _ YOLOv3 : an incremental improvement

  • 1, 2 stage detector / YOLO
    • YOLO의 motivation
      YOLO는 정확한 성능보다는 real-time application을 위한 빠른 속도의 알고리즘에 초점을 둠
  • 1 stage detector
    region proposal과 object분류 과정이 별도의 네트워크로 분리됨 (2개의 stage로 분리됨)
    detection의 성능은 상대적으로 낮지만 inference 속도가 상대적으로 높음
  • 2 stage detector
    region proposal과 object분류 과정이 별도의 네트워크로 분리되지않음 (1개의 stage로)
    detection의 성능은 상대적으로 높지만 inference 속도가 상대적으로 낮음
주요 내용
  • bounding box prediction
    파란색 표시 : bounding box / 검은색 점선 표시 : anchor box파란색박스의 중점, 가로 세로 값을 구해 최종적으로 파란색박스를 구함!
  • YOLO v2부터는 anchor box라는 prior box를 설정해 최종 bounding box예측에 활용함
  • 정규화를 해주어 bounding box가 1을 벗어나지 않도록 크기를 조정해줌

Loss
  • B-box regression loss

    • 예측한 B-box와 Groundtruth B-box의 오차 제곱을 계산
    • 1이라고 표시된 indicate function → B-box에 대해서만 연산하도록 함
    • ⇒ loss연산과 업데이트를 효율적으로 하기 위함
    • B-box width, height 부분에서 제곱근은 절대적인 값이 커짐으로 오류가 커지게되는 왜곡을 막기위해 사용
    • 람다라는 가중치를 둠으로써 스케일링을 진행 ← 일종의 균형을 맞춰주기위한 balance parameter
  • object confidence loss
    • object 확률값 x iou값 - Groundtruth과의 오차제곱을 계산람다 가중치를 붙여줌 보통 0.5임 → 클래스 불균형 문제를 해소시키기위함(물체보다 배경에 집중되지않게하기위해서)
    • 없어야하는 배경에대해서도 점수를 구해 계산에 포함시킴
  • classification loss클래스별 확률값에 대한 오차 제곱으로 계산

B-box regression loss
object confidence loss
classification loss

과정
  • bounding box prediction (with anchor box)
    anchor box의 크기는 데이터셋 이미지의 object 크기를 clustering하여 계산
    v3에서는 총 9개로 clustering함
    1개의 cell에서 여러개의 anchor box를 통해 개별 cell에서 여러개의 object detection을 진행
  • binary prediction per every class
    logistic classifier를 사용함 (하나로만 가는 softmax classifier를 사용하지 않음)
    binary crss entropy loss를 사용함
  • feature extractor

Darknet-53

  • : YOLO v2의 backbone(Darknet-19)에 residual network 요소를 더함총 53개의 convolution layer를 사용함YOLO v2의 backbone(Darknet-19)보다 높은 성능을 지님
  • SOTA(Resnet 101, Resnet 152) 구조 대비 대등한 성능 및 효율적인 연산
  • bottle neck구조로, short-cut을 도입함
YOLO v3

coco datatset성능을 높일 수 있도록 디자인되어짐
  • input 이미지 → feature map(down sampling) → 19x19 detection → 2배로 사이즈업 → detection → 2배로 사이즈업 → detection
  • ExperimentSSD계열인 DSSD와 유사한 AP성능을 보이면서도, 속도는 3배 빠름RetinaNet을 제외한 다른 모델에 대해서 AP성능이 대부분 높거나, 상단을 이루는 것을 확인

output feature map
  • Objectness score : object일 확률 x IOU 값⇒ Box Co-ordinates x objectness socre x class scores x bounding box 수
  • classs score : 각 class 별 score 값
  • Box Co-ordinates : bounding box의 x, y, w, h 값
  • pascal voc, coco dataset

Experiment
  • IOU 0.5 metric에 대해, 정확도는 유사하면서 추론 속도가 매우 높은 것을 확인
  • APs(: small object에대한 정확도)에 대한 성능이 v2에 비해 약 3배 높아짐
  • 의미
    multi scale(3개)의 feature map output에서 각각 서로 다른 크기의 anchor box로 detection 진행 → 보다 다양한 크기의 object에 대한 detection 성능 향상multi label prediction : softmax가 아닌 logistic classifier로 binary prediction 문제로 치환
    1개의 이미지에 대해서 총 9개의 anchor box를 지니게 됨
    backbone 성능 향상 : Darknet - 53


논문리뷰 _ YOLOv4 : Optimal Speed and Accuracy of Object Detection


  • Backgroud
    이제는 더이상 CV연구를 하지 않겠다고 하심
    joseph redmon, YOLO v1~ YOLO v3, YOLO 9000
Related works
  • object detectionbackbone : pretrained된 모델들을 주로 사용함(darknet53)
  • head : one stage detection / two stage detection 나누는 부분
  • neck : backbone과 head부분을 연결해줌. f eature에대한 아키텍처
  • BoF(bag of freebies) : 효과적이고, 효율적인 학습을 위한 기법들
    Data augmentation, Normalization(batch normalization), Object Function, Regularization method
  • BoS(bag of specials) : 정확도 향상을 위한 추가 모듈 기법 및 후처리 방법
    Enlarging Receptive Field, feature integration, Attention mechanism
  • YOLO v4 모델
    backbone으로 Darknet 53 사용
    큰 해상도 이미지를 다루기위해 더 많은 layer로 큰 receptive field
    CSP(cross stage partial) : CSPNet에서 제안된 방법으로, 보다 더 효율적인 연산을 할 수 있는 아키텍처 구조
    다양한 크기의 물체를 탐지하기위해 더 큰 capacity 모델
    작은 물체를 탐지하기위해 더 큰 해상도 이미지를 사용
  • BoF, BoS
    여러 실험을 진행하였고, 결국에는 초록색으로 표시된 것들을 사용하게 됨
    • Mosaic : 여러가지 이미지를 붙여서 한 장의 이미지로 만드는 방법4장의 이미지를 한장으로 합친것이기에.. batchsize를 4로 한 효과가 존재
    • Modified SAM, PAN
      • Modified SAM : 이미지 → max pooling, average pooling → convultion으로 하나의 이미지로 → sigmoid를 씌워 0~1까지 값을 갖게됨 → 원래 이미지와 곱해줌 (attention 적용)
      ← point 단위로 계산해서 사용하였음
      • Modified PAN : 기존의 feature map을 더한 방식 → feature map을 concat한 방식
    • Cross mini-batch normalizationCmBN : 기존의 batch를 더 작게 batch로 나누어서 적용한 것
  • Backbone : CSPDarknet 53 모델을 사용
  • Neck : SPP, PAN 방법들을 사용
  • Head : YOLOv3와 동일한 것을 사용Methodology

  • backbone에서와 detector에서 각각 사용된 것을 볼 수 있음

mosaic
modified SAM, PAN

 

Experiments
  • classifier training

2가지 모델로 계속해서 실험함
CSPDarknet-53,  CSPResNeXt-50
⇒ CutMix, Mosaic, Label Smoothing, Mish 적용했을때 가장 좋은 성능을 보임

  • detector training
    • Bag-of Freebies
      S, M, IT, GA, OA, GIoU/CIoU를 적용했을때 가장 좋은 성능을 보임
    • Bag-of Specials
      SPP-SAM을 적용했을때 가장 좋은 성능을 보임
    • classifier vs detection
      꼭 classification에서 성능이 좋다고해서 detection에서도 좋은 것은 아님
    • mini-batch
      ResNeX와 다르게 Darknet53에서는 mini-batch를 작게해도 성능은 거의 변동없이 보장됨
  • Conclusion
    YOLOv3를 개선한 더 빠르고, 정확한 모델을 제안한 것 
    Single GPU환경에서 사용가능한 모델



YOLOv3을 개선한 더 빠르고 정확한 모델을 제안한 것

YOLOv3을 개선한 더 빠르고 정확한 모델을 제안한 것

YOLOv3을 개선한 더 빠르고 정확한 모델을 제안한 것

Bag-of Freebies
Bag-of specials
classifier vs detection
mini-batch

 

 


 

 


실습

YOLO v3

 


YOLO v5