Friday, December 23, 2016

Pattern recognition machine learning



Our researchers in artificial intelligence are harnessing the explosion of digital data and computational power with advanced algorithms to enable collaborative and natural interactions between people and machines that extend the human ability to sense, learn and understand. The research infuses computers, materials and systems with the ability to reason, communicate and perform with humanlike skill and agility.

Pattern recognition is a branch of machine learning that focuses on the recognition of patterns and regularities in data, although it is in some cases considered to be nearly synonymous with machine learning. Pattern recognition systems are in many cases trained from labeled "training" data (supervised learning), but when no labeled data are available other algorithms can be used to discover previously unknown patterns (unsupervised learning).

The terms pattern recognition, machine learning, data mining and knowledge Discovery in Databases (KDD) are hard to separate, as they largely overlap in their scope. Machine learning is the common term for supervised learning methods and originates from artificial intelligence, whereas KDD and data mining have a larger focus on unsupervised methods and stronger connection to business use.

Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years. In particular, Bayesian methods have grown from a specialist niche to become mainstream, while graphical models have emerged as a general framework for describing and applying probabilistic models. Also, the practical applicability of Bayesian methods has been greatly enhanced through the development of a range of approximate inference algorithms such as variational Bayes and expectation propagation. Similarly, new models based on kernels have had significant impact on both algorithms and applications.

The problem of searching for patterns in data is a fundamental one and has a long and successful history. For instance, the extensive astronomical observations of Tycho Brahe in the 16th century allowed Johannes Kepler to discover the empirical laws of planetary motion, which in turn provided a springboard for the development of classical mechanics. Similarly, the discovery of regularities in atomic spectra played a key role in the development and verification of quantum physics in the early twentieth
century. The field of pattern recognition is concerned with the automatic discovery of regularities in data through the use of computer algorithms and with the use of these regularities to take actions such as classifying the data into different categories. Consider the simple example of recognizing handwritten digits, each digit corresponds to a 28×28 pixel image and so can be represented by a vector
x comprising 784 real numbers. The goal is to build a machine that will take such a vector x as input and that will produce the identity of the digit 0, . . . , 9 as the output. This is a nontrivial problem due to the wide variability of handwriting. It could be tackled using handcrafted rules or heuristics for distinguishing the digits based on the shapes of the strokes, but in practice such an approach leads to a proliferation of rules and of exceptions to the rules and so on, and invariably gives poor results.

Far better results can be obtained by adopting a machine learning approach in which a large set of N digits {x1, . . . , xN} called a training set is used to tune the parameters of an adaptive model. The categories of the digits in the training set are known in advance, typically by inspecting them individually and hand-labelling them. We can express the category of a digit using target vector t, which represents the identity of the corresponding digit. Suitable techniques for representing categories in terms of vectors will be discussed later. Note that there is one such target vector t for each digit image x.

-The result of running the machine learning algorithm can be expressed as a function y(x) which takes a new digit image x as input and that generates an output vector y, encoded in the same way as the target vectors. The precise form of the function y(x) is determined during the training phase, also known as the learning phase, on the basis of the training data. Once the model is trained it can then determine the identity of new digit images, which are said to comprise a test set. The ability to categorize correctly new examples that differ from those used for training is known as generalization.
In practical applications, the variability of the input vectors will be such that the training data can comprise only a tiny fraction of all
possible input vectors, and so generalization is a central goal in pattern recognition.
For most practical applications, the original input variables are typically preprocessed to transform them into some new space of variables where, it is hoped, the pattern recognition problem will be easier to solve. For instance, in the digit recognition
problem, the images of the digits are typically translated and scaled so that each digit is contained within a box of a fixed size. This greatly reduces the variability within each digit class, because the location and scale of all the digits are now the same, which makes it much easier for a subsequent pattern recognition algorithm to distinguish between the different classes. This pre-processing stage is sometimes also called feature extraction. Note that new test data must be pre-processed using the same steps as the training data.
Pre-processing might also be performed in order to speed up computation. For example, if the goal is real-time face detection in a high-resolution video stream, the computer must handle huge numbers of pixels per second, and presenting these directly to a complex pattern recognition algorithm may be computationally infeasible.
Instead, the aim is to find useful features that are fast to compute, and yet that  also preserve useful discriminatory information enabling faces to be distinguished from non-faces. These features are then used as the inputs to the pattern recognition algorithm. For instance, the average value of the image intensity over a rectangular sub-region can be evaluated extremely efficiently, and a set of such features can prove very effective in fast face detection. Because the number of such features is smaller than the number of pixels, this kind of pre-processing represents a form of dimensionality reduction. Care must be taken during pre-processing because often information is discarded, and if this information is important to the solution of the problem then the overall accuracy of the system can suffer.
Applications in which the training data comprises examples of the input vectors along with their corresponding target vectors are known as supervised learning problems.
Cases such as the digit recognition example, in which the aim is to assign each input vector to one of a finite number of discrete categories, are called classification problems. If the desired output consists of one or more continuous variables, then the task is called regression. An example of a regression problem would be the prediction of the yield in a chemical manufacturing process in which the inputs consist of the concentrations of reactants, the temperature, and the pressure.
In other pattern recognition problems, the training data consists of a set of input vectors x without any corresponding target values. The goal in such unsupervised learning problems may be to discover groups of similar examples within the data, where it is called clustering, or to determine the distribution of data within the input space, known as density estimation, or to project the data from a high-dimensional space down to two or three dimensions for the purpose of visualization.
Finally, the technique of reinforcement learning is concerned with the problem of finding suitable actions to take in a given situation in
order to maximize a reward. Here the learning algorithm is not given examples of optimal outputs, in contrast to supervised learning, but must instead discover them by a process of trial and error. Typically, there is a sequence of states and actions in which the learning algorithm is interacting with its environment. In many cases, the current action not only affects the immediate reward but also has an impact on the reward at all subsequent time steps.

Let’s discuss a live example, ANPR (Automatic number plate recognition) or LPR (License plate recognition)  It is the technical method of artificial vision (OCR) that allows the recognition of number plates in images of vehicles. Historically, it has been applied on security systems to control accesses of vehicles and car parks.

Nowadays, the ANPR technology has improved its reliability, some systems are able to offer recognition rates between 95 and 98%. Also, some ANPR equipment are able to recognize the number plate of vehicles that drive up tol 200km/h.

Generally, the ANPR technology can be bought in two modalities, The ANPR engine The ANPR equipment (Hardware + recognition engine)

The ANPR engine can recognize the number plate directly from the images stored in a hard disk. This type of software allows to take good use of images that have been obtained from other systems like CCTV or cameras.

The ANPR equipment incorporates all the hardware necessary to capture the images of the vehicles and to recognize the number plate. Moreover, it incorporates the ANPR engine. The ANPR equipment are designed to offer the maximum reliability.

The ANPR process is divided into three steps. The detection of the vehicle, the capture of the images and the process of recognition. Next, we will detail step by step how it works and depending on each case what the advantages and disadvantages are

Once the vehicle is detected, the following step is the capture of the vehicle. In order to take a right image, the following points will have to be considered. Each ANPR manufacturer has developed its own recognition algorithms, although, these are the main ones and the common ones

    To locate and to isolate the number plate in the image
    To correct the brightness and the contrast of the number plate
    To separate each character of the number plate
    To recognize each character of the number plate

The Capture Unit that takes the image of the vehicle, and the Process Unit that receive the image from the Capture Unit and makes the recognition of the number plate. The Process Units can control one or more Capture Units simultaneously.

The quality of the solution depends on each manufacturer, although generally the "CU+PU" architecture has disadvantages respect the ANPR All-in-One. Now let’s apply the modus we have discussed above & try to get a solution. Then you could search the solution on web & check the feasibility of your thoughts.

If you need any help feel free to get in touch with me at ravindrapande@gmail.com & I will be happy to help.