human-move-lstm โ€” ์‚ฌ๋žŒ ์ด๋™ ๊ถค์  ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์˜ˆ์ธก๊ธฐ

๊ธ‰์‹ ์กฐ๋ฆฌ๋กœ๋ด‡ ์•ˆ์ „ ์…€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ(robot-kitchen-safety-sim)์—์„œ ์‚ฌ๋žŒ์˜ ๋‹ค์Œ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ์˜ˆ์ธกํ•ด ๋กœ๋ด‡์ด ์„ ์ œ์ ์œผ๋กœ ๊ฐ์†ยท์ •์ง€ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ์˜ˆ์ธก ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

๊ตฌ์กฐ

  • ์ธ์ฝ”๋”: ๊ฒฝ๋Ÿ‰ LSTM (์ž…๋ ฅ 2์ฐจ์› (x, z), ์€๋‹‰ 64)
  • ํ—ค๋“œ: MLP ํ˜ผํ•ฉ ํ—ค๋“œ(MTP, Multiple-Trajectory Prediction) โ†’ K=3๊ฐœ ๋ฏธ๋ž˜ ๋ชจ๋“œ
  • ๊ฐ ๋ชจ๋“œ = ๋ฏธ๋ž˜ ๊ฒฝ๋กœ (PRED=12์Šคํ… ร— (x,z)) + ๋ชจ๋“œ ๊ฐ€์ค‘์น˜ w + ์Šคํ…๋ณ„ ๋ถˆํ™•์‹ค์„ฑ ฯƒ
  • ์ •๊ทœํ™”: ์—์ด์ „ํŠธ ์ค‘์‹ฌ(๋งˆ์ง€๋ง‰ ๊ด€์ธก์„ ์›์ , ์ง„ํ–‰ ๋ฐฉํ–ฅ์„ +x๋กœ ํšŒ์ „) โ†’ ์˜ˆ์ธก ํ›„ ์›์ขŒํ‘œ๋กœ ์—ญ๋ณ€ํ™˜
  • ํ•™์Šต ์†์‹ค: best-of-K ๊ฐ€์šฐ์‹œ์•ˆ NLL + ๋ชจ๋“œ ๋ถ„๋ฅ˜ ๊ต์ฐจ์—”ํŠธ๋กœํ”ผ

์ž…์ถœ๋ ฅ ๊ณ„์•ฝ

  • ์ž…๋ ฅ: ๊ด€์ธก OBS=8์Šคํ…, ๊ฐ (x, z) ์ขŒํ‘œ. ์•ฝ 0.4์ดˆ ๊ฐ„๊ฒฉ ๋ฆฌ์ƒ˜ํ”Œ. ๋‹จ์œ„ = ๋ฏธํ„ฐ(๊ธฐ๋ณธ ์Šค์ผ€์ผ์—์„œ 1 scene-unit = 1 m).
  • ์ถœ๋ ฅ: K=3๊ฐœ ๋ชจ๋“œ ๋ฆฌ์ŠคํŠธ. ๊ฐ { path: [[x,z]ร—12], w, sigma: [ร—12] }. ๊ฐ€์ค‘์น˜ ๋‚ด๋ฆผ์ฐจ์ˆœ.

ํ‰๊ฐ€ ์ง€ํ‘œ

ํ‰๊ฐ€ ์กฐ๊ฑด: val ์Šคํ”Œ๋ฆฟ(seed % 5 == 0), ๊ด€์ธก 8์Šคํ…(3.2s) โ†’ ์˜ˆ์ธก 12์Šคํ…(4.8s), ํ•ฉ์„ฑ ๊ถค์ . ๋ฒ ์ด์Šค๋ผ์ธ(๋“ฑ์†ยท์นผ๋งŒ)๊ณผ ๋™์ผํ•œ val ์œˆ๋„์šฐ์—์„œ ์ธก์ •. ๋‚ฎ์„์ˆ˜๋ก ์ข‹์€ ๊ฐ’ โ†“, ๋†’์„์ˆ˜๋ก ์ข‹์€ ๊ฐ’ โ†‘.

์œ„์น˜ ์˜ค์ฐจ โ€” ADE / FDE (์ „์ฒด val ์œˆ๋„์šฐ 8,646)

์˜ˆ์ธก๊ธฐ ADE(m) โ†“ FDE(m) โ†“
๋“ฑ์† (const-vel) 1.114 2.129
์นผ๋งŒ (Kalman) 1.031 2.069
ํ•™์Šตํ˜• LSTM (์ตœ๋นˆ ๋ชจ๋“œ) 0.748 1.420
ํ•™์Šตํ˜• LSTM (minADE@3) 0.432 0.797
์ฐธ๊ณ : ์Šคํ…Œ์ด์…˜(๋ชฉํ‘œ ์•Ž) 0.694 1.233
  • ADE: 12์Šคํ… ์˜ˆ์ธก ์œ„์น˜์˜ค์ฐจ ํ‰๊ท (m). FDE: 12์Šคํ…์งธ(4.8s ๋’ค) ์ตœ์ข… ์œ„์น˜์˜ค์ฐจ(m).
  • ์ตœ๋นˆ ๋ชจ๋“œ: ๊ฐ€์ค‘์น˜ ์ตœ์ƒ์œ„ ๋‹จ์ผ ๋ชจ๋“œ โ€” ๋‹จ๋ด‰ ๋ฒ ์ด์Šค๋ผ์ธ๊ณผ ์ง์ ‘ ๋น„๊ตํ•˜๋Š” ๋Œ€ํ‘œ๊ฐ’.
  • minADE@3: K=3 ๋ชจ๋“œ ์ค‘ ์ตœ์„  โ€” ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ์ด ์ •๋‹ต ๊ฐˆ๋ž˜๋ฅผ ๋‹ด๋Š”์ง€(์ƒํ•œ).
  • ๋ชฉํ‘œ๋ฅผ ๋ชจ๋ฅด๋Š” ํ•™์Šตํ˜•์ด ๋“ฑ์†ยท์นผ๋งŒ์„ ํฌ๊ฒŒ ์ด๊ธฐ๊ณ , ๋ชฉํ‘œ๋ฅผ ์•„๋Š” ์Šคํ…Œ์ด์…˜์— ๊ทผ์ ‘.

์•ˆ์ „ recall โ€” ์ •์ง€๋ฐ˜๊ฒฝ ์ง„์ž… ์˜ˆ์ธก (R = 3.1 m)

"์ง€๊ธˆ ์ •์ง€๋ฐ˜๊ฒฝ ๋ฐ–์— ์žˆ๋Š” ์‚ฌ๋žŒ์ด 4.8s ์•ˆ์— ๋ฐ˜๊ฒฝ ์•ˆ์œผ๋กœ ์ง„์ž…ํ•˜๋Š”์ง€"๋ฅผ ๋ฏธ๋ฆฌ ๋งžํ˜”๋‚˜. ๋Œ€์ƒ(์ง„์ž… ์ „ ๋ฐ–) val ์œˆ๋„์šฐ 5,086 ยท ์‹ค์ œ ์ง„์ž… 1,199. ์„ ์ œ ์•ˆ์ „์ธต์ด๋ผ recall(๋†“์น˜๋ฉด ์ถฉ๋Œ) ์šฐ์„ .

์˜ˆ์ธก๊ธฐ recall โ†‘ precision โ†‘
๋“ฑ์† (const-vel) 0.164 0.883
์นผ๋งŒ (Kalman) 0.248 0.911
ํ•™์Šตํ˜• LSTM (์ตœ๋นˆ ๋ชจ๋“œ) 0.433 0.707
ํ•™์Šตํ˜• LSTM (์ „ ๋ชจ๋“œ ํ•ฉ์ง‘ํ•ฉ) 0.756 0.442
  • recall: ์‹ค์ œ ์ง„์ž… ์ค‘ ๋ฏธ๋ฆฌ ์žก์€ ๋น„์œจ(๋†“์น˜๋ฉด ์ถฉ๋Œ). precision: ๊ฒฝ๋ณด ์ค‘ ์ง„์งœ ๋น„์œจ(๋‚ฎ์œผ๋ฉด ํ—›์ •์ง€).
  • ๋ฐ˜์‘ํ˜•(์˜ˆ์ธก ์—†์Œ)์€ ์ด ์œˆ๋„์šฐ์—์„œ recall = 0(์ง€๊ธˆ ๋ฐ–์ด๋ผ ์ง„์ž…์„ ๋ชป ๋ด„) โ€” ์˜ˆ์ธก๊ธฐ์˜ ๊ฐ’์–ด์น˜๊ฐ€ ์—ฌ๊ธฐ์„œ ๋“œ๋Ÿฌ๋‚œ๋‹ค.
  • ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ „ ๋ชจ๋“œ ํ•ฉ์ง‘ํ•ฉ์€ ์—ฌ๋Ÿฌ ๊ฐˆ๋ž˜๋ฅผ ๋‹ค ๊ฒฝ๊ณ„ํ•ด recall์ด ๊ฐ€์žฅ ๋†’๋‹ค(ํ—›์ •์ง€๋Š” ๋Š˜์–ด๋‚จ โ†’ ์šด์˜์  ฯ„๋กœ ์กฐ์ ˆ).

์žฌํ˜„: train/eval_traj_baselines.pyยทtrain/train_traj_predictor.py(ADE/FDE), train/eval_traj_safety.py(recall). ์ƒ์„ธ: docs/chanwoo/prediction-eval.md(ADE/FDE), docs/chanwoo/prediction-safety-eval.md(recall).

ํŒŒ์ผ

ํŒŒ์ผ ์šฉ๋„
model.pt PyTorch ๊ฐ€์ค‘์น˜(state_dict). ๋ฐฑ์—”๋“œ ์„œ๋น™์šฉ(๊ถŒ์žฅ).
model.onnx ONNX export. ์ธ๋ธŒ๋ผ์šฐ์ €/ํƒ€ ๋Ÿฐํƒ€์ž„ ์ถ”๋ก ์šฉ(์˜ต์…˜).

์‚ฌ์šฉ

from huggingface_hub import hf_hub_download
from trajectory.learned_predictor import LearnedPredictor   # ๋ฆฌํฌ์˜ trajectory ๋ชจ๋“ˆ

w = hf_hub_download("chanubc/human-move-lstm", "model.pt")
pred = LearnedPredictor(weights_path=w, device="cpu")
modes = pred.predict_modes([[0,0],[0.1,0],[0.2,0],[0.3,0],[0.4,0],[0.5,0],[0.6,0],[0.7,0]])
# โ†’ [{"path": [[x,z]โ€ฆ12], "w": .., "sigma": [โ€ฆ12]}, โ€ฆ 3๊ฐœ]

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐฑ์—”๋“œ(backend/detect_server.py)๋Š” ๋กœ์ปฌ ๊ฐ€์ค‘์น˜๊ฐ€ ์—†์œผ๋ฉด ์ด ์ €์žฅ์†Œ์—์„œ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

์žฌํ˜„

ํ•™์Šตยทexport ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฆฌํฌ์— ์žˆ์Šต๋‹ˆ๋‹ค: train/train_traj_predictor.py, train/export_traj_onnx.py. ์„ค๊ณ„ ๋ฌธ์„œ: docs/chanwoo/specs/2026-08-19-learned-predictor-design.md.

๋ผ์ด์„ ์Šค

MIT. ์‹œ๋ฎฌ๋ ˆ์ด์…˜(ํ•ฉ์„ฑ) ๊ถค์ ์œผ๋กœ ํ•™์Šต๋œ ์—ฐ๊ตฌ/๋ฐ๋ชจ์šฉ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support