scan conversion

Actual best performances

@gregsadetsky obtained a performance of 31-32 fps with OpenCV implementation

@loic-fejoz obtained a performance of 10-12 fps with hand-made scan conversion algo

Challenge

The signal coming from the transducer, once preprocessed, can be represented by a double array with polar coordinates. We want to turn this array into cartesian coordinates and take into account that this converted array won't match the double "x-y" array consisting of the pixels of the screen of the phone.

You'll find detailed explanation here.

Difficulty (1-5)

3

MISSION

The incoming stream of raw data transmitted by the electronics must be converted into an image stream.

Data are coming in polar coordinates and there do not match the resolution of the screen. When we project these images on the screen with repect to the distances, converted data do not fit perfectly on the screen pixels.

Therefore, it is of importance to interpolate the raw signal to produce the data pixelated on the device screen, as shown in the diagram below.

alt tag

BEFORE / AFTER

alt tag alt tag

TRADEOFF

techniques already exist and must weigh the optimality of the interpolation with the real-time requirement. The image provided to the radiologist should be in real time.

We will retain the most effective method.

REWARD

  • Residency in our Head Quarters located at the very center of Paris, on le Parvis de Notre Dame (hosting and breakfast )
  • DevBox USB keys at your name, T-shirts and other Goodies
  • Mention on our Hall of fame of open sources dudes

RESSOURCES

  • You can find stuff, code and ideas here
  • librairies : OpenCV, specific to android lib OpenGL ES, basé sur OpenGL ou autre
  • de nombreuses techniques d’interpolations existent : nearest neighboor, interpolation linéaire ou bilinéaire, méthodes assistée par Open GL ...
  • clonables/forkables sourcesare hosted on Github
  • Simulated data are available here

REPOS

Pull-requests submissions to REPO

Current implementations

For now, several implementations have been tested

  • On the master branch

    • The most effective is obtained through an OpenCV implementation. Indeed, OpenCV comes with a linearPolar method that enables polar to cartesian transform + an interpolation, which is precisely the ScanConversion trick. Let's precise that the type of interpolation can be choosen amongst several core implementation? Here, we use cubic interpolation.
  • On the redpitaya_udp_data

    • Here, the scanconversion consists in a simple computation of a weight table that is then applied to the image to be converted. The processing time gain comes from the use of OpenCL library which is reached from the java app through the JNI.

SUDOERS

@nowami [email protected]

ECHPERTS

on github aka @gregsadetsky

results matching ""

    No results matching ""