BeeTrace is a web-based application that uses computer vision techniques to detect and match features between pairs of images using the ORB (Oriented FAST and Rotated BRIEF) algorithm.
- Real-time Image Preview: Instantly preview uploaded images before processing
- Feature Detection: Utilizes OpenCV's ORB algorithm for robust feature detection
- Visual Matching: Displays matched features between images with colored connecting lines
- User-friendly Interface: Clean, modern UI with responsive design
- Fast Processing: Efficient image processing and feature matching
-
Backend:
- FastAPI (Python web framework)
- OpenCV (Computer vision library)
- NumPy (Numerical computing)
- Uvicorn (ASGI server)
-
Frontend:
- HTML5
- CSS3
- Vanilla JavaScript
- Fetch API for asynchronous requests
- Image Upload: Users can upload two images through the intuitive interface
- Feature Detection: The ORB algorithm detects key features in both images
- Feature Matching: The application matches similar features between the images
- Visualization: Matched features are displayed with connecting lines and circles
- Clone the repository:
git clone https://github.com/solrikk/beetrace.git
cd beetrace
- Install dependencies:
pip install -r requirements.txt
- Run the application:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
- Open your browser and navigate to
http://localhost:8000
GET /
: Serves the main application interfacePOST /match-features/
: Processes uploaded images and returns matched features
The application uses ORB (Oriented FAST and Rotated BRIEF) algorithm which:
- Is rotation invariant and resistant to noise
- Detects keypoints using FAST
- Computes descriptors using BRIEF
- Performs well for real-time applications
- Detect keypoints and compute descriptors for both images
- Use Brute Force Matcher with Hamming distance
- Sort matches by distance
- Visualize top 30 matches with unique colors
- Upload two images that have common elements
- Wait for the processing to complete
- View the matched features highlighted in the result image
- The connecting lines show corresponding features between images
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV community for computer vision tools
- FastAPI framework for efficient API development
- Contributors and testers who helped improve the application