jAudioFeatureExtractor.Aggregators
Class AreaMoments

java.lang.Object
  extended by jAudioFeatureExtractor.Aggregators.Aggregator
      extended by jAudioFeatureExtractor.Aggregators.AreaMoments

public class AreaMoments
extends Aggregator

Area Method of Moments Aggregator

Algorithm Description

This specific aggregator was originally intended to be the first 10 statistical moments of a 2D area. This algorithm was first used in graphic machine learning by Fujinaga in 1998. Its first use in digital signal processing is in McEnnis and Fujinaga 2005.

It is a specific feature as the effectiveness of the resulting features is heavily dependent on the importance of the feature ordering.

Algorithm History

The algorithm treats the image as a 2D function f(x,y) = z where x and y are indecis of the underlying matrix. The order of x and y is increased together from order 0 to order 3, caluclated with a coeefcient calculated by the binomial of the x and y order.

The original DSP version is a collaborative effort between the author of the code and Ichiro Fujinaga.

Fujinaga, I. Adaptive Optical Music Recognition. PhD thesis, McGill University, 1997.

Code utilizes the Colt matrix package available under either LGPL or BSD license. See Colt's online documentation for more details.

Author:
Daniel McEnnis

Field Summary
 
Fields inherited from class jAudioFeatureExtractor.Aggregators.Aggregator
LINE_SEP
 
Constructor Summary
AreaMoments()
          Constructs an AreaMoments aggregator.
 
Method Summary
 void aggregate(double[][][] values)
          Aggregates the values of the features specified by the init function accross all windows of the data recieved.
 java.lang.Object clone()
          Create a new aggregator of the same class
 FeatureDefinition getFeatureDefinition()
          Description of a particular instantiation of an aggregate.
 java.lang.String[] getFeaturesToApply()
          Provide a list of features that are to be aggregated by this feature.
 void init(int[] featureIndecis)
          Specifies which Features are to be extracted and the index of these features in the values array that will passed into the aggregate function
 void setParameters(java.lang.String[] featureNames, java.lang.String[] params)
          Set parameters of the aggregator to the given values.
 
Methods inherited from class jAudioFeatureExtractor.Aggregators.Aggregator
calculateOffset, collapseFeatures, getAggregatorDefinition, getParamaters, getResults, outputACEFeatureKeyEntries, outputACEValueEntries, outputARFFHeaderEntries, outputARFFValueEntries, setSource
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AreaMoments

public AreaMoments()
Constructs an AreaMoments aggregator. This isn't valid until specific features are adde to the system (in a particular order).

Method Detail

aggregate

public void aggregate(double[][][] values)
Description copied from class: Aggregator
Aggregates the values of the features specified by the init function accross all windows of the data recieved.

Overrides:
aggregate in class Aggregator
Parameters:
values - complete array of the extracted features. Indecis are window, feature, and then feature value.

clone

public java.lang.Object clone()
Description copied from class: Aggregator
Create a new aggregator of the same class

Overrides:
clone in class Aggregator

getFeatureDefinition

public FeatureDefinition getFeatureDefinition()
Description copied from class: Aggregator
Description of a particular instantiation of an aggregate. This should not be called until after the specific features have been specified by the init function.

Overrides:
getFeatureDefinition in class Aggregator
Returns:
Feature Definition describing this instantiation of this aggregate object

getFeaturesToApply

public java.lang.String[] getFeaturesToApply()
Description copied from class: Aggregator
Provide a list of features that are to be aggregated by this feature. Returning null indicates that this aggregator accepts only one feature and every feature avaiable should be used.

Overrides:
getFeaturesToApply in class Aggregator
Returns:
list of features to be used by this aggregator or null

init

public void init(int[] featureIndecis)
          throws java.lang.Exception
Description copied from class: Aggregator
Specifies which Features are to be extracted and the index of these features in the values array that will passed into the aggregate function

Overrides:
init in class Aggregator
Parameters:
featureIndecis - Indecis of these features in the array passed in aggregate
Throws:
java.lang.Exception - if either parameter is null, of dicffering lengths, or contain invalid index values.

setParameters

public void setParameters(java.lang.String[] featureNames,
                          java.lang.String[] params)
                   throws java.lang.Exception
Description copied from class: Aggregator
Set parameters of the aggregator to the given values. For specific aggregators, the feature list is non-null and references currently loaded features. Throws exception if the feature list is null or contains invalid entries only if the aggregator is specific. Otherwise it is ignored. If the number of given parameters is greater (but not neccessarily less) than the number of actual paramaters, or if the parameters are in the wrong format, an aggregator that uses parameters may throw an exception. Both null and zero length array imply no parameters, but only null guarantees an exception if a parameter is present.

Overrides:
setParameters in class Aggregator
Parameters:
featureNames - strings matching features for specific aggregation.
params - strings that can be cast by toString to the appropriate parameter types.
Throws:
java.lang.Exception