Active Vision

Active vision is the process of actively scanning a scene or 2D surface and only sample a small portion of it at a time using attentive focus. We strongly suggest you read our paper "Evolving a Neural Network Active Vision System for Shape Discrimination" and its references for a detailed account of how the system is implemented.

Quick Start Instructions

Follow the steps below to perform an evolutionary run to enable an active vision system to discriminate between simple shapes.


The images are located in the /images directory. Positives are located in the original_matches directory and negatives are located in the original_mismatches directory. In this example, a square is the original match image, and a triangle and circle are the mismatches.

1) Open a command shell (from the Start menu select Run..., type "cmd", select OK).
2) Navigate to the anji_2_00/ directory.
3) Type "evolve.bat" and press Enter.

1) Open a command shell.
2) Navigate to the anji_2_00/ directory.
3) Type "" and press Enter.


After ANJI displays the properties for the run, you'll begin to see the following information display.

INFO Run: start
INFO Generation 0: start
INFO chromosome 191: TP/FN/FP/TN: 12/0/12/0
INFO chromosome 192: TP/FN/FP/TN: 0/12/0/12
INFO chromosome 193: TP/FN/FP/TN: 2/10/10/2
INFO chromosome 194: TP/FN/FP/TN: 0/12/0/12
INFO chromosome 195: TP/FN/FP/TN: 0/12/0/12
INFO chromosome 196: TP/FN/FP/TN: 12/0/12/0
INFO chromosome 197: TP/FN/FP/TN: 12/0/12/0
INFO chromosome 198: TP/FN/FP/TN: 0/12/1/11
INFO chromosome 199: TP/FN/FP/TN: 0/12/2/10

For this run we've got 12 matches and 12 mismatches. Each chromosome ID is displayed along with the number of images it correctly identified as either matches or mismatches. Results are displayed in the order True Positives / False Negatives / False Positives / True Negatives.

A result of 12/0/0/12 would indicate correct discrimination of all images.


For each generation, you'll see the following information display:

INFO connection->neuron id map size == 11
INFO neurons->connection id map size == 355
INFO species count: 1
INFO # chromosomes with max fitness: 0
INFO champ: id=205 score=0.591147 size=191
INFO Generation 0: end [19:47:02 - 19:47:46] [43969]

As with the other fitness functions, for each generation, ANJI lists the chromosome ID, fitness score and size (number of genes) of the champion.


In order to evaluate an individual, and see an animation of the eye as it scans the image, first set the properties as follows:


Then from the command line:

Type "evaluate.bat <champion id>" and press Enter.

Type " <champion id>" and press Enter.


The following window will display:

The top portion of the window displays the processing cost of the neural network, the current time step and total time steps, and the image being viewed. It also displays the chromosome id, and the eye's current orientation in terms of x, y, zoom, and angle. Its affinity output (i.e., it's confidence that the image it is viewing is a match) is listed, as well as visualized in the middle portion of the screen as a red line for affinity output over time.

Finally, the lower left portion shows the image being viewed, and the perimeter of the eye as a blue line rectangle. The lower right screen shows the interpolation of the image at its current resolution. In other words, this is what the eye is seeing.