The subject of this thesis is the line tracking subsystem of an active triangulation-based 3D laser scanner. The subsystem’s purpose is image processing in general, which consists of the precise sub-pixel detection of a laser’s stripe on the image of the scanned object recorded by the scanner’s camera. The reconstruction of the 3D shape will be based on the points of the stripe detected by the line tracking subsystem.
As part of my work I made measurements with the scanner and took pictures for the analysis of the algorithm. I created a test software environment using the C++ programming language and the OpenCV computer vision library, in which line tracking algorithms and other image processing methods can be implemented, tested and compared, with the real-time tweaking of their parameters.
I carried out an error analysis of the system, detected new types of errors, documented other already known ones, and investigated their correlation with the parameters of the algorithm. I also designed and printed test objects using a 3D printer for the investigation of the connection between specific error types and object parameters. I proposed a metric showing the extent of the error on images generated by the software, I also found a mistake in the current implementation of the system and proposed a correction.
Furthermore, I investigated and devised methods to reduce the effects of certain error types on line tracking. I proposed a method to decrease inaccuracies caused by underexposure, and the likelihood of setting incorrect start- and stop-threshold parameters. I also devised a filtering method to fade image elements caused by the scattering and interference of the laser stripe, other bright spots, and overexposure. Lastly, I proposed modifications in the algorithm to reduce the extent of error appearing at the start of the line tracking, and the rounding observed near sharp corners.