MSCI11, Project 1: Object Detection with Stochastic Diffusion Search

Project Outline

This project requires extending Stochastic Diffusion Search (SDS) [1,2,3] algorithm, which is a probabilistic method for solving best-fit pattern recognition and matching problems. SDS, as a multi-agent population-based global search and optimisation algorithm, is a distributed mode of computation utilising interaction between simple agents. SDS belongs to the extended family of Swarm Intelligence algorithms. In contrast to many nature-inspired algorithms, SDS has a strong mathematical framework describing its behaviour and convergence.

The project entails implementing a simple text search using the Stochastic Diffusion Search algorithm as described in [3]; the extension implements object detection module to match the model in the image. In the later stage, the project can be developed further to include either aligning two images.

A comprehensive introduction to SDS is given by Majid [3]. Some other papers related to the visual search task of SDS might be helpful; they can be found in the application section of [3].

Project structure

The project is formed of two stages, allowing the application of SDS to progressively more complex problems.

  1. The first stage is to develop a SDS algorithm that could perform best-fit match on text strings as described by Majid [3].
  2. After making sure that standard SDS performs the string matching task, the second stage aims to apply the technique to image detection, where a small image is provided and its location in the search is to be sought.
  3. Two images are to be captured (guidelines below) and the algorithm should be used to align them.

Image capture guidelines

To generate a suitable data set, you must photograph a test scene twice with camera viewpoints at known distances apart; I suggest starting with this distance very small (a few cm) and increasing it experimentally to a maximum whereby the matching technique fails.

The data set will thus be a set of image pairs.

For each pair, you should identify points of interest (e.g. the region around the corners of objects etc) on one image and then use SDS to try to locate the region on the other image from the pair.


[1] M. Bishop, (1989), Stochastic Searching Networks, Proc. 1st IEE Conf. Artificial Neural Networks.

[2] M. Bishop, (1989), Anarchic techniques for pattern classification, PhD Thesis, University of Reading, UK.

[3] M. Majid & M. Bishop, (2010), Stochastic Diffusion Search Review, Journal of Behavioural Robotics (in preparation).