SearchVision (WORK IN PROGRESS) is a web application built with FastAPI that allows users to search for images, select relevant images, and use web scraping techniques to find similar images. The selected images are then used to train a YOLOv8 (You Only Look Once) model for object detection.
SearchVision is designed to provide a seamless experience for users to perform image searches, select relevant images, and automatically train an object detection model using the selected images. The application leverages Google Custom Search for image retrieval and the YOLOv8 model for real-time object detection training.
- Image Search: Search for images using a query, powered by the Google Custom Search API.
- Image Selection: Select images from the search results that match the search criteria.
- Web Scraping: Automatically scrape similar images based on the user's selections.
- Model Training: Train a YOLOv8 object detection model using the selected and scraped images.
- Error Handling: Provides meaningful error messages and logging for smooth user experience.
- Search for Images: Enter a search query on the home page to find images related to your query.
- Select Images: Choose the images from the search results that best match your criteria.
- Scrape Similar Images: The application will automatically scrape similar images.
- Train Model: Use the selected and scraped images to train a YOLOv8 object detection model.
- View Results: Monitor the progress and see the results of the model training.
- FastAPI: A modern, fast (high-performance), web framework for building APIs with Python 3.7+.
- YOLOv8: An object detection model for real-time object detection and tracking.
- Google Custom Search API: Provides image search capabilities.
- BeautifulSoup: A Python library for web scraping purposes.
- Uvicorn: A lightning-fast ASGI server for FastAPI.
- Pillow (PIL): For handling image manipulation tasks like loading, saving, and processing images.
- JavaScript: Used for handling user interactions and drawing annotations on images.
- Scikit-learn: For calculating dissimilarities between images using cosine distance.
- Python-dotenv: For loading environment variables from a .env file, such as API keys.
We welcome contributions! If you're interested in contributing to SearchVision, please read our CONTRIBUTING.md file for guidelines on how to get started.
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
If you have any questions or feedback, please open an issue on the repository or submit it here
Thank you for using SearchVision! We hope you enjoy using the app.