Trajectory Prediction
Module: Computer Vision | Difficulty: Advanced
Social LSTM
Social Pooling
Displacement Error
import torch
import torch.nn as nn
class SocialLSTM(nn.Module):
def __init__(self, input_dim=2, hidden_dim=128, output_dim=2):
super().__init__()
self.lstm = nn.LSTM(input_dim, hidden_dim, batch_first=True)
self.fc = nn.Linear(hidden_dim, output_dim)
def forward(self, obs_seq):
_, (h, c) = self.lstm(obs_seq)
future = []
h_t = h.squeeze(0)
for _ in range(20):
h_t = self.lstm(self.fc(h_t).unsqueeze(1), (h_t.unsqueeze(0), c))[1][0].squeeze(0)
future.append(self.fc(h_t))
return torch.stack(future, dim=1)
Key Takeaways
- Social interactions significantly affect pedestrian trajectories
- LSTM-based models capture temporal dynamics
- ADE and FDE are standard evaluation metrics