MegaDetector

Deep learning tools that accelerate the review of motion-triggered wildlife camera images.
https://github.com/microsoft/biodiversity

Category: Biosphere
Sub Category: Terrestrial Wildlife

Keywords

ai-for-good animal-detection bioacoustics biodiversity camera-traps computer-vision conservation conservation-ai deep-learning ecology edge-ai machine-learning megadetector object-detection sparrow wildlife-detection wildlife-monitoring

Keywords from Contributors

pytorch-wildlife wildlife cameratraps aiforearth web-map climate-change sustainable climate cntk 3d-map

Last synced: about 6 hours ago
JSON representation

Repository metadata

Microsoft AI for Good Lab — Biodiversity research hub. Open-source AI models, edge devices, and tools for biodiversity monitoring and conservation. Your source for MegaDetector, SPARROW, PytorchWildlife, Bioacoustics, and more.

README.md

A colorful banner illustrating various species of animals and plants in a natural environment, symbolizing biodiversity and the use of AI for conservation purposes.

Microsoft Biodiversity

Open-source AI for biodiversity monitoring and conservation.
Microsoft AI for Good Lab — camera-trap detection, bioacoustic analysis, species classification, field deployment.

📣 Announcements

What we've been up to

Our journey started with MegaDetector — a camera-trap animal detection model that became a widely adopted tool in the conservation community. Building on that foundation, we created PyTorch-Wildlife as a unified platform to host all of our AI for biodiversity work, bringing together detection, classification, and eventually much more.

Over time, our scope grew well beyond camera-trap imagery. We now have active work in bioacoustics, overhead animal detection, and edge computing for remote field deployments. As the ecosystem expanded, it became clear that keeping everything inside a single repository was working against us. Code was harder to find, harder to maintain, and harder to extend.

So we made a deliberate decision: break the work into focused, dedicated repositories — one per project — where the code in each repo is concentrated, the ownership is clear, and future contributors know exactly where to go. This repository is the hub that ties them together. PyTorch-Wildlife now lives at microsoft/Pytorch-Wildlife, MegaDetector at microsoft/MegaDetector, and everything else is linked in the table below.

Previous versions:

Projects

Repo What it is
microsoft/MegaDetector AI model for detecting animals, people, and vehicles in camera-trap imagery — where it all started
microsoft/MegaDetector-Acoustic Bioacoustic AI for biodiversity monitoring — audio classification and species identification from sound
microsoft/MegaDetector-Classifier Camera-trap species classification fine-tuning — adapt classifiers to your own datasets and geographic regions
microsoft/MegaDetector-Overhead Overhead imagery detection — point-based wildlife localization from aerial views
microsoft/MegaDetector-Sonar Sonar-based wildlife detection — processing and feature detection in sidescan sonar imagery
microsoft/Pytorch-Wildlife The collaborative deep learning framework and model zoo for conservation AI
microsoft/SPARROW Solar-Powered Acoustic and Remote Recording Observation Watch — AI edge device for remote field deployments

Cite us

When citing work that uses any of the repositories under this umbrella, please cite:

  • Hernandez et al. 2024Pytorch-Wildlife: A Collaborative Deep Learning Framework for Conservation — for any use of the PyTorch-Wildlife framework or models accessed through it
  • Beery, Morris, Yang 2019Efficient Pipeline for Camera Trap Image Review — for any use of MegaDetector specifically

A citation.cff file is included in this repository for automated citation tools.

Contributing

We welcome community contributions. See our Contribution Guidelines for how to participate.

Community

Have questions or want to connect with the team? Join us on Discord: Discord

A list of organizations using MegaDetector across global conservation work — six years of partnerships, from national parks to research universities to NGOs — is maintained on the microsoft/MegaDetector repository.

[!IMPORTANT]
If you would like to be added to this list or have any questions regarding MegaDetector and PyTorch-Wildlife, please email us or join us in our Discord channel:

About

Maintained by Microsoft AI for Good Lab.

Citation (citation.cff)

cff-version: 1.2.0
title: Microsoft Biodiversity
message: "If you use PyTorch-Wildlife, please cite it using the metadata from this file."
type: software
version: "1.3.0"
date-released: "2026-05-14"
authors:
  - given-names: Andres
    family-names: Hernandez
  - given-names: Zhongqi
    family-names: Miao
  - given-names: Luisa
    family-names: Vargas
  - given-names: Sara
    family-names: Beery
  - given-names: Rahul
    family-names: Dodhia
  - given-names: Juan
    family-names: Lavista
  - name: "Microsoft AI for Good Lab"
identifiers:
  - type: url
    value: "https://arxiv.org/abs/2405.12930"
    description: "Pytorch-Wildlife: A Collaborative Deep Learning Framework for Conservation"
  - type: url
    value: "https://arxiv.org/abs/1907.06772"
    description: "Efficient Pipeline for Camera Trap Image Review"
repository-code: "https://github.com/microsoft/Biodiversity"
url: "https://microsoft.github.io/Biodiversity/"
keywords:
  - PyTorch-Wildlife
  - MegaDetector
  - camera traps
  - wildlife detection
  - animal detection
  - conservation
  - computer vision
  - bioacoustics
  - ai-for-good
license: MIT

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 1 day ago

Total Commits: 3,184
Total Committers: 74
Avg Commits per committer: 43.027
Development Distribution Score (DDS): 0.57

Commits in past year: 96
Committers in past year: 12
Avg Commits per committer in past year: 8.0
Development Distribution Score (DDS) in past year: 0.656

Name Email Commits
Dan Morris d****s@c****u 1368
Marcel Simon a****n@m****m 340
Siyu Yang y****u@m****m 282
amritagupta g****0@g****m 268
zhmiao z****o@m****m 171
Christopher Yeh c****6 169
aa-hernandez 6****z 77
annie.enchakattu a****u@g****m 63
Vardhan Duvvuri G****r@G****g 62
Daniela Ruiz d****1@u****o 55
Isai Daniel 8****8 48
rain-Brian b****n@s****m 33
v-andreshern v****n@m****m 18
Annie Enchakattu 3****u 15
Vardhan duvvuri v****i@g****g 12
Ubuntu l****x@l****t 12
Vardhan Duvvuri v****i@o****m 12
Daniela v****z@m****m 10
Ubuntu f****s@n****t 10
arashno a****h@g****m 10
Patrick Flickinger p****n@m****m 10
Sundar Sripada V. S. s****6@g****m 9
Default User u****r@u****t 7
Daniela Ruiz d****1@d****1@u****o 6
Ubuntu c****e@c****t 6
Ubuntu m****t@m****t 6
Sara Beery s****y@g****m 6
SuhailSaify s****8@g****m 6
dependabot[bot] 4****] 6
Siyu Yang y****7@i****m 5
and 44 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 2
Total pull requests: 7
Average time to close issues: 3 months
Average time to close pull requests: about 1 month
Total issue authors: 1
Total pull request authors: 4
Average comments per issue: 1.5
Average comments per pull request: 0.86
Merged pull request: 4
Bot issues: 0
Bot pull requests: 0

Past year issues: 2
Past year pull requests: 7
Past year average time to close issues: 3 months
Past year average time to close pull requests: about 1 month
Past year issue authors: 1
Past year pull request authors: 4
Past year average comments per issue: 1.5
Past year average comments per pull request: 0.86
Past year merged pull request: 4
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/microsoft/biodiversity

Top Issue Authors

  • podgorki (2)

Top Pull Request Authors

  • rain-Brian (3)
  • podgorki (2)
  • PabloE65 (1)
  • SJogalekar (1)

Top Issue Labels

  • bug (2)

Top Pull Request Labels


Dependencies

Dockerfile docker
  • python 3.8-slim build
PW_FT_classification/requirements.txt pypi
  • absl-py ==2.1.0
  • aiofiles ==23.2.1
  • aiohttp ==3.9.3
  • aiosignal ==1.3.1
  • altair ==5.2.0
  • annotated-types ==0.6.0
  • anyio ==4.2.0
  • asttokens ==2.4.1
  • async-timeout ==4.0.3
  • attrs ==23.2.0
  • backcall ==0.2.0
  • cachetools ==5.3.2
  • certifi ==2023.11.17
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • colorama ==0.4.6
  • contourpy ==1.1.1
  • cycler ==0.12.1
  • decorator ==5.1.1
  • exceptiongroup ==1.2.0
  • executing ==2.0.1
  • fastapi ==0.109.0
  • ffmpy ==0.3.1
  • filelock ==3.13.1
  • fire ==0.5.0
  • fonttools ==4.47.2
  • frozenlist ==1.4.1
  • fsspec ==2023.12.2
  • google-auth ==2.27.0
  • google-auth-oauthlib ==1.0.0
  • gradio ==4.8.0
  • gradio-client ==0.7.1
  • grpcio ==1.60.0
  • h11 ==0.14.0
  • httpcore ==1.0.2
  • httpx ==0.26.0
  • huggingface-hub ==0.20.3
  • idna ==3.6
  • importlib-metadata ==7.0.1
  • importlib-resources ==6.1.1
  • ipython ==8.12.3
  • jedi ==0.19.1
  • jinja2 ==3.1.3
  • joblib ==1.3.2
  • jsonschema ==4.21.1
  • jsonschema-specifications ==2023.12.1
  • kiwisolver ==1.4.5
  • lightning-utilities ==0.10.1
  • markdown ==3.5.2
  • markdown-it-py ==3.0.0
  • markupsafe ==2.1.4
  • matplotlib ==3.7.4
  • matplotlib-inline ==0.1.6
  • mdurl ==0.1.2
  • multidict ==6.0.4
  • munch ==2.5.0
  • numpy ==1.24.4
  • oauthlib ==3.2.2
  • opencv-python ==4.9.0.80
  • opencv-python-headless ==4.9.0.80
  • orjson ==3.9.12
  • packaging ==23.2
  • pandas ==2.0.3
  • parso ==0.8.3
  • pexpect ==4.9.0
  • pickleshare ==0.7.5
  • pillow ==10.1.0
  • pkgutil-resolve-name ==1.3.10
  • prompt-toolkit ==3.0.43
  • protobuf ==3.20.1
  • psutil ==5.9.8
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pyasn1 ==0.5.1
  • pyasn1-modules ==0.3.0
  • pydantic ==2.6.0
  • pydantic-core ==2.16.1
  • pydub ==0.25.1
  • pygments ==2.17.2
  • pyparsing ==3.1.1
  • python-dateutil ==2.8.2
  • python-multipart ==0.0.6
  • pytorch-lightning ==1.9.0
  • pytorchwildlife *
  • pytz ==2023.4
  • pyyaml ==6.0.1
  • referencing ==0.33.0
  • requests ==2.31.0
  • requests-oauthlib ==1.3.1
  • rich ==13.7.0
  • rpds-py ==0.17.1
  • rsa ==4.9
  • scikit-learn ==1.2.0
  • scipy ==1.10.1
  • seaborn ==0.13.2
  • semantic-version ==2.10.0
  • shellingham ==1.5.4
  • six ==1.16.0
  • sniffio ==1.3.0
  • stack-data ==0.6.3
  • starlette ==0.35.1
  • supervision ==0.16.0
  • tensorboard ==2.14.0
  • tensorboard-data-server ==0.7.2
  • termcolor ==2.4.0
  • thop ==0.1.1
  • threadpoolctl ==3.2.0
  • tomlkit ==0.12.0
  • toolz ==0.12.1
  • torch ==1.10.1
  • torchaudio ==0.10.1
  • torchmetrics ==1.3.0.post0
  • torchvision ==0.11.2
  • tqdm ==4.66.1
  • traitlets ==5.14.1
  • typer ==0.9.0
  • typing-extensions ==4.9.0
  • tzdata ==2023.4
  • ultralytics-yolov5 ==0.1.1
  • urllib3 ==2.2.0
  • uvicorn ==0.27.0.post1
  • wcwidth ==0.2.13
  • websockets ==11.0.3
  • werkzeug ==3.0.1
  • yarl ==1.9.4
  • zipp ==3.17.0
PW_FT_detection/requirements.txt pypi
  • PytorchWildlife *
  • munch *
  • ultralytics *
  • wget *
PW_FT_classification/environment.yaml conda
  • _libgcc_mutex 0.1
  • _openmp_mutex 4.5
  • bzip2 1.0.8
  • ca-certificates 2023.11.17
  • ld_impl_linux-64 2.40
  • libffi 3.4.2
  • libgcc-ng 13.2.0
  • libgomp 13.2.0
  • libnsl 2.0.1
  • libsqlite 3.44.2
  • libuuid 2.38.1
  • libxcrypt 4.4.36
  • libzlib 1.2.13
  • ncurses 6.4
  • openssl 3.2.0
  • pip 23.3.2
  • python 3.8.18
  • readline 8.2
  • setuptools 69.0.3
  • tk 8.6.13
  • wheel 0.42.0
  • xz 5.2.6
PW_FT_detection/environment.yaml pypi
  • absl-py ==2.1.0
  • aiofiles ==23.2.1
  • annotated-types ==0.7.0
  • antlr4-python3-runtime ==4.9.3
  • anyio ==4.6.0
  • appdirs ==1.4.4
  • asttokens ==2.4.1
  • attrs ==24.2.0
  • certifi ==2024.8.30
  • cffi ==1.17.1
  • chardet ==5.2.0
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • contourpy ==1.3.0
  • crowsetta ==5.1.0
  • cycler ==0.12.1
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • exceptiongroup ==1.2.2
  • executing ==2.1.0
  • fastapi ==0.115.0
  • ffmpy ==0.4.0
  • filelock ==3.16.1
  • fire ==0.6.0
  • fonttools ==4.54.0
  • fsspec ==2024.9.0
  • gradio ==4.44.0
  • gradio-client ==1.3.0
  • grpcio ==1.66.1
  • h11 ==0.14.0
  • httpcore ==1.0.5
  • httpx ==0.27.2
  • huggingface-hub ==0.25.1
  • idna ==3.10
  • importlib-resources ==6.4.5
  • ipython ==8.27.0
  • jedi ==0.19.1
  • jinja2 ==3.1.4
  • joblib ==1.4.2
  • kiwisolver ==1.4.7
  • markdown ==3.7
  • markdown-it-py ==3.0.0
  • markupsafe ==2.1.5
  • matplotlib ==3.9.2
  • matplotlib-inline ==0.1.7
  • mdurl ==0.1.2
  • mpmath ==1.3.0
  • multimethod ==1.12
  • munch ==4.0.0
  • mypy-extensions ==1.0.0
  • networkx ==3.3
  • numpy ==1.26.4
  • nvidia-cublas-cu12 ==12.1.3.1
  • nvidia-cuda-cupti-cu12 ==12.1.105
  • nvidia-cuda-nvrtc-cu12 ==12.1.105
  • nvidia-cuda-runtime-cu12 ==12.1.105
  • nvidia-cudnn-cu12 ==9.1.0.70
  • nvidia-cufft-cu12 ==11.0.2.54
  • nvidia-curand-cu12 ==10.3.2.106
  • nvidia-cusolver-cu12 ==11.4.5.107
  • nvidia-cusparse-cu12 ==12.1.0.106
  • nvidia-nccl-cu12 ==2.20.5
  • nvidia-nvjitlink-cu12 ==12.6.68
  • nvidia-nvtx-cu12 ==12.1.105
  • omegaconf ==2.3.0
  • opencv-python ==4.10.0.84
  • opencv-python-headless ==4.10.0.84
  • orjson ==3.10.7
  • packaging ==24.1
  • pandas ==2.2.3
  • pandera ==0.21.0
  • parso ==0.8.4
  • pexpect ==4.9.0
  • pillow ==10.4.0
  • prompt-toolkit ==3.0.47
  • protobuf ==3.20.1
  • psutil ==6.0.0
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.3
  • py-cpuinfo ==9.0.0
  • pycparser ==2.22
  • pydantic ==2.9.2
  • pydantic-core ==2.23.4
  • pydub ==0.25.1
  • pygments ==2.18.0
  • pyparsing ==3.1.4
  • python-dateutil ==2.9.0.post0
  • python-multipart ==0.0.10
  • pytorchwildlife *
  • pytz ==2024.2
  • pyyaml ==6.0.2
  • requests ==2.32.3
  • rich ==13.8.1
  • ruff ==0.6.7
  • scikit-learn ==1.6.0
  • scipy ==1.14.1
  • seaborn ==0.13.2
  • semantic-version ==2.10.0
  • setuptools ==75.6.0
  • shellingham ==1.5.4
  • six ==1.16.0
  • sniffio ==1.3.1
  • soundfile ==0.12.1
  • stack-data ==0.6.3
  • starlette ==0.38.6
  • supervision ==0.23.0
  • sympy ==1.13.3
  • tensorboard ==2.17.1
  • tensorboard-data-server ==0.7.2
  • termcolor ==2.4.0
  • thop ==0.1.1
  • threadpoolctl ==3.5.0
  • tomlkit ==0.12.0
  • torch ==2.4.1
  • torchaudio ==2.4.1
  • torchvision ==0.19.1
  • tqdm ==4.66.5
  • traitlets ==5.14.3
  • triton ==3.0.0
  • typeguard ==4.4.1
  • typer ==0.12.5
  • typing-extensions ==4.12.2
  • typing-inspect ==0.9.0
  • tzdata ==2024.2
  • ultralytics ==8.2.100
  • ultralytics-thop ==2.0.8
  • ultralytics-yolov5 ==0.1.1
  • urllib3 ==2.2.3
  • uvicorn ==0.30.6
  • wcwidth ==0.2.13
  • websockets ==12.0
  • werkzeug ==3.0.4
  • wget ==3.2
  • wrapt ==1.17.0
requirements.txt pypi
  • Pillow *
  • chardet *
  • gradio *
  • mkdocs *
  • mkdocs-get-deps *
  • mkdocs-material *
  • mkdocs-material-extensions *
  • mkdocstrings *
  • mkdocstrings-python *
  • pymdown-extensions *
  • scikit-learn *
  • setuptools *
  • supervision ==0.23.0
  • timm *
  • torch *
  • torchaudio *
  • torchvision *
  • tqdm *
  • ultralytics *
  • wget *
  • yolov5 *
setup.py pypi
  • Pillow *
  • chardet *
  • gradio *
  • scikit-learn *
  • setuptools *
  • supervision ==0.23.0
  • timm *
  • torch *
  • torchaudio *
  • torchvision *
  • tqdm *
  • ultralytics *
  • wget *
  • yolov5 *

Score: 11.252002161819139