culicidaelab-mobile
Описание
Языки
- Dart97,7%
- Shell1%
- Batchfile0,8%
- Dockerfile0,4%
- Остальные0,1%
CulicidaeLab
CulicidaeLab is a cross-platform Flutter application designed to help users identify mosquito species and learn about mosquito-borne diseases. The app provides educational information, a gallery of epidemiologically significant mosquito species, and details about diseases transmitted by mosquitoes.
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-mobile
- Mosquito Classification: Take or upload a photo to identify mosquito species using an AI-powered model.
- Mosquito Gallery: Browse information and images of dangerous mosquito species.
- Disease Information: Learn about diseases transmitted by mosquitoes, including symptoms, prevention, and prevalence.
- Localization: Supports English, Spanish, and Russian languages.
- Interactive Map: View a map of mosquito activity reports (Android/iOS only).
- Integrations: The app supports integration with the CulicidaeLab(server) API for observations submissons, predictions and map features.
- Educational Use: The app is intended for educational and research purposes only.
Practical Applications of the culicidaelab-mobile
-
Citizen Science:
- Real-time Data Collection: Engaging the general public in collecting data on the location and species of mosquitoes. This allows for the creation of dynamic distribution maps with unprecedented detail.
- Early Warning System: Rapidly detecting the emergence of dangerous invasive species (e.g., Aedes aegypti or Aedes albopictus) in new regions thanks to reports from citizens.
-
Public Health and Personal Safety:
- Informing the Public: Giving people the ability to instantly determine if a mosquito in their home is a potential carrier of diseases (dengue fever, Zika virus, chikungunya).
- Raising Awareness: An educational function that helps people better understand the risks associated with mosquitoes and take protective measures (e.g., eliminating standing water).
-
Field Work:
- A Tool for Specialists: Entomologists and staff from public health services can use the app for quick on-site identification and documentation of species.
Getting Started
Prerequisites
This project includes a Dev Container configuration, which is the recommended way to set up your development environment. It ensures you have the correct versions of all tools and dependencies without needing to install them on your local machine.
Recommended: Using the Dev Container (One-Click Setup)
To use this method, you only need to have the following installed:
- Visual Studio Code
- The Dev Containers extension for VS Code.
- Docker Desktop or another compatible container runtime.
Once these are installed, simply:
- Clone this repository.
- Open the repository folder in VS Code.
- When prompted, click "Reopen in Container".
That's it! VS Code will build the container and install a fully configured environment with Flutter , Java , the correct Android SDK, and all recommended extensions.
Alternative: Manual Installation
If you prefer not to use a Dev Container, you can configure your environment manually. It is highly recommended to use the versions specified in the devcontainer.json to avoid potential compatibility issues.
- Flutter SDK: Version 3.29.3 is recommended. You can install it by following the official Flutter documentation.
- Java JDK: Version 17 is required for building the Android app.
- For Android Development:
- Install Android Studio.
- Using the SDK Manager in Android Studio, ensure you have the following installed:
- Android SDK Platform 35
- Android SDK Build-Tools 34.0.0
- Android NDK 27.0.12077973
- Editor:
- Visual Studio Code is recommended with the following extensions:
(dart-code.dart-code)Dart(dart-code.flutter)Flutter
- Visual Studio Code is recommended with the following extensions:
Hardware Requirements
These are the recommended minimum hardware specifications for a smooth and responsive user experience, especially when using the on-device AI features.
-
Processor (CPU): A modern 64-bit ARM processor is required. A mid-range or better CPU is strongly recommended, as the performance of the on-device Machine Learning model (
) for image identification depends heavily on processing power.PyTorch -
Memory (RAM): Minimum 3 GB. A device with 4 GB or more is strongly recommended. The app performs intensive image processing and runs a local AI model, which consumes significant memory. Devices with less than 3 GB of RAM may experience slowdowns or crashes during image analysis.
-
Storage: At least 300 MB of free space. This is required to install the application, store the bundled ML model, cache map data (
), and save user data in the local database (flutter_map).sqflite -
GPU: A capable GPU is necessary for smooth UI rendering, which is standard on all supported devices.
Software Requirements
-
Operating System:
- Android: Android 5.0 (API Level 21) or newer.
- iOS: iOS 12.0 or newer.
-
Required Device Features & Permissions:
- Internet Connection: Required for
to download map tiles and for other potential network requests.flutter_map - Location Services (GPS): Required for map functionality and tagging observations with geographic coordinates using the
package.geolocator - Camera Access: Required to capture new images for identification via the
package.image_picker - Photo/Gallery Access: Required to allow users to select existing images from their device for identification.
- Internet Connection: Required for
For a full list of the Flutter packages and dependencies used in this project, please see the
file.pubspec.yaml
Local Installation
If you have configured your development environment manually, follow these steps.
-
Clone the Repository:
-
Install Dependencies: Fetch all the required packages from
.pub.dev -
(First-Time Setup) Generate App Assets: This project uses packages to generate the launcher icon and native splash screen. Run these commands the first time you set up the project or after changing the source assets:
-
Run the Application: Ensure you have a physical device connected or an emulator/simulator running.
To run on a specific device from the list, use the
flag:-d
Building for Release
To create an optimized production build of the application both options (dev-config and release-config) work fine:
-
Android (APK):
The output file will be located at
.build/app/outputs/flutter-apk/app-release.apk -
Android (App Bundle):
The output file will be located at
.build/app/outputs/bundle/release/app-release.aab
Project Structure
- main.dart – Application entry point
- l10n – Localization files (
).arb - models – Data models
- providers – State management providers
- repositories – Data repositories
- screens – UI screens
- services – Business logic and platform services
- view_models – View models for stateful widgets
- widgets – Reusable UI components
Documentation
For complete guides, tutorials, and the full API reference, visit the documentation site.
Localization
The app supports multiple languages. To add or update translations, edit the files in l10n.
Disclaimer
This platform is for educational and research purposes only. It does not replace professional medical advice or guidance from public health authorities.
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).
For more information, see the project documentation or contact the development team.