Installation and requirements

PeriCoDe/SALIC is software toolbox designed for use and adaptation by machine learning researchers and developers working in the field of automated image annotation and classification. It requires users to be familiar with compiling software and modifying code (e.g., modifying directory paths). Although a wrapper.m file is provided in order to enable a basic test example of the software set up, it is anticipated that SALIC will be used as an active learning image classification ‘toolbox’ that users modify for their own requirements.

As such, there are a number of expectations and requirements which determine the installation (and therefore usage) of PeriCoDe as it is described in Chatzilari, et al. (2016), and these should be born in mind by potential users (note that advanced and more experienced users may wish to consider alternative configurations which may be more suitable for their circumstances). These are as follows:

  • SALIC may potentially run on any operating system, but typically it will be installed on a Linux operating system (due to requirements of some of the packages).
  • A large amount of RAM will be required (minimum of 64GB RAM if using MIRFLICKR database as the 1 million pool images).

The steps in order to install the software are:

There are additional steps which are required for the user to start using SALIC (e.g., providing data and making the locations available), but these will be described in the following section ‘Using PeriCoDe’.

As well as the description contained within this page, please see the README at:


Note: Although the following have not been tested for compatibility with SALIC, there may be alternative configurations for different operating systems or using open source software. For example, Octave ( is an open source alternative to the commercial MATLAB, and Intel make available some options for free access to their MKL library ( The ConvNet feature computation package is not compatible with the Windows operating system, and so one possible alternative is MatConvNet ( In addition, MatConvNet and caffe ( can provide pre-trained models which mean that the user does not need to undertake the step of training their own model (although performance may suffer).