gVirtualXRay: an open source library from Bangor University to simulate X-ray images on GPU in real-time

Impact: Technological, Societal

Description of impact

Deterministic simulation provides a good compromise between speed and accuracy and can be implemented on graphics processing units (GPUs) for a further increase of speed.
We developed gVirtualXRay (the source code is available on SourceForge https://sourceforge.net/projects/gvirtualxray/ under the BSD 3-Clause License), an open-source library written in C++ and the OpenGL Shading Language (GLSL). gVirtualXRay is portable and works on a wide range of computers and operating systems. Wrappers to other popular languages, including Python, R, Ruby, Java and GNU Octave, are also available.

Thanks to the use of GPU computing, a simulated X-ray projection can be simulated in a few microseconds. It opens up new perspectives. It is indeed possible to use gVirtualXray in real-time applications, which is an approach popular with medical training simulators. GPUs also make it possible to combine gVirtualXray with an optimisation algorithm or a machine learning framework, which would not have been possible a few years ago. gVirtualXray has been used in various application contexts within the medical domains, and also in material science:

Medical VR for teaching and learning applications: Zuo et al adapted gVirtualXRay to handle contrast medium in the blood stream in a catheterization and angiography VR simulator. Racy et al integrated gVirtualXRay in the Unreal Engine to produce a Virtual Reality Haptic Femoral Nailing Simulator. Aaron Sujar Garrido integrated gVirtualXRay with a subject posing in patient specific simulators to implement a tool that an educator can use in the classroom to teach clinical radiography.

Motion artefacts in CT data acquisition] In medical applications, it is possible to simulate the respiration, including soft-tissue deformation, in realtime with the corresponding X-ray image. It can be used to simulate CT acquisition data with motion artefacts in a controlled environment.

Building patient-specific mechanical models: In a rheumatoid arthritis (RA) application, Wen et al use gVirtualXRay to create X-ray images in an image registration framework. They align a simulated X-ray (digitally reconstructed radiograph) of an articulated phantom mesh model to a real hand radiograph.

Medical physics: Albiol et al proposed a novel densitometric radiographic imaging modality. Densitometric radiographic images typically combine two radiographs that were produced with two different tube voltages, which increases the radiation dose received by patients. In the proposed method, the authors replaced one of the radiographs with a simulated one, thanks to the use of a contour sensors (e.g. Microsoft Kinnect) and gVirtualXRay.

Improving image quality: Andreozzi et al use gVirtualXRay to generate noise free X-ray radiographs. Noise is added as a post-process to study real‐time edge‐aware denoising in fluoroscopic devices. This way the authors have access to ground truth images (the noise free simulated images) and they can test the noise estimation algorithm in clinically relevant scenarios.

Training machine learning algorithms: Haiderbhai proposed a method based on a generative adversarial network (GAN), a machine learning approach that can be used to create synthetic images. They implemented the synthetic data generator using gVirtualXRay to create a large database to train the GAN. Their framework is used to create clinically realistic simulated radiographs from point cloud data.

Teaching physics online: gVirtualXRay, along with other relevant software packages, have been integrated in a Docker container that is used online to teach X-ray imaging for engineering undergraduates.

Metrology: Lovitt simulated X-ray images of fried batonnet cut potatoes using gVirtualXRay. They are used in a Non-Destructive Testing (NDT) application to estimate the length statistics of aggregate fried potato products, where simulated images are used to train a machine learning algorithm. More recently, it was used to register surface models on projection data where the CT volume was corrupted by such strong artefacts that segmenting the CT scan was unpractical.

Beneficiaries and reach of impact

Industry, education and health sector.

General Notes

Two PhD students from Universidad Rey Juan Carlos, Madrid, Spain are applying for travel grants to spend a Summer under Dr Vidal' supervision to add a machine learning module to simulate photon scattering.
Impact statusPotential
Impact date1 Dec 2013
Category of impactTechnological, Societal
Impact levelAdoption