자율주행

Day 65: 보행자 행동 예측 모델 구현

Tech Knowledge Note 2025. 10. 31. 21:00
반응형

🚶 1. 보행자 행동 예측이란 무엇인가?
자율주행차의 핵심 과제 중 하나는 단순히 “사람을 인식”하는 것을 넘어,
보행자가 앞으로 어떤 행동을 할지를 예측하는 것이다.
예를 들어,

  • 보행자가 도로에 진입할 것인지,
  • 멈춰 설 것인지,
  • 혹은 갑자기 뛰어들 가능성이 있는지 등을 미리 판단하는 것이다.

이러한 예측이 가능해야, 차량은 사전에 감속하거나 회피 기동을 수행할 수 있다.
따라서 보행자 행동 예측 모델(Pedestrian Behavior Prediction Model)
자율주행 시스템의 안전성과 반응성을 결정하는 핵심 요소다.

보행자 행동 예측 모델 구현


🧠 2. 예측 모델의 핵심 아이디어
보행자의 행동은 단일 이미지로 판단하기 어렵다.
시간에 따라 변화하는 연속된 동작(Sequence) 을 분석해야 하며,
따라서 시계열 기반 딥러닝 모델이 필요하다.

바로 여기에 LSTM(Long Short-Term Memory) 모델이 사용된다.
LSTM은 과거의 프레임 정보를 기억해 현재 행동과 연관 지어
“다음 순간의 움직임”을 예측할 수 있다.

💡 핵심 포인트

  • CNN → 이미지에서 특징 추출
  • LSTM → 시간적 변화 학습
  • CNN + LSTM 결합 → 영상 기반 행동 예측

📹 3. 데이터 준비: 보행자 행동 영상
모델을 학습시키기 위해서는 연속된 프레임(동영상 데이터) 이 필요하다.
대표적인 공개 데이터셋은 다음과 같다.

  • JAAD Dataset (Joint Attention in Autonomous Driving)
    : 실제 도심 환경에서 보행자의 시선, 속도, 방향이 포함된 영상
  • PIE Dataset (Pedestrian Intention Estimation)
    : 보행자의 ‘의도(intention)’를 예측하기 위한 데이터셋

📦 데이터 구성 예시:

  • Input: 10프레임의 보행자 영상 (CNN 입력)
  • Output: “도로 진입”, “정지”, “도로 밖 이동” 등 3가지 클래스

⚙️ 4. 모델 설계 개요 (CNN + LSTM 결합 구조)

1️⃣ CNN 블록 (Feature Extractor)

  • 각 프레임에서 이미지 특징(feature) 추출
  • 예: ResNet50, MobileNet, VGG16 등 사전학습 모델 사용

2️⃣ LSTM 블록 (Temporal Analyzer)

  • CNN이 추출한 특징 벡터를 시간 순서대로 입력
  • 보행자의 움직임 패턴을 분석

3️⃣ Dense Layer (Classifier)

  • LSTM 출력 결과를 바탕으로 행동 클래스를 예측

📘 5. 구현 예시 (개념 코드)

 
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import TimeDistributed, LSTM, Dense, Conv2D, MaxPooling2D, Flatten from tensorflow.keras.applications import MobileNetV2 # CNN 기반 특징 추출기 cnn_base = MobileNetV2(weights='imagenet', include_top=False, pooling='avg') # 모델 구조 model = Sequential([ TimeDistributed(cnn_base, input_shape=(10, 224, 224, 3)), # 10프레임 입력 LSTM(128, return_sequences=False), Dense(64, activation='relu'), Dense(3, activation='softmax') # 3가지 행동 클래스 ]) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.summary()

📍 요약:

  • CNN이 영상의 각 프레임에서 공간적 특징을 추출
  • LSTM이 프레임 간 시간적 변화를 학습
  • 결과적으로 보행자의 다음 행동을 예측

📈 6. 학습과 평가
모델 학습 시 주의할 점은 데이터 다양성 확보다.

  • 다양한 날씨, 조명, 보행자 속도, 옷 색상 등이 반영되어야 함
  • 데이터 증강(Data Augmentation)을 적용하면 일반화 성능 향상

평가 지표로는 다음을 사용한다.

  • Accuracy (정확도)
  • Precision, Recall (안전 관련 상황에서는 특히 중요)
  • F1-score

🚗 7. 자율주행에서의 적용 시나리오
예를 들어, 다음과 같은 상황을 상상해보자.

상황 예측 행동 차량 반응
보행자가 도로 가장자리에서 멈춤 정지 차량 유지
보행자가 도로 방향으로 속도를 높임 진입 차량 감속
보행자가 스마트폰을 보며 이동 예측 불확실 주의 강화

이처럼 모델은 단순히 인식이 아니라,
예측 기반 안전 주행”을 가능하게 한다.


🔍 8. 고도화 방향

  • Attention Mechanism 도입: 프레임 중 중요한 부분에 집중
  • Transformer 기반 시퀀스 모델 적용
  • 멀티모달 학습: 영상 + 속도 + 위치 정보 통합

이러한 접근을 통해 예측 정확도를 90% 이상까지 높일 수 있다.


9. 마무리 정리
오늘은 CNN과 LSTM을 결합하여
보행자의 행동을 예측하는 인공지능 모델을 구현해보았다.

이 기술은 자율주행 시스템의 판단력과 안전성을 강화하며,
AI가 “지각 → 판단 → 예측”하는 완전한 인지 구조를 구축하는 핵심이다.

다음 글에서는 영상 객체 탐지의 대표 모델인 YOLO v3 구조를 학습하며,
AI가 “무엇이 어디 있는지”를 빠르게 찾아내는 기술을 살펴보자.

반응형

📅 다음 글 예고:
👉 [Day 66: YOLO v3 구조 학습]
“AI의 눈, YOLO v3 — 실시간 객체 탐지의 핵심 원리를 이해하자!”

반응형