(Real-Time Pedestrian Crossing Intention Prediction System Based on Multi-Camera Fusion and Skeletal Features)
本專案旨在開發一套即時行人穿越意圖預測系統,透過影像資訊在行人實際進入車道前預測其穿越意圖,以提升駕駛對潛在危險的感知能力並改善交通安全。本系統針對邊緣運算裝置進行最佳化,整合多鏡頭影像拼接、YOLO 骨架特徵擷取與道路環境特徵,並輸入雙流時序模型判斷行人動態。
pedestrian-intention-predictor/
├── config.py # 專案設定檔 (包含模型分類、儲存路徑與 UI 顯示參數等)
├── get_features.py # 統整各種特徵 (骨架、道路環境) 擷取的腳本
├── main.py # 主程式入口,整合即時影像拼接、特徵擷取與意圖預測
├── model.py # Two-stream GRU 與其他 CNN/時序模型架構定義
├── multicam.py # 多鏡頭拼接模組 (包含 ORB 特徵匹配與 RANSAC)
├── preprocess.py # 特徵前處理 (Kalman Filter 預測、資料對齊與補缺)
├── road_edge.py # 道路邊緣/斑馬線環境特徵處理 (結合 YOLO-obb)
├── train.py # 模型訓練與微調 (Fine-tuning) 腳本
├── visual_feature.py # 影像視覺特徵與 YOLO-pose 骨架處理
├── utils/ # 系統核心與輔助工具模組
│ ├── jaad.py, pie.py # JAAD 與 PIE 等公開資料集的處理與讀取工具
│ ├── stereo/ # 雙鏡頭處理相關工具 (校正、距離定位、追蹤與視覺化)
│ ├── train/ # 訓練擴充模組 (如 crosswalk.py 斑馬線訓練)
│ ├── util_finetune/ # 遷移學習工具 (自建資料集轉換與微調腳本)
│ └── util_stitch/ # 雙鏡頭拼接測試、效能評估與成果影片生成腳本
├── README.md
├── LICENSE
└──.gitignore
本專案使用 uv 進行套件管理,相依套件定義於 pyproject.toml。
uv init
uv sync
uv sync --extra cuda # install cuda if you need 指令介紹
uv run main.py [模型種類] [任務參數]模型種類與任務參數選擇:
# 模型種類
-gru
-lstm
-twostreamGRU
-twostreamTCN
-transformer
-threestream / -humanvisgru / -proposed / -proposed_noglobal
# 任務參數
-single
-multi執行範例
# 模型使用 twostreamGRU,並且是多任務模型
uv run main.py -twostreamGRU -multi
# 模型使用 transformer,並且是單任務模型
uv run main.py -transformer -single本系統開發流程分為三大階段:多鏡頭影像融合與資料預處理、特徵提取與前處理、意圖預測模型。
本研究首先使用單鏡頭資料集再 PIE 資料集上進行行人過馬路意圖預測實驗,分別比較 GRU、LSTM、Two-stream GRU、Two-stream TCN 與 Transformer 等模型,並針對單任務與多任務模型進行比對測試。實驗結果如下圖所示。
由於實際道路環境所使用之攝影機、拍攝視角及道路場景與 PIE 資料集存在差異,直接使用以 PIE 資料集訓練之模型進行實際道路影像預測時,模型表現不佳。因此本研究建立實際道路資料,並使用該資料對行人過馬路意圖預測模型進行微調。實際道路資料由本研究自行進行影像錄製,並針對影像中的行人過馬路意圖進行人工標註,再將所建立之資料作為模型微調資料,以使模型能夠進一步適應本研究實際使用之道路環境。微調前後之模型預測結果表現如下表所示。
| Accuracy | Recall | Precision | F1 Score | |
|---|---|---|---|---|
| 模型微調前 | 65.57% | 31.33% | 55.48% | 40.05% |
| 模型微調後 | 80.04% | 74.40% | 77.64% | 75.98% |
最佳化前,YOLO26-pose 與 YOLO26-obb 採序列方式執行,分別需要約 34.37 ms 與 34.52 ms。若兩個模型依序執行,單張影像之總推論時間約為 68.90 ms。為降低模型推論所需時間,本研究進行影像前處理最佳化,並 YOLO26-pose 與 YOLO26-obb 改為平行執行,使兩個模型能夠同時進行推論。最佳化後,兩個 YOLO 模型之整體推論時間降低至約 27.17 ms,如下表所示。
| Models | Parallel | Preprocess | YOLO26-pose | YOLO26-obb | Total |
|---|---|---|---|---|---|
| PyTorch | No | No | 34.37 ms | 34.52 ms | 68.90 ms |
| PyTorch | No | Yes | 33.21 ms | 33.47 ms | 66.89 ms |
| PyTorch | Yes | Yes | 45.59 ms | 44.80 ms | 47.16 ms |
| TensorRT-INT8 | Yes | Yes | 24.67 ms | 21.42 ms | 27.17 ms |
PIE Dataset repository: aras62/PIE
Jian-Kai Lai、Shao-Lun Kao、Cheng-Yen Lee
B.S. in Computer Science and Engineering, National Sun Yat-sen University (NSYSU)



