Click or drag to resize
Accord.NET (logo)

Framework modules

Accord.NET provides statistical analysis, machine learning, image processing and computer vision methods for .NET applications. Once an extension to the former AForge.NET Framework, the framework grew to incorporate AForge.NET and complement it with new features, adding to a more complete environment for scientific computing in .NET.

The framework is divided in libraries, available through an executable installer, standalone compressed archives and NuGet packages. Those libraries are divided among three main functionalities, listed below:

Scientific computing

  • Accord.Math - Contains a matrix extension library, along with a suite of numerical matrix decomposition methods, numerical optimization algorithms for constrained and unconstrained problems, special functions and other tools for scientific applications.
  • Accord.Statistics - Contains probability distributions, hypothesis testing, statistical models and methods such as Linear and Logistic regression, Hidden Markov Models, (Hidden) Conditional Random Fields, Principal Component Analysis, Partial Least Squares, Discriminant Analysis, Kernel methods and many other related techniques.
  • Accord.MachineLearning - Support Vector Machines, Decision Trees, Naive Bayesian models, K-means, Gaussian Mixture models and general algorithms such as Ransac, Cross-validation and Grid-Search for machine-learning applications.
  • Accord.Neuro - Neural learning algorithms such as Levenberg-Marquardt, Parallel Resilient Backpropagation, the Nguyen-Widrow initialization algorithm, Deep Belief Networks and Restrictured Boltzmann Machines, and many other neural network related items.

Signal and image processing

  • Accord.Imaging - Contains interest point detectors (such as Harris, SURF, FAST and FREAK), image filters, image matching and image stitching methods, as well as feature extractors such as Histograms of Oriented Gradients and Haralick's textural feature descriptors.
  • Accord.Audio - Contains methods to process, transforms, filters and handle audio signals for machine learning and statistical applications.
  • Accord.Vision - Real-time face detection and tracking, as well as general methods for detecting, tracking and transforming objects in image streams. Contains cascade definitions, Camshift and Dynamic Template Matching trackers.

Support libraries

  • Accord.Controls - Histograms, scatterplots and tabular data viewers for scientific applications.
  • Accord.Controls.Imaging - Windows Forms controls to show and handle images. Contains a convenient ImageBox control which mimics the traditional MessageBox for quickly displaying or inspecting images.
  • Accord.Controls.Audio - Windows Forms controls to display waveforms and audio-related information.
  • Accord.Controls.Vision - Windows Forms components and controls to track head, face and hand movements and other computer vision related tasks.

A complete listing of the framework's namespaces is presented below. Please click on any of the namespace names for more details.

Namespaces
NamespaceDescription
Accord
 
Accord.Audio
 
Accord.Audio.ComplexFilters
Contains frequency-domain signal filters.
Accord.Audio.Filters
Contains time-domain signal processing filters.
Accord.Audio.Formats
 
Accord.Audio.Generators
Contains specialized signal generators. Generate square signals, sinusoids, pulse and other filters for use in signal processing.
Accord.Audio.Windows
Contains audio window functions which can be used to split signals in time.
Accord.Audition
 
Accord.Audition.Beat
Contains beat detection algorithms and related methods.
Accord.Collections
Contains collections such as Lists, Dictionaries, Trees and other useful structures.
Accord.Controls
 
Accord.Controls.Vision
 
Accord.DataSets
 
Accord.DataSets.Base
 
Accord.Diagnostics
 
Accord.DirectSound
Contains audio devices to reproduce and capture sounds exposed through DirectSound.
Accord.Fuzzy
 
Accord.Genetic
 
Accord.Imaging
 
Accord.Imaging.ColorReduction
 
Accord.Imaging.ComplexFilters
 
Accord.Imaging.Converters
Contains classes and methods to convert between different image representations, such as between common images, numeric matrices and arrays.
Accord.Imaging.Filters
Contains the image processing filters such as the Wavelet transform, stereo rectification, image blending and point markers.
Accord.Imaging.Formats
 
Accord.Imaging.Moments
Contains image moments calculators such as central and raw moments,
Accord.Imaging.Textures
 
Accord.IO
 
Accord.MachineLearning
 
Accord.MachineLearning.Bayes
Contains discrete and continuous density Naive Bayes models for pattern recognition and concept learning. Supports a wide diversity of probabilistic distributions.
Accord.MachineLearning.Boosting
Contains Boosting related techniques for creating classifier ensembles and other composition models.
Accord.MachineLearning.Boosting.Learners
Contains Boosting related techniques for creating classifier ensembles and other composition models.
Accord.MachineLearning.Clustering
 
Accord.MachineLearning.DecisionTrees
Contains discrete and continuous Decision Trees, with support for automatic code generation, tree pruning and the creation of decision rule sets.
Accord.MachineLearning.DecisionTrees.Learning
Contains learning algorithms for inducing Decision Trees.
Accord.MachineLearning.DecisionTrees.Pruning
Contains classes to prune decision trees, removing unneeded nodes in an attempt to improve generalization.
Accord.MachineLearning.DecisionTrees.Rules
 
Accord.MachineLearning.Geometry
Contains methods for robust estimation of geometry entities.
Accord.MachineLearning.Performance
 
Accord.MachineLearning.Rules
 
Accord.MachineLearning.Text.Stemmers
 
Accord.MachineLearning.VectorMachines
Contains classes related to Support Vector Machines (SVMs). Contains linear machines, kernel machines, multi-class machines, SVM-DAGs (Directed Acyclic Graphs), multi-label classification and also offers support for the probabilistic output calibration of SVM outputs.
Accord.MachineLearning.VectorMachines.Learning
Contains algorithms for training Support Vector Machines (SVMs).
Accord.Math
 
Accord.Math.Comparers
Comparison methods that can be used in sort algorithms such as Sort(Array).
Accord.Math.Convergence
 
Accord.Math.Converters
 
Accord.Math.Decompositions
Contains numerical decompositions such as QR, SVD, LU, Cholesky, and NMF with specialized definitions for most .NET data types: float, double, and decimals.
Accord.Math.Differentiation
Contains methods for the automatic differentiation of mathematical formulas, such as the Finite Differences method.
Accord.Math.Distances
 
Accord.Math.Environments
Contains algorithm environments you can inherit from and let your code be similar to famous environments such as R and Octave.
Accord.Math.Geometry
Contains geometry-related classes. Can identify convex-hulls, detect curvatures and extract convexity defects. When used together with the Imaging and Vision namespaces, can create finger detection components.
Accord.Math.Integration
Numerical methods for approximating integrals.
Accord.Math.Kinematics
Contains classes to model complex kinematic chains, useful for robotic applications.
Accord.Math.Metrics
 
Accord.Math.Optimization
Contains classes for constrained and unconstrained optimization. Includes Conjugate Gradient (CG), Bounded and Unbounded Broyden–Fletcher–Goldfarb–Shanno (BFGS), gradient-free optimization methods such as Cobyla and the Goldfarb-Idnani solver for Quadratic Programming (QP) problems.
Accord.Math.Optimization.Losses
 
Accord.Math.Random
 
Accord.Math.Transforms
 
Accord.Math.Wavelets
Contains Wavelet transforms such as the Cohen-Daubechies-Feauveau and the Haar Wavelet transforms.
Accord.Neuro
 
Accord.Neuro.ActivationFunctions
Contains different activation functions for artificial neurons.
Accord.Neuro.Layers
Contains different layer architecures for artificial neural networks.
Accord.Neuro.Learning
Contains neural network learning algorithms such as the Levenberg-Marquardt (LM) with Bayesian Regularization and the Resilient Backpropagation (RProp) for multi-layer networks. This namespace extends the AForge.Neuro namespace of the AForge.NET project.
Accord.Neuro.Networks
Contains different neural network architectures, such as specialized architectures for deep learning and Boltzmann machines.
Accord.Neuro.Neurons
Contains different kinds of artificial neurons.
Accord.Neuro.Visualization
Contains methods to visualize information drawn from neural networks.
Accord.Statistics
 
Accord.Statistics.Analysis
Contains many statistical analysis, such as PCA, LDA, KPCA, KDA, PLS, ICA, Logistic Regression and Stepwise Logistic Regression Analyses. Also contains performance assessment analysis such as contingency tables and ROC curves.
Accord.Statistics.Analysis.Base
 
Accord.Statistics.Analysis.ContrastFunctions
Contains contrast functions to be used with Independent Component Analysis (ICA).
Accord.Statistics.Distances
 
Accord.Statistics.Distributions
Contains more than 40 statistical distributions, with support for most probability distribution measures and estimation methods.
Accord.Statistics.Distributions.DensityKernels
Contains density estimation kernels which can be used in combination with empirical distributions and multivariate empirical distributions.
Accord.Statistics.Distributions.Fitting
Contains special options which can be used in distribution fitting (estimation) methods.
Accord.Statistics.Distributions.Multivariate
Contains a multivariate distributions such as the multivariate Normal, Multinomial, Independent, Joint and Mixture distributions.
Accord.Statistics.Distributions.Reflection
 
Accord.Statistics.Distributions.Sampling
 
Accord.Statistics.Distributions.Univariate
Contains univariate distributions such as Normal, Cauchy, Hypergeometric, Poisson, Bernoulli, and specialized distributions such as the Kolmogorov-Smirnov, Nakagami, Weibull, and Von-Mises distributions.
Accord.Statistics.Filters
Contains data processing filters, such as data normalization, discretization, equalization, selection and projection filters.
Accord.Statistics.Kernels
Contains more than 30+ kernel functions for machine learning and statistical applications. Kernel functions are used in kernel methods such as the Support Vector Machine (SVM).
Accord.Statistics.Kernels.Sparse
Contains kernel function able to deal with sparse data in LibSVM's format.
Accord.Statistics.Links
Contains link functions for generalized linear models, such as the Logit, the Probit and Cauchit link functions.
Accord.Statistics.Models
Contains statistical models with direct applications in machine learning, such as Hidden Markov Models, Conditional Random Fields, Hidden Conditional Random Fields and linear and logistic regressions.
Accord.Statistics.Models.Fields
Accord.Statistics.Models.Fields.Features
Contains CRF feature functions such as Emission, Transition, First and Second Moments features.
Accord.Statistics.Models.Fields.Functions
Contains potential functions for CRFs and HCRFs.
Accord.Statistics.Models.Fields.Functions.Specialized
 
Accord.Statistics.Models.Fields.Learning
Contains learning algorithms for CRFs and HCRFs, such as Conjugate Gradient, L-BFGS and RProp-based learning.
Accord.Statistics.Models.Markov
Contains classes related to Hidden Markov Models and their learning algorithms. Offers support for both discrete and continuous-density models, as well as Markov classifiers and threshold models for sequence rejection.
Accord.Statistics.Models.Markov.Hybrid
 
Accord.Statistics.Models.Markov.Learning
Contains learning algorithms such as Baum-Welch.
Accord.Statistics.Models.Markov.Topology
Contains topologies for HMMs, such as Forward-only and Ergodic topologies.
Accord.Statistics.Models.Regression
Contains statistical regression models such as logistic and linear regressions.
Accord.Statistics.Models.Regression.Fitting
Fitting (learning) algorithms for regression models, such as the Iterative Reweighted Least Squares for standard logistic regressors and the Lower-Bound approximator for multinomial logistic regression.
Accord.Statistics.Models.Regression.Linear
Linear statistical regression models such as simple, polynomial, multiple and multivariate linear regressions.
Accord.Statistics.Moving
Contains classes to estimate moving statistics, i.e. statistics computed within a time frame window.
Accord.Statistics.Running
Contains classes to estimate running statistics, i.e. statistics which should be computed and updated as soon as new data becomes available.
Accord.Statistics.Testing
Contains 34+ statistical hypothesis tests, including one way and two-way ANOVA tests, non-parametric tests such as the Kolmogorov-Smirnov test and the Sign Test for the Median, contingency table tests such as the Kappa test, including variations for multiple tables, as well as the Bhapkar and Bowker tests; and the more traditional Chi-Square, Z, F , T and Wald tests.
Accord.Statistics.Testing.Power
Contains methods for power analysis of several related hypothesis tests, including support for automatic sample size estimation.
Accord.Statistics.Visualizations
Contains classes for statistical visualization such as Histograms and Scatterplots.
Accord.Video
 
Accord.Video.DirectShow
 
Accord.Video.FFMPEG
 
Accord.Video.Kinect
 
Accord.Video.VFW
 
Accord.Video.Ximea
 
Accord.Vision
 
Accord.Vision.Detection
Contains object detectors such as the Viola-Jones (Haar feature) method. The Haar cascades are completely compatible with OpenCV generated definitions and the assembly comes with direct support for bundled definitions for face and nose templates.
Accord.Vision.Detection.Cascades
Built-in Haar cascade definitions to use with the Haar feature object detector. Those definitions can be called directly from code without need for loading XML files.
Accord.Vision.Motion
 
Accord.Vision.Tracking
Contains classes for object tracking. Include the Camshift algorithm, color segmentation-based trackers and dynamic template matching trackers.