In these set of experiments, we changed the pixel size and upsampling scheme.

* Simulation Scheme:* There are 128 sensors evenly spaced. Width of each sensor is 0.27 mm and empty space between each sensor is 0.03 mm. We assume that there is no attenuation. Image has 50 mm depth(in z direction) and 38 mm width(in x direction). Bubble density is chosen as 260 bubbles per cm2. Transducer frequency is 5 Mhz. There is one single plane wave. Pixel sizes are \( \frac{ \lambda}{8} =0.0385 mm\) in x direction and \( \frac{ \lambda}{10} = 0.0308mm \) in z direction. Total number of pixels in x direction is 990 and total pixels in z direction is 1624.

** Dataset Generation:** Firstly, I generated 9 images using Field2 on high resolution grid(1624*990) by using the parameters above. Then, ground truth images which are on high resolution grid, are obtained at this step directly from Field2. Then in order to obtain low resolution input images(1624*495), i applied skimage.transform.resize. Then we generated 4374 from

**. Input patches size is 128*64 and ground truth patches size is 128*128. Additionally, patches are overlapping. Patches are obtained in raster scan order. Lastly, one sixth of patches are randomly chosen as validation set and remaining patches as training set.**

*far field region***Training process: **Training is done using patches. Lets have some definitions as follows:

x: a patch form ground truth image ( \( 128pixels\times 64pixels \)) ( \(3.94mm \times 4.8mm\) )

y: a patch form Field2 simulation image ( \( 128pixels\times 128pixels \)) (\(3.94mm \times 4.8mm\))

z: output of the network

f : blur kernel

\[ w = z * f \]

\[ v = x*f \]

Then the training lost can be expressed as follows:

\[ loss = MSEloss(w-v) + \lambda \times L1loss(z)\]

** Network Structure:** Our network is based U-Net with batch normalization and drop out layer.

**Summary:**

sigma of f | \(\lambda \) | learning rate | number of epochs | Q1 | Q2 | Q1 per bubble | Q2 per bubble | %gap between training and validation | |

exp1 | 1 | 0.005 | 2e-5 | 500 | 5.832042 | 0.180823 | 0.115017 | 0.003539 | 34.7 |

exp2 | 2 | 0.01 | 2e-5 | 500 | 16.240247 | 0.515657 | 0.320883 | 0.010153 | 3.1 |

** Experiment 1: **learning rate=2e-5, sigma of kernel f=1, regularizer parameter=0.005

**Percentage gap between training and validation error** ( \( \frac{validation errror – training error}{training error}*100 \) ) = 34.7

**Average quantitative metric1** is 5.832042

**Average metric1 per bubble** is 0.115017

**Average quantitative metric2** is 0.180823

**Average metric2 per bubble** is 0.003539

Worst Case: Average Metric1 per bubble: 0.603911, Average Metric2 per bubble: : 0.038877

Best Case: Average Metric1 per bubble: 0.051972, Average Metric2 per bubble: : 0.000223

** Experiment 2: **learning rate=2e-5, sigma of kernel f=2, regularizer parameter=0.01

**Percentage gap between training and validation error** ( \( \frac{validation errror – training error}{training error}*100 \) ) = 3.1

**Average quantitative metric1** is 16.240247

**Average metric1 per bubble** is 0.320883

**Average quantitative metric2** is 0.515657

**Average metric2 per bubble** is 0.010153

Worst Case: Average Metric1 per bubble: 0.630101, Average Metric2 per bubble: : 0.031205

Best Case: Average Metric1 per bubble: 0.248063, Average Metric2 per bubble: : 0.005163