Camera Trap and Bioacoustics Annotation Tools Compared
Free and paid camera trap and bioacoustics tools compared on who runs the AI model, review by several people, and Camtrap DP and Raven formats.
Raven Pro costs $50 for a permanent non-profit license and Kaleidoscope Pro costs $399 a year, and Wildlife Insights charges government agencies and companies for camera-trap subscriptions while staying free for academic users. Timelapse, AddaxAI, and Agouti are free for camera traps, and Arbimon, BirdNET-Analyzer, Audacity, and the beta of Cornell's Raven Workbench are free for bioacoustics. Potato is a free, self-hosted alternative to Raven Pro and Kaleidoscope Pro for reviewing detections with several reviewers per image or recording, though Potato runs no detector or classifier and starts from the MegaDetector, BirdNET, Raven, or Audacity files those tools write.
A camera trap is a camera that photographs or films whatever passes in front of the camera's motion sensor. MegaDetector is an open-source model that finds animals, people, and vehicles in camera-trap images and draws a box around each animal, person, or vehicle. MegaDetector's README notes that the model is also useful for removing blank images. MegaDetector does not name the species, and a separate classifier such as Google's SpeciesNet does that step. Passive acoustic monitoring records a site for days or months with an unattended recorder, and bioacoustics software finds the calls of birds, bats, frogs, and whales in the recordings. A spectrogram shows a recording's frequencies over time, and a call is marked as a box with a start time, an end time, and a frequency range. A Raven selection table lists those boxes, one per row.
Camtrap DP is the TDWG data exchange format for camera-trap data, with tables of deployments, media, and observations. Darwin Core is the TDWG standard for occurrence records, and GBIF is the global biodiversity database that publishes data in both formats. Ecology in Potato lists Potato's ecology tasks in one place, and Camera Traps and Bioacoustics document every import and export option.
Camera trap tools worth comparing
Prices and licenses come from each project's own pages, checked on 2026-10-29.
| Tool | Runs as | License or price | Suits |
|---|---|---|---|
| Timelapse | Desktop app for Windows | Free; source under CC BY-NC-SA 4.0 | Tagging large image sets on one computer, with MegaDetector boxes shown and Camtrap DP export |
| AddaxAI | Desktop app for Windows, macOS on Apple Silicon, and Linux | MIT; some species models are non-commercial | Running MegaDetector and a regional species model offline, then sorting or exporting the results |
| Wildlife Insights | Hosted platform on Google Cloud | Free for academic users, individuals, and citizen scientists; paid subscriptions for government agencies and companies, priced on request | Uploading surveys for AI species identification with review, and sharing data publicly |
| Agouti | Hosted platform at Wageningen University and Research | Free for academic and non-profit use; a contribution asked for commercial use and projects over 250 GB | Project teams annotating and validating sequences, with Camtrap DP 1.0 export |
| TrapTagger | Hosted web app, or your own server | Apache-2.0; free hosted accounts | AI classification combined with manual annotation by a team of annotators |
| Camelot | Desktop app for Windows, macOS, and Linux, usable by several people at once | Eclipse Public License 1.0 | Survey management and species identification, with reports for camtrapR and PRESENCE |
| Zooniverse | Hosted citizen-science platform | Project Builder and hosting free | Public projects in which many volunteers classify each image |
| Potato | Python web server configured in YAML, on your own computer or server | GPL-3.0-or-later | Several reviewers checking MegaDetector boxes and species on a server the project controls |
MegaDetector itself is MIT-licensed and installs with pip install megadetector. MegaDetector's README lists Timelapse, AddaxAI, Wildlife Insights, TrapTagger, Agouti, and Camelot among the tools and platforms that work with MegaDetector. Wildlife Insights uses SpeciesNet for species recognition, and SpeciesNet runs MegaDetector first and then a species classifier.
Bioacoustics tools worth comparing
| Tool | Runs as | License or price | Suits |
|---|---|---|---|
| Raven Pro | Desktop app | $50 non-profit or $100 commercial, as permanent licenses; free for non-commercial use by citizens of low- and middle-income countries | Measuring sounds, running detectors such as BirdNET, and reviewing selection tables |
| Raven Lite | Desktop app | Free | Viewing spectrograms and making selection tables with one annotation per selection |
| Raven Workbench | Suite of apps, in beta | Free | Annotation and review in Raven Annotate, and detection and model training in Raven Intelligence |
| Kaleidoscope Pro | Desktop app | $399 a year for one user on two computers | Bat species classification, cluster analysis, and BirdNET classifiers on large recording sets |
| Arbimon | Hosted platform from Rainforest Connection | Free, with unlimited users and storage | Pattern matching, random forest models, species validation, and soundscapes in the cloud |
| BirdNET-Analyzer | Command line and desktop GUI | Code MIT; models CC BY-NC-SA 4.0 | Detecting bird species in recordings and writing Raven, Audacity, Kaleidoscope, or CSV results |
| Audacity | Desktop app for Windows, macOS, and Linux | GPLv3 | Label tracks with a frequency range from a spectral selection |
| Sonic Visualiser | Desktop app for Windows, macOS, and Linux | Free and open source | Box layers for time-frequency regions over a spectrogram, with CSV export of layers |
| Potato | Python web server configured in YAML | GPL-3.0-or-later | Several reviewers correcting BirdNET, Raven, or Audacity boxes on a spectrogram in the browser |
Cornell's Raven Workbench page states that Workbench is meant to "enhance and replace the capabilities of Raven Pro" and that the Lab will eventually stop selling and supporting Raven Pro. Raven Pro's legacy downloads stay available. BirdNET's documentation treats all educational and research use as non-commercial, and the CC BY-NC-SA license on the models does not cover commercial use.
Which tool for which task
The table pairs each kind of ecology project with the tools built for that kind of project.
| Task | Good fits |
|---|---|
| Running MegaDetector and a species classifier on a laptop | AddaxAI, or MegaDetector and SpeciesNet from Python |
| Tagging a survey on one Windows computer | Timelapse |
| Uploading a survey for AI identification and public data sharing | Wildlife Insights |
| A team annotating sequences and exporting Camtrap DP for GBIF | Agouti, Timelapse, and Potato |
| Public volunteer classification of images | Zooniverse |
| Two or more reviewers checking every detection, with agreement reported | Potato |
| Measuring call frequency, duration, and energy | Raven Pro and Raven Workbench |
| Bat call identification | Kaleidoscope Pro |
| Detecting bird species in long recordings | BirdNET-Analyzer, Raven Pro, and Kaleidoscope Pro |
| Cloud pattern matching across a monitoring network | Arbimon |
| Drawing call boxes by hand on a desktop | Raven Lite, Audacity, and Sonic Visualiser |
| Several reviewers verifying BirdNET boxes in a browser | Potato |
The model-running tools appear wherever a detector or a classifier does the work, and the desktop tools appear where one person reviews the output. Potato appears where the output of those tools goes to several reviewers and the project needs each reviewer's answer kept separately.
Who runs the detector
Most of the tools on this page either run a model or show the output of a model run elsewhere. AddaxAI runs MegaDetector and a species model on your own computer with no internet connection after installation. Wildlife Insights runs the identification models on Google Cloud after upload. Timelapse runs no model itself and imports the recognition file that AddaxAI or MegaDetector writes. In bioacoustics, Raven Pro runs BirdNET and other models through Raven Pro's Learning Detector, Kaleidoscope Pro runs bat classifiers and BirdNET classifiers, and BirdNET-Analyzer is the standalone BirdNET program.
Potato's camera-trap and bioacoustics workflows run no detector or classifier. potato import reads MegaDetector batch-output JSON in format 1.x, COCO Camera Traps JSON, BirdNET-Analyzer's Raven table or CSV, Raven Pro or Raven Lite selection tables, and Audacity label tracks. Species classifications in a MegaDetector file become box labels and pre-ticked species. Each detection becomes a box that reviewers move, resize, relabel, or delete. On import, --md-threshold (default 0.2) and, for BirdNET, --min-confidence (default 0.1) leave out detections below the confidence you set. Every imported box keeps the model's name and confidence and gets "edited": true once a reviewer changes the box.
Free Raven Pro and Kaleidoscope Pro alternatives
Raven Pro and Kaleidoscope Pro are the two paid desktop programs in the bioacoustics table above. Raven Pro measures sounds, runs energy and machine-learning detectors, and compares a detector's selection table with a human-made table. Kaleidoscope Pro identifies bat species, clusters similar calls, and runs BirdNET classifiers across large recording sets. The free tools each cover part of that work.
Cornell's own Raven Workbench is free and is meant to replace Raven Pro, though Cornell describes the Workbench apps as beta or preview releases. Raven Lite is free for viewing spectrograms and making selection tables with one annotation per selection. BirdNET-Analyzer is free for detection, and the CC BY-NC-SA 4.0 license on the models does not cover commercial use. Arbimon is a free hosted platform for pattern matching and species validation across many recorders. Audacity and Sonic Visualiser are free desktop programs for drawing call boxes by hand.
Potato covers the review step after detection. Potato imports BirdNET or Raven output, assigns each recording to as many reviewers as the config sets, shows the boxes on a spectrogram computed in the browser, and writes each reviewer's corrected boxes to a separate Raven selection table or Audacity label file. Potato does not measure sounds, run detectors, cluster calls, or report agreement on spectrogram boxes, and what Potato does not do lists the other gaps.
For camera traps, Wildlife Insights charges only government agencies and companies, and Timelapse, AddaxAI, Agouti, TrapTagger, and Camelot are free. Potato fits a camera-trap project when several reviewers check each image and the images stay on the project's own server.
Several reviewers and agreement by tool
The tools share work among several people in different ways. Each row gives a tool's setup for several people on the same images or recordings and the agreement measure that the tool's documentation describes.
| Tool | How several people share the work | Agreement |
|---|---|---|
| Timelapse | Separate databases merged by checking in | — |
| Wildlife Insights | Organizations and projects with owner, editor, and contributor roles | — |
| Agouti | Project roles from full access to view-only, with a Validate step for each sequence | — |
| TrapTagger | Annotator accounts that pick up annotation jobs | — |
| Camelot | Several people use Camelot at the same time | — |
| Zooniverse | Each image goes to a set number of volunteers before the image retires | — |
| Raven Pro | — | Compares two selection tables, documented for checking a detector against a human-made table |
| Arbimon | Users added to a project | — |
| Potato | num_annotators_per_item sets how many reviewers see each image or recording | Triage and other choices: Cohen's kappa, Fleiss' kappa, and Krippendorff's alpha. Species ticks: Jaccard and alpha with MASI distance. Boxes on images: matched IoU, detection F1, and chance-corrected alpha. Spectrogram boxes: none |
A dash means we found nothing for the cell in the tool's own documentation, checked on 2026-10-29. If a cell is wrong, tell us.
When 10 observers processed the same 11,560 camera-trap images, only one observer found all 22 mammals in the set, and the other observers found between 18 and 22 (Zett et al., 2022). A second reviewer on a sample of images measures the same variation for your own project. Potato's admin dashboard at /admin/iaa reports the agreement for every pair of reviewers. Agreement on the detection boxes separates whether reviewers found the same animals, whether reviewers gave each animal the same label, and how closely the boxes match (Geometry Agreement). Potato computes no agreement on spectrogram boxes. A bioacoustics study that needs a kappa adds a clip-level question, as in the BirdNET config below.
Volunteers and citizen science
Zooniverse hosts public projects for free, and the Zooniverse team reviews a project before the project launches to the volunteer community. Snapshot Serengeti combined each image's volunteer classifications with a plurality vote and reached 96.6% accuracy for species against 4,149 image sets classified by experts (Swanson et al., 2015). Zooniverse hosts all project media at public URLs, even on a private project, and a project promoted to the community makes classification data open after a proprietary period of normally two years.
Potato has no public volunteer community. A project shares a sign-up link with the project's own volunteers or students, or recruits paid participants through Prolific (Running a Crowdsourced Study). A training phase gives volunteers practice images with feedback before the real images. With mace: enabled: true, Potato estimates each volunteer's reliability and an inferred answer for the triage and species questions once an item has three answers (MACE). Potato's Zooniverse importer reads a project's workflows and classifications. The importer leaves out survey tasks and reports how many were left out. A survey task is Zooniverse's grid of species choices with follow-up questions.
File formats and GBIF publishing
The table lists the formats an ecology project moves between and what Potato 2.13.1 reads and writes for each format.
| Format | Written or read by | Potato import | Potato export |
|---|---|---|---|
| MegaDetector batch-output JSON | MegaDetector, AddaxAI, and Timelapse | Yes (-f megadetector) | Yes, format 1.4, one reviewer per file (-f megadetector) |
| COCO Camera Traps JSON | MegaDetector's conversion tools | Yes, with sequences as one item each (-f coco_camera_traps) | No |
| Camtrap DP 1.0 | Agouti, Timelapse, AddaxAI, and the GBIF IPT | No | Yes, profile 1.0.2, one reviewer per item (-f camtrap_dp) |
| Darwin Core occurrences | GBIF | No | Yes, occurrence.csv, one reviewer per item (-f darwin_core) |
| Raven selection table | Raven Pro, Raven Lite, and BirdNET-Analyzer | Yes (-f raven, or -f birdnet for BirdNET's tables) | Yes, one table per recording and reviewer, with a Box Source column (-f raven) |
| BirdNET-Analyzer CSV | BirdNET-Analyzer | Yes, as boxes over all frequencies (-f birdnet) | No |
| Audacity label track | Audacity and BirdNET-Analyzer | Yes, with spectral lines (-f audacity_labels) | Yes, one file per recording and reviewer |
| Kaleidoscope results | Kaleidoscope Pro and BirdNET-Analyzer | No | No |
GBIF's recommended route for camera-trap data is a Camtrap DP package uploaded to the GBIF IPT, version 3 or later. GBIF converts a published package to Darwin Core occurrences with the camtrapdp R package and places each occurrence at the camera's location. Potato's Camtrap DP export needs facts Potato does not have, such as each deployment's coordinates, a UTC offset on every timestamp, and the package metadata. Item fields named latitude and longitude fill the coordinates, export options fill the rest, and the export names whatever is still missing. Validate the package before uploading the package to the IPT.
With several reviewers per image, the camtrap_dp, darwin_core, and megadetector exports write one reviewer per item, the first by user ID unless --option annotator=<user> names a reviewer, and warn that the item had several. Reconcile the reviewers' answers before exporting, so that the answer the export takes is the agreed one. The reviewer's user name goes in classifiedBy or identifiedBy.
Offline field use and data location
Timelapse, AddaxAI, Camelot, Raven, Kaleidoscope, Audacity, and Sonic Visualiser run on the computer that stores the images or recordings, and AddaxAI and Timelapse need no internet connection after installation. Wildlife Insights runs on Google Cloud and lets data providers embargo data for up to 48 months. Agouti stores all data on servers owned by Wageningen University and Research in the Netherlands. Arbimon stores recordings in the cloud. TrapTagger offers hosted accounts and a self-hosted install from the TrapTagger repository.
Potato installs with pip on a laptop or a server, and reviewers on the same machine or on a field station's local network work in a browser. Potato serves every script, stylesheet, font, and icon from the install, and the camera-trap and bioacoustics workflows load no model weights. With --image-dir, Potato serves images from the survey's existing folder without copying the survey. The spectrogram is computed in the reviewer's browser from the audio file, with no audio tools on the server. Both the image box scheme and the spectrogram scheme are on Potato's list of types tested by touch at phone width. Air-Gapped Deployment lists what Potato serves locally.
Reviewing MegaDetector output with two reviewers in Potato
Run MegaDetector on your own machine first, or AddaxAI with a species model. The import below keeps detections with confidence 0.5 or more and serves the images from the survey's own folder:
potato import -i md_output.json --image-dir /data/traps --md-threshold 0.5 -o review-project/The config below has the shape that the import writes, with two additions. num_annotators_per_item: 2 sends every image to two reviewers for agreement on the triage answer, the species, and the boxes. The classifier never named foxes, and the added Vulpes vulpes label lets reviewers label the foxes the classifier missed. The config is complete and passes Potato's validator:
annotation_task_name: Camera-trap review, two reviewers per image
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/md_output.jsonl
item_properties:
id_key: id
text_key: image_url
user_config:
allow_all_users: true
users: []
media_directory: /data/traps
# Every image goes to two reviewers for a comparison of the two reviews
num_annotators_per_item: 2
pre_annotation:
enabled: true
field: predictions
allow_modification: true
annotation_schemes:
- annotation_type: radio
name: triage
description: What does this image show?
labels: [empty, animal, person, vehicle]
sequential_key_binding: true
- annotation_type: image_annotation
name: detections
description: Correct the boxes, delete false detections, and draw any animal that was missed.
source_field: image_url
tools: [bbox]
zoom_enabled: true
labels:
- {name: Odocoileus virginianus, color: "#f58231"}
- {name: Procyon lotor, color: "#911eb4"}
# A species the classifier never names, added for reviewers to draw
- {name: Vulpes vulpes, color: "#008080"}
- {name: animal, color: "#3cb44b"}
- {name: person, color: "#e6194b"}
- {name: vehicle, color: "#4363d8"}
- annotation_type: multiselect
name: species
description: Which species are present?
labels: [Odocoileus virginianus, Procyon lotor, Vulpes vulpes]Each image opens with the detector's boxes drawn and the triage answer chosen from the most confident detection, and reviewers answer the triage question with the keys 1 to 4. A pre-filled answer is stored only when the reviewer saves the image, and unreviewed images stay out of the export. Once the review is done, export the package and the occurrences:
python -m potato.export -c review-project/config.yaml -f camtrap_dp -o package/ \
--option timezone=-05:00 --option contributor="Your Name" \
--option sampling_design=opportunistic --option capture_method=activityDetection
python -m potato.export -c review-project/config.yaml -f darwin_core -o package/classificationMethod is machine for a detector box the reviewer left unchanged and human for a box the reviewer drew or changed. In the Darwin Core table, the same distinction sets basisOfRecord to MachineObservation or HumanObservation. Detecting Rubber-Stamped Pre-Labels shows how to check whether reviewers accepted the detector's boxes without looking.
Verifying BirdNET detections with two reviewers in Potato
Run BirdNET-Analyzer on your recordings first, and keep the recordings beside BirdNET's output files. The import below keeps detections with confidence 0.5 or more:
potato import -i birdnet-output/ -f birdnet --min-confidence 0.5 -o birdnet-review/The config below has the shape that the import writes, plus a second reviewer on every clip, a species BirdNET did not report, and a clip-level question. The clip-level question gives the admin dashboard a kappa, because Potato reports no agreement on spectrogram boxes. The config is complete and passes Potato's validator:
annotation_task_name: BirdNET verification, two reviewers per clip
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/birdnet-output.jsonl
item_properties:
id_key: id
text_key: recording
user_config:
allow_all_users: true
users: []
# Every clip goes to two reviewers for a comparison of the clip-level answers
num_annotators_per_item: 2
pre_annotation:
enabled: true
field: predictions
allow_modification: true
annotation_schemes:
- annotation_type: spectrogram_annotation
name: calls
description: Check BirdNET's boxes, fix or delete the wrong ones, and draw any call BirdNET missed.
source_field: audio_url
labels:
- American Robin
- Northern Cardinal
# Species on the site list that BirdNET did not report in these clips
- Song Sparrow
- unknown
- annotation_type: radio
name: clip_review
description: How well did BirdNET do on this clip?
labels:
- All boxes correct
- Some boxes wrong or missing
- Recording unusableBirdNET's boxes are drawn with a dashed border until a reviewer changes a box. Export the corrected boxes for Raven or Audacity:
python -m potato.export -c birdnet-review/config.yaml -f raven -o export/
python -m potato.export -c birdnet-review/config.yaml -f audacity_labels -o export/With two reviewers, each recording gets one file per reviewer, such as site_a_0600.alice.selections.txt and site_a_0600.bob.selections.txt, and each file opens in Raven beside the recording. Spectrogram Annotation lists the scheme's options and controls.
What Potato does not do for ecology
- No detector or classifier. MegaDetector, SpeciesNet, AddaxAI, Wildlife Insights, BirdNET-Analyzer, Raven Pro, and Kaleidoscope Pro run the models, and reviewers correct the output in Potato. Potato does not include BirdNET's models.
- No sound measurements. Raven Pro and Raven Workbench measure frequency, duration, and energy, and Potato stores box edges only.
- No agreement on spectrogram boxes. Agreement covers questions, species ticks, and boxes on images.
- No reconciliation in the GBIF exports. Camtrap DP and Darwin Core exports write one observation per reviewer.
- No long recordings in one view. The browser decodes the whole file and draws at most 4,096 spectrogram columns. Cut recordings into clips of a few minutes.
- No Kaleidoscope or Arbimon formats. Potato reads Raven tables, Audacity labels, and BirdNET output.
- No Camtrap DP import. Potato writes Camtrap DP and reads MegaDetector and COCO Camera Traps JSON.
- No Zooniverse survey tasks on import. The species-grid task is left out with a warning.
- No public volunteer community. Zooniverse brings volunteers, and Potato recruits through Prolific or a link the project shares.
- Needs a server. Someone installs Potato with
pipand runs the server, on a laptop for one reviewer or on a shared machine for a team.
Checked against each project's own documentation and pricing pages in October 2026.
Frequently asked questions
What free software can label time-frequency regions on a spectrogram?
Raven Lite, Audacity, and Sonic Visualiser are free desktop programs that mark time-frequency regions on a spectrogram. Raven Lite makes selection tables with one annotation per selection, Audacity stores the frequency range of a spectral selection in the extended label format, and Sonic Visualiser has a box layer for time-frequency regions. Cornell's Raven Workbench is free in beta and is meant to replace Raven Pro. Potato is free and self-hosted for the case where several people label the same recordings in a browser, with each person's boxes exported as a separate Raven selection table or Audacity label file.
How do I measure agreement between observers on camera trap images?
Give a sample of images to two or more observers, have each observer answer the same questions independently, and compute a chance-corrected coefficient such as Cohen's kappa for two observers or Krippendorff's alpha for three or more. In Potato, num_annotators_per_item: 2 sends every image to two reviewers, and the admin dashboard reports kappa and alpha for the triage answer, Jaccard and alpha for the species ticked, and matched IoU, detection F1, and chance-corrected alpha for the boxes. For answers exported from another tool, the agreement calculator computes kappa and alpha from a CSV in the browser.
How are volunteers' species identifications combined in citizen science camera trap projects?
Most projects give each image to several volunteers and keep the species most volunteers chose. Snapshot Serengeti combined volunteers' answers with this plurality vote and reached 96.6% accuracy for species against expert classifications. Dawid-Skene and MACE weight each volunteer by estimated reliability and can recover better labels than a plurality vote when volunteers differ in skill (Paun et al., 2018). With mace: enabled: true, Potato runs MACE on the triage and species questions once an image has three answers, and Aggregating Crowd Labels compares the methods.
Further reading
- Ecology in Potato, for the ecology tasks in one place
- Camera Traps and Bioacoustics, for every import and export option
- Verify BirdNET Detections on a Spectrogram and Review MegaDetector Results and Publish Them to GBIF, for the two workflows run end to end on public data
- Spectrogram Annotation and Maps
- Export Formats and Importing Projects
- Inter-Annotator Agreement and Adjudication
- Audio Annotation Tools Compared and Image Annotation Tools Compared
- The iWildCam showcase design
References
- Swanson, A., Kosmala, M., Lintott, C., Simpson, R., Smith, A., & Packer, C. (2015). Snapshot Serengeti, high-frequency annotated camera trap images of 40 mammalian species in an African savanna. Scientific Data, 2, 150026. https://doi.org/10.1038/sdata.2015.26
- Zett, T., Stratford, K. J., & Weise, F. J. (2022). Inter-observer variance and agreement of wildlife information extracted from camera trap images. Biodiversity and Conservation, 31(12), 3019-3037. https://doi.org/10.1007/s10531-022-02472-z