This guide covers the complete workflow for the StreetAware project, from data collection to advanced video synchronization and repair. All steps are streamlined for clarity and professional use.
git clone https://github.com/VIDA-NYU/StreetAware-collection.git
chmod +x setup.sh run.sh stop.sh
./setup.sh
./run.sh
./stop.sh
The app includes a UI section for health checks. Below is a sample image indicating what the health check screen looks like. This helps verify if sensors are connected and responsive.
To begin collecting sensor data:
-
In the Collect Data section of the app UI, set a value (in seconds) for:
- Total Collection Duration
- Session Timeout
-
Click the Start SSH & Collect button.
-
To stop data collection manually before timeout, use the Stop Job button.
After the collection is complete:
- Click on Download Data (per-ip).
- This will fetch sensor data to your local machine.
Downloaded data is stored at:
street-aware-scripts/data/<current-date>
You can then upload the collected data to the Research Space for future analysis. [! Note: Currently the video files generated are not research ready and needs some header fixes required to be implemented. See fix_avi_header.py in the next section]
- Python 3.7+
- OpenCV (with Python bindings)
- NumPy
- natsort
- ffmpeg (for AVI repair)
- check_frame_count.py: Analyze available frames and timeline data.
python check_frame_count.py <data_path>
- sync_videos.py: Create a synchronized mosaic video (sequential, CPU/GPU).
python sync_videos.py <data_path> [--output OUTPUT] [--threshold THRESHOLD] [--max-frames MAX_FRAMES] [--fps FPS]
- sync_videos_GPU.py: Fast, parallel CUDA mosaic video creation (GPU-accelerated, CPU fallback).
python sync_videos_GPU.py <data_path> [--output OUTPUT] [--threshold THRESHOLD] [--max-frames MAX_FRAMES] [--fps FPS]
- fix_avi_header.py: Repair corrupted AVI headers (requires ffmpeg).
python fix_avi_header.py <data_path> [--backup] [--cameras CAM1 CAM2 ...] [--test-only] [--verify-only] [--analyze-only]
Tip: All scripts support --help
for option details.
For the most up-to-date documentation and updates, refer to the following Google Doc: