Welcome to the Multi-Camera Setup project! This repository contains code for setting up and utilizing multiple cameras for real-time tracking and 3D position estimation of a moving object.
This project demonstrates a multi-camera system for tracking a moving object (e.g., a ball) in real-time using OpenCV and C++. It includes camera calibration (given), video processing, and 3D point triangulation.
- Camera calibration and parameter loading from JSON files
- Real-time video processing with OpenCV
- Multi-threaded frame processing for efficiency
- Object tracking and speed calculation
- 3D position estimation using triangulation
To get started, clone this repository and install the required dependencies.
git clone https://github.com/barakooda/multi_camera_setup.git
cd multi_camera_setup
Ensure you have the following dependencies installed:
- OpenCV
- nlohmann/json
- Configure Camera Parameters: Place your camera parameter JSON files in the
calibration
folder. - Place Videos: Place your video files in the
videos
folder. - Build the Project: Use CMake to build the project.
mkdir build
cd build
cmake ..
make
- Run the Program: Execute the compiled program.
./multi_camera_setup
multi_camera_setup/
├── calibration/ # Camera calibration files
├── csv_files/ # Output CSV files
├── include/ # Header files
├── l2graph/ # Additional resources
├── src/ # Source code
├── tests/ # Unit tests
├── videos/ # Video files
├── .gitignore
├── CMakeLists.txt
├── LICENSE
└── README.md
- Implementing Optical Flow
- Kalman Filter
- Combining detection and Optical Flow outputs in Kalman filter
- Improved project structure and code conventions
- Enhanced documentation and examples
Contributions are welcome! Please fork this repository and submit pull requests for any enhancements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.