ant64

The latest binary release of Bio Image Operation (BIO) is available here:

Download BIO (latest version using Qt/console)

Download BIO 1.5.440.1 (older version using Windows Forms)

Download user manual

Download script manual

Changelog

 

Good news, Bio Image Operation is now available as Open Source on GitHub

https://github.com/folterj/BioImageOperation

Major re-release: BIO is now pure C++ with Qt, and command-line

BioImageOperation (BIO) - Tracking step by step guide

Here is a step by step example of image tracking, using the BioImageOperation software including BIO script (see below). This software allows real-time processing (on standard consumer hardware) directly from HD video source or video files. For this example we use a public source: ants walking on concrete with varying lighting (video used from this public source - full video available here).

This is what the source video looks like

orig

 

First, detection is applied on each raw video image, to determine the objects of interest

detect

 

Next, we use contour detection to determine clusters (from OpenCV), then apply a custom high performance tracking algorithm (including direction & 'collision' detection)

track

 

An alternative way of visualising the tracking shows the history for each ant

track2

 

Additionally, we can analyse common paths over time

paths

 

The basic script used for basic tracking (using default / automatic parameter values):

 

OpenVideo("ants_in_concrete.mov")

{

  Grayscale()

  5:background = UpdateBackground()

  DifferenceAbs(background)

  Threshold()

 

  CreateClusters()

  CreateTracks()

 

  DrawClusters()

  ShowImage()

}

 

Flexible Script-based Image Operation

Bio Image Operation or 'BIO', is a next generation Image processing tool focussing on biological applications, balancing ease of use with desired flexibility required for research.

This tool has been developed in collaboration with biologists, using extensive captured images.

The solution balancing both the need for research purposes and flexibility required for this, and desired ease of use is realised in a script based user interface.

The tool uses the widely used OpenCV for many of it's image operations, with an efficient tracking algorithm allowing real time processing (upto HD @ 50 fps).

 

Automated tracking example: Tracking from public source: ants walking on concrete with varying lighting (video used from this public source):

tracking detail

(View full video here)

 

User Interface

bio

 

Visualisation example

Visualising tracks simply using image combination (Source material from Tom Wenseleers and colleagues - University of Leuven)

combine short

 

 

The initial idea was to create a simple agent based model, using very naive agents. Many models appear to invest on agents with considerable intelligence and abbilities. My goal was to make a model to reproduce agents that are very naive and even error prone, where the model strength results from the collective rather than the individuals. The first step of building an agent based model was to identify key model parameters. However, after realising the basic paramaters for common ants were not published at all, an initial step would be to determine these parameters from existing source material.

This led to image processing for agent tracking. The first step was producing image recognition from scratch - none of the existing tools available appeared to be able to reasonably import video formats of my source material. The source material was generously provided by expert biologists.

Image: low resolution source capture

original

Dynamic median background subtraction & normalised

normalised

 The main features of the first implementation:

- Class implementation allows image type operations: 'Image = Original - Background'

- Advanced operations such as normalisation

- Export as floating point RGB or grayscale image with optimised lossless compression (FTF format)

- Parallel processing to improve performance

 

Image tracking

 The image tracking was also developed from scratch.

tracking

The resulting software was able to perform tracking based on very low resolution and frequency source material (i.e. less than 10 pixels per subject)

- Using variable intensity level (as opposed to simple binary detection commonly used in tracking)

- Accurate and sensitive feature identification

- Tracking with velocity prediction

- Detecting and accumulating common paths (age / usage) using logarithmic colour scale

- Visualisation of features, tracking, common paths

- Export as floating point RGB or grayscale image with optimised lossless compression (FTF format)

- Parallel processing to improve performance