# Real-time 3D ultrasound volume reconstruction using SlicerIGT extension

**URL:** <https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197>\
**Category:** Support\
**Tags:** feature\
**Created:** [April 20, 2020, 6:23am UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197 "2020-04-20T06:23:08Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [April 20, 2020, 6:23am UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/1 "2020-04-20T06:23:08Z")

</div>

3D Slicer’s SlicerIGT extension allows live data acquisition from a wide range of medical imaging, position tracking, and other devices and visualize and process the data in real-time.

We have recently implemented huge performance improvements in live 3D ultrasound image acquisition, which allows smooth, continuous reconstruction of high-resolution 3D ultrasound volumes, using inexpensive portable ultrasound and position tracker. For large volumes and performance-critical applications, the volume reconstructor can use all CPU threads or GPU acceleration (OpenCL). We have uploaded a short video of this new feature here:

Thanks to company sponsors and our awesome SlicerIGT developers @Sunderlandkyl and @ungi for making these available for the community.

Any questions, comments, and suggestions are welcome.

---

<div class="post-metadata">

**Author:** ![kristjanq](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/kristjanq/32/6534_2.png) [@kristjanq](https://discourse.slicer.org/u/kristjanq)\
**Post date:** [May 11, 2020, 2:19am UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/2 "2020-05-11T02:19:50Z")

</div>

This is awesome!

I would like to address an issue I had with an already recorded sequence. I loaded the sequence in Plus (providing the full path in the config file.)  
Then I followed the steps as shown in the video. As a result, I do not get live reconstruction. Is it not supposed to behave the same as a real-time data acquisition and reconstruction scenario, given that Plus will replay the images from the sequence?

Also the button for “input sequence browser” does not work when chosen “Recorded sequence reconstruction” as an input method. Any input on this matter?

 ![3d reconstruction](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/d/3/d3a59d64c62334fd40bd1afaf119a9060ad04238.png)

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 16, 2020, 4:10pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/3 "2020-05-16T16:10:06Z")

</div>

@Sunderlandkyl could you help out with this?

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [May 16, 2020, 5:27pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/4 "2020-05-16T17:27:58Z")

</div>

What is the exact issue that you are having when doing live volume reconstruction?

The images that you receive from Plus should have a transform applied to them, either by receiving them directly as in the correct coordinate system (ex. Image\_Reference), or by applying the transforms within Slicer. If this is already done, then I will need some more information about your Slicer scene, Plus config file and data to determine what the issue is.

For the “Recorded sequence reconstruction”, I assume the reason that you cannot select a sequence browser is that you do not have a loaded sequence in Slicer.

---

<div class="post-metadata">

**Author:** ![lb123](https://avatars.discourse-cdn.com/v4/letter/l/85e7bf/32.png) [@lb123](https://discourse.slicer.org/u/lb123)\
**Post date:** [December 15, 2021, 12:46pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/5 "2021-12-15T12:46:25Z")

</div>

Hi, can you please tell me where I can find the Plus Server configuration file to perform a real-time 3D ultrasound volume recontruction using this SlicerIGT extension?

---

<div class="post-metadata">

**Author:** ![JakeZ](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jakez/32/13002_2.png) [@JakeZ](https://discourse.slicer.org/u/JakeZ)\
**Post date:** [December 15, 2021, 1:21pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/6 "2021-12-15T13:21:31Z")

</div>

Perhaps you could try U-34 in SlicerIGT Tutorials ([User tutorial | SlicerIGT](http://www.slicerigt.org/wp/user-tutorial/)) where sample data is also available.

---

<div class="post-metadata">

**Author:** ![lb123](https://avatars.discourse-cdn.com/v4/letter/l/85e7bf/32.png) [@lb123](https://discourse.slicer.org/u/lb123)\
**Post date:** [December 16, 2021, 10:03am UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/8 "2021-12-16T10:03:00Z")

</div>

Thank you. I used that data and it worked

---

<div class="post-metadata">

**Author:** ![whu](https://avatars.discourse-cdn.com/v4/letter/w/7ab992/32.png) [@whu](https://discourse.slicer.org/u/whu)\
**Post date:** [May 12, 2022, 1:28pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/9 "2022-05-12T13:28:09Z")

</div>

Dear Sir,

does this module（volume reconstruction）support the TEE living data or offline record data ?

there mabye a position tracking device.  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/f/b/fb67f3e6e35509756371ca091af6450167201812.jpeg)

thanks

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 12, 2022, 1:29pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/10 "2022-05-12T13:29:39Z")

</div>

It does continuous live recording and volume reconstruction. You can also feed pre-recorded data or reconstruct offline from pre-recorded data.

---

<div class="post-metadata">

**Author:** ![whu](https://avatars.discourse-cdn.com/v4/letter/w/7ab992/32.png) [@whu](https://discourse.slicer.org/u/whu)\
**Post date:** [May 12, 2022, 2:57pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/11 "2022-05-12T14:57:56Z")

</div>

Thanks very much, I will try the TEE pre-recored data.

---

<div class="post-metadata">

**Author:** ![Javan](https://avatars.discourse-cdn.com/v4/letter/j/ec9cab/32.png) [@Javan](https://discourse.slicer.org/u/Javan)\
**Post date:** [March 1, 2023, 9:11pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/12 "2023-03-01T21:11:13Z")

</div>

Hello,  
I am using a system with an NVIDIA GeForce RTX 3070 GPU. I want to use it for volume reconstruction. Can you please let me know if there is a way to configure Slicer to use it for volume reconstruction?  
Thank you.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 1, 2023, 10:44pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/13 "2023-03-01T22:44:26Z")

</div>

GPU is used for volume reconstruction and volume rendering.

---

<div class="post-metadata">

**Author:** ![Javan](https://avatars.discourse-cdn.com/v4/letter/j/ec9cab/32.png) [@Javan](https://discourse.slicer.org/u/Javan)\
**Post date:** [March 1, 2023, 11:31pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/14 "2023-03-01T23:31:50Z")

</div>

Thank you for your reply.  
The issue is that when I make the region of interest larger for real-time reconstruction then I see lag and there are missing parts and gaps in the reconstructed result.  
I checked “slicer.vtkSlicerVolumeReconstructionLogic().IsGpuAccelerationSupported()” and it was false. Does this mean my GPU is not used?  
Would you please let me know how I can have a bigger area for reconstruction with no lag? should I upgrade any hardware? or is there any other way to solve this issue?  
Thank you.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 1, 2023, 11:54pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/15 "2023-03-01T23:54:50Z")

</div>

@Sunderlandkyl is GPU acceleration available on factory-built IGSIO packages? If not, what would be needed to enable it?

@Javan using the GPU will accelerate volume reconstruction but there is a lot of other things to happen quickly to be able to significantly increase the frame rate. Most of these things cannot run on the GPU. So, in general, you need to slow down if you see gaps. What are the dimensions and voxel size of the volume that you are trying to insert frames into? What are the dimensions and pixel size of the ultrasound image? What is the ultrasound image acquisition rate?

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [March 2, 2023, 1:57am UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/16 "2023-03-02T01:57:17Z")

</div>

It doesn’t look like it’s included in the factory-built packages. It should be automatically included if the factory has OpenCL installed.

---

<div class="post-metadata">

**Author:** ![Javan](https://avatars.discourse-cdn.com/v4/letter/j/ec9cab/32.png) [@Javan](https://discourse.slicer.org/u/Javan)\
**Post date:** [March 2, 2023, 6:13pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/17 "2023-03-02T18:13:08Z")

</div>

I tried with image size 800x600 spacing 0.08 with fps 10, and volume size 800x800x800 and spacing 0.1.  
For the GPU that means I don’t have OpenCL installed? is there any way to install it on my system? and will that help to solve the issue?  
Thank you in advance.

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [March 2, 2023, 6:18pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/18 "2023-03-02T18:18:51Z")

</div>

> [@Javan](#):
>
> For the GPU that means I don’t have OpenCL installed? is there any way to install it on my system? and will that help to solve the issue?

You shouldn’t need to have OpenCL installed on your own computer. The OpenCL SDK just needs to be installed on the machine that is building the extension.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [March 2, 2023, 6:36pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/19 "2023-03-02T18:36:25Z")

</div>

@Sunderlandkyl Do you know if there is any disadvantage of building with OpenCL? (for example, what happens if the package is built with OpenCL SDK but then on the user’s computer there is no OpenCL or not even a GPU)? If there are no disadvantages then we could download the OpenCL SDK in SlicerIGSIO build.

@Javan Do you have experience in building C++ code? You can then test if the speed improvement by reconstructing on the GPU is significant enough.

---

<div class="post-metadata">

**Author:** ![Sunderlandkyl](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sunderlandkyl/32/79987_2.png) [@Sunderlandkyl](https://discourse.slicer.org/u/Sunderlandkyl)\
**Post date:** [March 2, 2023, 6:40pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/20 "2023-03-02T18:40:31Z")

</div>

> [@lassoan](#):
>
> Do you know if there is any disadvantage of building with OpenCL? (for example, what happens if the package is built with OpenCL SDK but then on the user’s computer there is no OpenCL or not even a GPU)?

I believe that the user should still be able to use the OpenCL GPU-acceleration optimization. I’ll look into including OpenCL as part of the SlicerIGSIO superbuild process.

---

<div class="post-metadata">

**Author:** ![Javan](https://avatars.discourse-cdn.com/v4/letter/j/ec9cab/32.png) [@Javan](https://discourse.slicer.org/u/Javan)\
**Post date:** [March 2, 2023, 8:59pm UTC](https://discourse.slicer.org/t/real-time-3d-ultrasound-volume-reconstruction-using-slicerigt-extension/11197/21 "2023-03-02T20:59:18Z")

</div>

Unfortunately, not.  
I didn’t understand why I am not able to use GPU-acceleration now. Would you please let me know if it is possible how I can use it? or am I able to use it after OpenCL is included in SlicerIGSIO?
