Figure 2

Depiction of the construction of the loss functions in our proposed 2-step procedure. In the first step an OCTA B-scan (octa) is computed from two OCT B-scans (\(oct_1\), \(oct_2\)) and is denoised (\(\overline{octa}\)) using a U-net (U-net\(_{OCTA}\)). The loss function for this first step (\(L_{step1}\)) is the loss function from the N2V scheme (\(l_{octa}\)). In the second step, a new U-net is introduced for denoising the OCT B-scans (U-net\(_{OCT}\)). Two OCT B-scans (\(oct_1\), \(oct_2\)) are denoised (\(\overline{oct_1}\), \(\overline{oct_2}\)) separately using the same U-net (U-net\(_{OCT}\)). This leads to two losses from the N2V scheme, one for each denoised OCT B-scan (\(l_{oct_{1}}\) and \(l_{oct_{2}}\)). From these denoised OCT B-scans, an OCTA B-scan (\(\widehat{octa}\)) can then be computed. This OCTA B-scan can then be used as a constraint that it should remain as close as possible to the denoised OCTA B-scan from the first step (\(\overline{octa}\)). This ensures that the speckle information is kept. The total loss for the second step (\(L_{step2}\)) that is used to train the U-net of this step (U-net\(_{OCT}\)) is then a combination of the two losses from the N2V scheme (\(l_{oct_{1}}\) and \(l_{oct_{2}}\)) and the OCTA constraint (\(\alpha \Vert \overline{octa} - \widehat{octa} \Vert _2^2\)). Since the constraint contains a fully differentiable OCTA computation block it can be incorporated into an end-to-end training.