TRAPPER

Designed to manage camera trapping projects, an essential tool in ecological research.
https://gitlab.com/trapper-project/trapper

Category: Biosphere
Sub Category: Terrestrial Wildlife

Last synced: about 13 hours ago
JSON representation

Repository metadata

https://gitlab.com/trapper-project/trapper/blob/master/

          

AI-driven data management platform for camera trapping



## Table of Contents [Overview](https://gitlab.com/trapper-project/trapper-cs#-overview) | [TRAPPER in a nutshell](https://gitlab.com/trapper-project/trapper-cs#%EF%B8%8F-trapper-in-a-nutshell) | [TRAPPER ecosystem](https://gitlab.com/trapper-project/trapper#%EF%B8%8F-trapper-ecosystem) | [Installation](https://gitlab.com/trapper-project/trapper#-installation) | [Demo](https://gitlab.com/trapper-project/trapper#-demo) | [Documentation](https://gitlab.com/trapper-project/trapper#-documentation) | [Who is using TRAPPER?](https://gitlab.com/trapper-project/trapper#-who-is-using-trapper) | [Funders and Partners](https://gitlab.com/trapper-project/trapper#-funders-and-partners) | [Support](https://gitlab.com/trapper-project/trapper#-support) | [License](https://gitlab.com/trapper-project/trapper#-license) ## 🦬 Overview TRAPPER is an AI-driven, open-source web application built with [Python](https://www.python.org/), [Django](https://www.djangoproject.com/), and [Docker](https://www.docker.com/), designed to manage [camera trapping](https://en.wikipedia.org/wiki/Camera_trap) projects. Motion-triggered camera trapping has become an essential tool in ecological research. Due to the nature of the collected data, primarily multimedia files, even relatively small camera-trapping projects can generate large and complex datasets. Organizing these extensive collections and efficiently querying specific subsets, especially in a spatio-temporal context, often presents significant challenges. Without appropriate software, this can lead to serious data management issues, causing delays and long-term data inaccessibility. TRAPPER offers a novel solution: a fully open-source web application that uses spatially enabled data and can handle various media types, including both images and videos. It supports collaborative work and facilitates data sharing among users. By leveraging state-of-the-art open-source components and the modern, general-purpose programming language Python, TRAPPER provides a flexible framework for data management in camera trapping studies. **TRAPPER 2.0 will soon be released as an open BETA version. The project is currently under active development, so you can expect regular updates and releases for all modules.** ## 🛠️ TRAPPER in a nutshell - Open source and free to use for research, academic, or wildlife conservation projects (GPLv3). - Provides a spatially enabled database backend. - Handles both images and videos. - Supports flexible workflows for both AI-based and expert-based classifications. - Promotes the [Camtrap DP standard](https://camtrap-dp.tdwg.org/) and encourages data reuse. - Enables collaborative project work. - Offers Jupyter Notebooks and a comprehensive API. - Can be installed locally, on a Virtual Private Server (VPS), or in the cloud (e.g., Azure, AWS or MinIO, with S3 support). ## ⚙️ TRAPPER ecosystem **Trapper Expert (this repository)** – the core web application (TRAPPER), providing all essential system functionalities. It features an Angular and Bootstrap-based frontend, paired with a Django backend. The application uses a PostgreSQL database with the PostGIS extension for spatial data management, and employs RabbitMQ as a message broker with Celery workers for asynchronous task processing. **Trapper Citizen Science** [🔗](https://gitlab.com/trapper-project/trapper-frontend) – an innovative frontend application (UI) for TRAPPER, specifically designed for Citizen Science projects. **Trapper AI** [🔗](https://gitlab.com/trapper-project/trapper-ai) [🔗](https://gitlab.com/trapper-project/trapper-ai-worker) – a module responsible for integrating and configuring AI models for object detection and species classification. This component includes the **Trapper AI Manager** web interface and **Trapper AI Worker**. Workers can utilize GPUs and can be scaled or deployed across multiple machines. **Trapper Jupyter Hub** – a module for sharing Jupyter Hub and Jupyter Notebooks within TRAPPER, enabling users to explore and analyze data using Python or R scientific packages. **Trapper Tools** [🔗](https://gitlab.com/trapper-project/trapper-tools) is a Python CLI application for creating and uploading camera trap data packages compatible with the TRAPPER system. This tool is recommended for uploading large volumes of data (many GBs) to the TRAPPER web application. It features an automated pipeline that can convert, package, and upload data in a single command. Optionally, it can also trigger post-upload collection processing, including automatic sequence building and an AI pipeline for object detection and species classification for both images and videos. ## 📥 Installation If you want to install Trapper Expert with the basic functionalities of the system, then execute each of the steps below. 1. You need Docker Engine and Docker Compose to run TRAPPER: - Installing [Docker Engine](https://docs.docker.com/install/) - Installing [Docker Compose](https://docs.docker.com/compose/) 2. Clone the source code of TRAPPER to your local repository: ```bash $ git clone https://gitlab.com/trapper-project/trapper.git ``` 3. To get the most up-to-date version of TRAPPER switch to a branch `development`: ```bash $ git checkout development ``` 4. Copy the `trapper.env` file to the `.env` file, you can do it using the command: ```bash $ cp trapper.env .env ``` 5. Adjust the variables in the `.env` file if you use a non-standard installation, e.g. the external postgresql database. See the full documentation to learn more about all possible configuration parameters. 6. Run TRAPPER with the following command: ```bash # Production $ ./start.sh -pb prod ``` ```bash # Development $ ./start.sh -pb dev ``` The first run may take a while, because the docker images have to be downloaded and built. To learn more about all possible running options simply type `./start.sh`. If you'd like to override docker-compose parameters for development purpose, you can do it by creating a `docker-compose.override.yml` file. 7. Enter the `trapper` docker container and create the `superuser`: ```bash $ docker exec -it trapper bash $ python3 /app/trapper-project/manage.py createsuperuser ``` 8. To turn off the application execute the command: ```bash $ ./start.sh prod stop ``` If you need to extend Trapper Expert with **Trapper Citizen Science** or **Trapper AI**, then you need to install each of the module using separate code repository and related instructions. To create all supported AI providers with related Classifiers, what is required to integrate with Prediction models in TrapperAI, in `trapper` container execute the command below: `python3 manage.py load_aiproviders ` ## 🌐 Demo [Trapper Expert ](https://demo.trapper-project.org) demo instance does not include **Trapper Citizen Science** or **Trapper AI** yet. ## 📝 Documentation [TRAPPER](https://trapper-project.readthedocs.io) documentation. If you are using TRAPPER, please cite our work: > Bubnicki, J.W., Churski, M. and Kuijper, D.P.J. (2016), trapper: an open source web-based application to manage camera trapping projects. Methods Ecol Evol, 7: 1209-1216. https://doi.org/10.1111/2041-210X.12571 For more news about TRAPPER please visit the [Open Science Conservation Fund (OSCF) website](https://os-conservation.org) and [OSCF LinkedIn profile](https://www.linkedin.com/company/os-conservation/). ## 🏢 Who is using TRAPPER? - Mammal Research Institute Polish Academy of Sciences; - Karkonosze National Park; - Swedish University of Agricultural Sciences; - Svenska Jägareförbundet; - Meles Wildbiologie; - University of Freiburg Wildlife Ecology and Management; - Bavarian Forest National Park; - Georg-August-Universität Göttingen; - KORA - Carnivore Ecology and Wildlife Management; - and many more individual scientists and ecologies; ## 💲 Funders and Partners

## 🤝 Support Feel free to add a new issue with a respective title and description on the [TRAPPER issue tracker](https://gitlab.com/trapper-project/trapper/-/issues). If you already found a solution to your problem, we would be happy to review your pull request. If you prefer direct contact, please let us know: `contact@os-conservation.org` We also have [TRAPPER Mailing List](https://groups.google.com/d/forum/trapper-project) and [TRAPPER Slack](https://join.slack.com/t/trapperproject/shared_invite/zt-2f360a5pu-CzsIqJ6Y~iCa_dmGXVNB7A). ## 📜 License Read more in [TRAPPER License](https://gitlab.com/trapper-project/trapper/-/blob/master/LICENSE).

Committers metadata

Last synced: 4 days ago

Total Commits: 1,858
Total Committers: 27
Avg Commits per committer: 68.815
Development Distribution Score (DDS): 0.805

Commits in past year: 110
Committers in past year: 7
Avg Commits per committer in past year: 15.714
Development Distribution Score (DDS) in past year: 0.218

Name Email Commits
Krzysztof Owsieniuk k****k@g****m 363
Karolina Kuczkowska k****a@g****m 336
Jakub Bubnicki k****i@o****g 211
Łukasz Wałejko l****z@w****u 169
Piotr Tynecki p****r@t****l 152
Open Science Conservation Fund c****t@o****g 151
Łukasz Rzepa l****a@w****m 107
Łukasz Wałejko l****o@g****m 99
kbubnicki k****i@i****l 86
Grzegorz Jaworski g****i@w****m 63
Mateusz Gorczycki m****i@w****m 23
adrixop95 a****5@g****m 21
Maciej Syguła m****a@g****m 13
Marcin m****t@g****m 11
adrixop95 a****5@m****m 10
Adrian Rupala a****a@w****m 8
JayKey p****k@g****m 8
Lukasz Rzepa l****a@g****m 6
Karolina Kuczkowska k****a@o****g 4
Whiteaster a****n@w****m 4
gostekk g****i@p****m 4
wsyxbcl w****l@g****m 4
Jakub Bubnicki b****i@g****m 1
Piotr Tynecki 1****i@u****m 1
root r****t@t****g 1
trendspotter1 j****y@v****z 1
Łukasz Rzepa l****a@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 4 days ago


Dependencies

trapper/test-requirements.txt pypi
  • coverage * test
  • factory-boy ==2.12.0 test
  • pytest-cov * test
  • pytest-django * test
  • pytest-dotenv * test
  • pytest-xdist * test
  • responses * test

Score: 7.080026499922591