Leveraging Stereo-Camera Data for Real-Time Dynamic Obstacle Detection and Tracking

About_work·2024년 1월 29일
0

1. Abstract

  • 실세계에서 동작할 수 있도록, 계산량을 고려한 알고리즘임.
    • 하지만, 우리는 서버에서 돌릴 수 있음
  • 스테레오 카메라로부터 생성된 point cloud data를 이용하여
    • dynamic object에 대한 detection과 tracking + 속도 추정
  • 물체를 static과 dynamic으로 구분
    • dynamic object는 사람 or 사람 아님 으로 구분
  • 평가 metric에 대해서는, 아래 본문 글에 자세히 적혀있습니다.
    • dynamic classification에 적합한 정량적 평가 metric을 발견
      • MOTP: 0.07 +- 0.07m
      • MOTA: 85.3%
    • static classification에 적합한 정량적 평가 metric
      • precision: 96.9%


2. 실세계에서 Ground Truth data 어떻게 만들어?

  • 테스트 공간 먼저 정하고, 3D Lidar가 달린 로봇이 공간을 스캔함
    • 3D LIDAR와 ICP-based 알고리즘으로, -> static environment D_1 생성
  • 그후, 같은 환경에 여러 로봇과 사람을 투입시킨 후, 3D Lidar가 달린 로봇이 공간을 스캔하여 D_2를 만듦
  • D_2 - D_1 = dynamic obstacle (동적, 정적 라벨링 끝!)

3. 본론

3.1. Pointcloud Clustering

  • pointcloud를 DBSCAN을 통해 clustering.

3.1.1. 2D people detector 을 이용한 human cluster detection

  • camera 기반 human bounding box를 이용해, clustering 결과를 강화
  • B.B 에 있는 픽셀들 중, 가장 많이 속한 cluster을 사람으로 가정
    • 그 외에도, 26, 27, 46, 49 의 방법이 있다고 함.
  • 디테일
    • human bounding box는 2개인데, cluster은 1개면, cluster을 2개로 나눕니다.
    • cluster 중, human bounding box에 포함되는 pointcloud의 비율이 기준 이하면, 그 cluster은 사람으로 분류하지 않습니다.

3.2. 3D tracking

  • cluster의 중심점을 기준으로, 거리 기반으로 tracking 함
    • 예: 0.15초 간격으로, 6frame간 관찰
  • 안쓸 것임

3.3. Dynamic and Static Classification

  • cluster의 pointcloud 의 특정 비율 이상이 dynamic 으로 분류되면 -> 해당 cluster은 dynamic으로 분류
  • t초동안, class가 왓다갔다 하면, uncertain class로 분류
  • dynamic으로 분류된 cluster은 개별 object로 간주됨

3.3.1. Voting of an individual point

  • 사람은 위에서 분류 완료했고, 사람이 아닌 물체들 중, dynamic & static obstacle cluster을 분류하는 알고리즘 소개
  • 아이디어 소개
    • sensor noise와 localization noise 보다 더 큰 범위로 움직인 pointcloud는 동적 장애물일 것이다.
  • 디테일한 알고리즘 설명
    • (현재 filtered point cloud h_s 에서), 특정 cluster의 각 point ~ 과거 t초 전의 dense/non-filtered point clouds 중, 가장 가까운 거리 = (d^k) 계산
    • if v = d^k/t < threshold : 정적 point
    • t초를 정하는 기준: noise 변동 폭보다 멀리 갈 수 있는 거리
      • 예:
        • vl noise + 센서 noise = 50cm
        • 동적장애물이 50cm보다 더 멀리 이동하려면 최소 몇 초가 필요한가?
    • 이 방법의 한계
      • 동적 장애물도 잠시 가만히 정지해 있을수 있다.

3.3.2. Excluding points from voting

  • t초 간, FOV가 겹치는 영역만 dynamic or static으로 분류 가능함.
  • 아래 사진에서, 왼쪽의 경우 제외, 오른쪽의 경우 포함

4. dynamic obstacle의 classification과 tracking에 대한, 평가 Metric

  • Object detection 분야에서 사용되는 평가 지표인 MOTP와 MOTA는 주로 다중 객체 추적(Multi-Object Tracking, MOT)에서 사용
  • MOTP와 MOTA는 서로 보완적인 지표로 사용
    • MOTP는 위치 정확도에 초점
    • MOTA는 추적의 전반적인 정확도와 신뢰성을 평가

4.1. MOTP (Multiple Object Tracking Precision)

  • 정의:
    • MOTP: 동적이라고 예측한 객체들을, 얼마나 정확하게 예측했는가?
    • 의미:
      • precision이라는 이름답게, 동적 객체 예측을 정밀하게 잘 했는지를 측정
      • 동적 객체 예측에 몇개 실패해도, MOTP는 매우 좋게 나올 수 있음!
  • 계산 방법
    • 낮은 MOTP 값은 높은 위치 정확도를 의미
    • 분자: 동적이라고 예측했는데, 실제로 동적인 객체와 실제 동적 객체와의 거리 (낮을 수록 좋다)
    • 분모: 동적이라고 예측했는데, 실제로 동적인 객체의 갯수 (많을 수록 좋다)
    • MOTP는 bounding box 객체 인식 분야에서는, IoU를 기반으로 계산하지만, 우리는 Pointcloud 레벨에서 정량적 평가를 하기 때문에, 거리로 MOTP를 측정합니다.

4.1.1. 논문에서

  • dynamic obejct 에측
  • 정확하게 매칭된 객체 쌍의 기준을 0.4m로 가정했음.
  • 논문 결과는, 평균 7cm의 MOTP가 나왔다고 함 (7cm 오차범위 내)

4.2. MOTA (Multiple Object Tracking Accuracy)

  • 정의
    • MOTA는 추적 시스템의 전반적인 정확도를 측정
    • FP: 동적객체가 아닌데, 동적객체라고 예측
    • FN: 동적객체인데, 동적객체가 아니라고 예측
    • GT: 사람의 총 수
  • 계산 방법:
    • MOTA는 0에서 1 사이의 값을 가질 수 있으며, 높은 값은 더 좋은 추적 성능을 의미
    • 위 식을 파혜쳐보면,
      • 동적객체가 아닌데, 동적객체라고 예측하는 경우가 적을수록 좋으며,
      • 동적객체인데, 동적객체가 아니라고 예측하는 경우가 적을수록 좋으며,
      • ID switch 가 적을수록 좋습니다.

4.2.1. 논문에서

  • 85.3% 로 나옴
  • 100명의 동적객체를 맞춰야 할 때, 15번 틀렸다는 뜻
    • FP: 3% -> 3명의 정적객체를, 동적객체라고 잘못 예측
    • FN: 8.3% -> 8마리의 동적객체를, 정적객체라고 잘못 예측

4.3 static obstacle classification, 평가 metric

  • 논문에서는, (static obstacle의) LiDAR clouddepth camera cloud 끼리 비교했음.
    • 논문에서는 (static obstacle의) LiDAR cloud 데이터를 Ground Truth 정답 데이터로 가정했고
    • 논문에서는 depth camera cloud 로 정적/동적을 구분하는 것을 목표로 했기 때문임
  • 가장 가까운 점과의 거리가 0.4m 이내이면, classification 성공이라고 봤음
  • classification 성공률: 96.9%
profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글