# Advanced

### Camera calibration

## Camera-lens calibration

The coordinates on the sensor are expressed in a base of vectors called (u,v).

The distortion of a camera-lens system can be expressed by an operator that transforms the coordinates with distortion (u,v) into coordinates without distortion (u’,v’) or vice versa.

Therefore as a general rule we can write:

With A, a generic operator.

Classic modelling requires A to be a function:

With

The factor can be developed in series to divide the contributions of the different degrees of r.

To also take spurious effects into account, the equation can be redefined as:

The effects of the main coefficients are graphically shown as follows:

Determining the transformation values makes it possible to calculate and correct the distortion.

Final remarks:

- The model is applied to the camera and lens system. Any change in these components makes it necessary to recalculate the coefficients.
- The parameters are intrinsic, therefore they do not depend on what is observed.

### Neural network

## Neural network

An artificial neural network is a computing model consisting of logical elements (artificial “neurons”) based on a simplified biological neural network model.

The neurons can be considered as network nodes and divided into the following groups:

- Input neurons, with a 1-1 relationship as featured in the sample (green nodes)
- Hidden neurons, may be present or not, with a number of layers according to how much you wish the system to be capable of creating interconnections and therefore relationships between inputs (red nodes)
- Output neurons which present the final outcomes of the calculation.

A learning process (either supervised or unsupervised) is necessary to make a neural network operational. Connections are moulded during learning (they all weighed the same in the previous image), some connections disappear, some connections become weaker while others become stronger.

Now the system is capable of solving the problems it was trained for.

Example:

Nicola and Paolo want to book a restaurant online. The system will show about a dozen restaurants for each one and will ask them to rate their preferences (which might just be based on selecting interesting restaurants). At that stage, based on inputs such as price, customer reviews, vicinity, etc. a popularity ranking will be created for each user (with only one output with a value between 0 and 10). Each user has their own neural network available which is specifically arranged to make Nicola or Paolo’s decision easier, although obviously Nicola’s rankings might not agree with what Paolo has in mind.

This example shows the advantage of neural networks: a generic software is written which adapts itself to a certain purpose only after learning.

### Machine learning

## Machine learning

Machine learning includes the following main types:

- supervised
- unsupervised

The main difference between the two types is that supervised learning is performed using a basic truth. The operator, therefore, has prior knowledge of what the output values of our samples should be (e.g. right or wrong). Therefore, supervised learning is aimed at learning a function which, given a sample of desired data and outputs, is closer to the relationship between inputs and outputs which can be observed in the data.

Unsupervised learning has no labeled outputs. Therefore its goal is to deduce the structure within a group of data.

**Supervised Learning**

Supervised learning issues can be further grouped into regression and classifier issues.

Classifier: there is a classifier problem when the output variable is a category, like “red” and “blue” or “right” and “wrong”

Regression: a regression problem is when the output variable is a real value, like “dollars” for the estimate of a house, whose input parameters are “size”, “nearby schools”, etc.

The complexity of the model refers to the complexity of the function one is trying to learn.

**Unsupervised Learning **

Unsupervised learning is when the operator enters the inputs (such as images) with no matching output variable. The goal of unsupervised learning is to model the structure or the distribution underlying the data. Unlike supervised learning, there are no correct answers because there is no teacher. The algorithms discover the structures in the data and the laws governing them on their own.

Unsupervised learning issues are essentially clustering problems since one wishes to discover the inherent groupings in the data, for example, clustering objects according to their area. The dimensionality reduction of the problem is an aspect which cannot be overlooked, as significant features must be chosen (for example selecting objects according to the area might not be enough)