How xuannn28/fyp-avs works
This repository combines a Raspberry Pi cooperative-perception demonstration with a separate dataset-analysis strand. In the demo, an ego vehicle uses local detections and RSU detections to recover occluded objects or count a queue; camera alignment and confidence-based triggering support the cooperative result. The analysis strand evaluates scene coverage on OPV2V and DAIR-V2X, with a BEV semantic-processing prototype. The graph reflects documented capabilities and sampled calls; some demo wiring and analysis scripts are represented only at their documented subsystem level because their implementation was not sampled.
Main entry points: main.py BEV prototype · rsu.py RSU perception · ego.py Ego perception · train.py Model training
Components 23
Hardware Demo
- Ego perception
final_demo/mid-sem demo (pedestrain)/ego.py - RSU perception
final_demo/mid-sem demo (pedestrain)/rsu.py - V2X transport
final_demo/mid-sem demo (pedestrain)/ego_v2v.py - Camera calibration
final_demo/calibrate.py - Confidence trigger
final_demo/coop_perception.py - Queue decision
final_demo/queue_perception.py - Semantic transmission
final_demo/semantic-summary/semantic_experiment.py - JPEG trade-off
final_demo/bandwidth-summary/bandwidth_summary.py
Dataset Analysis
- BEV prototype
stat_analysis/CoopPerception/main.py - OPV2V loader
stat_analysis/CoopPerception/data/opv2v_dataset.py - Model training
stat_analysis/CoopPerception/experiments/train.py
BEV Processing
- BEV encoder
stat_analysis/CoopPerception/models/bev_encoder.py - Segmentation head
stat_analysis/CoopPerception/models/seg_head.py - Semantic encoding
stat_analysis/CoopPerception/utils/compression.py - Pose alignment
stat_analysis/CoopPerception/utils/transform.py - BEV fusion
stat_analysis/CoopPerception/fusion/max_fusion.py
Evaluation
- Cooperation metrics
stat_analysis/CoopPerception/utils/metrics.py - OPV2V evaluation
stat_analysis/CoopPerception/experiments/prove_cooperation.py - Camera coverage analysis
stat_analysis/CoopPerception/dairv2x_camera_analysis.py
Other components
- Ego driver
- Vehicle cameras
- OPV2V data
- DAIR-V2X data
Connections 24
- Vehicle cameras → Ego perception: capture frames
- Vehicle cameras → RSU perception: capture frames
- RSU perception → V2X transport: send detections
- V2X transport → Ego perception: deliver detections
- Camera calibration → Ego perception: provide homography
- Ego perception → Confidence trigger: provide ego detections
- Confidence trigger → Ego driver: present fusion result
- Ego driver → Queue decision: request queue assessment
- Queue decision → Ego driver: present overtake guidance
- RSU perception → Semantic transmission: provide detections
- RSU perception → JPEG trade-off: provide image
- OPV2V data → OPV2V loader: load samples
- OPV2V loader → BEV prototype: supply samples
- BEV prototype → BEV encoder: encode LiDAR
- BEV prototype → Segmentation head: segment BEV
- BEV prototype → Semantic encoding: quantize and encode
- BEV prototype → Pose alignment: align neighbors
- BEV prototype → BEV fusion: fuse maps
- Model training → OPV2V loader: load training data
- Model training → BEV encoder: train model
- Model training → Segmentation head: train model
- OPV2V evaluation → Cooperation metrics: compute metrics
- OPV2V data → OPV2V evaluation: evaluate frames
- DAIR-V2X data → Camera coverage analysis: evaluate pairs