Home

Contact

Publications

Code

Videos

Projects

Bio

Press


CODE

Random Ferns Garden 2D

This code includes several classifiers based on random ferns for 2D classification problems. Specifically, this code contains the Online Random Ferns (ORFs), Boosted Random Ferns (BRFs) and Online Boosted Random Ferns (OBRFs). The classifiers are evaluated in different classification scenarios.

[Python] | References: [CVPR10][PR12][PAMI17] | Git clone

Samples 2D

This code computes samples in a 2D feature space. This code considers different classification scenarios referred as examples. These classification examples are useful to train and validate any type of classifier. .

[Python] | Git clone

Online Multi-Object Detector

This code performs online learning and detection of multiple objects using small human supervision. More specifically, this program computes multiple online random ferns classifiers to learn and detect simultaneously various objects using human assistance. The proposed algorithm uses active learning in combination with an adaptive uncertainty threshold in order to reduce the degree of human assistance as the classifier confidence gets larger. To keep efficiency, all classifiers are computed with the same ferns features.

[C++] [Video] | References: [ICRA15][CVIU16] | Git clone

Online Multi-Class Learning 2D

This code computes multiple online random ferns classifiers with small human supervision for a 2D multi-class problem. The proposed algorithm uses active learning in combination with an adaptive uncertainty threshold in order to reduce the degree of human assistance as the classifier confidence gets larger. To keep efficiency, all classifiers are computed with the same ferns features.

[MATLAB] | References: [ICRA15][CVIU16] | Git clone

Random Clustering Ferns

This code computes Random Clustering Ferns (RCFs) to recognize objects exhibiting multiple intra-class modes, where each one is associated to a particular object appearance. In particular, RCFs use Boosted Random Ferns (BRFs) and probabilistic Latent Semantic Analysis (pLSA) to obtain a discriminative and multimodal classifier that automatically clusters the response of its randomized trees in function of the visual object appearance.

[MATLAB] | References: [IBPRIA15][NCAA16] | Git clone

Random Clustering Ferns 2D

This code computes Random Clustering Ferns (RCFs) to classify and clustering two different classes (positive and negative classes) with multiple intra-class modes in a two-dimensional feature space (2D). In particular, RCFs use Boosted Random Ferns (BRFs) and probabilistic Latent Semantic Analysis (pLSA) to obtain a discriminative and multimodal classifier that automatically clusters the 2D samples using the response of the randomized trees.

[MATLAB] | References: [IBPRIA15][NCAA16] | Git clone

Online Rotation-Invariant Detector

This program performs online learning and detection of natural landmarks for aerial robotics applications. More specifically, this code allows to learn and detect simultaneously a visual target under in-plane rotations. Initially, the human selects via the computer's mouse the target in the image that he/she wants to learn and recognize in future frames. Subsequently, the classifier is initially computed using a set of training samples generated artificially and for multiple orientations. Positive samples are extracted using random shift transformations over the target, whereas negative samples are random patches from the background.

[C++] [Video] | References: [ICRA14] | Git clone

Online Human-Assisted Detector

This program learns and detects simultaneously one specific object using human assistance. Initially, the human selects via the computer's mouse the object in the image that he/she wants to learn and recognize in future frames. In run time, the program detects the object and uses its own hypotheses to update and refine the classifier (self-learning). However, in cases where the classifier is uncertain about its output (sample label), the classifier requests the human assistance in order to label the difficult samples.

[C++] [Video] | References: [ICPR12][ROMAN13] | Git clone

Boosted Random Ferns [OpenCV Version]

This program computes the Boosted Random Ferns classifier (BRFs) for efficient and discriminative object detection in images. In this particular version, the BRFs classifier is computed and tested using the OpenCV library to speed up the detection of objects.

[MATLAB-OpenCV] | References: [CVPR10][ICPR10][PR12][PAMI17] | Git clone

Boosted Random Ferns

This program computes the Boosted Random Ferns classifier (BRFs) used to perfom efficient detection of object categories in images. Particularly, the BRFs classifier is computed using Real AdaBoost in order to select and combine -automatically- the most discriminative weak classifiers (WCs) and where each one consists of a specific random fern. The random ferns are computed over local Histograms of Oriented Gradients (HOG) with the goal of increasing its robustness against lighting and intra-class changes.

[MATLAB] [Video] | References: [CVPR10][ICPR10][PR12][PAMI17] | Git clone

Boosted Random Ferns 2D

This program computes the boosted random ferns classifier (BRFs) in order to classify two different classes (positive and negative classes) belonging to a two-dimensional feature space (2D). Particularly, the BRFs classifier is computed using Real AdaBoost in order to select and combine -automatically- the most discriminative weak classifiers (WCs) and where each one consists of a specific random fern. For this 2D demo, each fern is a set of decision stumps computed at random over the 2D feature space.

[MATLAB] [Video] | References: [CVPR10][ICPR10][PR12][PAMI17] | Git clone

Random Forest 2D

This program computes a Random Forest classifier (RForest) to perform classification of two different classes (positive and negative) in a 2D feature space (x1,x2). The RForest computes multiple random binary trees using information gain and decision stumps (axis-aligned features) at every tree node.

[MATLAB] [Video] | Git clone

AdaBoost 2D

This program performs the classification of two different classes using the AdaBoost algorithm. In this demo, the samples belong to a feature space of two dimensions (x1,x2) for the sake of simplicity. More precisely, this program computes a strong classifier which ensembles -iteratively- a series of weak classifiers. Each weak classifier is a decision stump that splits on one axe the feature space (2D) according to a split threshold and sign.

[MATLAB] [Video] | Git clone

Haar-like Features

This program computes Haar-like features over a given input image in order to extract contours. The Haar-like features are used as local derivative operators. Particularly, the program computes horizontal (Hx) and vertical (Hy) oriented features (Haar-like features) using the integral image of the input image.

[MATLAB] [Video] | References: [ICPR06] | Git clone

Steerable Filters

This program computes steerable filters over a given input image in order to extract edges to a specific orientation. The program makes use of Haar-like features, instead of Gaussian derivative operators, to compute efficiently the basis filters of steerable filters. Particularly, the program computes horizontal (Hx) and vertical (Hy) oriented features (Haar-like features) using the integral image of the input image.

[MATLAB] [Video] | References: [ICPR06] | Git clone


Integral Image

This program resizes a given input image using the integral image (II). To this end, the integral image is first computed over the image, for then to resize the image according to the cell size parameter. To keep efficiency, this program makes use of mex files.

[MATLAB] [Video] | Git clone

Image Pyramid

This program computes the image pyramid of an input image using the integral image (II). More precisely, at each algorithm iteration the resized image is computed from the integral image (II) according to the given cell size.

[MATLAB] [Video] | Git clone

Image Annotation

This program tags object instances in images by means of bounding boxes. In detail, the program uses a MATLAB GUI interface to annotate objects. This program is useful for introducing annotations in datasets (e.g ground truth).

[MATLAB] [Video] | Git clone



DATASETS

IRI Natural Targets Dataset

This dataset was created to compute efficient and online classifiers for aerial robots. More specifically, the dataset includes five video sequences of natural targets acquired in outdoors and under in-plane and out-plane rotations.

[download]

IRI Freestyle Motocross Dataset

This dataset was created for testing object detection approaches considering rotations in the image plane. In particular, this dataset contains motorbikes under multiple orientations and with difficult imaging conditions such as partial occlusions, scale variations, lighting and intra-class changes, etc.

[download]