Login Register

Auto-login on future visits

Forgot your password?

Design goals

  • practical, simple-to-use, scalable to real-world data sets
  • focused on delivering accurate and robust classifiers
  • built-for and used-daily in our own projects
  • simple business friendly licensing conditions

System requirements

For classifier design

  • MS Windows, Linux or Mac OS X, 64-bit or 32-bit
  • Matlab 7.5 (2007b) or higher (tested up to R2017b)
  • For deep learning, 64bit Matlab is needed, R2009b or later
  • No other toolboxes needed

For classifier deployment

  • No Matlab dependency
  • MS Windows, Linux or Mac OS X, 64-bit or 32-bit
  • PC (x86) or ARM

Data sets and labels

  • data set object and label object
  • easy access to subsets by class name, index (for iterations) or regular expressions
  • arbitrary meta-data (multiple labels, extra info about samples)
  • nominal feature support
  • embedded SQLite data base engine
  • create data sets from matrices, cell arrays or by SQL queries
  • random sampling, bootstrapping
  • powerful relabeling (define new labels, join classes)

Feature extraction

  • PCA reduction
  • LDA extraction separating classes
  • polynomial feature space expansion
  • represent samples by similarities to prototypes (similar to SVM kernels)

Feature selection

  • methods: ranking, forward, backward, floating
  • criteria: nearest neighbor or arbitrary classifier error
  • full access to selection results
  • interactive tools for visual inspection of distributions


  • one-class/detection for any model that allows it
  • multi-class for all models
  • highly scalable (all models to tens of thousands, some to millions of samples)
  • good practices by default (stopping and meta-params by internal validation set)
  • full control on internal splitting and optimization results
  • training via custom C library
  • sequential pipelines, access to any stage
  • rejection of outliers or low-confidence for any classifier

Classifier types

  • naive Bayes
  • Fisher linear discriminant
  • Logistic classifier with polynomial feature expansion
  • model-based (nearest mean, linear, quadratic Gaussian)
  • Gaussian mixtures with automatic selection of number of components
  • Parzen (non-parametric density estimation)
  • k-NN classifiers (multiple formulations)
  • SVM (linear, RBF, polynomial)
  • Neural networks (feed-forward and RBF)
  • Decision trees
  • Random forests

Classifier fusion

  • arbitrary cascading (detector followed by classifier followed by ...)
  • crisp (decision) and soft (confidence) fusion
  • classifier stacking (decisions or soft outputs)
  • fixed and trained combiners
  • rule-based (all-agree, at least X agrees)
  • stacked generalization for robust soft output estimation


  • performance estimation with multiple types of measures
  • confusion matrix visualization
  • easily find misclassified samples, understand what goes wrong
  • cross-validation (rotation, randomization, leave-one-out)
  • leave-one-object-out (test on unseen patients, objects, videos,...)
  • full access to all details (re-create data sets in any fold)
  • common performance measures
  • option to define custom performance measures
  • easy setup of custom evaluation schemes
  • algorithms may contain ROC and set op.points in training
  • algorithm templates for custom projects

Classifier optimization (ROC)

  • tuning performance of any classifier
  • interactive ROC plots
  • multiple predefined and custom performance criteria
  • detection and discrimination ROC
  • two- and multi-class ROC support
  • scalable to hundreds of thousands of samples and thousands of operating points
  • change operating point in the final classifier
  • set operating points interactively or programatically
  • apply multiple constraints
  • cost-sensitive optimization (lower certain types of errors)
  • estimation of variances in ROC space

Visualization: Interactive scatter plot

  • flip through feature combinations
  • visualize scatter and distribution plots together
  • change z-order of classes for large data sets
  • multiple label support
  • subset filtering by labels (show only cancer samples of these patients)
  • paint labels by hand
  • tag individual samples (for outlier removal)
  • draw polygon classifiers by hand
  • view confusion matrix showing arbitrary labels
  • user call-backs (show new figure with original image + position of current sample by clicking)

Visualization: Interactive image view

  • support for different image types
  • gray level, RGB
  • feature images extracted by filter banks
  • multi- and hyper-spectral images
  • support for pixel sets (image does not need to be matrix)
  • classifier output still an image
  • support for locally-extracted feature images
  • label painting
  • labels by clustering
  • apply any classifier, show decisions
  • renaming and merging of labels
  • region cropping
  • connected component segmentation

Image feature extraction

  • represent images as data sets
  • data extracted from multiple images in one data set
  • any pixel subset still an image
  • extract multi-scale local image features
  • custom block sizes, grid steps
  • custom masking
  • local histograms, co-occurrences, convolution filters
  • high performance C implementations
  • custom extractors via Matlab function
  • connected region segmentation
  • extract object features (on each connected component)

Out-of-Matlab deployment

  • execute any classifier out-of-Matlab with C-based perClass Runtime
  • single DLL, no extra dependencies
  • fast binding to custom applications (typically minutes)
  • tested in 24/7 high-throughput industrial applications
  • execution via the same custom C code in/out of Matlab (no performance loss)
  • cross-platform (PC Win/Lin/Mac, ARM)
  • change operating points at runtime
  • built for hard real-time systems executing classifier in a tight loop
  • new: real-time OS port available (PharLap-ETS)
  • can be ported to other architectures (e.g. DSP)


  • any environment that can call DLL (MS Excel, VisualBasic)
  • C/C++ (builds with both stdcall and cdecl calling conventions)
  • .Net interface (C#)
  • LabView
  • Matlab compiler (single self-contained mex file to drop in a project)
  • MS SQL server stored procedures
  • command-line tool sdrun to execute and time classifiers