티스토리 뷰
[Object Tracking Robot]Study 내용 정리 (2) - DeepSORT
무엇보다_빛나는_샤트 2022. 2. 20. 14:382021.5.13 00:14
안녕하세요
프로그래밍을 배우는 빛나는 샤트입니다.
자율주행 프로젝트 We-Go
진행하면서 공부한 내용들을 간략히 정리한 글입니다.
1. 주제: DeepSORT 이해하기
2. 링크 모음
2-1. 링크1(DeepSORT 간략한 설명): https://haandol.github.io/2020/02/27/deep-sort-with-mxnet-yolo3.html#fn:3
2-2. 링크2(DeepSORT 설명, Feature Extractor 설명): https://nanonets.com/blog/object-tracking-deepsort/#deep-sort
2-3. 링크3(DeepSORT + YOLOv4): https://ropiens.tistory.com/58?category=905975
2-4. 링크4(SORT) : https://deep-eye.tistory.com/68
2-5. 링크5(DeepSORT의 어색한 번역본): ichi.pro/ko/tensorflow-2eseo-deepsortleul-sayonghan-gaegche-chujeog-259490015275855
3. 내용 정리
- 이 글은 객체 추적(Object Track) 기술에서 많이 사용되는 DeepSORT 기법에 관한 내용이다.
- 총 4가지에 대한 간략한 설명을 할 예정이다.
1) SORT
2) Kalman Filter
3) Hungraian Algorithm
4) Feature Vector
위 4가지 용어에 대한 관계를 나타내면 아래와 같이 쓸 수 있다.
DeepSORT = SORT + Deeplearning = (Kalman Filter + Hungraian Algorithm) + Feature Vector
즉, SORT = Kalman Filter + Hungraian Algorithm이며 SORT에 딥러닝 Feature vector을 더한 것이 DeepSORT이다.
그럼 각각 어떤 의미를 가지는 지 알아보자.
*Kalman Filter
- 간단하게 말하면 이전 프레임(시점)의 bbox(detect된 객체의 경계box)의 정보를 이용해 현재 프레임의 객체의 위치를 예측하는 것.
- 칼만 필터를 거치고 나온 정보(예측값)를 이용해 IOU distance를 구할 수 있고, 이를 헝가리안 알고리즘으로 보내 객체 정보를 업데이트할 수 있다.
--> 많은 연산을 필요로 한다.
*Hungraian Algorithm
- 칼만필터에서 예측한 위치값과 실제 위치값의 IOU distance를 이용해 객체 정보를 업데이트.
- 알고리즘에 대해 deep하게 공부하는 것은 나중으로...(컨셉만 이해하고 넘어가자)
- 관련 링크: gazelle-and-cs.tistory.com/29
아래 그림을 보면 Object Tracking을 수행하는 SORT 기법이 어떻게 작동되는지 알 수 있다.
1. 이전 프레임에서 객체를 가져와서(Detector), Kalman filter을 거쳐 예측값을 알아내고,
2. 현재 프레임에서 객체를 가져와서(Detector), 1에서 구한 예측값과의 IOU distance를 구해
3. 헝가리안 알고리즘을 통해 Tracking 실행
*Feature Vector
SORT에는 칼만 필터, 헝가리안 알고리즘 등으로 객체 추적이 충분히 잘 될것이라 생각되는데 딥러닝이 필요할까?
현실 문제(Occlusions와 같이 객체가 가려지는 현상 등)에서 어려움을 많이 겪는다.
이를 해결하기 위해 Deep SORT의 저자들은 객체의 appearance에 기초한 새로운 distance metric를 제안.
The apperance feature vector
1. 아이디어: 꽤 간단함. 벡터를 얻는 것. 어떤 벡터? 주어진 이미지에 대한 전체 특징(features)를 묘사할 수 있는 벡터.
즉, '주어진 이미지에 대한 전체 특징을 묘사할 수 있는 벡터를 얻어보자'라는 아이디어에서 출발.
2. 방법
1) 데이터셋에 맞게 분류기 설계
2) 좋은 정확도가 나올 때까지 훈련
3) 마지막 분류 레이어 제거
4) single feature vector을 생산하기 위해 dense layer를 남긴다.
--> 마지막 dense layer에 의해 생성된 feature vector은 "객체의 appearance descriptor"이 된다.
appearance descriptor 객체 외관을 잘 설명(묘사, 대표)할 수 있다는 의미로 생각.
DeepSORT를 이용하면 SORT에서의 단점(Occlusion, id switch등과 같이 실제 환경에서 발생하는 다양한 돌발 상황)이 개선되었다. 또한 DeepSORT를 크게 2갈래로 보면 Detector, Tracker인데 Detector에 YOLO를 많이 사용하고 있는 모습이다.
Detector의 성능이 중요하다고 한다.
'자율주행 로봇 > Object Tracking Robot' 카테고리의 다른 글
[Object Tracking Robot]Study 내용 정리 (3) - YOLOv4 tiny (0) | 2022.02.20 |
---|---|
[Object Tracking Robot]2장 2주차 후기 (0) | 2022.02.20 |
[Object Tracking Robot]1장 1주차 후기 (0) | 2022.02.20 |
[Object Tracking Robot]Study 내용 정리 (1) - SOT, MOT (0) | 2022.02.20 |
[Object Tracking Robot]0장 애자일(Agile) 기법 (feat. waterfall 기법) (0) | 2022.02.20 |
- Total
- Today
- Yesterday
- Slam
- 광주인공지능사관학교
- 실내자율주행
- 해커톤
- 서빙로봇
- 모두의연구소
- 인공지능교육
- 인공지능 교육
- 아이펠
- 광주
- SLAM강의
- 도전
- 광주AI
- 자율주행기술
- 대전 인공지능
- AIFFEL후기
- AIFFEL인공지능과정
- Python
- 멋쟁이사자처럼
- 자율주행로봇
- 모두의 연구소
- 인공지능
- 양정연SLAM
- ros
- AIFFEL
- 멘탈관리
- AIFFEL교육
- SLAM공부
- 배달로봇
- IT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |