New features in CERT 3.3.10 The class MP_CERT_Public has two new methods that can increase the speed at which CERT runs. Specifically the face finding step. The easiest method to use is: void setSequential( bool seq ); Call this method with an argument of 'true' when the images you are running are part of a sequence, i.e. video or sequential frames from video. This causes the face finder to use the location of the previous found face to start the search for a face in the current image. In some cases this can provide up to a two fold increase in speed. Limited testing has shown that setting the sequential flag to true does not cause any appreciable effect even when images do not form a sequence, however this could vary depending on the images. The second method is: void setFaceEstimate( int x, int y, int size, int scale ); This method can be used if there is prior knowledge of where a face might be found in an image. For example, if an external face finder has already found a face in the image. x and y the top left coordinates of the square bounding the face. size is both width and height (if they differ, choosing the larger of the two is probably better). Scale is currently not used and can be set to zero. Calling this method implicitly sets the sequential flag to true. New Features in CERT 4.x A new class, CERT_Arguments, parses and checks the command line arguments passed into CERT. CERT_Arguments is then used by other pieces of CERT that need to know the value of one or more arguments. It's basic use is show in main.cpp. There is also a new class, CERT_Config, that parses and manages a configuration file. This file manages plugins, enabling or disabling them as well as managing other flags and switches and providing some types of data. One example of data the config file might contain is names for the individual AU outputs for an SVM plugin. The config file included with a CERT distribution should provide a basic idea of how it can be used. The other major new feature is a 'plugin' system. This is generally a compile time system rather than runtime, but it does easily allow individual plugins to be compiled in or not. A plugin controller uses the config data to decide which plugins should be enabled. The main CERT class then uses the plugin controller to load data files (e.g. SVM and feature data files) and also to manage the CERT processing algorithm. That includes output. Most of the output that used to be in the main.cpp file is now in a plugin called StandardOutput (plus the PatchPlugin which can be used to output face patches). Two types of plugins (SMV and features) can be added or removed simply by changing the config file, with no need to recompile the program. Most other types of plugins do need to be recompiled to add, remove or modify them, although all plugins can be disabled through the config file.