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)
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
First, detection is applied on each raw video image, to determine the objects of interest
Next, we use contour detection to determine clusters (from OpenCV), then apply a custom high performance tracking algorithm (including direction & 'collision' detection)
An alternative way of visualising the tracking shows the history for each ant
Additionally, we can analyse common paths over time
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):
User Interface
Visualisation example
Visualising tracks simply using image combination (Source material from Tom Wenseleers and colleagues - University of Leuven)
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
Dynamic median background subtraction & 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.
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