Giter VIP home page Giter VIP logo

joshuacwnewton / swiftwatcher Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 49.9 MB

An application for tracking the behaviour of migratory chimney swifts in video footage using computer vision

License: GNU General Public License v3.0

Python 100.00%
computer-vision computer-vision-algorithms computer-vision-tools segmentation object-tracking chimney-swifts video-analysis swift-classification birds motion-detection

swiftwatcher's Introduction

Note: This project was created as part of a student internship during my undergraduate degree. This project is not actively maintained. All assets are provided as-is.

swiftwatcher

A collaboration between the University of Victoria's Computer Vision Lab and Algoma SwiftWatch

swiftwatcher is a open-source tool written in Python which automatically counts chimney swifts in video files (so you don't have to!) It uses ideas from the field of computer vision to locate and track birds within a video's frames, and detect when a bird has entered a chimney.

Getting Started

Swiftwatcher is provided as a single executable file which can be run by itself. This file can be downloaded from the Releases page, found here.

Each release on the Releases page has an "Assets" section containing compressed archives for both Linux and Windows operating systems. These archives are named win or linux, and contain swiftwatcher executable files.

Usage Instructions

Once you have downloaded the file corresponding to your operating system, please follow these steps to use swiftwatcher:

  1. Extract and run the program you downloaded from the Releases page.
    • Linux: swiftwatcher can be run from the command line by typing

      ./swiftwatcher

    • Windows: swiftwatcher can be run by double-clicking it, or from the command line by typing

      swiftwatcher.exe

  2. You will be prompted to select the video files you wish to analyse. Hold shift + click to select multiple videos.
  3. Once all videos have been selected and confirmed, you will be prompted to decide whether or not to re-use the chimney that was identified in the first video. (Use this option if the chimney position does not change across all videos you wish to analyse.)
  4. If the file(s) you selected are valid video files, you will then be shown a frame from the first video, and prompted to select the two corners which represent the chimney in the video. When two points are selected, you can proceed with the 'y' key or select again with the 'n' key. If there are more chimneys to define, this process will repeat.
  5. When the chimney has been identified for all videos, the application will begin to process them to look for swifts.

This process can be viewed in the demonstration below.

Results will be outputted to a folder of the same name as the video file. Within this folder, you will find .csv files in a number of different time formats. Each .csv file contains three columns:

  • TMSTAMP: The in-video timestamp corresponding to the counted swifts.
  • PREDICTED: What the application counts as a swift entering the chimney.
  • REJECTED: A potential event that did not meet the necessary criteria to be counted.

Counts are only determined from PREDICTED swifts, but REJECTED counts are included for transparency.

Links

A research paper which describes the theoretical ideas behind the approach can be found at this link

License

This project is licensed under the GNU General Public License v3.0. To view the text version of this license, please refer to the LICENSE file included in this project's repository.

swiftwatcher's People

Contributors

dependabot[bot] avatar joshuacwnewton avatar

Watchers

 avatar

Forkers

kiara0629

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.