Giter Club home page Giter Club logo

gmphd's Introduction

                   ======================================
                                   gmphd
                   GM-PHD filter implementation in python
                              by Dan Stowell
                   ======================================

This is a Python implementation of the Gaussian mixture PHD filter
(probability hypothesis density filter) described in:

B. N. Vo and W. K. Ma. The gaussian mixture probability hypothesis density filter. 
   IEEE Transactions on Signal Processing, 54(11):4091--4104, 2006.
   DOI: 10.1109/TSP.2006.881190

It requires Numpy, and the demo scripts require matplotlib.
Tested with Python 2.7.

This implementation was developed as part of the following research:

D. Stowell and M. D. Plumbley, Multi-target pitch tracking of vibrato sources in
   noise using the GM-PHD filter. In: Proceedings of Proceedings of the 5th
   International Workshop on Machine Learning and Music (MML12), July 2012.
   http://c4dm.eecs.qmul.ac.uk/papers/2012/StowellPlumbley2012mml.pdf

The figures in that paper were produced by running the following commands:

* Fig 1: `python syntheticexample.py`
* Fig 2: `python syntheticroc.py`

DIFFERENCES FROM VO & MA
========================

There are some differences from the GM-PHD algorithm described in Vo & Ma's paper:

* I have not implemented "spawning" of new targets from old ones, since I don't 
  need it. It would be straightforward to add it - see the original paper.

* Weights are adjusted at the end of pruning, so that pruning doesn't affect
  the total weight allocation.

* I provide an alternative approach to state-extraction (an alternative to
  Table 3 in the original paper) which makes use of the integral to decide how
  many states to extract.


USAGE
=====

The file "syntheticexample.py" is a python script which runs the filter over a
synthetic randomly-generated scene, in which objects have 3D state and generate
chirp-like observations. I suggest you start by looking at that script. But
for a quick look at the API here's a very simple bit of python:

from gmphd import *
g = Gmphd([GmphdComponent(1, [100], [[10]])], 0.9, 0.9, [[1]], [[1]], [[1]], [[1]], 0.000002)
g.update([[30], [67.5]])
g.gmmplot1d()
g.prune()
g.gmmplot1d()


LICENCE
=======

(c) 2012 Dan Stowell and Queen Mary University of London.
All rights reserved.

    gmphd is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    gmphd is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with gmphd.  If not, see <http://www.gnu.org/licenses/>.

gmphd's People

Contributors

danstowell avatar

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.