Online Texture Classification
Using GPU-based Genetic Programming

by Mehran Maghoumi
Supervisor: Brian Ross

Genetic Programming (GP) is a widely used methodology for solving various computational problems . GP's problem solving ability is usually hindered by its long execution time for large and comp lex problems. In this research, GP is applied toward real-time computer vision. In particular, object classification and tracking using a parallel GP system is discussed. First, a study of suitable GP languages for object classification is presented. Two main GP approaches for visual pattern classification were studied. These approaches include block-classifiers and pixel-classifiers. According to the experiments, pixel-classifiers were generally more accurate and performed better. Next, using the results of these experiments, a suitable language was selected for the implementation of the real-time tracking system. The real-time system is implemented using ECJ and NVIDIA CUDA. Synthetic video data is used in the experiments, and the goal is to evolve a unique classifier for each texture pattern that was present in the video. The experiments revealed that the system was capable of correctly classifying and tracking the textures in the video. Furthermore, depending upon the complexity of the environment, the performance of the system can be on-par with real-time requirements.


Example Videos

The following videos are screen captures of the real-time GP vision system.

Brodatz textures are used as target textures. They are split up into easy and hard sets, according to how challenging they are for the GP vision system to classify. Two kinds of learning environments are tested:

  1. All-at-once: All the textures are presented together.
  2. One-at-a-time: Two textures are initially presented. Then when the current set is correctly learned, a new texture is introduced. This continues until all textures are correctly learned.
Most experiments use the maximum number of genetic programming generations (100). Another variation called "eager" will terminate the GP run when the currently evolved classifier is correct.

In the videos, a unique colour is assigned to each texture correctly identified. When multiple textures show the same colour, there is a classification error, and GP will be used to correct the classification error. In some of the lengthier videos, a maximum of 20 separate runs is performed, and classifiers might remain erroneous. In such cases, these problematic textures are labelled "permanent orphans" and are ignored. A few of these videos are terminated at 5 minutes.

Unfortunately, the screen capturing software slowed down the performance of the system (typically 1.8 times slower). Therefore, the videos have been sped up to reflect the original perfomance. The frame rates seen in the text window within the video do not correspond to the actual frame rates seen in these video examples.

Easy sets:

Hard sets:

Videos copyright (c) 2014 Mehran Maghoumi.

Back up: