3D Analysis of Ultrasonic Inspection of steel pipes

Project Summary

This project consists on a stand alone C# application that consumes previously processed data from a CD/DVD and reconstructs a 3D representation of the pipe showing the shape and location of the detected flaws. The software was developed using Coin 3D, a multiplatform high-level 3D graphics library with a C++ API. Coin 3D uses OpenGL for accelerated rendering, while providing a higher abstraction level, 3D interactivity. Again, most of the low level stuff was developed in C++ and encapsulated in a C# wrapper so we could take advantage of the development speed that C# offers.

  • OS: Windows
  • Databases: MSSQL 2005
  • Languages: C++, C#
  • Tools used: Coin3D, OpenGL, SQL


In the steel pipe manufacturing industry it is a requirement to inspect all produced pipes looking for possible physical defects that may compromise pipe strength and resistance when used at high pressures, a key and common extreme condition when pipes are used inside oil wells. One common inspection technique is to use ultrasound to detect production flaws. Some ultrasound inspection machines can provide raw data just as a laser scanner does. However still some processing on the delivered signals (compensate for non-linear acquisition, analyze and compress data, extract summarized features, etc.) must be done in order to interpret and represent it using 3D software. One challenge in this project was to reduce the enormous amount of data generated by the ultrasound machine without losing information; each pipe generates one 500 point curve per millimeter. Another requirement was not to lose data in the vicinity of the flaw. The approach was to implement an algorithm that applied some DSP on the generated signals. First we applied some filtering (running filters) to eliminate noise and then we obtained its FFT and apply the Nyquist criterion to down sample the signal. Since we did not know the location of the flaws, we obtained its spectrogram to find the possible location of the flaws in the curve. The algorithm looks for concentrations of energy at high frequencies, characteristics of presence of a flaw in the pipe. If a flaw is detected, then it keeps all data in the vicinity but dropping points that belong to the rest of the body of the pipe assuming a the pipe is a perfect cylinder.