-
Notifications
You must be signed in to change notification settings - Fork 2k
Sample applications
This page enlists the sample applications that come with the framework, including their download links and source code locations. To see a version of this page with a better interface, please see http://accord-framework.net/samples.html.
- Audio
- Fuzzy
- Genetics
-
Imaging
- Classification (Bag-of-Words and SVM)
- Corners detection (FAST)
- Corners detection (Harris)
- Corners detection (SURF)
- Image stitching (FREAK)
- Image stitching (Harris)
- Image stitching (SURF)
- Hough transform
- Image viewer
- Image filters
- Pose estimation (POSIT)
- Texture
- Shape detection
- Blobs detection
- Wavelets
-
Machine Learning
- Animat (QLearning and Sarsa)
- RANdom SAmple Consensus (RANSAC)
- Gestures (Dynamic Time Warping SVMs)
- Handwriting (Multi-class SVM)
- Classification (Kernel SVMs)
- Classification (Naive Bayes)
- Classification (Decision Trees)
- Regression (Kernel SVM)
- Clustering (K-Means and MeanShift)
- Clustering (Gaussian Mixture Models)
- Liblinear (Linear SVMs)
- Feature Selection (L1-regularized Logistic SVMs)
- Mathematics
- Neuro
-
Statistics
- Handwriting recognition (KDA)
- Hidden Markov Models
- Kernel Discriminant Analysis (KDA)
- Kernel Principal Component Analysis (KPCA)
- Linear Discriminant Analysis (LDA)
- Principal Component Analysis (PCA)
- Independent Component Analysis (ICA)
- Partial Least Squares (PLS)
- Linear and Logistic Regression Analysis
- Multinomial Logistic Regression Analysis
- Eigenfaces (PCA)
- Receiver Operating Characteristic (ROC) Curves
- Cox's Proportional Hazards
- Mouse Gesture Recognition
- Filters
- Statistics Workbench
- Unity
- Video
- Vision
- Download the application
- Browse the source code
A simple beat detector that listens to an input device and tries to detect peaks in the audio signal. It is a statistics-based beat detector in the sense it searches local energy peaks which may contain a beat.
Audio beat detector and metronome.
- Download the application
- Browse the source code
The Fourier sample application shows how to capture sounds from a capture device (such as a microphone jack) using the Accord.NET Framework. The signal can be analyzed, processed and transformed using the framework's Fourier and Hilbert transform functions.
Fourier spectrum analyzer sample application
- Download the application
- Browse the source code
The Wave Recorder sample application demonstrates how to use the IAudioOutput and IAudioSource interfaces to capture and output sound. This is just a sample application, however. The intent of the framework is not to allow building of audio players, but to support the use of audio signals in machine learning and statistics experiments.
Wave recorder sample application.
- Download the application
- Browse the source code
Robot navigation using Fuzzy logic sample application.
- Download the application
- Browse the source code
Fuzzy logic sample application.
- Download the application
- Browse the source code
Genetic programming sample application.
- Download the application
- Browse the source code
Travelling salesman with Genetic programming.
- Download the application
- Browse the source code
Shows how to perform image classification using the Bag-of-Visual-Words (BoW) model with SURF features and the Binary Split algorithm.
The BoW model is used to transform the many SURF feature points in a image in a single, fixed-length feature vector. The feature vector is then used to train Support Vector Machines (SVMs) using a variety of kernels.
Image classification sample application.
SURF features extracted from one of the images.
- Download the application
- Browse the source code
The FAST sample application demonstrates how to perform corners detection using the FAST corners detector. As the name implies, the FAST detector is one of the fastest corners detectors available.
Corner point detection with the FAST algorithm.
The current code is based on the excellent Edward Rosten's implementation, and is dual licensed under the permissive BSD license.
- Download the application
- Browse the source code
The Harris sample application demonstrates how to perform corners detection using the Harris algorithm.
Corner point detection with the Harris algorithm.
The current implementation supports both Harris and Nobel corner measures. Harris can be enabled by checking the checkbox next to the ''k'' parameter, which is only needed for Harris. The Nobel measure does not require setting any parameters.
A suitable choice for the threshold parameter when using Harris measure may range around 10,000 to 30,000, while when using Nobel it may range around 20 to 100. Best sigma values are usually higher than 0.3 and lesser than 5.0.
- Download the application
- Browse the source code
The SURF sample application shows how to use the Speeded-Up Robust Features (SURF) Detector.
Interest point detection and description with the SURF algorithm.
The current implementation is based on the excellent OpenSURF library by Christopher Evans. The framework version, however, comes with further performance optimizations.
- Download the application
- Browse the source code
The Detection (blobs) sample application shows how to use the BlobCounter, Blob and GrahamConvexHull classes to obtain the shapes of different objects in an input image.
Blobs identification with the BlobCounter class.
- Download the application
- Browse the source code
The Detection (shapes) sample application shows how to use the SimpleShapeChecker to obtain the shapes of different objects in an input image.
Object shape detection through blob identification.
- Download the application
- Browse the source code
The image filters sample application shows how to use the more than 80 image filters currently available at Accord.Imaging.Fitlers.
- Download the application
- Browse the source code
Hough transform for straight line and/or circle detection.
- Download the application
- Browse the source code
Image viewer sample application.
- Download the application
- Browse the source code
Demonstrates how to perform automatic image stitching by interest point matching. The actual stitching uses many parts of the framework, such as the FREAK feature detector, RANSAC, k-nearest neighbor matching, homography estimation and linear gradient image blending.
Image stitching using the FREAK feature detection and extraction algorithm.
- Download the application
- Browse the source code
Demonstrates how to perform automatic image stitching by interest point matching. The actual stitching uses many parts of the framework, such as the Harris corners detector, RANSAC, correlation window matching, homography estimation and linear gradient image blending.
Image stitching using Harris corners detection and correlation matching.
For more details about the method, please be sure to read the accompanying article on how to perform automatic image stitching by interest point matching in C#.
- Download the application
- Browse the source code
Demonstrates how to perform automatic image stitching by interest point matching. The actual stitching uses many parts of the framework, such as the SURF feature detector, RANSAC, k-nearest neighbor matching, homography estimation and linear gradient image blending.
Image stitching using SURF features and k-nearest neighbor matching.
- Download the application
- Browse the source code
Pose estimation with POSIT and coplanar POSIT algorithms.
- Download the application
- Browse the source code
- Download the application
- Browse the source code
The Wavelet sample application shows how to use the Wavelet transform filter to process images using wavelet transforms such as the Haar and CDF9/7.
- Download the application
- Browse the source code
Animat example for QLearning and Sarsa.
- Download the application
- Browse the source code
This sample application shows how to use Kernel Support Vector Machines (kSVMs) to solve a classification problem. The sample application comes with default sample data with can be loaded in the File -> Open menu.
After a sample data has been loaded, one can configure the settings and create a learning machine in the second tab. The picture below shows the decision surface for the Ying-Yang classification data generated by a heuristically initialized Gaussian-kernel SVM after it has been trained using Sequential Minimal Optimization (SMO). The framework offers an extensive list of kernel functions to choose from.
Decision surface generated by a Gaussian SVM.
- Download the application
- Browse the source code
This sample application shows how to use Gaussian Mixture Models to perform clustering and classification using soft-decision margins.
- Download the application
- Browse the source code
This sample application shows how to use the K-Means clustering algorithm and the mean shift clustering algorithm to perform color clustering, reducing the number of distinct colors in a given image.
Color clustering with K-Means and MeanShift.
- Download the application
- Browse the source code
This sample application shows how to use the K-Means, MeanShift, or Gaussian Mixture Models to perform clustering of data points in a 2D space.
Data clustering with K-Means, MeanShift and GMMs.
- Download the application
- Browse the source code
The Decision Trees sample application demonstrates how to create and use Decision Trees in C#. Decision trees are simple predictive models which map input attributes to a target value using simple conditional rules. Trees are commonly used in problems whose solutions must be readily understandable or explainable by humans, such as in computer-aided diagnostics and credit analysis.
Here is a detailed explanation on Decision Trees.
Data classification with Decision Trees.
- Download the application
- Browse the source code
Feature selection using sparse L1-regularized logistic support vector machines. This sample application shows how to create special linear SVMs with logistic functions to perform feature selection.
A problem that can be perfectly separated using only X.
The machine accurately says that X is the most important feature.
- Download the application
- Browse the source code
This sample application shows how to use the Random Sample Consensus (RANSAC) algorithm to fit linear regression models. The algorithm works with any model or function, producing a robust version of the model which is less sensitive to outliers. Here is a detailed explanation on how RANSAC works.
Robust linear estimation with RANSAC.
- Download the application
- Browse the source code
Demonstrates how to use Support Vector Machines (SVMs) with the Dynamic Time Warping (DTW) kernel to recognize sequences of discrete observations.
- Download the application
- Browse the source code
This sample application shows how to teach Multi-class Support Vector Machines using Sequential Minimal Optimization to recognize handwritten digits from the UCI's Optdigits dataset.
Handwritten digits recognition with SVMs.
- Download the application
- Browse the source code
This sample application shows how to recreate the liblinear.exe command line application using the SVM algorithms provided by the framework. The framework can perform almost all liblinear algorithms in C#, except for one. Those include:
0 — L2-regularized logistic regression (primal)
1 – L2-regularized L2-loss support vector classification (dual)
2 — L2-regularized L2-loss support vector classification (primal)
3 — L2-regularized L1-loss support vector classification (dual)
4 –
5 — L1-regularized L2-loss support vector classification
6 — L1-regularized logistic regression
7 — L2-regularized logistic regression (dual) for regression
11 — L2-regularized L2-loss support vector regression (primal)
12 — L2-regularized L2-loss support vector regression (dual)
13 — L2-regularized L1-loss support vector regression (dual)
The framework can perform also load to and from files stored in LibSVM's sparse format. This means it should be straightforward to create or learn your models using one tool and run it on the other, if that would be necessary. For example, given that Accord.NET can run on mobile applications, it is possible to create and learn your models in a computing grid using liblinear and then integrate it in your Windows Phone application by loading it in Accord.NET.
Pure C# liblinear application.
- Download the application
- Browse the source code
This application shows how to use Naive Bayes for binary classification tasks.
Data classification with Naive Bayes.
- Download the application
- Browse the source code
Function regression using (Kernel) Support Vector Machines.
Function regression with SVMs.
- Download the application
- Browse the source code
- Download the application
- Browse the source code
Pose coordinates estimation using POSIT.
- Download the application
- Browse the source code
Quadratic Programming (QP) problem solving using the dual method of Goldfarb and Idnani. Translated from the original Fortran code by Berwin A. Turlach.
- Download the application
- Browse the source code
Demonstrates how to use Denavit-Hartenberg parameters and equations to model kinematic chains.
Denavit-Hartenberg forward kinematics sample application.
- Download the application
- Browse the source code
This sample application shows how to use the Levenberg-Marquardt learning algorithm together with Bayesian regularization to teach a feed-forward neural network.
Data classification with Neural Networks using the Levenberg-Marquardt algorithm with and without Bayesian regularization.
- Download the application
- Browse the source code
This sample application shows how to learn Deep Belief Networks using Restricted Boltzmann Machines and the Contrastive-Divergence algorithm. However, please note that this approach has been deprecated in favor of learning Deep Neural Networks with ReLU and BatchNorm directly using SGD.
- Download the application
- Browse the source code
An adaptation of the original AForge.NET Neuro sample applications to work with Levenberg-Marquardt instead of Backpropagation. Includes solutions for approximation, time-series prediction and the exclusive-or (XOR) problem using neural networks trained by Levenberg-Marquardt. For more information regarding the method of Levenberg-Marquardt, please take a look on Neural Network Learning by the Leveberg-Marquardt Algorithm with Bayesian Regularization.
Levenberg-Marquardt algorithm for Approximation, Time Series, and the XOR problems.
- Download the application
- Browse the source code
Delta rule learning, perceptron learning and multilayer perceptron learning.
- Download the application
- Browse the source code
An adaptation of the original AForge.NET Neuro sample applications to work with Resilient Backpropagation instead of Backpropagation. Includes solutions for approximation, time-series prediction and the exclusive-or (XOR) problem using neural networks trained by Resilient Backpropagation.
RProp algorithm for Approximation, Time Series, and the XOR problems.
- Download the application
- Browse the source code
Color clustering using Self-Organizing Map Networks.
- Download the application
- Browse the source code
Delta rule learning, perceptron learning and multilayer perceptron learning.
- Download the application
- Browse the source code
This sample application shows how to perform handwritten digit recognition using Kernel Discriminant Analysis and Linear Discriminant Analysis.
Handwritten digits with KDA sample application
- Download the application
- Browse the source code
- Download the application
- Browse the source code
Demonstrates how to use Hidden Markov Models (HMMs) and Accord.NET Markov Sequence Classifiers to recognize sequences of discrete observations.
Hidden Markov Model sample application
- Download the application
- Browse the source code
Sample application demonstrating how to use Kernel Discriminant Analysis (also known as KDA, or Non-linear (Multiple) Discriminant Analysis using Kernels) to perform non-linear transformation and classification. The sample datasets which can be used in the application are available under the Resources folder in the main directory of the application.
Kernel discriminant analysis
- Download the application
- Browse the source code
Sample application demonstrating how to use Kernel Principal Component Analysis (KPCA) to perform non-linear transformations and dimensionality reduction. The sample datasets which can be used in the application are available under the Resources folder in the main directory of the application.
Kernel principal component analysis
- Download the application
- Browse the source code
Sample application demonstrating how to use Linear Discriminant Analysis (also known as LDA, or Fisher's (Multiple) Linear Discriminant Analysis) to perform linear transformations and classification. The sample datasets which can be used in the application are available under the Resources folder in the main directory of the application
Linear discriminant analysis
- Download the application
- Browse the source code
Sample application demonstrating how to use Principal Component Analysis (PCA) to perform linear transformations and dimensionality reduction. The sample datasets which can be used in the application are available under the Resources folder in the main directory of the application
Principal component analysis
- Download the application
- Browse the source code
Sample application demonstrating how to use Independent Component Analysis (ICA) to perform blind source separation of audio signals. The audio is processed using the Accord.Audio modules of the framework.
Independent component analysis for blind source separation
- Download the application
- Browse the source code
Demonstrates how to use Partial Least Squares to fit a (multiple and multivariate) linear regression model from high-dimensionality data.
Partial least squares analysis
- Download the application
- Browse the source code
Sample application for creating and fitting Logistic Regression models. Also fits a multiple linear regression model for comparison purposes, and performs chi-square tests and computes Wald's statistics for the logistic regression coefficients.
- Download the application
- Browse the source code
Sample application demonstrating how to classify objects into different classes using Multinomial Logistic Regression Analsysis. Performs chi-square tests and computes Wald's statistics for the logistic regression coefficients.
- Download the application
- Browse the source code
Sample application demonstrating how to use Principal Component Analysis (PCA) to perform image classification. The application implements the Eigenfaces technique to distinguish between depth images of human hands in different shapes.
Principal component analysis
- Download the application
- Browse the source code
Sample application demonstrating how to create and visualize Receiver-Operating Characteristic Curves from a given set of results from a test or a classification process.
- Download the application
- Browse the source code
How to perform survival analysis using Cox's Proportional Hazards model for both regression and prediction of time-censured data.
- Download the application
- Browse the source code
Learning and recognition of mouse gestures using hidden Markov model-based classifiers and Hidden Conditional Random Fields. Showcased in a series of CodeProject articles under the name Sequence Classifiers in C#.
Mouse gesture recognition with hidden Markov models.
- Download the application
- Browse the source code
Statistics Workbench, a sample application demonstrating all probability distributions available in the framework.
- Download the application
- Browse the source code
Sample application demonstrating how to use the Accord.NET Framework in Unity.
- Download the application
- Browse the source code
Sample application demonstrating how to capture depth images using the first-generation Kinect.
- Download the application
- Browse the source code
Snapshot maker sample application.
- Download the application
- Browse the source code
Sample application demonstrating how to record from two cameras at the same time using Accord.NET
- Download the application
- Browse the source code
Sample application demonstrating how to replay video from a local capture device, a JPEG stream, a MJPEG stream, or another video source.
- Download the application
- Browse the source code
Sample application demonstrating how to control a Ximea camera and make the camera interact with C#/.NET.
- Download the application
- Go to the project's website.
Screencast Capture Lite is a tool for recording the desktop screen and saving it to a video file, preserving quality as much as possible. It is a real application, and also a demonstration of the use of the AForge.NET and Accord.NET Frameworks to build multimedia applications, capturing video and audio streams from different sources.
- Download the application
- Browse the source code
Face detection using the Face detection based in Haar-like rectangular features method often known as the Viola-Jones method
Haar cascade face detection.
- Download the application
- Browse the source code
Face (or object) tracking using Viola-Jones for face detection and Camshift as the object tracker. Can be used in RGB and HSL color spaces (may require some tuning for HSL)
Face tracking with the Camshift algorithm.
- Download the application
- Browse the source code
Sample application demonstrating how to use the Accord.Vision.Controls.Controller component to provide joystick-like controls for a Windows Form application. Its component design makes adding support for head-based controlling as easy as dragging and dropping a component into a Form.
Controlling a computer interface using computer vision.
- Download the application
- Browse the source code
How to segment and track color objects using a simple and inexpensive HSL-based color tracker.
- Download the application
- Browse the source code
Dynamic virtual wall sample application.
- Download the application
- Browse the source code
Help improve this wiki! Those pages can be edited by anyone that would like to contribute examples and documentation to the framework.
Have you found this software useful? Consider donating only U$10 so it can get even better! This software is completely free and will always stay free. Enjoy!