JonghoonAn
어제보다 하나 더
JonghoonAn
전체 방문자
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 프로젝트
    • 배운점
    • ML
    • 학교 공부
      • OS
      • 네트워크
      • 시스템 프로그래밍
      • 데이터베이스
      • 소프트웨어 분석 및 설계

블로그 메뉴

  • 홈
  • 알고리즘
  • 배운점
  • 학교 공부
  • 머신러닝

공지사항

인기 글

태그

  • lecture10
  • 인공지능 학습
  • lecture6
  • 합성곱
  • lecture7
  • 인공지능
  • convolutional layer
  • convolutional neural network
  • 전이 학습
  • pooling
  • neural network
  • recurrent network
  • 역전파
  • cs231n
  • 활성화 함수
  • 인공신경망
  • 학습률
  • CNN Architecture
  • activation function
  • Learning rate
  • Transfer learning
  • 가중치 초기화
  • 인공 신경망
  • lecture9
  • CS231
  • convolutional network
  • rnn
  • Backpropagation
  • ConvNets
  • conv

최근 댓글

최근 글

티스토리

JonghoonAn

어제보다 하나 더

FairMOT : On the Fairness of Detection andRe-Identification in Multiple Object Tracking 논문 리뷰
ML

FairMOT : On the Fairness of Detection andRe-Identification in Multiple Object Tracking 논문 리뷰

2021. 9. 1. 17:57

0. 개요

기존 object detection은 detection의 성능은 전반적으로 좋지만, 객체들이 응집되어 있는 프레임들을 갖는 비디오에서는 객체간의 switching이 빈번하게 일어난다고 한다. 이를 해결 하기 위해서 Redetection을 하는데, 기존에는 두가지 방식이 있다.

 

1. two-stage
2. one-stage

기존의 방식들에 대한 특징에 대해서 이야기 해보자면, two-stage는 각 task별로 학습하므로 성능은 괜찮지만, 순차적으로 진행되므로 속도가 느려져서 비디오엔 쓰기 힘들고 one-stage는 공유된 feature를 사용하므로 더 빠른데, 성능이 안나온다고 한다,

 

이 논문은 왜 one-stage방식이 안좋은지 그리고 이 안좋은 성능은 어디서 부터 기인된 것인지에 대해 분석하고, 해결하여 모델을 제시하는 논문이다.

 

1. 기존 one-stage 방식의 문제

1. Unfairness Caused by Anchors

Anchor를 사용하면 proposals의 quality에 너무 의존하므로 re-ID를 너무 간과해버린다. 
// 같은 object, 다른 부분을 가리키는 근처 다수의 anchor들이 같은 identity를 예측하는데 쓰이게 되고, 이는 network training에 모호성을 유발한다 .

실험적으로 anchor 방식을 사용하면 AP가 내려갈 뿐만 아니라, switch가 빈번하게 일어난다고 한다.

해결 방식 : anchor free 방식 중 하나인 center를 쓴다

 

2. Unfairness Caused by Features

object detection은 깊고, 추상적인 feature를 잘 이용하는데 반에, re-ID는 낮은 레벨의 appearance feature를 주로 이용한다고 한다

해결 방식 제안 : multi-layer의 fusion을 사용하여 전반적인 성능을 올릴것이다


3. Unfairness Caused by feature Dimension

lower dimensional feature을 학습하는게 더 좋다더라~ 
 -> 왜? :  high dimension의 re-ID는 좋지만, 두 task가 경쟁하느라 object detection의 accuracy를 해친다.
              trainining data가 작을 때 low dimensional re-ID Feature를 학습시키는게 overfitting을 방지해준다
              low dimensional re-ID를 이용하면 inference time이 더 빠르다

              // 첫번째 이유가 가장 주요할듯

해결 방식 제안 : low-dimensional re-ID Feature를 학습하도록 하자

 

2. 제안


그래서 이 문제들을 해결하는 구조를 제안하고자 한다.

가장 눈 여겨 볼 것은 re-ID branch인데, 이 부분은 각 픽셀의 re-ID feature를 뽑아, 픽셀의 object centered을 characterize하는 부분이다. 
stride도 줄여서 더 high-resolution으로 만든다 -> object centers의 re-ID Features에 대한 allign에 더 좋다더라 (이는 곧 tracking accuracy로 이어짐)


각 branch별로 보자 (두 branch는 대칭적)


1. Detection : object를 detection하는 부분 / 3개의 병렬 head가 붙어진 구조

1. Heatmap head : object center를 추측하는 것 (center mask와 같은 느낌이더라~)
2, 3. Box offset / size head : object의 위치 및 크기를 더 정확하게 추측한다.


2. Re-ID : object간에 구분할 수 있는 feature를 생성하는 branch

각 GT Box에 대해서 Heatmap으로 부터 object center와 re-ID feature인 vector를 추출한다. 그리고 그에 따라서 Loss를 설정한다. object center를 얻을 수 있을것이라고 기대하므로, training시에도 object center에 대한 identity embedding bector만 사용한다.


3. Inference

-------------Detection-------------
1. 예측된 heatmap에서 NMS를 하여 peak keypoints를 추출한다.
2. 가장 높은 점수를 가진 keypoints의 위치를 유지한다.
3. 이 point와 함께 offset과 size를 이용하여 bounding boxes를 구한다.
4. 예측된 object center로 부터 identity embeddings를 추출한다
-------------Association-------------
5-1. 가장 첫 프레임(infernece) : 예측된 box를 바탕으로 후보들의 번호를 초기화 한다.
5-2. 이어지는 프레임(infernece) : Re-ID와 box overlap의 cosine disntance를 통해 찾은 box와 기존의 후보를 연결(link)한다         // 이 과정에서 Kalman filter를 이용하여 후보군이 움직였을 위치를 예측하여, 이용한다.
6. linked distance가 너무 멀다면, 그 값을 무한대로 설정하여 linking과 detection을 방지한다
7. Appearance를 업데이트 한다(appearance variation을 다룬다.)

 

 

4. 실험적 결과

실험적으로 우리가 제안하는게 성능을 높인다더라~ 각 문제를 어떻게 해결했는지 실험적 결과를 바탕으로 증명하는 부분이다.

1. 기존 문제에 대한 해결

1번 문제 (anchor)

anchor based보다 anchor free based가 좋다더라~

 

2번 문제 (feature)

큰 네트워크가 별로 도움이 안되더라~ / 대신 FPN을 쓰는게 훨씬더 영향력이 강하더라 / 대신 Deformable convolution을 쓰면 receptive field가 너무 flxible해져서 안쓰는게 좋다더라
두가지의 task가 충돌하여 성능이 나빠짐도 보였다. 하지만 Multi-layer feature fusion을 사용하면, fusion된 feature를 task가 각자 원하는 부분을 추출하여 사용할 수 있으므로, feature conflict를 해결해준다고 한다.

3번 문제 (dimension)

feature dimension이 detection와 tracking의 벨런스에 중요한 역할을 지녔다고 한다
낮은 dimensional re-ID feature를 학습하는 것이 detction에 덜 해를 가하고, inference speed를 높인다더라
re-ID feature의 dimension을 낮추면 task간의 conflict가 사라져서 그렇다고 추측한다더라

 

2. Box 유사도 요소들

bounding box IoU, re-ID Features, Kalman filter : 발견된 box의 유사도를 계산하기 위한 3가지 요소들
bounding box IoU만 사용할땐 불안정 한데, 함께 쓰면 더 안정적이라고 한다.

 

 

5. 마무리

기존 one-stage 방식의 문제를 분석하고, 이를 해결하고, 증명하는 부분이 꽤나 재미있었다.

이를 이용하여 SOLO모델에 적용해보는 방식을 고안해보자.

저작자표시 비영리 변경금지 (새창열림)

'ML' 카테고리의 다른 글

Vision Transformer 이해 2. 추론 기반 NLP의 발전2(seq2seq, Attention, Transformer)  (0) 2022.01.12
Vision Transformer 이해 2. 추론 기반 NLP의 발전1(word2vec, RNN, LSTM)  (0) 2022.01.12
인공신경망(SOLOv2)의 data pipeline의 구성과 Resized model의 효과  (0) 2021.08.13
SOLOv2 Structured pruning (MMDetection, pytorch structured pruning)  (1) 2021.08.07
Network pruning  (0) 2021.07.27
    'ML' 카테고리의 다른 글
    • Vision Transformer 이해 2. 추론 기반 NLP의 발전2(seq2seq, Attention, Transformer)
    • Vision Transformer 이해 2. 추론 기반 NLP의 발전1(word2vec, RNN, LSTM)
    • 인공신경망(SOLOv2)의 data pipeline의 구성과 Resized model의 효과
    • SOLOv2 Structured pruning (MMDetection, pytorch structured pruning)
    JonghoonAn
    JonghoonAn
    https://github.com/jjong0225 숭실대 소프트
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바