culicidaelab-server
Описание
Языки
- Python66,3%
- HTML13,4%
- Shell12,3%
- PowerShell4,5%
- JavaScript2%
- CSS0,8%
- Остальные0,7%
Mosquito Tracking & Analysis Platform
CulicidaeLab Server is a comprehensive web platform for mosquito research, surveillance, and data analysis. It combines a Python-based backend API (FastAPI) with a dynamic frontend (Solara) to provide tools for species prediction, data visualization, and information retrieval related to mosquitoes and vector-borne diseases.
CulicidaeLab Ecosystem Architecture
An open-source system for mosquito research and analysis includes components:
-
Data:
- Base diversity dataset (46 species, 3139 images under CC-BY-SA-4.0 license.
- Specialized derivatives: classification, detection, and segmentation datasets under CC-BY-SA-4.0 licenses.
-
Models:
- Top-1 models (see reports), used as default by
library: classification (Apache 2.0), detection (AGPL-3.0), segmentation (Apache 2.0)culicidaelab - Top-5 classification models collection with accuracy >90% for 17 mosquito species.
- Top-1 models (see reports), used as default by
-
Protocols:
All training parameters and metrics available at:
-
Applications:
- Python library (AGPL-3.0) providing core ML functionality
- Web server (AGPL-3.0) hosting API services
- Mobile apps (AGPL-3.0): mosquitoscan for independent use with optimized models and culicidaelab-mobile for educational and research purposes as part of the CulicidaeLab Ecosystem.
These components form a cohesive ecosystem where datasets used for training models that power applications, the Python library provides core functionality to the web server, and the server exposes services consumed by the mobile application. All components are openly licensed, promoting transparency and collaboration.
This integrated approach enables comprehensive mosquito research, from data collection to analysis and visualization, supporting both scientific research and public health initiatives.
✨ Key Features of culicidaelab-server
- AI-Powered Species Prediction: Upload mosquito images for species identification.
- Interactive Map Visualization: Explore mosquito distribution and observations on a map.
- Species Database: Access detailed information about various mosquito species.
- Disease Information Hub: Learn about mosquito-borne diseases, their vectors, symptoms, and prevention.
Practical Applications of the culicidaelab-server
-
Control and Monitoring Centers:
- Data Aggregation: Collecting and visualizing all data from the mobile app and other sources on an interactive map.
- Analytical Dashboard: Providing epidemiologists and public health authorities with a tool to analyze population dynamics, identify hotspots, and assess risks.
-
Planning and Decision-Making:
- Resource Optimization: City and regional authorities can use the hotspot map to plan and conduct targeted treatments of areas, saving resources and reducing environmental impact.
- Effectiveness Assessment: Analyzing data before and after mosquito control interventions to evaluate their effectiveness.
-
Public Information Portal:
- An open map that informs citizens about the epidemiological situation in their region.
🔧Requirements
Hardware Requirements
Processor (CPU): Any modern x86-64 CPU.
Memory (RAM): Minimum 2 GB. 8 GB or more is recommended for processing large datasets or using more complex models.
Graphics Card (GPU): An NVIDIA GPU with CUDA support is highly recommended for a significant performance increase in deep learning model operations, especially for detection and segmentation but not essential for classification (see library performance logs, performance reports of ang notebook). For the SAM model, a GPU is virtually essential for acceptable performance. Minimum video memory is 2 GB; 4 GB or more is recommended.
Hard Drive: At least 10 GB of free space to install the library, dependencies, download pre-trained models, and store processed data.
Software Requirements
Operating Systems (tested):
- Windows 10/11
- Linux 22.04+
Software:
- for Linux needed libgl1 package to be installed
- Git
- Python 3.11
- uv 0.8.13
Python packages:
Backend:
- FastAPI: High-performance web framework for building APIs.
- Uvicorn: ASGI server.
- LanceDB: Vector database for efficient similarity search and data storage.
Frontend:
- Solara: Pure Python web framework for building reactive web applications.
- ipyleaflet - map components for Solara.
Data Formats:
-
JSON, GeoJSON
Full list of requirements: pyproject.toml
🚀 Getting Started
Installation & Setup
- Clone the repository:
- Install dependencies with pip:
Note: If you are using uv, you can install dependencies with uv:
- Generate Sample Data:
This script creates the JSON/GeoJSON files that the backend's script might use, and that the frontend might load directly or via the API.
This will create files like , , etc., in the directory.
- Initialize the Backend Database:
This script sets up LanceDB tables and populates them using the generated sample JSON files.
(Ensure the paths in point to the correct location of and , likely if run from or adjusted accordingly).
Check if generation successful by checking the LanceDB database.
Running the Application
- Run the Backend API Server:
Navigate to the project root (or ensure paths in
command are correct).uvicorn
The API will be accessible at .
* Swagger UI:
* ReDoc:
-
Run the Frontend Application:
In a new terminal, navigate to the project root.
The frontend application will be accessible at (or the port Solara defaults to/you specify).
Deployment
Application can be deployed on any server with minimal configuration (see docs/en/deployment/production.md).
📝 Documentation
The full project documentation can be found here
🌐 Live Demo
Visit http://culicidaelab.ru to see the application in action.
🤝 Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please see our Contributing Guide for details on our code of conduct, development setup, and the pull request process.
📜 License
This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.
🙏 Acknowledgments
CulicidaeLab development is supported by a grant from the Foundation for Assistance to Small Innovative Enterprises (FASIE).