Development of a high-speed 3D scanner system using Digital Fringe Projection techniques

Veloso López, Samuel (2017). Development of a high-speed 3D scanner system using Digital Fringe Projection techniques. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. y Sistemas de Telecomunicación (UPM), Madrid.


Title: Development of a high-speed 3D scanner system using Digital Fringe Projection techniques
  • Veloso López, Samuel
  • Hennelly, Bryan
Item Type: Final Project
Degree: Grado en Ingeniería Telemática
Date: 10 July 2017
Freetext Keywords: 3D shape measurement; Digital fringe projection; Digital light processing (DLP); Smartphone camera.
Faculty: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Department: Otro
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview
[img] Archive (ZIP) - Users in campus UPM only
Download (72kB)


The thesis project "DEVELOPMENT OF A HIGH-SPEED 3D SCANNER SYSTEM USING DIGITAL FRINGE PROJECTION TECHNIQUES" shows how to implement a 3D scanner step-by-step using Digital Fringe Projection technique. This technique consists in projecting a sinusoidal digital pattern of known amplitude, frequency and phase onto an object; capturing the projected pattern with a camera and retrieving the shape of the object using the relationship between the depth of the object and the instantaneous phase of the captured pattern. To project the patterns a DLP LightCrafter 4500 projector has been used, developed by Texas Instruments. It makes use of the DMD (Digital Mircromirror Device) projection technology and allows the projection of 8-bit patterns at a frequency of 120 Hz, enough frequency to recover the object in three dimensions at high speed. The projector has been connected to a Raspberry Pi 3 Model B via HDMI and USB to display dynamic patterns in real time. To do this, a C ++ application has been developed which, on the one hand, modifies the pattern parameters (type, intensity, frequency, phase, exposure time and color) according to the configuration chosen by the user and stores it in the Linux framebuffer for its correct projection; and on the other hand it communicates with the DLP projector thanks to the SDK provided by Texas Instruments to multiplex a pattern in each RGB channel taking advantage of DMD technology to project the patterns at high speed. Then the projection has to be recorded by a camera. Throughout the project the camera of a mid-range smartphone is used to demonstrate that high-precision cameras are not needed, although the better the camera is the faster and the more accurate the result will be. In order to retrieve the shape of the object correctly, it is necessary to record two different videos: one known as the calibration plane (the background without the object) and another one with the overlapped object. Finally, the algorithm that allows to recover the 3D shape of the object from the video of the calibration plane and the video of the overlapped object has been written in MATLAB, completely from scratch. The process consists of several phases: extract important frames from the video, detect and remove the background from the object, recover the instantaneous phase and calibrate the final result. To extract the frames it is necessary to synchronize the frequency of the camera with the frequency of the projector, once synchronized it is easy to remove the background by comparing the matching frames of each video to generate an image of the object without the background. With this image we can get the instantaneous frequency of each column as a direct relationship between the instantaneous frequency and the depth of the object exists. After applying a linear correction to the result, the final representation of the 3D object is obtained. Additionally it has been studied which are the best conditions that allow a better reconstruction of the object as DFP is a technique based on the reflection of the light and it is very sensitive to changes in the conditions of light. In addition, it has been measured the performance of the algorithm in an average personal computer by applying time metrics to the different phases of the algorithm, proposing a future approach that allows the reconstruction in real time. The development of this system opens up a wide range of possibilities for applications in the field of video game industry, medical diagnostic imaging, quality and control inspections, pattern recognition, etc. RESUMEN. El proyecto “DESARROLLO DE UN SISTEMA DE ESCÁNER 3D DE ALTA VELOCIDAD MEDIANTE LA PROYECCIÓN DIGITAL DE LUZ ESTRUCTURADA” muestra cómo implementar paso a paso un escáner 3D utilizando la tecnología de proyección de luz estructurada. Dicha técnica consiste en proyectar sobre el objeto un patrón digital sinusoidal de amplitud, frecuencia y fase conocidas; capturar el patrón proyectado con una cámara y recuperar la forma del objeto mediante la relación directa que existe entre profundidad del objeto y la fase instantánea del patrón capturado. Para la proyección de patrones se ha utilizado el proyector DLP LightCrafter 4500 de Texas Instruments, que utiliza la tecnología de proyección DMD (Digital Mircromirror Device) y la cual permite proyectar patrones de 8 bits a una frecuencia de 120 Hz, suficiente para recuperar el objeto en tres dimensiones a alta velocidad. A dicho proyector se le ha conectado una Raspberry Pi 3 Model B por HDMI y USB para transmitir patrones dinámicos en tiempo real. Para ello se ha desarrollado una aplicación en C++ que por un lado, modifica los parámetros del patrón (tipo, intensidad, frecuencia, fase, tiempo de exposición y color) en función a la configuración elegida por el usuario y lo almacena en el framebuffer de Linux para su correcta proyección; y que por otro lado se comunica con el proyector DLP gracias al SDK proporcionado por Texas Instrumentas para multiplexar un patrón en cada canal RGB y así conseguir aprovechar al máximo la tecnología DMD. A continuación, la proyección ha de ser grabada por una cámara. A lo largo del proyecto se utiliza la cámara de un smartphone de gama media para demostrar que no hacen falta cámaras de alta precisión, aun así cuanto mejor sea la cámara más rápido y más preciso será el resultado. Para que el algoritmo de reconstrucción funcione correctamente es necesario grabar dos vídeos diferentes, uno conocido como plano de calibración (el fondo sin el objeto) y otro con el objeto superpuesto. Finalmente, se ha escrito en MATLAB, completamente desde cero, el algoritmo que permite recuperar la forma 3D del objeto mediante los vídeos del plano de calibración y del objeto superpuesto. El proceso consta de varias fases: extraer los frames importantes del vídeo, detectar y eliminar el fondo del objeto, recuperar la fase instantánea y calibrar el resultado final. Para extraer los frames es necesario sincronizar la frecuencia de la cámara con la frecuencia del proyector, una vez sincronizados es sencillo eliminar el fondo comparando los frames coincidentes de cada vídeo para así generar una imagen del objeto sin fondo. Con esta imagen se puede obtener la frecuencia instantánea de cada columna al existir una relación directa entre la frecuencia instantánea y la profundidad del objeto. Tras aplicar una corrección lineal al resultado se obtiene la representación final del objeto en 3D. Adicionalmente se ha estudiado cuales son las condiciones que permiten una mejor reconstrucción del objeto ya que al ser una técnica basada en la reflexión de la luz es muy sensible a cambios en las condiciones de ésta. Además se ha medido cual es el rendimiento del algoritmo en un ordenador personal medio aplicando métricas temporales a las diferentes fases del algoritmo, proponiendo un enfoque futuro que permita la reconstrucción en tiempo real. El desarrollo de este sistema abre un abanico de posibilidades para aplicaciones en el campo de la industria de los videojuegos, diagnóstico médico por imagen, inspecciones de calidad y control, reconocimiento de patrones, etc.

More information

Item ID: 51757
DC Identifier:
OAI Identifier:
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 27 Jul 2018 06:33
Last Modified: 27 Jul 2018 06:33
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM