Easy examples with Balu...

TUTORIAL: Here you can find an explanation of the main functions of Balu Presentation, and a set of examples Code.


Applications - Image Processing - Feature Extraction - Feature Selection - Classification


> Fully automated design of a computer vision system

  • In this example we show how to read images from a directory, label the images in classes, extract features, select features, select a classifier and evaluate the performance in only 12 lines! [see Balu Code].

    See how can be used this 10 lines code to design automatically a computer vision system to detect faces. In the data set there are 60 faces and 200 no-faces. Using only LBP features, Balu is able to select 15 features and a classifier with a performance of 95% validated with cross-validation (warning: the 95% is achieved in this data set, no warranty for other data sets) [see Balu Code]  

> Automated detection using a tracking algorithm in multiple X-ray views

  • In this example we show how to detect pen tips in pencil cases using a tracking algorithm [see Balu Code]. Details of the method are published in this paper and video. If you want to use the graphic user interface shown in this video, execute the command Btr_gui and load the file pencase.mat.


> Segmentation of an object with homogeneus background

  • With only this command Bio_segshow('testimg1.jpg') you can obtain this figure. In addition, you can test any segmentation algorithm using simple commands like the followings bellow. Details of the method are published in this paper.

I = imread('testimg2.jpg');
R = Bim_segpca(I);

> Segmentation using clustering

  • Try this command to segment in this image  the sky, the clouds and the palm:

I = imread('testimg9.jpg');

> Segmentation of details

  • With only the following commands you can segment the well known rices of Matlab:

I = imread('rice.png');
[F,m] = Bim_segmowgli(I,[],40,1.5);

> Segmentation using sliding windows

  • In this example you can see how welding defects can be detected using sliding windows. The example select 100 'no-defects' and 100 'defects' from a training image (where the ideal segmentation is apriori known). Afterwards, LBP features are extracted and a LDA classifier is trained using SFS selected features. Finally, the trained classifier is used to segement a test image [see Balu Code]. Details of the method are published in this paper.

> Interactive segmentation

  • Sometimes you need to separate certain objects of an image, and no segmentation approach works fine. Try the function Bim_regiongrow with this image, it is easy for example to separate the pen tips using this tool.

 > L*a*b conversion

  • If you want to calibrate your comuter vision system in order to process L*a*b color images (see our paper), first you habe to estimate the parameters of the model M that converts from RGB to L*a*b* using the function Bim_labparam, and second you can convert a RGB image X using the command:

Y = Bim_rgb2lab(X,M);
if you don't want to calibrate the computer vision system you can use the theoretical conversion implemented in the function Bim_rgb2lab0.


> How to separate T & Y

  • In this example we show how to separate the characters 'T' and 'Y' using the eccentricity of the segmented regions. We use the train image to establish the threshold automatically and the test image to evaluate it [see Balu Code].  

> Hu moments

  • In this example we show how to use Hu moments to obtain a good separability in recognition of characters '1', '2' and '3' in this image [see Balu Code].

> How to build feature extraction functions in Balu

  • In this example we show how to build a function that computes the centroid of a binary region [see Balu Code].

> Arrows recognition

  • In this example we show how to separate three types of arrows using simple Balu commands. The classification is performed thresholding only one feature. [Training image, Test Image, Balu Code ]

> Ellipses

  • In this example we show how to fit a binary region to an ellipse. In example 1, we the best ellipses fitted to binary regions of this image. In example 2, we detect elliptical objects orientated to a determined angle [see Balu Code].



> Feature selection with Balu algorithm

  • This example shows how to use Bfs_balu algorithm. This algorithm has three steps: (1) normalizes (using Bft_norm), (2) cleans (using Bfs_clean), and  (3) selects features (using Bfs_sfs). In this example the objective function that will maximized by SFS algorithm is the performance of a SVM-RBF classifier [see Balu Code].

> Feature selection with LSEF

  • LSEF select feature subsets based on their capacities to reproduce sample projections on principal axes. It can be used to estimate an approximation of PCA using a linear projection of some original features [see Balu Code].  

> Feature selection with exhaustive search

  • In this example we preselect 10 features using SFS with Fisher criterium, and afterwards we select 4 from them using exhaustive search. In this example the objective function that will maximized by SFS algorithm is the performance of a KNN classifier with 5 neighbors [see Balu Code] 

> Comparison of feature selection algorithms

  • In this example we show how to test several feature selection algorithms and their combinations [see Balu Code].  


> Decision lines for classifiers of two features

  • In this example we show how can you plot decision lines of different classifiers  [see figures and Balu Code ].