Skip to content

About

基於多鏡頭融合、人體骨架與道路環境特徵的即時行人過馬路意圖預測系統,支援 Jetson Orin Nano Super。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

基於多鏡頭融合與骨架特徵之即時行人過馬路意圖預測系統

(Real-Time Pedestrian Crossing Intention Prediction System Based on Multi-Camera Fusion and Skeletal Features)

Ultralytics OpenCV PyTorch scikit-learn TensorFlow TensorRT

Intrduction

本專案旨在開發一套即時行人穿越意圖預測系統,透過影像資訊在行人實際進入車道前預測其穿越意圖,以提升駕駛對潛在危險的感知能力並改善交通安全。本系統針對邊緣運算裝置進行最佳化,整合多鏡頭影像拼接、YOLO 骨架特徵擷取與道路環境特徵,並輸入雙流時序模型判斷行人動態。

Project structure

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              

How to use

本專案使用 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

System Architecture

本系統開發流程分為三大階段:多鏡頭影像融合與資料預處理、特徵提取與前處理、意圖預測模型。

alt text

Result

1. 單鏡頭行人過馬路預測

本研究首先使用單鏡頭資料集再 PIE 資料集上進行行人過馬路意圖預測實驗,分別比較 GRU、LSTM、Two-stream GRU、Two-stream TCN 與 Transformer 等模型,並針對單任務與多任務模型進行比對測試。實驗結果如下圖所示。

alt text

2. 雙鏡頭行人過馬路預測

由於實際道路環境所使用之攝影機、拍攝視角及道路場景與 PIE 資料集存在差異,直接使用以 PIE 資料集訓練之模型進行實際道路影像預測時,模型表現不佳。因此本研究建立實際道路資料,並使用該資料對行人過馬路意圖預測模型進行微調。實際道路資料由本研究自行進行影像錄製,並針對影像中的行人過馬路意圖進行人工標註,再將所建立之資料作為模型微調資料,以使模型能夠進一步適應本研究實際使用之道路環境。微調前後之模型預測結果表現如下表所示。

Accuracy Recall Precision F1 Score
模型微調前 65.57% 31.33% 55.48% 40.05%
模型微調後 80.04% 74.40% 77.64% 75.98%

3. 邊緣裝置最佳化

最佳化前,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

Demo

1. 單鏡頭影片 demo

點擊觀看影片

2. 雙鏡頭影片 demo

點擊觀看影片

Acknowledgement

PIE Dataset repository: aras62/PIE

Author

Jian-Kai Lai、Shao-Lun Kao、Cheng-Yen Lee
B.S. in Computer Science and Engineering, National Sun Yat-sen University (NSYSU)

About

基於多鏡頭融合、人體骨架與道路環境特徵的即時行人過馬路意圖預測系統,支援 Jetson Orin Nano Super。

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages