heawonjeong / SIA_MOT_Project

0 stars 0 forks source link

SIA_MOT_Project

image

Project : Drone 영상 기반 다중 객체 추적

배경

드론 기술의 발전으로 드론들은 다양한 분야에서 사용되고 있으며, 드론이 촬영한 항공 영상은 고해상도와 넓은 시야를 제공합니다. 이러한 드론 영상을 활용하여 다중 객체 추적 기술을 개발하는 것은 중요한 응용 분야 중 하나입니다.

다중객체 추적, MOT(Multiple Object Tracking)은 이미지나 비디오에서 여러 객체(예: 차량, 보행자, 동물 등)의 움직임을 지속적으로 감지하고 추적하는 기술입니다. 이를 통해 도로 교통, 도시 계획, 자율 주행 차량, 보안 시스템, 환경 모니터링 등 다양한 분야에서 활용될 수 있습니다.

이 프로젝트는 교육기관 AIFFEL과 기업 SI Analytics의 기업 연계 프로젝트로 Drone영상(항공영상) 기반 다중 객체 추적을 목표로합니다. 드론으로 촬영한 비디오와 고해상도 이미지들로 이루어져 있는 Visdrone 데이터셋에서 차량과 사람의 위치를 식별하고 객체를 추적하는 것을 목표로 합니다.

SI Analytics

SIA는 인공지능 기술을 통해 지구 관측의 자동화 및 분석의 융합을 이끌고 있습니다. 위성영상으로 지구를 관측하는 플랫폼이라는 방향성을 기반으로 GEOINT Solution을 주도합니다.

인공지능 기반 위성 영상 데이터셋 설계 구축 및 공급, 위성/항공영상 분석 및 인공지는 모델 설계, 지리공간 분석 솔루션 및 플랫폼 공급을 주요 사업으로 두고 있으며 Ovision, LabelEarth 같은 제품 및 서비스를 제공합니다. 위성/항공 영상을 통해 인공지능의 도움을 받아 여러 산업군이 빠르고 유기적으로 연결 될 수 있도록 협업하고 있습니다.

기업 SIA 에서는 위성/항공영상 분석 인공지능 모델 설계, 구축, 공급 및 지구관측 분석 솔루션 및 플랫폼을 제공합니다. Drone 기술의 발전에 따라 Drone 영상 정보를 이용한 관련시장의 성장과 산업이 확대되고 있으며, 연속되는 이미지로부터 관찰되는 Object의 위치를 찾고 추적하는 방법으로 연구가 다중객체 추적 연구가 진행되고 있습니다. 본 프로젝트에서는 기업 SIA와 연계하여 Airial view로 촬영된 드론영상 데이터(VisDrone)를 기반으로 Multiple Object Tracking(MOT)를 진행합니다.

프로젝트 기간

Colleagues

Tools

MMTracking

MMDetection

Datasets

MOT17 데이터셋

MOT19 데이터셋은 MOTChallenge를 위해 개발된 데이터셋으로, MOT를 위한 평가와 벤치마크를 위해 사용되는 데이터셋입니다. MOT19 데이터셋의 annotation 정보는 COCO format으로 되어있는데 이는 bounding box의 좌상단 좌표와 너비와 높이와 더불어, occlusion 여부, truncation 여부 등을 포함하고 있습니다.

COCO Format MOT COCO format은 COCO 형식의 기본 구조를 따르면서도 객체 추적 관련 정보를 추가로 포함하여 다중 객체 추적 문제를 다루는 데 특화된 형식입니다. 이를 통해 알고리즘은 객체의 식별, 이동 및 속성 변화를 정확하게 추적할 수 있는 능력을 평가하고 비교할 수 있습니다.

카테고리 id를 포함해서 bounding box의 위치 및 넓이 등을 포함하고 있습니다.

COCO foramt의 예시는 다음과 같습니다.

{"category_id": 1,
 "bbox": [374.0, 305.0, 33.0, 89.0], "area": 2937.0,
"iscrowd": false,
"visibility": 0.25,
"mot_instance_id": 0, "mot_conf": 1.0, "mot_class_id": 1,
"id": 75814, "image_id": 3515, "instance_id": 0}

Visdrone 데이터

VIsDrone

Visdrone 데이터는 vision 기반 UAV(Unmanned Aerial Vehicle)로 촬영한 비디오 데이터셋으로, 객체 감지와 추적을 위해 만들어진 대규모 데이터셋입니다. 도시, 시골, 공원 등 다양한 장소와 날씨 및 밝기 조건과 더불어 많은 객체가 밀집되어있거나 물체에 가려진 다양한 상황에서 수집되었습니다. 객체는 자동차, 보행자, 자전거와 같은 11개의 다양한 클래스로 분류되고, 260만개 이상의 ground-truth bounding box와 annotation 정보를 포함하고 있습니다. annotatino 정보에는 객체 클래스와 bounding box 위치와 크기 정보 이외에도 occlusion 정도, truncation 유뮤와 같은 중요한 속성도 제공됩니다.

Annotation

데이터 정제

Insight

image

Model 선정

MOT 방식 선정

먼저 객체 감지 모델(Detection model)을 사용하여 각 프레임 이미지에서의 객체를 먼저 detect 한 후 이 정보를 바탕으로 tracking을 진행하는 방식입니다.

TBD는 다른 tracking 방식보다 Detection 정보를 기반하므로, 객체 검출에 있어서의 정확도가 더 높습니다. 따라서 TBD 방식을 사용했을 때 더 높은 정확도를 보장합니다.

1) Object Detection

2) Data Association

3) Tracklet Generation & Update

그리고 저희 프로젝트에서는 car, pedestrian, van, truck, bus 총 5개의 class에 대한 검출을 시행합니다. 이렇게 여러가지 클래스를 감지할 때 TBD 방식이 더 효과적으로 작동합니다.

또한 TBD 방식을 사용하며 이제까지 개발된 다양한 Detector 모델과 Tracker 모델을 유연하게 결합하여 사용할 수 있습니다.

마지막으로 TBD는 빠른 프레임 속도로 객체를 추적하는데 효과적이므로, 실시간 객체 추적에 용이합니다.

detector는 1-stage model과 2-stage model로 나눌 수 있습니다. 2-stage detector는 region proposal과 classification이 순차적으로 이루어집니다. 즉, Localization과 Classification 이 순차적으로 이루어집니다. 이와 다르게 1-stage 모델은 위 두 과정이 동시에 이루어집니다. 2-stage model은 더 높은 정확도를 보이지만, 1-stage model보다 더 시간이 오래 걸립니다. 저희는 좀 더 나은 FPS 성능을 얻어내기 위해 1-stage detector를 선정하였습니다.

  1. RetinaNet

image 데이터의 각 프레임 내에 Object 가 있는 영역인지 아닌지에 따라(IoU Threshold) positive/negative sample로 구분합니다. 일반적으로 이미지 내의 어려운 양성 샘플(객체영역)보다 쉬운(배경영역)이 압도적으로 많으므로 class imbalance 문제가 발생합니다. Retinanet에서는 새로운 loss function인 focal loss 를 제시하여 class imbalance 문제를 해결하여 모델의 정확도를 높입니다.

image

  1. YOLOX

YOLOX는 Dynamic Convolution과 PANet 등의 최신 기술을 도입하여 객체 감지에 유리한 특성을 가지고 있습니다. 또한 모델의 변형과 확장이 용이하며, 최적화된 네트워크 구조와 알고리즘을 사용하여 학습과 추론 속도를 가지므로 빠른 훈련과 실시간 객체 감지에 적합합니다.

image

YOLOX의 핵심은 다음 구조로 설명할 수 있습니다.

우선 model을 선정한 이유는 다음과 같습니다.

  1. 짧은 기간과 한정적 실험 등으로 최대한 여러 시도들을 해보고자 mmtracking 내 지원하는 model들 중 적합한 one-stage model이며 속도와 성능 모두 가지고 있는 모델입니다.
  2. Mixup과 Mosaic 강력한 Augmentation을 적용하여 높은 성능을 보여줍니다. 이를 통해 다음과 같은 Augmentation이 model 성능에 있어 어떤 영향을 미치는지 보고자 하였습니다.

실험

  1. Augmentation
    • MixUp

MixUp의 아이디어는 두 개의 다른 이미지를 섞어서 새로운 이미지 데이터를 생성하고, 이를 훈련 데이터로 사용하는 것입니다. 간단하게 말하면, 이미지 데이터의 픽셀 값을 선형적으로 결합하여 새로운 이미지를 생성하고, 그에 해당하는 라벨을 선형적으로 결합하여 새로운 라벨을 생성하는 것입니다.

두개의 기존 이미지의 가중 선형 보간을 통해 새로운 이미지를 생성. 손상된 레이블의 암기를 줄이고, 네트워크에 훈련을 안정화합니다.

서로 다른 4개의 이미지를 crop하여 하나로 결합하여 새로운 이미지 데이터를 생성하여 훈련데이터로 사용합니다. 일상적인 맥락 밖의 물체 감지를 향상시킵니다.

  1. Truncation

Settings

구분 기본 Settings
Class 5 Classes(Pedestrian, Car, Van, Truck, Bus)
Image Scale YOLOX: (1920, 1080), RetinaNet: (1080, 1080)
Epoch 2
Batch Size YOLOX: 1, 4, RetinaNet: 16, 32
Optimizer SGD, momentum=0.9, weight decay=0.0001
Learning Rate 0.02
Schedule Linear step
Gradient Clipping RetinaNet, max norm=35 ,norm type=2
Augmentation Resize, RandomFlip, Pad
Metric HOTA(DetA, AssA)
Checkpoint COCO pretrained

결과

기본 Mixup Mosaic Truncation HOTA DetA AssA
RetinaNet_No_Aug O X X O 0.3491 0.2521 0.488
RetinaNet_MixUp O O X O 0.3494 0.256 0.4823
RetinaNet_Mosaic O X O O 0.3094 0.2388 0.413
RetinaNet_MixUp+Mosaic O O O O 0.333 0.2521 0.4479
RetinaNet_No_trunc_No_Aug O X X X 0.3311 0.2331 0.4756
RetinaNet_No_trunc_MixUp O O X X - - -
RetinaNet_No_trunc_Mosaic O X O X - - -
RetinaNet_No_trunc_MixUp+Mosaic O O O X 0.3219 0.2367 0.4455
YOLOX_No_Aug O X X O - - -
YOLOX_MixUp O O X O 0.2012 0.1385 0.3774
YOLOX_Mosaic O X O O 0.205 0.1431 0.4186
YOLOX_MixUp+Mosaic O O O O 0.2112 0.1411 0.45
YOLOX_No_trunc_No_Aug O X X X 0.1453 0.1119 0.1928
YOLOX_No_trunc_MixUp O O X X 0.2032 0.1427 0.4435
YOLOX_No_trunc_Mosaic O X O X 0.1862 0.13 0.342
YOLOX_No_trunc_MixUp+Mosaic O O O X 0.1473 0.1246 0.2868

image

회색 점선은 HOTA, 파란 숫자는 HOTA기준 등수 입니다.

  1. Augmentation
  1. Truncation

Development