Skip to content

Latest commit

 

History

History

README.md

FilterForward

Run

In order to run FilterForward, you need the following:

  1. A base neural network (e.g., MobileNet), in Caffe, to generate feature vectors
  2. A microclassifier (MC) (lightweight binary classifier), in TensorFlow, which takes a feature vector as input
  3. A FilterForward configuration file

Generating the microclassifiers

A microclassifier is a binary classifier which takes as input a feature vector consisting of a rectangular crop of the rows/columns of the activations generated by the base neural network. The output of the microclassifier should be a probability between 0 and 1

A microclassifier has the same constraints as any other TensorFlow model used in SAF in that it should be a "frozen" graph (with the weights and architecture in same file).

Creating the FilterForward configuration file

Each line in the FilterForward configuration file should either be:

  1. A comment prefixed by the character "#"
  2. A comma-separated list indicating the configuration a single microclassifier (see below)

Each non-comment row appends an additional layer to the hierarchy, and is defined by the following column format:

  1. Number of copies of this MC to run
  2. Layer to extract from the base DNN
  3. Feature crop x-min
  4. Feature crop y-min
  5. Feature crop x-max
  6. Feature crop y-max
  7. Path to MC model file
  8. Name of MC input layer
  9. Name of MC output layer
  10. Dimension of MC output layer
  11. MC threshold
  12. K-voting K
  13. IFF max buffer length
  14. IFF timeout

Sample call

filterforward --config-dir <path to config dir> --ff-conf <path to FilterForward config file> --model <name of base DNN> --fields <fields to backhaul> --output-dir <path to output dir> --camera <name of camera>

Run filterforward -h to see additional options, such as neural network batch size.