CERT Plugins

Most of the processing in CERT is done by plugins. Facial features (eyes, nose, mouth), AU's, smiles, blinks, etc. are all handled by plugins. There are also plugins that use the results of other plugins to do further procesing or send the data to outside applications, etc.

Installing Plugins

CERT Plugins are packaged in folders with a filename extension of '.bundle'. They can be installed in two different ways.

Application Support folders

One way is to put the plugin in one of two different Application support folders. They are /Library/Application Support/MPLab/PlugIns/ and ~/Library/Application Support/MPLab/PlugIns/. Plugins installed in the first location will be available to anyone using the computer. The tilde ('~') in the second location is short hand for the current user's home directory. Plugins installed in an individual user's Application Support folder will only be available to that user.

Inside the CERT application

The second method of installing plugins is to install them inside the CERT application itself. There are two different ways of accomplishing this.
  1. Click on the CERT icon in the Finder and choose the 'Get Info...' menu item (Command-I).
  2. Open the Plug-ins: section of the CERT Info window.
  3. Click the 'Add...' button
  4. Navigate the open panel to find the plugin you wish to add
  5. Click the 'Choose' button.

Plugins can also be removed using the Info window: select a plugin from the list and click the 'Remove...' button.

Plugins can be enabled or disabled by clicking the checkbox next to it's name. Disabling a plugin this way prevents it from being loaded by CERT.

The other way plugins can be installed inside the CERT application is by manually moving plugin bundles to the Plugins folder inside the CERT application.
  1. Control-Click on the CERT icon in the Finder and choose the 'Show Package Contents' menu item.
  2. Open the the Contents folder in the new window.
  3. Open the Plugins folder inside the Contents folder.
  4. Copy or move plugin bundles into the Plugins folder.
  5. Plugins can also be removed from this folder to prevent them from being loaded.

Changes made using any of these methods do not take effect until the next time CERT is launched, so if the application is already running then the changes will have no effect on the current session. Quit then restart CERT to have the changes take effect.

Plugin Preferences

The Preferences window can be accessed with the 'Preferences...' menu item of the CERT menu. The Plugins pane of the Preferences window has a list of all installed plugins. The plugin list shows the name of each plugin, what type of plugin it is, the version number for the plugin itself, and whether it is enabled or disabled.

Each plugin can be enabled or disabled using the checkbox next to its name. Enabling or disabling plugins here takes effect immediately, even if CERT is currently processing images or video. There is also a Plugins menu that can be used to enable or disable plugins (all at once, or individually).

Some plugins have additional preference choices that are shown when the plugin is selected in the list. See the Rubios plugin, for example.

Plugin Types

There are multiple different types of plugins, each of which is handled differently by CERT. For the most part, users won't need to know the difference, but here is an overview.

Individual Plugins

Rubios

The Rubios plugin sends the output of the other plugins to a RUBIOS server. Selecting the Rubios plugin in the list of plugins in the Preference window will show the controls needed for connecting to a RUBIOS server:
  • Server and port number, is the address of the RUBIOS server.
  • Robot name is used to distinguish between different robots that may be running on the same server.
  • Output nodes, determines which other nodes will receive CERT messages.
  • Node name is the name this sessions of CERT will use when sending data.
  • Password is needed to authenticate this node with the server.
  • Connection status is show below the preference fields.
  • At the bottom are two buttons for connecting to and disconnecting from the server.

The "Include data labels in output" checkbox determines if data is sent in a simple tab delimited format, or if we include a label before each piece of data. Without labels it may be difficult for receiving nodes to know what each data field means. One example of each:

With labels:

CERT 1204328169968 'Nose' = {315.819, 281.287}; 'Left Eye' = {353.736, 242.731}; 'Smile Detector' = -5.6449871063232422; 'Mouth' = {314.565, 329.55}; 'Right Eye' = {279.954, 240.802}; '(MLR) Fear Brow' = -0.54688237694572095; '(layer 1) Fear Brow' = -3.2273836920235963; '(layer 1) Distress' = -2.2337426411312071; '(MLR) Distress' = -0.47751600837465147; 'FaceFinder' = {x:240, y:201, width:168, height:168, scale:6};

Without labels:

CERT 1204328170890 {316.037, 281.243} {354.258, 243.166} -5.1044440269470215 {314.478, 329.289} {279.693, 240.498} -0.51696932353518532 -3.1355334515557614 -2.3005587592080285 -0.46817462292199141 {x:238, y:199, width:168, height:168, scale:6}

Changing which plugins are enabled during a session can cause null values to be sent to RUBIOS.

If the Rubios plugin was connected to a server when the CERT application is quit, then it will automatically attempt to re-connect the next time CERT is launched.

FaceFinder

The FaceFinder is a built-in plugin that can't be removed or disabled. It only shows up in output that includes plugin labels. See the example data from the Rubios plugin.

Patch Generator

As part of CERT's normal processing a face is found, rotated to a normal vertical position and cropped. Most later processing happens on the face patch, rather than the full image. The face patches can be saved as individual image files as they are generated. Enable the Patch Generator plugin, then choose a folder and an output file format in the Patch Generator's preference pane.

Most of the output formats are standard image types, but the RImage format is the same format that CERT uses internally for handling images. This is a simple, uncompressed file format.

Feature Averaging

If either of the Unconstrained Least Squares or Procrustes Face Alignment Methods are selected in the General Preferences pane then four features are used to rotate and crop faces. By default those four features are the Left Eye, Right Eye, Mouth and Nose (called "slots"). Using the Feature Averaging plugin it is possible to substitute one or more other features for the four original ones.

The Feature Averaging preference pane contains two tables and one button. The table on the left contains one entry for each of the "slots". The right hand table contains a list of all of the feature plugins currently installed in CERT (whether enabled or not). For each of the slots, one or more feature's can be averaged together by clicking on the slot name, then turning on the checkbox next to the feature's name in the right hand list.

If any required features (features that have been checked in the right hand table) are not currently enabled, then the "Enable Required Features" button will become active. Clicking that button will enable all of the required plugins. This could take some time.