Jekyll2021-08-09T14:55:41+00:00https://www.open-image.org/feed.xmlOpen ImageOpen Designs for High-Performance UltrasoundChallenges and Oppurtunities2021-02-10T00:00:00+00:002021-02-10T00:00:00+00:00https://www.open-image.org/2021/02/10/challenges<p>As hinted at in our last blog post, there are a number of limitations with our first generation Open Image system. Given that we built an ultrasound machine from the ground up, this is not surprising. Here’s our honest assessment of the current state of the system:</p>
<ul>
<li>It works! Let’s not forget this. It transmits high-voltage excitation pulses then conditions and digitizes the low-level analog echoes. The raw data can be beamformed and beamformed lines can be stacked to form human-readable images.</li>
<li>It only has 16 channels. In order to image most anything worth imaging the probe must be scanned(<a href="https://www.open-image.org/2021/02/09/ultrasound-phantom.html">with its own challenges</a>). In hindsight, we should have considered adding multiplexing between the pulser ICs and the probe connector - we could have then made use of all 128 probe channels to form a relevant image from a single probe placement). The limited number of channels also limits the degree of beamforming and beamfocusing possible.</li>
<li>The data transfer rate is slow. Too slow. With our focus on the ultrasound circuits and logic, not enough time was spent optimizing the data transfer from the FPGA development board to the host PC. It currently takes on the order of a few seconds to transfer 16 lines of prebeamformed data. With beamforming (and/or averaging) the time to collect a single (16 channel) “image” quickly scales to minutes. This makes real-time adjustment of imaging parameters (e.g., gains, TGC curves) - common practice with commercial systems - next to impossible. While we are happy that the system collects data, we need to spend more effort on getting the data off the Open Image system and onto the host PC quickly - a speedup of many orders of mangitude is needed.</li>
<li>The receive channel timing is not consistent for subsequent shots. The current FPGA logic has a bug where the time between pulser T/R switch switching to Rx mode and the ADC start is not consistent from “shot” to “shot.” Luckily, the switching creates a small step change in the DC level of the recieved signal that can be used, in post-processing, to align the signals.</li>
</ul>JedAs hinted at in our last blog post, there are a number of limitations with our first generation Open Image system. Given that we built an ultrasound machine from the ground up, this is not surprising. Here’s our honest assessment of the current state of the system:Phantom Results2021-02-09T00:00:00+00:002021-02-09T00:00:00+00:00https://www.open-image.org/2021/02/09/ultrasound-phantom<p>Ultrasound phantoms are as close to the “gold standard” for evaluating imaging system performance as there is. Our collaborators at the <a href="https://www.brl.uiuc.edu/">UIUC Bioacoustics Research Lab</a> sent us one of their ATS539 phantoms. Here’s a photograph of our test setup.</p>
<p><a href="\assets\2021-02-09-ultrasound-phantom/phantomSetup.png">
<img src="\assets\2021-02-09-ultrasound-phantom/phantomSetup.png" style="width:400px;" />
</a></p>
<p>There were a number of challenges with this setup. Most are related to those discussed in our <a href="https://www.open-image.org/2021/02/10/challenges.html">“Challenges and Oppurtunities”</a> blog post.</p>
<p>In particular, the 16-channel limitation required us to scan the ultrasound probe along the surface of the phantom (or else we’d only image a narrow, difficult to interpret “slice”). We placed the phantom on a linear translation stage in an attempt to move it relative to the probe in controlled steps. However (as anyone who has ever tried this will likely tell you), there is considerable stiction between the probe and the transducer. Swapping the coupling agent (water, mineral oil, and ultrasound gel) did not help. This caused the probe to “stutter” during scanning, resulting in uneven motion between subsequent 16-channel “images.” One consequence of this is that we can sometimes see multiple images of the same target in the full reconstructed image:</p>
<p><a href="\assets\2021-02-09-ultrasound-phantom/phantomAmisalign.png">
<img src="\assets\2021-02-09-ultrasound-phantom/phantomAmisalign.png" style="width:400px;" />
</a></p>
<p>Another particularly troublesome challenge was the system’s very low data rate. This, coupled with our narrow imaging window, made it essentially impossible to adjust imaging parameters (e.g., gains, TGC curves) in real time. As such, considerable room for optmization of image quality was likely left on the table.</p>
<p>Nevertheless, we obtained images of three sections of the phantom. The first was primarily of the anechoic targets:</p>
<p><a href="\assets\2021-02-09-ultrasound-phantom/PhantomA.png">
<img src="\assets\2021-02-09-ultrasound-phantom/PhantomA.png" style="width:400px;" />
</a></p>
<p>While not (yet) the quality one would expect from a commercial system, the key features of the phantom are present. Given our struggles overcoming the system’s limitations, we were very pleased with this image.</p>
<p>The second image is of the grayscale targets. The lack of real time feedback was particularly troublesome for this target group - we almost certainly used suboptimal gain settings for this run.</p>
<p><a href="\assets\2021-02-09-ultrasound-phantom/phantomB.png">
<img src="\assets\2021-02-09-ultrasound-phantom/phantomB.png" style="width:400px;" />
</a></p>
<p>Our third image is of the phantom’s “resolution array>” Here the biggest challenge was the probe stuttering as the phantom moved below it. There are some promissing indications that our system performs well (particularly between 1 and 2 centimeters along the horiztonal axis) but there are two many double-images to make any firm conculsions.</p>
<p><a href="\assets\2021-02-09-ultrasound-phantom/phantomC.png">
<img src="\assets\2021-02-09-ultrasound-phantom/phantomC.png" style="width:400px;" />
</a></p>JedUltrasound phantoms are as close to the “gold standard” for evaluating imaging system performance as there is. Our collaborators at the UIUC Bioacoustics Research Lab sent us one of their ATS539 phantoms. Here’s a photograph of our test setup.Customized Waveforms2020-10-02T00:00:00+00:002020-10-02T00:00:00+00:00https://www.open-image.org/2020/10/02/customized-waveforms<p>One of the benefits of the Open Image platform is the ability to fully customize your transmit waveforms. Our <a href="http://ww1.microchip.com/downloads/en/DeviceDoc/20005639A.pdf">pulser</a> allows for five different amplitude settings (-V_2, -V_1, 0, +V_1, +V_2, where, for our system, V_2 = 80 V and V_1 = 40 V) sampled at 220 MHz.</p>
<p>We measured the transmitted ultrasound pulses (from an Ultrasonix L14-5/38 transducer couple to the Open Image prototype) in water using a <a href="https://www.acoustics.co.uk/product-category/pressure-measurement/needle-hydrophones/">Precision Acoustics Needle Hydrophone</a>:</p>
<p><img src="\assets\2020-10-02-customized-waveforms\hydrophoneSetup.png" style="width:400px;" /></p>
<p>Below are some sample results covering a wide range of pulse center frequencies, durations, and shapes. We have very good command over the excitation and the output waveform below the transducer’s center frequency (5-6 MHz). Above that, the impulse response of the transducer begins to dominate. This is not unexpected.</p>
<p><img src="\assets\2020-10-02-customized-waveforms\4 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\5 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\6 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\7 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\8 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\9 MHz; 1 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\10 MHz; 1 Pulse(s).png" style="width:800px;" /></p>
<p><img src="\assets\2020-10-02-customized-waveforms\3 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\4 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\5 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\6 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\7 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\8 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\9 MHz; 2.5 Pulse(s).png" style="width:800px;" />
<img src="\assets\2020-10-02-customized-waveforms\10 MHz; 2.5 Pulse(s).png" style="width:800px;" /></p>JedOne of the benefits of the Open Image platform is the ability to fully customize your transmit waveforms. Our pulser allows for five different amplitude settings (-V_2, -V_1, 0, +V_1, +V_2, where, for our system, V_2 = 80 V and V_1 = 40 V) sampled at 220 MHz.It’s Alive!2020-10-01T00:00:00+00:002020-10-01T00:00:00+00:00https://www.open-image.org/2020/10/01/its-alive<p>Success! Today, we got our open source ultrasound electronics working for the first time.</p>
<p><img src="\assets\2020-10-01_Its_Alive\ItsAlive.jpg" style="width:400px;" /></p>
<p>Below is our current hardware setup. The ultrasound front-end is the part that we designed and built. We purchased everything else. Oh, and we had to write a whole lot of really important code to get the FPGA to drive everything.</p>
<p><img src="\assets\2020-10-01_Its_Alive\Components.jpg" style="width:600px;" /></p>
<p>Once we got the the electronics working on the benchtop, it was time for a wet test. So, we put the ultrasound sensor head into a cup of water. We used 16 of the elements in the sensor head.</p>
<p><img src="\assets\2020-10-01_Its_Alive\SensorInWater.jpg" style="width:400px;" /></p>
<p>And we got our first image! We clearly see the reflection off the bottom of the cup. It’s alive!</p>
<p><img src="\assets\2020-10-01_Its_Alive\FirstImage.jpg" style="width:400px;" /></p>ChipSuccess! Today, we got our open source ultrasound electronics working for the first time.