Calibration of a 3D image is what we call the process of going from sensor coordinates to real-world coordinates. There are two extremes in the methodology to accomplish this task:

  1. Use a complete calibration table that maps every single data point from the sensor to its real-world counterpart. This would give a high-quality calibration, but the table would be exceptionally large (over 34 million data points in our case) and thus can’t be implemented as a high-speed in-device solution.
  2. Use an ideal mathematical transformation model based on a geometry transformation and a scientific lens equation. This can be done by a fairly straight forward, fast, and efficient implementation, but have the downside that the global model can’t handle the inevitable local deviations (due to e.g. lens imperfections, and slightly curved laser lines at the measuring) from the ideal value.

Typical calibration transformation

Tile-based calibration is a compromise where the sensor is divided into smaller tiles (typically 32×16 pixels or smaller) and use a polynomial formula to do the calibration transformation for each tile individually. The base polynomial structure is the same, but the coefficients need to be individual for every tile. Obviously, the result will improve with smaller tiles. Smaller tiles, however, means more tiles, and the number of tiles will be limited by available RAM in the FPGA needed to store the coefficients for each tile.

The goal of the master thesis

Investigate how to optimize the tile-based calibration to get the best results without using too much memory resources. Optimization include several factors like:

  • Polynomial degree. For small tiles, 2nd degree polynomials are probably enough but it would be interesting to see how much the results will improve with higher degree polynomials.
  • Size (and shape) of the tiles. The most obvious way to weigh precision against memory usage.
  • Resolution of the coefficients (i.e. how many bits are used to represent the coefficients). In an FPGA implementation resolution of each coefficient can be adjusted individually to save memory but still keep the desired calibration resolution.
  • Finally, it is also important to consider how the calibration function behaves at the edges of the tile. It is not enough to find polynomial coefficients that give a good calibration within each tile, the function also must connect well to the adjacent tiles to avoid discrepancies along the tile edges.

If time permits, the tile-based calibration algorithm should be implemented in VHDL to be tested in an FPGA on existing hardware.


  • Good understanding of scientific computing and modeling quantization effects etc.
  • General understanding of FPGA hardware and programming in VHDL


For more information about the position, contact:

David Eklund, FPGA Developer,


Charlotte Axelsson, HR Manager, +46 739 20 99 50.

Welcome with your application 15th of October at the latest! We make ongoing selections and offer our thesis opportunity as soon as we have found the right person.

If you would like to write your thesis in a pair, please provide us with one application where you  attach both your CVs  and extracts of study results and one mutual cover letter.

SICK is a world-leading supplier of sensors and sensor solutions for industrial applications. We are 11 000 employees in 50 countries and our headquarter is located in Freiburg, Germany. SICK in Linköping is an innovation center for Machine Vision and we are 80 committed employees with a big interest in image processing and visualization. For more than 35 years, our team at SICK Linköping has successfully developed and delivered software for technically leading products within the field of 2D and 3D vision, as well as system solutions for i.e. robot guidance and quality control.

At SICK in Linköping, we are very proud of being a healthy and attractive workplace. For many years, we have been elected as one of the best workplaces in Sweden according to the survey Great Place to Work, the latest award is from 2023. We work actively to reduce our climate footprint and we are active in various ways to contribute to the society and to increase diversity at our workplace.