This is the repository for the Wolf or Not project. This project is developed by the department of sustainable communication networks, University of Bremen, Germany.
For nowadays computer vision, training data is required. Depending on the scenario, the labeling of the data requires a lot of time. Wolf or Not automatically detects changes in time-series images and shows a simple dialog to the user: What is visible on the image.
Using this kind of citizen science leads to a suitable number of labeled images.
The main requirements are
- Django
- Pillow
- numpy
Details from our pip3 freeze
can be found in
requirements.txt
Or use the requirements.txt for your venv / pip installation:
pip3 install -r requirements.txt
The installation is quite easy:
-
Clone this repository:
git clone git@github.com:ComNets-Bremen/Wolf-or-Not.git
-
Create basic database structure:
python3 manage.py migrate
-
Create a superuser:
python3 manage.py createsuperuser
-
Start testserver:
python3 manage.py runserver
-
System should now be up and running on your localhost on port 8000
-
Go to the backend: Admin -> Login using the credentials set before
-
The following models are available:
- Api keys: The keys for the remote tools like the automatic downloader
- Classes: The classes the user can click on
- Datasets: Names to group the uploaded images. At least one should be configured here
- Images: The images. Upload should be done via the admin -> upload images menu on the main page. This item is only available if you are logged in and not from the backend
- Polls: The votes the users did
- Properties: The additional properties for the system can be configured here.
Before using this code on a public server, you should make yourself familiar with some potential security considerations:
- The
settings.py
contains a secret key. You should not use the one in the repository. For each installation, a separate key should be used. You can keep it local by adding it to thesettings_local.py
. A key can be generated using the following command:$ python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
- The code is not checked for security. Maybe you should walk through it and check if running it on your server is safe.
- Maybe running the system on an isolated server is a good idea?
- Anyhow, we will not take any responsibility for the code and the project.
The original images can be downloaded using a separate URL by either authenticated users (in the browser) or via a call with an authentication token:
curl https://<server-address>/simplelabel/original-img/<image_UUID>/ -H 'Authorization: Token aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
The token has to be configured using the API model.
The testserver should never be use in production environments. The Django
documnetation
explains how to set up django using mod_wsgi
on an apache webserver.
Security notice Please make sure you set your own key as mentioned in the security sections of this document.
- Jens Dede and Anna Förster: Animals in the Wild: Using Crowdsourcing to enhance the labelling of Camera Trap Images, 2nd DISCOLI Workshop on DIStributed COLlective Intelligence (DISCOLI 2023), Pafos, Cyprus, June 19-21, 2023
Jens Dede, Sustainable Communication Networks, University of Bremen, jd@comnets.uni-bremen.de, 2023
This code is licensed under the GPLv3. You can find it here.
- ..