Use Cases

Computer Vision (Kinect Fusion)

The Kinect Fusion application is a computer vision algorithm developed originally in C++ with the aim to recreate and render a video at real time. It can run on existing datasets as well as in real-time with input frames from an attached RBG-d camera.

An open-source implementation of Kinect Fusion in Java is available on GitHub. This implementation includes more than 7.000 LoC, and it has been used with TornadoVM to accelerate the algorithm directly from Java onto GPUs.

java-kfusion.gif

Vanilla Java Kinect Fusion

gpu-kfusion.gif

Accelerated Kinect Fusion on GPU

The right image shows a screenshot of the execution with TornadoVM on an NVIDIA GPU 1050. The left part in both images illustrates the input program in four types that correspond to different options of the Kinect camera (e.g. the depth image, track model and light-scene).

kfusion-overall.jpg

Overall 

Performance Gains

kfusion-kernel.jpg

Maximum Kernel 

Performance Gains

kfusion-fps.jpg

Frames Per Second (FPS)