Detection, Classification, and Localisation of marine mammal and other bioacoustic signals

Overview

This is the main code repository for the PAMGuard software.

This repository was created on 7 January 2022 from sourceforge SVN repository at https://sourceforge.net/p/pamguard/svn/HEAD/tree/ revision r6278.

If you are a PAMGuard developer, you should clone and branch this repository and share with any collaborators in your own workspace. When your work is ready, contact the PAMGuard team to have your changes merged back into this repo.

Comments
  • Migrating from SVN to Git

    Migrating from SVN to Git

    @douggillespie I've noticed that you've put this on GitHub - this is great! just to add that it's also possible to migrate from SVN to Git and keep all past history of revisions in one repository. Since your SVN repository is public, I don't see a reason why not to do this. Instructions are e.g. at https://git-scm.com/book/en/v2/Git-and-Other-Systems-Migrating-to-Git and we can try this before many things happening here.

    opened by alex-konovalov 2
  • Offline analysis and viewer memory leak

    Offline analysis and viewer memory leak

    The new(ish) background datablocks attached to 'normal' datablocks were not getting their data cleared when the main datablock data were cleared, so were accumulating too much data and bring the system down through lack of memory.

    opened by douggillespie 1
  • Recent versions of Pamguard crash or go painfully slow when processing lots of wav files

    Recent versions of Pamguard crash or go painfully slow when processing lots of wav files

    Hi,

    I don't have much time to work on Pamguard code these days, but do have enough time to file a bug-report/feature regression.

    I'm no longer able to effectively process large folders of wav files using the attached psf (spectrogram, Ishmael spectrogram correlation detectors, sqlite database). In 2.02.02 Pamguard just crashes hard and all windows dissapear, and the log (attached) provides no indication of what is going on. In 2.02.05 the log includes more detail, and pamguard manages to avoid a crash, but after about 1000 files starts running extremely slowly.

    The last known good version of Pamguard where I could successfully complete this task was 2.02.00 (r5437).

    Cheers, Brian PamguardLogs.zip kerguelen2015_fullYear_Bm-Ant-ABZ_SpectroCorrelation_250Hz.zip

    opened by BrianSMiller 1
  • ROCCA Memory leak

    ROCCA Memory leak

    when unable to find raw data for a whistle, ROCCA would double the raw data keep time. Since it regularly can't find this data at the end of the file (e.g. when threading causes a whistle to arrive after the raw data are cleaned up) the keep time kept doubling until the memory usage of the raw datablock would kill PAMGuard. I've now hard limited this to 15 minutes, which is loads more than should ever be needed. A similar problem occurred in the Ishmael Localiser.

    opened by douggillespie 1
  • Datamap not updating after SoundTrap click import

    Datamap not updating after SoundTrap click import

    The datamap does not update after SoundTrap clicks have been imported. Need to add PamController.getInstance().updateDataMap() to the DWVConvertObserver at line 402 ImportBCLDialog....?

    opened by macster110 1
  • Logger forms data not plotting

    Logger forms data not plotting

    Logger forms data were not plotting correctly. This was due to the required data selection functions not being fully implemented. This is now fixed and it should be possible to select what to plot based on selections from drop down lists within any form.

    opened by douggillespie 1
  • Fix issue #88, run nothing mode return moved, whistle binary data source updated.

    Fix issue #88, run nothing mode return moved, whistle binary data source updated.

    Quick fix to issue #88, allow processes to setup in run nothing mode, and allow base unit data to apply for superceded versions of whistle moan detections. Error in merging caused classpath to change with same content.

    opened by stabbutt 0
  • ClickDetection version 1 localization not applied in Viewer Mode

    ClickDetection version 1 localization not applied in Viewer Mode

    Click localization never applied to superceded ClickDetector data unit (module version 1) containing TDOA data in viewer mode. Not checked on other superceded module versions.

    opened by stabbutt 0
  • updates to Rocca module

    updates to Rocca module

    updates to Rocca module - fix memory leak issue where RoccaContourDataBlocks being created in RoccaProcess were not being released for garbage collection

    opened by m2oswald 0
  • small updates to Rocca

    small updates to Rocca

    These are just a few small updates to Rocca, for the next release. I had to update the .classpath to point to my jre and thought that I had NOT committed the change back to git but... there it is. So don't bother merging that one.

    opened by m2oswald 0
  • Added sud file capability

    Added sud file capability

    • Rewrote acoustic file management in PAMGuard. Reading audio files is now accessed from one class - pamAudio.PamAudioFileManager.java. PamAudioSystem.java is now deprecated.

    • Added a sud file capability to PAMGuard. Most of the changes are in a new version of the X3 library (added to Maven repo folder ). All sud file capability can be disabled by commenting out line 49 of PamAudioSystem.

    opened by macster110 0
  • Non chronological order processing wav files.

    Non chronological order processing wav files.

    Report by Brian Miller.

    The behaviour of the Files and Folders Acquisition behaves very differently depending on weather I select just the folder name from the dialog, or whether I navigate into the folder and select all the files within within it. If I select all the files within the folder, then the behaviour seems to be consistent with prior versions of Pamguard, and the files are sorted by time/alphabetically and analysed in chronological order by the timestamp within the file name. If I select the just the folder, then the data appears to be analysed in random (non-chronological nor alphabetical) order. This random order happens regardless of whether I have checked the “Merge continuous files” checkbox or not. For my datasets, I’m not treating the files as continuous anyway – since for my instruments the filename timestamps use the more precise clock than the one in the A/D converter. But for someone who wants contiguous files merged this would likely be a problematic bug.

    opened by macster110 0
  • Fixes to Issue #63 and #61

    Fixes to Issue #63 and #61

    These Bugs were found during the Canada DeepAL Expedition 2022.

    These small fixes were necessary to use Animal-Spot and the Bearing Calculator. @macster110 The Bearing Calculator fixes from 3 years ago are no longer necessarie on Windows. Could you kindly check it on mac?

    opened by Hauechri 0
  • The Advanced Settings Panel for the RawDeepLearningClassifier crashes

    The Advanced Settings Panel for the RawDeepLearningClassifier crashes

    I unfortunately cannot pinpoint the exact reason why it crashes, it doesn't log anything on the console, but instead crashed to windows with a Java(TM) Platform SE binary is unresponsive error.

    opened by Hauechri 1
  • Hardware-Software-Channel configuration doesn't apply to bearing calculator

    Hardware-Software-Channel configuration doesn't apply to bearing calculator

    if you skip a hydrophone in the configuration, it is not skipped in the bearing calculator. For example, if I have 8 hydrophones and want to localize on 0,1,2,4,5,6,7 and skip 3 using the Hardware-Software-Channels the bearing calculator uses the positions of 0,1,2,3,4,5,6

    opened by Hauechri 0
  • Bug in SoundSpotClassifier, GenericDLClassifier, and KetosClassifier

    Bug in SoundSpotClassifier, GenericDLClassifier, and KetosClassifier

    private function and an overwritten function with the same name and parameters.

    @Override public void newResult(GenericPrediction modelResult, GroupedRawData groupedRawData) { modelResult.setClassNameID(getClassNameIDs(genericModelParams)); modelResult.setBinaryClassification(isBinaryResult(modelResult, genericModelParams)); newResult(modelResult, groupedRawData); }

    The problem is that both functions are ambiguous, which means that in my case, newResult was calling itself endlessly. To fix this, the private function must be renamed.

    opened by Hauechri 0
Releases(V2.02.06c)
  • V2.02.06c(Dec 20, 2022)

  • V2.02.05(Oct 28, 2022)

    Version 2.02.05 October 2022 Click Train Detector Features and Bug Fixes Features Changes to GUI to make dialog shorter for low DPI screens. Complete rewrite of the classification system to have nested classifiers which can be enabled or disabled. Changes to classification GUI to accommodate the new classification system. Addition of data selectors to the minimum number of clicks accepted by the classifier. This allows the click-by-click classifier and the click train detector to be used to together to improve classification accuracy. Bug fixes Click detection bug fix in kernel which improved click fragmentation. Bug fix to database were JSON data from classifier was being trimmed. Documentation Comprehensive help file including description of the algorithm, screen grabs and examples.

    Other Features Help documentation for Backup Manager Help documentation for Matched Click Classifier Database logging of offline tasks (such as click re-classification, bearing calculation, etc.) Data selector for Whistle Classifier module Variable sound output level when using National Instruments devices for sound playback. Speed improvement when processing flac audio files. Bug Fixes Soundtrap DWV import. Will now generate binary files even if DWV file doesn’t exist (which is correct behavior in quiet conditions when no clicks were detected). Spectrogram. Changes to stop occasional crashing when restarting processing of wav files. Sizing of dialogs on ultra high definition monitors so that data fields are sized correctly. Fixed a memory leak in ROCCA Fixed issues with options in Click Detector bearing time display which (when using planar and 3D arrays) allow you to plot relative to the array, the vessel, or North.

    Source code(tar.gz)
    Source code(zip)
  • V2.02.03(Feb 8, 2022)

    Version 2.02.03 February 2022

    Some minor bug fixes following our migration to GitHub. Note that the older Bug numbers only refer to bugs reported on the SVN site. New bugs and issues are logged on GitHub at https://github.com/PAMGuard/PAMGuard/issues. GitHub issue number are referred to with a # symbol

    #6 Threading Hydrophone Locator: was not working correctly in the latest release V2.02.02. The problem was particularly apparent in Viewer mode but may have given false array locations in normal mode under some circumstances. This has been fixed

    #11 Matched Click Classifier: fixed bug which caused crash running in real time. Added template names based on file names.

    #13 Merging files when offline processing file folders: Had an error introduced in last release which caused it to fail to recognise gaps between files, meaning that some output data (i.e. after a gap) would have an incorrect time stamp. This did not affect data if the ‘merge contiguous files’ option was not selected.

    #14 Logger forms data were not plotting correctly. This was due to the required data selection functions not being fully implemented. This is now fixed and it should be possible to select what to plot based on selections from drop down lists within any form.

    Source code(tar.gz)
    Source code(zip)
Owner
PAMGuard
Detection, Classification, and Localisation of marine mammal sounds
PAMGuard
MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

MALLET is a Java-based package for statistical natural language processing, document classification, clustering, topic modeling, information extraction, and other machine learning applications to text.

null 900 Jan 2, 2023
👄 The most accurate natural language detection library for Java and the JVM, suitable for long and short text alike

Quick Info this library tries to solve language detection of very short words and phrases, even shorter than tweets makes use of both statistical and

Peter M. Stahl 532 Dec 28, 2022
On-device wake word detection powered by deep learning.

Porcupine Made in Vancouver, Canada by Picovoice Porcupine is a highly-accurate and lightweight wake word engine. It enables building always-listening

Picovoice 2.8k Dec 30, 2022
Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Reference implementation for MINAS (MultI-class learNing Algorithm for data Streams), an algorithm to address novelty detection in data streams multi-class problems.

Douglas M. Cavalcanti 4 Sep 7, 2022
TensorFlow Lite Object Detection Android Demo

GSoC Project 2021 - TensorFlow Description This repository contains the project where I contributed to the TensorFlow Team during GSoC in the year 202

Sayan Nath 6 Dec 31, 2022
Bazel training materials and codelabs focused on beginner, advanced and contributor learning paths

Bazel-learning-paths This repo has materials for learning Bazel: codelabs, presentations, examples. We are open sourcing the content for training engi

null 18 Nov 14, 2022
This repository holds the famous Data Structures (mostly abstract ones) and Algorithms for sorting, traversing, and modifying them.

Data-Structures-and-Algorithms About Repo The repo contains the algorithms for manipulating the abstract data structures like Linked List, Stacks, Que

Zaid Ahmed 14 Dec 26, 2021
Stream Processing and Complex Event Processing Engine

Siddhi Core Libraries Siddhi is a cloud native Streaming and Complex Event Processing engine that understands Streaming SQL queries in order to captur

Siddhi - Cloud Native Stream Processor 1.4k Jan 6, 2023
Model import deployment framework for retraining models (pytorch, tensorflow,keras) deploying in JVM Micro service environments, mobile devices, iot, and Apache Spark

The Eclipse Deeplearning4J (DL4J) ecosystem is a set of projects intended to support all the needs of a JVM based deep learning application. This mean

Eclipse Foundation 12.7k Dec 30, 2022
Datumbox is an open-source Machine Learning framework written in Java which allows the rapid development of Machine Learning and Statistical applications.

Datumbox Machine Learning Framework The Datumbox Machine Learning Framework is an open-source framework written in Java which allows the rapid develop

Vasilis Vryniotis 1.1k Dec 9, 2022
java deep learning algorithms and deep neural networks with gpu acceleration

Deep Neural Networks with GPU support Update This is a newer version of the framework, that I developed while working at ExB Research. Currently, you

Ivan Vasilev 1.2k Jan 6, 2023
statistics, data mining and machine learning toolbox

Disambiguation (Italian dictionary) Field of turnips. It is also a place where there is confusion, where tricks and sims are plotted. (Computer scienc

Aurelian Tutuianu 63 Jun 11, 2022
SparkFE is the LLVM-based and high-performance Spark native execution engine which is designed for feature engineering.

Spark has rapidly emerged as the de facto standard for big data processing. However, it is not designed for machine learning which has more and more limitation in AI scenarios. SparkFE rewrite the execution engine in C++ and achieve more than 6x performance improvement for feature extraction. It guarantees the online-offline consistency which makes AI landing much easier. For further details, please refer to SparkFE Documentation.

4Paradigm 67 Jun 10, 2021
A Common Criteria (CC) and FIDO certified FIDO U2F javacard applet.

de.fac2 - FIDO U2F Authenticator Applet v1.34 de.fac2 is a Javacard applet which implements a Fido U2F token. It was designed and implemented based on

Bundesamt für Sicherheit in der Informationstechnik 19 Nov 20, 2022
CompreFace is a free and open-source face recognition system from Exadel

CompreFace can be easily integrated into any system without prior machine learning skills. CompreFace provides REST API for face recognition, face verification, face detection, landmark detection, age, and gender recognition and is easily deployed with docker

Exadel 2.6k Dec 31, 2022