[generation][22, 10][129]Guided Conditional Diffusion for Controllable Traffic Simulation

ad_official·2024년 12월 31일
0

-1. 세줄 요약

  • signal temporal logic (STL)을 이용하여 guided sampling을 수행함으로써, 추가 훈련 없이도 복잡한 여러 조건부 규칙들을 수학적으로 쉽게 정의 및 guide 가능하다고 함
  • STL에 대한 깊은 공부가 필요하면 "17 section 2.2: https://arxiv.org/pdf/2008.00097" 을 공부해볼 것
  • 한계점: 조건부 inference시, 중간의 노이즈 데이터에서 가이드 비용을 평가 하므로, 수치적 불안정성을 초래할 수 있습니다.

0. Abstract

  • 본 연구에서 inference 시간에
    • 궤적의 원하는 속성(예: 목표 도달 또는 속도 제한 준수)을 제어할 수 있도록 하면서,
    • 강제된 동역학(enforced dynamics)을 통해
    • 현실성과 물리적 타당성을 유지하는 Controllable Traffic Generation(CTG)을 위한 조건부 확산 모델을 개발
  • 핵심 기술 아이디어는 diffusion 모델링미분 가능한 논리(differentiable logic)의 최근 발전을 활용하여
    • 생성된 궤적이 signal temporal logic (STL)를 사용하여 정의된 규칙을 충족하도록 유도하는 것
  • 우리는 더 나아가 다중 에이전트 설정으로 guidance를 확장하여 -> 충돌 회피와 같은 상호 작용 기반 규칙을 가능하게 합니다.
  • CTG는 다양하고 복합적인 규칙에 대해 nuScenes 데이터셋에서 광범위하게 평가
  • 논문의 한계점
    • inference time이 매우 길다.
    • 조건부 inference시, 중간의 노이즈 데이터에서 가이드 비용을 평가 하므로, 수치적 불안정성을 초래할 수 있습니다.

1. Introduction

  • 확산 모델은 유도(guidance) 를 통해 생성 시간에 제어의 개념을 허용
  • 차량 동역학 고려:
    • 자동차가 실제로 움직이는 방식을 고려하여, 생성된 궤적이 물리 법칙에 맞도록 합니다. (actions을 출력한 후, bicycle model 써서 궤적을 구한다는 뜻)
  • 제어 가능성 확보를 위한 "안내(Guidance)" 활용:
    • Diffuser [15]라는 연구에서는 확산 모델의 각 step에서 "guidance를 사용하여 원하는 결과를 얻도록 합니다.
    • 이 방법은 "미분 가능한 목표"의 기울기(gradient)를 사용하여 네트워크 출력을 조정
    • 하지만, 교통 시뮬레이션에서는 "충돌 회피", "목표 도달", "도로 규칙 준수"와 같은 복잡한 여러 규칙들을 수학적으로 표현하고 적용하는 것이 어렵습니다.
    • 왜냐하면 이러한 규칙들은 시간과 공간, 그리고 여러 차량 간의 상호작용을 모두 고려해야 하기 때문
  • 해결책: Signal Temporal Logic(STL)를 활용한 규칙 정의:
    • STL은 시간과 공간에 대한 제약 조건을 표현하기 위해 만들어진 언어
    • STL을 사용하면 "5초 안에 10미터 앞에 있는 지점에 도달", "항상 다른 차량과 1m 이상 거리를 유지" 와 같은 복잡한 운전 규칙을 쉽게 정의할 수 있습니다.
    • 또한, STL은 규칙이 얼마나 잘 지켜졌는지를 나타내는 "견고성(robustness)" 이라는 값을 제공
  • 규칙 만족도를 활용한 Guidance:
    • 우리는 STL의 "robustness" 값을 확산 모델을 안내하는 데 사용
    • STL을 미분 가능한 형태로 변환해주는 프레임워크 [17], [18]을 사용하여, 안내 과정에 STL을 적용할 수 있습니다.
  • 다중 에이전트 상호작용 고려:
    • 우리 모델은 각 차량의 궤적을 독립적으로 생성하지만, "충돌 금지"와 같이 여러 차량이 관련된 규칙을 고려해야 하는 경우도 있습니다.
    • 이를 위해, 우리는 "joint guidance" (여러 차량의 궤적을 동시에 고려) 방법을 제안

2. related work

Diffusion Modeling

Signal Temporal Logic (STL)

  • STL(Signal Temporal Logic) [16] 은 시간에 따라 변하는 신호(signal)를 분석하고, 그 신호가 특정 규칙을 만족하는지 확인하기 위해 사용하는 언어
  • 신호(signal): 시간에 따라 변하는 값들의 나열입니다. 예를 들어, 자동차의 속도, 위치 등이 신호가 될 수 있습니다.
    • τ=st,...,st+Tτ = s_t, ..., s_{t+T}: t 시점부터 t+T 시점까지의 신호 τ를 나타냅니다.
    • siRns_i ∈ R^n: i 시점에서의 신호 값(상태)을 나타내며, n차원의 실수 벡터입니다. (예: s_ii 시점의 자동차의 위치(x, y 좌표)와 속도를 나타내는 3차원 벡터가 될 수 있습니다.)
  • STL을 사용하여 규칙 표현하기:
    • STL은 간단한 규칙들을 조합하여 복잡한 규칙을 만들 수 있는 문법을 제공합니다. 마치 레고 블록을 조립하듯이, 기본적인 규칙들을 연결하여 원하는 복잡한 규칙을 만들 수 있습니다.
  • φ::=μc¬φφψφU[a,b]ψφ ::= ⊤ | μ_c | ¬φ | φ ∧ ψ | φ U_[a,b] ψ (식 1)
    • | (파이프 문자): 또는(OR)을 의미합니다. 즉, 여러 개 중 하나를 선택할 수 있습니다.
    • ::=::= : 정의하다 를 의미합니다
    • φ,ψφ, ψ: 규칙을 나타냅니다.
  • 기본 규칙 (술어): μ(z) > c 와 같은 형태로 표현됩니다.
    • μ(z): 신호 z에 대한 어떤 계산을 수행하는 함수입니다. (예: z가 자동차의 속도를 나타내는 신호라면, μ(z)는 "현재 속도"를 계산하는 함수가 될 수 있습니다.)
    • c: 어떤 기준 값 (예: 50)
    • μ(z) > c: "현재 속도가 50보다 크다"와 같은 규칙을 표현합니다.
  • 규칙 조합:
    • ¬ (부정): "규칙이 아니다"를 표현합니다. (예: ¬(속도 > 50)는 "속도가 50보다 크지 않다", 즉 "속도가 50 이하이다"를 의미합니다.)
    • ∧ (논리곱/AND): "두 규칙을 모두 만족해야 한다"를 표현합니다. (예: (속도 > 50) ∧ (차간 거리 > 2)는 "속도가 50보다 크고, 차간 거리가 2보다 크다"를 의미합니다.)
    • ∨ (논리합/OR): "두 규칙 중 하나 이상을 만족해야 한다"를 표현합니다.
    • ⇒ (함의/Implication): "만약 A이면, B이다"를 표현합니다. (예: (빨간 불) ⇒ (정지)는 "만약 신호등이 빨간 불이면, 정지해야 한다"를 의미합니다.)
    • U (Until): "A가 만족될 때까지 B가 계속 만족되어야 한다"를 표현합니다. (예: (목표 지점 도달) U (속도 < 10)는 "목표 지점에 도달할 때까지 속도가 10 미만이어야 한다"를 의미합니다.)
    • ♦ (Eventually): "언젠가는 A가 만족되어야 한다"를 표현합니다. (예: ♦(목표 지점 도달)는 "언젠가는 목표 지점에 도달해야 한다"를 의미합니다.)
    • ■ (Always): "항상 A가 만족되어야 한다"를 표현합니다. (예: ■(차간 거리 > 2)는 "항상 차간 거리가 2보다 커야 한다"를 의미합니다.)
  • 규칙 만족 여부 평가: 견고성(Robustness)
    • STL은 신호가 규칙을 얼마나 잘 만족하는지, 혹은 얼마나 위반하는지를 나타내는 "견고성(Robustness)" 이라는 값을 계산할 수 있습니다.
    • 이 견고성 값을 사용하여, 생성된 궤적이 규칙을 얼마나 잘 따르는지 평가할 수 있습니다.
  • CTG 모델과의 연관성:
    • 우리는 이 견고성 공식을 CTG 모델의 "안내 함수(guidance function)"로 사용합니다. 즉, 궤적이 규칙을 더 잘 만족하도록 유도하는 데 사용합니다.
    • 기존 연구 [30]에서는 한 대의 차량에 대한 규칙만 고려하고, 규칙이 학습 과정에서 고정되었지만, 우리는 여러 차량을 고려하고, 추론 시간에 유연하게 규칙을 바꿀 수 있도록 개선했습니다.

TODO: STL 깊은 공부?


3. CONTROLLABLE TRAFFIC GENERATION

C. Guided Generation with Signal Temporal Logic (STL)

  • 위 그림에 적힌 모든 수식과 그림들을 보면서 온전히 이해하려고 노력해야 한다.
  • 아래 pseudo code도 마찬가지!

Conditional guidance Formulation

  • 훈련된 확산 모델에서 현실적인 샘플에 원하는 규칙을 적용하기 위해, 우리는 STL 공식으로 지정된 규칙을 사용하는 반복적 안내 알고리즘을 도입
  • 이진 확률 변수(O):
    • O = 1: 궤적이 규칙을 만족 (최적 궤적)
    • O = 0: 궤적이 규칙을 만족하지 않음
  • p(O=1)=exp(r(τs,τa))p(O=1) = exp(r(τ_s, τ_a)) : 궤적이 최적일 확률은 규칙 만족도(보상) r에 지수 함수(exponential function)를 적용하여 계산
  • r(τs,τa)r(τ_s, τ_a): 궤적의 상태(τ_s)와 행동(τ_a)을 입력받아, 규칙 만족도를 계산하는 함수 (예: STL의 견고성) -> scalar 값 출력
    • 지수 함수 사용 이유: 확률 값을 0과 1 사이로 만들기 위해 사용 (자세한 설명은 생략)
  • 즉, 궤적이 규칙을 더 잘 만족할수록(r 값이 클수록), 그 궤적이 최적일 확률(p(O=1))이 높아집니다.

STL as guidance

  • 결론:
    • STL을 사용하면, 별도의 훈련 없이도 궤적이 규칙을 따르도록 유도할 수 있습니다.
    • STL 공식은 명확하고, 분석적으로 계산 가능하며, 미분 가능하기 때문에 안내 함수로 사용하기에 적합
    • 표 I은 STL을 사용하여 다양한 운전 규칙을 어떻게 표현할 수 있는지 보여주는 예시입니다.
      • 예시: 속도 제한, 목표 속도, 충돌 방지, 도로 이탈 방지, 목적지 도달, stop sign

  • 이전 연구와의 차이점:
    • 이전 연구들 [14, 15]에서는 별도의 "분류기(classifier)" 나 "보상 함수" 를 훈련시켜서, 생성된 궤적이 얼마나 좋은지 평가했습니다.
    • 하지만, 우리는 STL을 사용하여 궤적이 규칙을 얼마나 잘 따르는지 직접 계산하고, 이를 "안내 함수(guidance function)" J로 사용합니다.
  • STL을 사용한 안내 함수의 이점:
    • 규칙의 명확한 정의: STL 공식을 사용하여 원하는 규칙을 명확하게 정의할 수 있습니다.
  • STL 공식 구현:
    • 미분 가능한 프레임워크: 기울기를 계산하려면, STL 공식을 미분 가능한 형태로 변환해야 합니다.
    • 자동 변환: [17]과 같은 연구에서 제안된 미분 가능한 STL 프레임워크를 사용하여, STL 공식을 자동으로 미분 가능한 형태로 변환할 수 있습니다.

4. Experiments

4.0. 실험 결과

실험 결과 1

  • 표 보는 법
    • 5개 실험을 헀고, 각 실험은 하나의 guidance를 주는 것이다.
  • 규칙 준수
    • 속도 / 충돌 / drivable / goal waypoint 도달
  • real (현실성)
    • 논문에서 제시한 평가 방법 별로임
    • 종방향 가속도 / 횡방향 가속도 / 저크 에 대한 히스토그램 그려서, GT와 비교
  • fail
    • 충돌과 도로 이탈이 어느정도 발생했는지
  • 내 생각
    • 각 guidance를 주었을 때, 현실성에서 벗어나는지를 테스트하는건 좋은 것
    • guidance 전부 다 주고, 한꺼번에 평가하는 것도 좋아 보인다.
    • log likelihood로 현실성 평가하기


4.1. Experimental Setup

Datasets

  • Nuscenes dataset
    • 카메라, 초당 12hz로 수집
    • 라이다, 초당 20hz로 pcd 수집
    • annotation: 초당 2hz
  • 평가 시, validation dataset의 기 정의된 scene(특정 장소와 대략 20초 길이의 시간, R대의 차량(기호는 i로 씀)이 등장) 중, 100개를 random sampling하여 평가한다.

Metrics

Controllability (rule)

  • 규칙 기반 violation metrics (위 TABLE 1에 있음)
  • 각 scene마다 metrics가 평가됩니다. 그리고 모든 testing scene에 대해 평균냅니다.

Realism (real)

  • 하나의 scene의 R대 차량에 대해, GT 데이터와 생성 데이터 각각 히스토그램 3개씩, 총 6개 히스토그램을 만듦니다.
  • 히스토그램 3개?
    • 종방향 가속도 / 횡방향 가속도 / 저크를 전 timestep의 각 차량에 대해 구해서, 히스토그램으로 그리는 것입니다.
    • 그리고 각 히스토그램을 normalize 합니다.
  • 그럼 (GT-생성) 히스토그램 pair 3개가 나올텐데, 각 pair마다 Wasserstein distance 를 구합니다.
  • 작을 수록 좋습니다.
  • TODO
    • 이 metric이 realism을 대표하는 metric으로 적절할까...?

Stability (fail)

  • 충돌과 도로 이탈이 어느정도 발생했는지를 측정합니다.
profile
ad_official

0개의 댓글