Optical coherence tomography angiography data processing for reducing projection artifacts
By calculating the correlation value and correction function in OCTA data processing, the axial information is used to remove artifacts before generating the enface projection, the problem of projection artifacts in OCTA technology is solved, and the accuracy and naturalness of the diagnosis are improved.
Patent Information
- Application Number
- CN202211700296.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-03-28
- Filing Date
- 2022-12-28
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2042-12-28
AI Technical Summary
The existing OCTA technology is prone to projection artifacts when generating enface projections, especially at the high reflectivity layer of the retina, which leads to an increase in the possibility of misdiagnosis. The existing PAR algorithms usually perform image processing after generating projections to remove artifacts, with limited effect.
By calculating the correlation values between the OCT data and the OCTA data, the artifacts are removed using axial information before generating the enface projection, the OCTA data is processed using the correlation coefficient and correction functions to generate the corrected OCTA data to reduce projection artifacts.
It effectively reduces projection artifacts in the enface projection of OCTA data, improves the accuracy of diagnosis, avoids the possibility of misdiagnosis, and the generated projection is more natural and accurately reflects the real OCTA signal.
Smart Images

Figure CN116823631B_ABST
Abstract
Description
Technical Field
[0001] Example aspects herein relate generally to the field of optical coherence tomography angiography (OCTA), and more particularly to projection artifact removal (PAR) techniques for removing projection artifacts from OCTA enface projections. background
[0002] OCTA is a non-invasive imaging technique that uses low-coherence interferometry to sequentially obtain structural and functional (blood flow) information about the imaged body part. OCTA has been used in various medical fields. For example, in ophthalmology, OCTA has been used to diagnose a variety of diseases, such as choroidal neovascularization (CNV), age-related macular degeneration (AMD), diabetic retinopathy, arterial and venous occlusions, sickle cell disease, and glaucoma.
[0003] The algorithm used to generate OCTA data compares the difference in backscattered OCT signals between repeated B-scans of a common OCT scan area of the body part (i.e., B-scans of the same cross-section of the body part acquired at different times) to construct an OCTA volume that includes the OCTA flow signal. An enface projection of this volume can be derived that maps the areas of blood flow in the imaged body part. OCTA relies on the principle that portions of the OCT scan area that contain moving red blood cells produce larger fluctuations in the backscattered OCT signal over time than portions of the OCT scan area that do not contain blood flow (i.e., stationary tissue).
[0004] Several types of OCTA signal extraction and processing methods have been developed, in which repeated OCT scans are processed in different ways to delineate the vasculature being imaged therein, such as split-spectrum amplitude decorrelation angiography (SSADA), optical microangiography (OMAG), and OCT angiography ratio analysis (OCTARA). These types of OCTA are reviewed in Turgut, "Optical Coherence Tomography Angiography - A General View" (European Ophthalmic Review, 2016; 10(1): 39-42), the contents of which are incorporated herein by reference in their entirety.
[0005] In many applications of OCTA, projection artifacts are often observed in the enface projections of the OCTA volume. These artifacts give the appearance of blood vessels in the OCTA enface projections obtained at deeper neural plexi and may be mistaken for true blood vessels. For example, in OCTA of the retina of the eye, projection artifacts tend to be particularly prominent in highly reflective tissue layers such as the retinal pigment epithelium (RPE). In this case, the projection artifact is caused by photon scattering from the vasculature in the surface layers of the retina. An example of such a surface enface projection is in Figure 1A As shown. Figure 1B As shown in the example of , these projection artifacts can be observed as false OCTA flow signals in enface projections of deeper high reflectivity layers (e.g., RPE). Figure 2 Briefly explain the sources of projection artifacts.
[0006] like Figure 2 As shown, the light source (not shown) of the OCTA scanner emits multiple light beams 2 to produce each of a series of A scans that are arrayed to form a B scan (five such beams are shown). The light beams 2 pass through the internal limiting membrane (ILM) 4 into the retina, and depending on the reflective and scattering properties of the tissues encountered by the photons in the light beam 2 along the way, some photons are reflected back, some are scattered, and some enter deeper layers. Figure 2 As shown, some photons are scattered by red blood cells (RBCs) 6 in blood vessels 8. When RBCs 6 are in motion, the scattering pattern caused by RBCs 6 changes over time as blood flows within blood vessels 8. Therefore, when temporally separated B-scans (i.e., B-scan 1 to B-scan 4 in this example) are acquired at the same location on the retina, reflectivity changes are observed at the deeper, high-reflectivity layer 10. Because the OCTA flow signal is extracted by identifying changes in reflectivity, changes caused by scattering caused by moving RBCs 6 may be erroneously detected as false flow in the deeper layers 10. Therefore, while the variability in the scattering pattern makes OCTA fundamentally possible, it also leads to projection artifacts that can hinder accurate diagnosis using OCTA.
[0007] Projection artifact removal (PAR) algorithms are often employed in OCTA to remove these artifacts from the enface projection. PAR is particularly important when OCTA is used for clinical diagnosis, as projection artifacts can increase the likelihood of misdiagnosis, putting patients at risk. Therefore, removing these artifacts is crucial before delivering OCTA results to the user. Known PAR algorithms typically employ image processing techniques to remove projection artifacts from the enface projection image to deliver a final artifact-free enface projection image that can be displayed to the user. For example, this type of PAR is a standard feature of ophthalmic devices that support OCTA.
[0008] Overview
[0009] According to a first example aspect of the present disclosure, the inventors have devised a computer-implemented method for processing OCTA data comprising an array of columns of data elements representing the distribution of vasculature in an imaged region of a body part to produce corrected OCTA data showing reduced projection artifacts in enface projections relative to the OCTA data, the data elements in each column of the array of columns being generated from data elements in the OCT data in an A-scan corresponding to a corresponding B-scan in a set of repeated B-scans located in the imaged region of the body part. The method includes processing data elements of OCT data and data elements of OCTA data by the following processes: (i) calculating a correlation value indicating a degree of correlation between a first sequence of data elements of OCT data and a second sequence of data elements of OCT data, wherein respective positions of the data elements of the first sequence within a respective B-scan correspond to positions of the first data elements within an array of columns of the OCTA data, wherein respective positions of the data elements of the second sequence within the respective B-scan correspond to positions of the second data elements within the array of columns of the OCTA data, the second data elements being further away than the first data elements in an axial direction of the OCTA data, the columns of the OCTA data extending in the axial direction; (ii) calculating a correction for the second data elements using the first data elements and the calculated correlation value; and (iii) applying the calculated correction to the second data elements, wherein processes (i) to (iii) are performed multiple times, using a different combination of the data elements of the OCTA data as the first data elements and the data elements of the OCTA data as the second data elements in each execution of processes (i) to (iii) to generate corrected OCTA data.
[0010] According to a second exemplary aspect of the present invention, the present inventors have also devised a computer program comprising computer-readable instructions that, when executed by a computer, cause the computer to perform the method according to the first exemplary aspect described above. The computer program may be stored on a non-transitory computer-readable storage medium (e.g., a computer hard drive, a CD, or a memory stick) or carried by a signal (e.g., an Internet download).
[0011] According to a third exemplary aspect of the present invention, the inventors have also designed an apparatus arranged to process OCTA data comprising an array of columns of data elements representing the distribution of vasculature in an imaged region of a body part to generate corrected OCTA data showing reduced projection artifacts in enface projection relative to the OCTA data, wherein the data elements in each column of the array of columns are generated from data elements of the OCT data in an A-scan corresponding to a corresponding B-scan in a set of repeated B-scans located in the imaged region of the body part. The apparatus comprises hardware components arranged to perform a method comprising processing data elements of OCT data and data elements of OCTA data by: (i) calculating a correlation value indicating a degree of correlation between a first sequence of data elements of the OCT data and a second sequence of data elements of the OCT data, wherein respective positions of the data elements of the first sequence within a corresponding B-scan correspond to positions of the first data elements within an array of columns of the OCTA data, wherein respective positions of the data elements of the second sequence within the corresponding B-scan correspond to positions of the second data elements within the array of columns of the OCTA data, the second data elements being further away than the first data elements in an axial direction of the OCTA data, the columns of the OCTA data extending in the axial direction; (ii) calculating a correction for the second data element using the first data element and the calculated correlation value; and (iii) applying the calculated correction to the second data element. The apparatus is arranged to perform processes (i) to (iii) a plurality of times, using a different combination of the data elements of the OCTA data as the first data elements and the data elements of the OCTA data as the second data elements in each performance of processes (i) to (iii) to generate corrected OCTA data. The apparatus further comprises an output component arranged to output the corrected OCTA data.
[0012] BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Example embodiments will now be explained in detail, by way of non-limiting example only, with reference to the accompanying drawings described below.Unless otherwise indicated, like reference numerals appearing in different figures of the drawings may represent identical or functionally similar elements.
[0014] Figure 1A is an example OCTA enface projection of the surface layers in the imaged area of the retina.
[0015] Figure 1B is an example OCTA enface projection of a deeper, high-reflectivity layer in the imaged region of the retina.
[0016] Figure 1C is an example of an OCTA enface projection of a deeper, high reflectivity layer in the imaged region of the retina generated by the apparatus of an example embodiment.
[0017] Figure 2 is a schematic diagram of the propagation of a light beam through the retina during the acquisition of four repeated B-scans of a common imaging area of the retina.
[0018] Figure 3A is a schematic diagram of an apparatus according to an example embodiment herein for processing OCTA data to produce corrected OCTA data showing reduced projection artifacts in enface projections.
[0019] Figure 3B is a schematic diagram of an imaging device having imaging components arranged to acquire OCTA data and an example embodiment apparatus for processing the OCTA data to produce corrected OCTA data.
[0020] Figure 4 Schematic diagram of processing repeated OCT B scans by an OCTA data generation algorithm to generate OCTA data.
[0021] Figure 5 An example hardware implementation of the apparatus of the example embodiments is shown in a programmable signal processing device.
[0022] Figure 6 is a flow chart illustrating a method of processing OCTA data to generate corrected OCTA data showing reduced projection artifacts in enface projections relative to OCTA data according to an example embodiment.
[0023] Figure 7 is a schematic diagram of the OCT data elements that are located in the corresponding repeated B-scans and are used to calculate the correlation values.
[0024] Figure 8A and Figure 8B is a diagram illustrating a process according to an example embodiment Figure 6 Figure 2 is a flow chart of an example implementation of the method for OCTA data.
[0025] Figure 9A first set of OCTA enface projections of corrected OCTA data is shown, these enface projections being generated by the apparatus of an example embodiment using different values of a scaling factor that determines the strength of the projection artifact correction.
[0026] Figure 10 A second set of OCTA enface projections of corrected OCTA data is shown, these enface projections being generated by the apparatus of the example embodiment using different values of the scale factor.
[0027] Detailed Description of Example Embodiments
[0028] The following describes a volumetric axial processing algorithm for removing projection artifacts from OCTA enface projections. Compared to the conventional projection artifact removal algorithm outlined above, in which artifacts are removed by image processing of already generated enface projections, the projection artifact removal technique described herein can remove or reduce artifacts in A-scans of an OCTA volume before generating enface projections. The described technique can use relevant axial information available in the OCTA volume to suppress or eliminate artifacts caused by retinal anatomy from voxel values in the OCTA volume, thereby producing corrected voxel values that better reflect the true OCTA signal. When artifacts are removed, this can make the projected enface appear more natural compared to enface projections generated by processing the final enface, in which artifacts are removed in an ad hoc manner. This is because averaging the corrected axial signal can remove sharp variations in the generated enface. Furthermore, because the OCTA signal, which is the source of artifacts in the OCTA image, is corrected, rather than the already projected OCTA enface image, artifact removal can be more accurate.
[0029] Figure 3A is a schematic diagram of an apparatus 100 according to an example embodiment, the apparatus 100 being arranged to process OCTA data 200 and related OCT data 250 to generate corrected OCTA data 300 showing reduced projection artifacts in enface projections relative to the OCTA data 200, i.e., the enface projections of the corrected OCTA data 300 have fewer and / or less noticeable projection artifacts than the enface projections of the OCTA data 200.
[0030] The apparatus 100 may be provided in the form of a stand-alone device dedicated to data processing (e.g. a desktop PC or laptop computer) or, as in the present example embodiment, it may form part of an imaging device 400, such as a Figure 3BAs shown. The imaging device 400 includes an imaging assembly 500 arranged to image a region of the retina (or other body part) and acquire OCTA data 200 representing the distribution of vasculature in the imaged region. The imaging device 400 also has an apparatus 100 of an example embodiment arranged to process the acquired OCTA data 200 to generate corrected OCTA data 300 having reduced projection artifacts in an enface projection relative to the OCTA data 200.
[0031] OCTA data 200 includes an array of columns of data elements representing the distribution of vasculature in a region of a body part that has been imaged by an OCT data acquisition device (not shown). In this exemplary embodiment, OCTA data 200 includes a two-dimensional array of columns of data elements (also referred to herein as "voxels") representing the distribution of vasculature in the imaged three-dimensional region of the body part, but the techniques described herein are also applicable to processing OCTA data in the form of a one-dimensional array of columns of data elements (also referred to herein as "pixels") representing the distribution of vasculature in the imaged two-dimensional region (slice) of the body part. Each data element represents a corresponding value indicating the variability of the backscattered (OCT) signal, which can be used to distinguish between regions of blood flow and regions of static tissue.
[0032] In this example embodiment, the body part comprises a portion of the retina of an eye, but it will be appreciated that the techniques described herein are generally applicable to processing OCTA data acquired from any other body part where projection artifacts are often observed in OCTA enface projection images.
[0033] Figure 4 2 is a schematic diagram of a one-dimensional array 210 of columns 212-1 through 212-W of OCTA data elements forming a slice of OCTA data 200 at one of a plurality (E) of scan heights arranged along the x-axis, at which the OCT data acquisition device has acquired corresponding repeated B-scans 251, 253, 255, and 257, from which the one-dimensional array 210 is derived. The repeated B-scans cover a common two-dimensional region of the imaged retina at the scan height, extending along a first (y) axis of a Cartesian coordinate system, which is considered to be within the surface of an approximately planar portion of the retina in the imaged three-dimensional region of the eye (i.e., the surface of the retina adjacent to the vitreous humor of the eye), and along an axial direction (i.e., in a direction across the depth of the retina from the vitreous humor to the choroid and sclera).
[0034] like Figure 4As shown, four repeated B scans of OCT data 250 are taken at different times (e.g. Figure 4 The array 210 of columns of OCTA data 200 may be generated using any type of OCTA data generation algorithm 230 known to those skilled in the art from data elements of the OCT data 250 in the A-scans 252-1 to 252-W, 254-1 to 254-W, 256-1 to 256-W, and 258-1 to 258-W of the corresponding B-scans 251, 253, 255, and 257 of the imaged region of the body part acquired by the OCT data acquisition device. In other words, the data elements in each column 212-1 through 212-W of the array of columns 210 are generated from data elements of the OCT data 250 in the A-scans that are correspondingly located in respective B-scans 251, 253, 255, and 257 of a set of repeated B-scans of the imaged region of the retina. For example, data element d in column 212-i of the array 210 is OCTA (i, j) generated by the OCTA data generation algorithm 230 based on data element d of the OCT data 250 OCT1 (i, j), d OCT2 (i, j), d OCT3 (i, j) and d OCT4 (i, j) generates data element d OCT1 (i, j), d OCT2 (i, j), d OCT3 (i, j) and d OCT4 (i, j) are correspondingly located in the A-scans 252-i, 254-i, 256-i, and 258-i of the respective B-scans 251, 253, 255, and 257 of the imaged region of the body part.
[0035] Reference again Figure 3A The apparatus 100 includes a hardware component 110 that is arranged to generate corrected OCTA data 300 by processing data elements of the OCT data 250 and data elements of the OCTA data 200 using the techniques described herein below. The apparatus 100 also includes an output component 120 that is arranged to output the corrected OCTA data 300, for example, by displaying an enface projection of the corrected OCTA data 300 on a display device such as a computer monitor, the enface projection being generated by the hardware component 110.
[0036] The hardware component 110 may include any type of computer hardware configured to perform the method for processing the data elements of the OCT data 250 and the data elements of the OCTA data 200 described in the example embodiment described below. As in the present example embodiment, the hardware component 110 may include a processor and a memory storing instructions that, when executed by the processor, cause the processor to perform the method. Alternatively, the hardware component 110 may include an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other electronic circuitry configured to perform the method.
[0037] Figure 5FIG1 is a schematic diagram of programmable signal processing hardware 600 that can be configured to process OCTA data 200 and related OCT data 250 using the techniques described herein and that can function as the hardware component 110 and output component 120 of an example embodiment. The programmable signal processing device 600 includes a communication interface (I / F) 610 for receiving the OCTA data 200 and the OCT data 250 and outputting generated corrected OCTA data 300 and / or a graphical representation of the corrected OCTA data 300 (e.g., an enface projection of the corrected OCTA data 300) for display on a display (e.g., a computer screen, etc.). The communication interface (I / F) 610 thus provides an example implementation of the output component 120. Signal processing device 600 also includes a processor (e.g., a central processing unit (CPU) and / or a graphics processing unit (GPU)) 620, a working memory 630 (e.g., random access memory), and an instruction storage device 640 storing a computer program 645. Computer program 645 includes computer-readable instructions that, when executed by processor 620, cause processor 620 to perform various functions, including the functions of hardware components 110 described herein. Working memory 630 stores information used by processor 620 during execution of computer program 645. Instruction storage device 640 may include a ROM (e.g., in the form of an electrically erasable programmable read-only memory (EEPROM) or flash memory) preloaded with computer-readable instructions. Alternatively, instruction storage device 640 may include RAM or a similar type of memory, and the computer-readable instructions of computer program 645 may be input to instruction storage device 640 from a computer program product (e.g., a non-volatile computer-readable storage medium 650 in the form of a CD-ROM, DVDROM, etc., or a computer-readable signal 660 carrying computer-readable instructions). In any event, when executed by the processor 620, the computer program 645 causes the processor 620 to perform the method of generating corrected OCTA data 300 as described herein. In other words, the apparatus 100 of the example embodiment may include a computer processor 620 and a memory 640 storing computer-readable instructions that, when executed by the computer processor 620, cause the computer processor 620 to perform the method of processing the OCTA data 200 and the OCT data 250 to generate corrected OCTA data 300 that shows reduced projection artifacts in enface projection relative to the OCTA data 200, as described below.
[0038] However, it should be noted that one or both of the hardware component 110 and the output component 120 may alternatively be implemented in non-programmable hardware (eg, an ASIC, FPGA, or other integrated circuit dedicated to performing the respective functions of the component).
[0039] Figure 6 is a flow chart illustrating a method by which the apparatus 100 of this example embodiment processes OCTA data 200 to generate corrected OCTA data 300 that exhibits reduced projection artifacts in enface projection relative to the OCTA data 200. Generally speaking, the hardware component 110 processes data elements of the OCT data 250 and data elements of the OCTA data 200 by repeatedly executing the illustrated process P defined by a sequence of processes S10, S20, and S30, using a different combination of data elements of the OCTA data 200 as first data elements and data elements of the OCTA data 200 as second data elements in each execution of the sequence of processes S10, S20, and S30. This process sequence can be repeated in several different ways to generate corrected OCTA data 300. Some examples of how this process sequence can be repeated to generate corrected OCTA data 300 are described below.
[0040] like Figure 6As shown, the process sequence includes process S10 in which the hardware component 110 calculates a correlation value indicating a degree of correlation between (i) a first sequence of data elements of the OCT data 250 and (ii) a second sequence of data elements of the OCT data 250, wherein respective positions of the data elements of the first sequence within respective B-scans correspond to (i.e., have the same array coordinates) positions of the first data elements within the array of columns of the OCTA data 200, and wherein respective positions of the data elements of the second sequence within respective B-scans correspond to (i.e., have the same array coordinates) positions of the second data elements within the array of columns of the OCTA data 200, the second data elements being further away than the first data elements in an axial (i.e., z-axis) direction of the OCTA data 200, the columns of the OCTA data 200 extending in the axial direction. The data elements (voxels) of the OCTA data 200 arranged along the axial (z-axis) direction of the three-dimensional OCTA data array contain OCTA data from corresponding points in the retina, the corresponding points extending in the depth direction of the retina, i.e., from its light receiving surface into the retina. Thus, in the array of columns of OCTA data 200, the second data element is below the first data element in the (z-axis) direction of the OCTA data array, along which the column extends, such that the second data element may include a data component caused by light scattering from a location in the retina corresponding to the location of the data element above the second data element in the array of columns of OCTA data 200, which data component causes a projection artifact in the enface projection of the OCTA data 200. As in this example embodiment, the second OCTA data element may be in the same column of OCTA data 200 as the first OCTA data element. The data elements of the first sequence appear in the same order as the acquisition order of the corresponding repeated B-scans containing these data elements. Similarly, the data elements of the second sequence appear in the same order as the acquisition order of the corresponding repeated B-scans containing these data elements.
[0041] Figure 7 is a schematic diagram of OCT data elements that are correspondingly located in corresponding repeated B-scans and based on which the hardware component 110 calculates the correlation value. Figure 7 The corresponding positions in the B-scans 1 to 4 shown correspond to the OCTA data element d OCTA The position of (i, j) in the array 210 of the column of the OCTA data 200 is determined by the OCT data element d OCT1 (i, j), d OCT2 (i, j), d OCT3 (i, j) and d OCT4 (i, j) represents. In addition, the second sequence of data elements (which are in Figure 7The corresponding positions in the B-scans 1 to 4 shown correspond to the OCTA data element d OCTA The position of (i, k) in array 210 is determined by the OCT data element d OCT1 (i, k), d OCT2 (i, k), d OCT3 (i, k) and d OCT4 (i, k) represents, where i, j and k are integers and k>j. Figure 7 As shown on the right side of FIG, the correlation value (in terms of correlation coefficient r) calculated by the hardware component 110 in process S10 based on the first sequence and the second sequence of OCT data elements jk ) is higher when the OCT data element values vary similarly in the two sequences (taking an example value of 0.9997) than when they vary dissimilarly (taking an example value of 0.0028).
[0042] In process S10, a correlation coefficient is calculated to prevent miscorrection of true OCTA signals while still retaining the ability to correct for false OCTA signals that are sources of projection artifacts. The correlation coefficient (its absolute value) can be considered a probabilistic discriminator between true and false OCTA signals, and because the degree of false signal at a voxel is related to the variance in reflectivity of repeated voxels in the upper retinal layers, this correlation can be used as a correction weight, such that a stronger correlation means a higher probability that the signal is false, and vice versa.
[0043] As in this example embodiment, the correlation value between data elements j and k in a column calculated by hardware module 110 may be calculated as the Pearson correlation coefficient r of the data elements j and k in the column. jk (where -1≤r jk ≤1), assuming that the reflectivities recorded in the repeated B-scans for these data elements are two random variables. For example, the correlation value can alternatively take the form of Spearman's ρ or Kendall's τ, which differ from the Pearson correlation coefficient r in that the ranks of the values are used rather than the actual values. Using the Pearson correlation coefficient r can be advantageous because, in some cases, subtle correlations may not be detected using ranks.
[0044] Reference again Figure 6 In process S20, the hardware component 110 uses the first data element d OCTA (i, j) and the calculated correlation value r jk To calculate the second data element d OCTAAs in this example embodiment, the hardware component 110 can calculate the correction for the second data element d by evaluating the correction function of the first variable and the second variable. OCTA (i, k), the correction function increases with the increase of the value of the first variable and the increase of the value of the second variable, wherein the first data element d OCTA The value of (i, j) is taken as the value of the first variable, and the correlation value r is calculated jk More specifically, as in this example embodiment, the hardware component 110 may evaluate the first data element d OCTA (i, j), the calculated correlation value r jk The correction for the second data element is calculated by multiplying the product of the first variable and the scale factor s. Although the aforementioned function thus includes the product of the first variable and the second variable in this exemplary embodiment, this is given as an example only, and the form of the function is not limited thereto.
[0045] The scaling factor may be a fixed number, or, as in the present example embodiment, it may be user adjustable so that a user of the apparatus 100 can adjust the scaling factor by connecting to the apparatus 100 (e.g., Figure 5 The scaling factor value can be set by using a user interface (eg, mouse and / or keyboard) of the communication interface (I / F) 610 of the programmable signal processing hardware shown in FIG. Figure 9 and Figure 10 Adjustment of the scaling factor is discussed further.
[0046] exist Figure 6 In process S30, the hardware component 110 applies the calculated correction to the second data element d OCTA (i, k), specifically, by OCTA (i, k) minus the calculated correction value (or a value based on the calculated correction value, e.g., a portion of the calculated correction value). If the result is less than zero, the second data element d OCTA (i, k) is set to zero.
[0047] exist Figure 6 In process S40 , the hardware component 110 determines whether predetermined criteria are met, for example, whether a predetermined number of OCTA data elements in each of a plurality of columns of the OCTA data 200 have been corrected such that an improved enface projection of the corrected OCTA data 300 can be generated.
[0048] If the hardware component 110 determines in process S40 that the predetermined criteria are not met, the process loops back to S10 via process S50, and processes S10 to S40 are repeated using a different combination of a data element of the OCTA data 200 as a first data element and a data element of the OCTA data 200 as a second data element. Because the first data element and / or the second data element are changed in process S50, a new combination of a data element of the OCTA data 200 as a first data element and a data element of the OCTA data 200 as a second data element is used in each repetition of the sequence of processes S10 to S40, and the OCTA data 200 is further corrected. At least some (and preferably all) columns of the OCTA data 200 are processed by this loop.
[0049] On the other hand, if the hardware component 110 determines in process S40 that the predetermined criteria have been met, the process may stop, or alternatively proceed to optional process S60, such as Figure 6 3 , wherein the hardware component 110 generates an enface projection of the corrected OCTA data 300 and then proceeds to an optional process S70 in which the output component 120 outputs the generated enface projection. In process S70, for example, the output component 120 can display the enface projection on a display device (e.g., a computer screen) or store the enface projection in a storage device (e.g., a computer hard drive).
[0050] As in the present example embodiment, in each of the multiple executions of processes S10, S20, and S30 of processing OCTA data elements in corresponding columns of the OCTA data 200, the method performed by the hardware component 110 as part of process S10 and before calculating the correlation value may further include an optional feature of processing each of the multiple data elements arranged starting from the starting data element in the column of the OCTA data 200 sequentially (i.e., one by one, taking each data element in the column or every nth data element in the column, where n is an integer greater than or equal to 2) along the axial (z) direction along the column by determining whether the data element exceeds the OCTA signal threshold until it is determined that the data element exceeds the OCTA signal threshold.
[0051] As in this example embodiment, the OCTA signal threshold can be calculated as in is the mean of the values of the OCTA data elements in the OCTA data 200, σ f is the standard deviation of the Gaussian distribution that models the distribution of OCTA data element values in the OCTA data 200, τ fis a parameter used to set the OCTA signal threshold, which can preferably be adjusted by the user. However, the OCTA signal threshold does not need to be calculated in this way. and σ f The value of may be obtained from the fit of a Gaussian function to the distribution of OCTA data element values (as in the present example embodiment), or from the fit of another function used to model the distribution of OCTA data element values in the OCTA data 200, or otherwise.
[0052] Regardless of how the OCTA signal threshold is calculated, the data element determined to exceed the OCTA signal threshold is then set as the first data element.
[0053] The above-described optional features can identify OCTA data elements with sufficiently large values that may correspond to significant sources of projection artifacts and, therefore, should be considered in the PAR process. Conversely, other OCTA data elements with smaller values and therefore less likely to contribute significantly to projection artifacts are ignored to avoid expending computational resources on processing operations that have little impact on the results of the PAR process.
[0054] In the apparatus 100 of the example embodiment having the above-described optional features, multiple executions of processes S10, S20, and S30 may include executing process S10 a first time and then repeating process S10 to set different corresponding data elements in the column of the OCTA data 200 as the first data element in the first execution of process S10 and in each repetition of process S10. In this case, when executing process S10 a first time to set one of the multiple data elements in the column of the OCTA data 200 as the first data element, the hardware component 110 may be arranged to use a predetermined data element in the column of the OCTA data 200 as the starting data element. Furthermore, in each repetition of process S10, the hardware component 110 may be arranged to use the corresponding data element in the OCTA data 200 that was set as the first data element in the previous execution of process S10 as the starting data element. In this way, all OCTA data elements with sufficiently large values in the column (which can be considered to correspond to significant sources of projection artifacts) can be identified and used in the PAR process, while other data elements are discarded to avoid spending computational resources on processing operations that have little impact on the results of the PAR process.
[0055] The predetermined data element can be a data element at the end of a column of the OCTA data 200. Alternatively, the predetermined data element can be a data element in a group of data elements in the column representing a first portion of a body part containing vasculature, the data element being adjacent to a boundary between the group of data elements and a second portion of data elements in the column representing a body part that does not contain vasculature. For example, the predetermined data element can be a data element in a group of data elements in the column representing the retina of an eye, the data element being adjacent to a boundary between the group of data elements representing the retina and the data elements in the column representing the vitreous body of the eye (the so-called internal limiting membrane (ILM) boundary). Such a data element can be found using well-known retinal layer segmentation algorithms or by visual inspection of one or more OCT B-scans. Setting the starting data element to a data element associated with the ILM boundary allows for avoiding processing of OCTA data related to the vitreous body of the eye (which does not contain vasculature), and thus makes the generation of the corrected OCTA data 300 more efficient.
[0056] In each of the multiple executions of processes S10 to S30 for processing data elements in a corresponding column of the OCTA data 200, as part of process S10 and before calculating the correlation value, the method performed by the hardware component 110 may further include another optional feature of determining whether data element metrics of at least some of the OCT data elements, whose positions in the B-scans of the repeated B-scans 251, 253, 255, and 257 correspond to the positions of the data elements in the array of the column of the OCTA data 200, exceed an OCT value threshold, sequentially processing each of the plurality of data elements arranged in the column of the OCTA data 200 along the axial (z) direction (i.e., one by one, taking each data element in the column or every nth data element in the column, where n is an integer greater than or equal to 2) until a data element for which the data element metric is determined to exceed the OCT value threshold is processed. The data element for which the data element metric is determined to exceed the OCT value threshold is set as the second data element.
[0057] The data element metric may be a mean of at least some (and preferably all) of the OCT data elements whose positions in respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of columns of the OCTA data 200. For example, Figure 7 In the example of FIG. 1 , the mean value calculated as a data element metric may be the data element d of the OCT data 250. OCT1 (i, k), d OCT2 (i, k), d OCT3 (i, k) and d OCT4(i, k). However, the data element metric may be provided in a different form, for example as a median of at least some (preferably all) of the OCT data elements whose positions in the respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200. More generally, the data element metric may be any function of the OCT data elements whose positions in the respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200 under consideration, which function returns an indication of their OCT signal magnitude.
[0058] Another optional feature described above allows for the identification of OCTA data elements that are located below the first data element in the column and are derived from OCT data elements corresponding to OCT signal values measured from regions of relatively high reflectivity in the retina (or other body part) in corresponding B-scans of a set of repeated B-scans. Enface projections of OCTA data from such regions tend to exhibit more pronounced projection artifacts than enface projections of OCTA data from regions of lower reflectivity. Therefore, such identified OCTA data elements are more likely to contain a significant "false flow" component than other OCTA data elements in the column that are derived from OCT data from less reflective regions and should therefore be considered in the PAR process. Conversely, other OCTA data elements in the column that are derived from OCT data from less reflective regions are less likely to contribute significantly to projection artifacts in the enface projections of the OCTA volume and are ignored to avoid expending computational resources on processing operations that have little impact on the results of the PAR process.
[0059] In the apparatus 100 of the example embodiment having the above another optional feature, multiple executions of processes S10, S20, and S30 may include executing process S10 a first time and then repeating process S10 to set different corresponding data elements in the column of the OCTA data 200 to the second data element in the first execution of process S10 and in each repetition of process S10. In this case, when executing process S10 a first time to set the data element in the column of the OCTA data 200 to the second data element, the hardware component 110 may use, as the initial data element, a data element in the OCTA data 200 whose position in the column of the OCTA data 200 corresponds to a position adjacent to the position of the first data element in the column of the OCTA data 200 containing the first data element. Furthermore, in each repetition of process S10, the hardware component 110 may use, as the initial data element, a corresponding data element in the OCTA data 200 that was already set to the second data element in the previous execution of process S10. In this way, all OCTA data elements in a column derived from OCT data elements measured in regions of relatively high reflectivity in the retina (or other body part) can be identified and used in the PAR process, while other OCTA data elements are discarded to avoid expending computational resources on processing operations that have little effect on the results of the PAR process.
[0060] Now refer to Figure 8A and Figure 8B Description of the advantageous optional features supplemented by the above Figure 6 10 is an example of how the process P (defined by the sequence of processes S10 to S30) can be performed multiple times to generate corrected OCTA data 300. To generate corrected OCTA data 300, the hardware component 110 generates the corrected OCTA data 300 by using a different combination of a data element of the OCTA data 200 as a first data element and a data element of the OCTA data 200 as a second data element in each execution of the sequence of processes S10 to S30 for the data elements in the column. Figure 8A and Figure 8B The described processing is used to individually process each of the multiple columns of data elements of the OCTA data 200. Multiple (and preferably all) columns of data elements of the OCTA data 200 can be processed in parallel (simultaneously) by the hardware component 110 in the described manner, where computing resources having multiple threads or cores in a microprocessor and / or graphics processing unit (GPU) are available, to allow for faster generation of the corrected OCTA data 300. Alternatively, the multiple columns of data elements of the OCTA data 200 can be processed sequentially, or a combination of parallel and sequential processing can be used.
[0061] exist Figure 8AIn process S100, the hardware component 110 sets a starting data element to a predetermined data element of the OCTA data 200. In this example embodiment, the predetermined data element is a data element that appears at the end of a column of the OCTA data 200, specifically, the first data element in the column, with the remaining data elements arranged in the axial (z) direction starting from the first data element. Alternatively, the hardware component 110 may set a user-specified data element in a column of the OCTA data 200 as the starting data element, or a data element that is automatically specified by the hardware component 110 or an external entity and then received by the hardware component 110 as the starting data element. For example, the predetermined data element may be a data element in a group of data elements in a column representing the retina of an eye (or more generally, a first portion of a body part containing vasculature of interest), which data element is adjacent to a boundary (the so-called internal limiting membrane (ILM) boundary) between the group of data elements representing the retina and data elements in a column representing the vitreous body of an eye (or more generally, a second portion of a body part that does not contain vasculature). Such data elements can be found using well-known retinal layer segmentation algorithms, or by visual inspection of one or more OCT B-scans. Setting the starting data element to the data element associated with the ILM boundary allows for avoiding processing of OCTA data associated with the vitreous body of the eye (which does not contain vasculature), and thus makes the generation of the corrected OCTA data 300 more efficient.
[0062] exist Figure 8A In the (optional) process S110 of FIG. 1 , the hardware component 110 sequentially processes each of the plurality of data elements arranged starting from the starting data element in the column of OCTA data along a first (z-axis, or "axial") direction along the column by determining whether the data element exceeds the OCTA signal threshold, until the data element is determined to exceed the OCTA signal threshold, and sets the data element that has been determined to exceed the OCTA signal threshold as the first data element. For example, the hardware component 110 may thus determine that the OCTA data element d in column "i" is OCTA Is (i, 1) greater than the OCTA signal threshold? If not, determine the OCTA data element d OCTA (i, 2) is greater than the OCTA signal threshold. If the OCTA data element d OCTA (i, 2) is not greater than the OCTA signal threshold, the hardware component 110 determines the OCTA data element d OCTA(i, 3) is greater than the OCTA signal threshold, and the loop repeats until it finds an OCTA data element that is greater than the OCTA signal threshold, or reaches the end of the column being processed without finding such an OCTA data element. In the event that an OCTA data element is found that is greater than the OCTA signal threshold, corrections need to be applied to all subsequent data elements following the data element that exceeded the OCTA signal threshold.
[0063] Process S110 is used to identify OCTA data elements with sufficiently large values that can be considered to correspond to significant sources of projection artifacts and should therefore be considered in the PAR process. In contrast, other OCTA data elements with smaller values and therefore less likely to contribute significantly to projection artifacts are ignored in this exemplary embodiment to avoid expending computational resources on processing operations that have little impact on the results of the PAR process.
[0064] However, process S110 can be replaced with a variant process in which the OCTA data element designated as the first data element in any given execution of the variant process is replaced by the next (or next but one, next but two, etc.) OCTA data element in the next execution of the variant process. In such a variant process, the contribution of OCTA data elements that may not contribute significantly as a source of projection artifacts will also be considered, thereby consuming computational resources without significant benefit.
[0065] exist Figure 8A In process S115, the hardware component 110 determines whether the following condition is met: the first data element has been set in process S110, and at least one data element remains in the column that has not been processed. If the hardware component determines that the condition is not met ( Figure 8A However, if the hardware component 110 determines that the condition ( Figure 8A If "yes" after S115 in the process), the process proceeds to process S120. Process S115 is also optional and can be omitted if processes S110 and S130 are replaced by their variants as described herein.
[0066] exist Figure 8A In process S120 , the hardware component 110 sets the initial data element to a data element in the OCTA data 200 that is adjacent to the first data element in the column in the axial direction, that is, a data element that is immediately next to the first data element in the column.
[0067] exist Figure 8AIn the (optional) process S130 of FIG. 1 , the hardware component 110 sequentially processes each of the one or more data elements arranged starting from the initial data element in the column of the OCTA data 200 along the axial (z) direction by determining whether a data element metric of at least some of the OCT data elements whose positions in the corresponding B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the column of the OCTA data 200 exceeds an OCT value threshold, and sets the data element (if any) whose data element metric exceeds the OCT value threshold as the second data element. As in the present example embodiment, the OCT value threshold may be calculated as in is the mean of the values of the OCT data elements in the OCT data 250, σ b is the standard deviation of a Gaussian distribution that models the distribution of OCT data element values in the OCT data 250, and τ b is a parameter for setting the OCT value threshold, which can preferably be adjusted by the user. However, the OCT value threshold does not need to be calculated in this way. and σ b The value of may be obtained from the fit of a Gaussian function to the distribution of OCT data element values (as in the present example embodiment), or from the fit of another function used to model the distribution of OCT data element values in the OCT data 250, or otherwise.
[0068] As in this example embodiment, the data element metric may be the mean of at least some (and preferably all) of the OCT data elements whose positions in respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of columns of the OCTA data 200. For example, Figure 7 In the example of FIG. 1 , the mean value calculated as a data element metric may be the data element d of the OCT data 250. OCT1 (i, k), d OCT2 (i, k), d OCT3 (i, k) and d OCT4 (i, k). However, the data element metric may be provided in a different form, for example as a median of at least some (preferably all) of the OCT data elements whose positions in the respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200. More generally, the data element metric may be any function of the OCT data elements whose positions in the respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200 under consideration, which function returns an indication of their OCT signal magnitude.
[0069] Process S130 is used to identify an OCTA data element located below the first data element in the column and derived from an OCT data element corresponding to an OCT signal value measured from a relatively high reflectivity region of the retina in a corresponding B-scan of a set of repeated B-scans. Enface projections of OCTA data from such regions tend to exhibit more pronounced projection artifacts than enface projections of OCTA data from regions of lower reflectivity. Therefore, such an OCTA data element identified in process S130 is more likely to contain a significant "false flow" component than other OCTA data elements in the column derived from OCT data from a less reflective retinal layer (or layers) and should therefore be considered in the PAR process. In contrast, other OCTA data elements in the column derived from OCT data from one or more less reflective retinal layers are less likely to contribute significantly to projection artifacts in the enface projections of the OCTA volume and are, in this exemplary embodiment, ignored to avoid expending computational resources on processing operations that have little impact on the results of the PAR process.
[0070] However, process S130 can be replaced with a variant process in which the OCTA data element designated as the second data element in any given execution of the variant process is replaced with the next (or second-subsequent, third-subsequent, etc.) OCTA data element in the next execution of the variant process. In such a variant process, the contribution of OCTA data elements that may not contribute significantly as a source of projection artifacts will also be considered, thereby consuming computational resources without significant benefit.
[0071] exist Figure 8B In process S135, the hardware component 110 determines whether the second data element is set in process S130. If the hardware component 110 determines that the second data element is not set in process S130 ( Figure 8B If the hardware component 110 determines that the second data element ( Figure 8B "Yes" after S135 in the process), the process proceeds to process P (including processes S10, S20 and S30), which has been referred to above. Figure 6 If process S130 is replaced by its variant described above, process S135 may be omitted.
[0072] exist Figure 8BIn process S140, the hardware component 110 determines whether the previous execution of S130 ended with at least one OCTA data element in the column of OCTA data still to be processed. If the hardware component 110 determines that the previous execution of S130 ended with at least one OCTA data element in the column of OCTA data still to be processed ( Figure 8B If the hardware component 110 determines in process S140 that the previous execution of S130 did not end with at least one data element in the column of OCTA data still to be processed ("Yes"), the process proceeds to process S150, where the hardware component 110 sets the initial data element to the second data element determined in the previous execution of S130. On the other hand, if the hardware component 110 determines in process S140 that the previous execution of S130 did not end with at least one data element in the column of OCTA data still to be processed ( Figure 8B "No" after S140 in the process, the process proceeds to Figure 8B Process S160 in .
[0073] exist Figure 8B In process S160, hardware component 110 determines whether the previous execution of S110 ended with at least two OCTA data elements in the column of OCTA data 200 still to be processed. If hardware component 110 determines that the previous execution of S110 ended with at least two OCTA data elements in the column of OCTA data 200 still to be processed ( Figure 8B "Yes" after S160 in the process, then the process is Figure 8A Process S170 in the loop loops back to process S110, where the hardware component 110 sets the starting data element to the first data element determined in the previous execution of S110. On the other hand, if the hardware component 110 determines that the previous execution of S110 did not end with at least two data elements in the column of OCTA data 200 still to be processed ( Figure 8B If "No" is answered after S160 in ), the processing of this column is completed.
[0074] As described above, in each execution of the sequence of processes S10 to S30, the sequence of processes S10 to S30 is executed multiple times using different combinations of data elements of the OCTA data 200 as first data elements and data elements of the OCTA data 200 as second data elements to generate corrected OCTA data 300. In other words, the combination of data elements of the OCTA data used as the first data element and the second data element in each execution of the processes S10 to S30 is different from the combination of data elements of the OCTA data used as the first data element and the second data element in every other execution of the processes S10 to S30.
[0075] In execution Figure 8A and Figure 8B In each execution of process S20, the hardware component 110 calculates the first data element dOCTA (i, j), calculated correlation value r jk The product of the scaling factor s is used as the product of the scaling factor s for the second data element d OCTA (i, k), where the first data element d OCTA (i, j) reflects the value of the OCTA data element above it in the column being processed applied to d OCTA On the other hand, during other executions of process S20, not only based on d OCTA (i, j) and based on the column below d OCTA (i, j) but higher than d OCTA (i, k) to correct the second data element d OCTA (i, k).
[0076] As described above, in process S20, the calculation for the second data element d OCTA The scale factor s of the correction of (i, k) can be adjusted by the user. Figure 9 and Figure 10 An example of an OCTA enface projection of the corrected OCTA data 300 generated by the apparatus 100 of this example embodiment is shown. Figure 9 and 10 The grid shows the Figure 8A and Figure 8B Results of the PAR algorithm applied to two corresponding OCTA volumes, where each grid cell shows the enface projection generated using the indicated value of the scale factor s in the PAR algorithm. Figure 9 As shown, small values of s (e.g. 0.005 and 0.015) do not allow projection artifacts to be sufficiently suppressed, and these artifacts remain as "ghost" vasculature in the enface projection image. On the other hand, relatively high values of s result in effective suppression of projection artifacts, but at the expense of a reduced quality of the imaged (real) vasculature. Figure 9 In the example, an s value of approximately 0.075 achieves a good balance between effective suppression of projection artifacts on the one hand and preservation of the image quality of the vasculature on the other hand. Figure 10 The same trend can be observed in , where a scaling factor value of around 0.075 also achieves a good balance between the aforementioned competing requirements.
[0077] Some of the embodiments described above are summarized in the following Examples E1 to E16:
[0078] E1. An apparatus 100 arranged to process optical coherence tomography angiography (OCTA) data 200 to generate corrected OCTA data 300, the OCTA data 200 comprising an array of columns of data elements representing the distribution of vasculature in an imaged region of a body part, the corrected OCTA data 300 showing reduced projection artifacts relative to the OCTA data 200 in enface projection, the data elements in each column of the array of columns being generated from data elements of OCT data 250 in an A-scan corresponding to a corresponding B-scan in a set of repeated B-scans of the imaged region of the body part, the apparatus comprising:
[0079] A hardware component 110 is arranged to perform a method comprising processing data elements of the OCT data 250 and data elements of the OCTA data 200 by:
[0080] (i) Calculate a correlation value indicating the degree of correlation between:
[0081] a first sequence of data elements of the OCT data 250, wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of the first data element within the array of columns of the OCTA data 200, and
[0082] a second sequence of data elements of the OCT data 250, wherein respective positions of the data elements of the second sequence within a respective B-scan correspond to positions of a second data element within the array of a column of the OCTA data 200, the second data element being further in an axial direction of the OCTA data 200 than the first data element, wherein the column of the OCTA data 200 extends in the axial direction;
[0083] (ii) calculating a correction for the second data element using the first data element and the calculated correlation value; and
[0084] (iii) applying the calculated correction to the second data element,
[0085] The hardware component 110 is arranged to perform processes (i) to (iii) a plurality of times using different combinations of data elements in the OCTA data 200 as the first data elements and data elements in the OCTA data 200 as the second data elements in each execution of processes (i) to (iii) to generate the corrected OCTA data 300; and
[0086] An output component 120 is arranged to output the corrected OCTA data 300 .
[0087] E2. The apparatus 100 of E1, wherein the method further comprises, in each of a plurality of executions of processes (i) to (iii) for processing data elements in a corresponding column of the OCTA data 200, as part of process (i) and before calculating the correlation value:
[0088] Each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data 200 is processed sequentially along an axial direction (z) along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and the data element that has been determined to exceed the OCTA signal threshold value is set as the first data element.
[0089] E3. The apparatus 100 of E2, wherein the multiple executions of processes (i) to (iii) include executing process (i) for a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data 200 to the first data element in the first execution of process (i) and each repetition of process (i), and wherein
[0090] When performing process (i) for the first time to set a data element of the plurality of data elements in the column of the OCTA data 200 to the first data element, the hardware component 110 is arranged to use a predetermined data element in the column of the OCTA data 200 as the starting data element, and
[0091] In each repeated execution of process (i), the hardware component 110 is arranged to use as the starting data element a corresponding data element in the OCTA data 200 that has been set as the first data element in a previous execution of process (i).
[0092] E4. The apparatus 100 according to E3, wherein the predetermined data element is one of the following:
[0093] a data element at the end of the column of the OCTA data 200; or
[0094] A data element in a group of data elements in the column, the group of data elements representing a first portion of the body part that includes the vascular system, and the data element is adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part that does not include the vascular system.
[0095] E5. The apparatus 100 according to any one of E1 to E4, wherein the method further comprises, in each of a plurality of executions of processes (i) to (iii) for processing data elements in a corresponding column of the OCTA data 200, as part of process (i) and before calculating the correlation value:
[0096] Each of the plurality of data elements arranged starting from an initial data element in the column of the OCTA data 200 is processed sequentially along the axial direction by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and the data element for which the data element metric is determined to exceed the OCT value threshold is set to the second data element, wherein positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans correspond to positions of data elements in the array of the column of the OCTA data 200.
[0097] E6. The apparatus 100 of E5, wherein the multiple executions of processes (i) to (iii) include executing process (i) a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data 200 to the second data element in the first execution of process (i) and each repetition of process (i), and wherein:
[0098] When performing process (i) for the first time to set a data element in the column of the OCTA data 200 to the second data element, the hardware component 110 is arranged to use, as the initial data element, a data element of the OCTA data 200 whose position in the column of the OCTA data 200 corresponds to a position adjacent to the position of the first data element in the column of the OCTA data 200 containing the first data element, and
[0099] In each repetition of process (i), the hardware component 110 is arranged to use as said initial data element a corresponding data element in said OCTA data 200 which has been set as said second data element in a previous execution of process (i).
[0100] E8. The apparatus 100 of E1, wherein the hardware component 110 is arranged to process each of the plurality of columns of data elements separately by performing processes (i) to (iii) using a different combination of data elements in the column as the first data elements and the second data elements, by:
[0101] (a) sequentially processing each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data 200 along a first direction along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and setting the data element that has been determined to exceed the OCTA signal threshold value as the first data element;
[0102] (b) sequentially processing one or more data elements arranged starting from an initial data element in the column of the OCTA data 200 along a first direction along the column by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold, until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and setting the data element for which the data element metric is determined to exceed the OCT value threshold as the second data element, positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans corresponding to positions of data elements in the array of the column of the OCTA data 200;
[0103] (c) Calculate a correlation value indicating the degree of correlation between:
[0104] a first sequence of data elements of the OCT data 250, wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of the first data elements within the array of columns of the OCTA data 200, and
[0105] a second sequence of data elements of the OCT data 250, wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of the second data elements within the array of columns of the OCTA data 200;
[0106] (d) calculating a correction for the second data element using the first data element and the calculated correlation value;
[0107] (e) applying the calculated correction to the second data element;
[0108] (f) Repeating the process from (b) to (e), wherein
[0109] In a first execution of process (b), the initial data element is a data element in the OCTA data 200 whose position in the column corresponds to a position adjacent to the position of the first data element in the column,
[0110] In each repetition of process (b), the initial data element is the data element in the column that was set to the second data element in a previous execution of process (b), and
[0111] Repeating processes (b) to (e) until there are no more data elements in the column of the OCTA data 200 to be processed in process (b); and
[0112] (g) Repeating processes (a) to (f), wherein:
[0113] In a first execution of process (a), the starting data element is a predetermined data element in the column of the OCTA data 200,
[0114] In each repetition of process (a), the starting data element is the data element in the column that was set to the first data element in a previous execution of process (a), and
[0115] Processes (a) to (f) are repeated until there are no more than two data elements in the column of the OCTA data 200 to be processed in process (a).
[0116] E9. The apparatus 100 according to E8, wherein the predetermined data element is one of the following:
[0117] a data element at the end of the column of the OCTA data 200; or
[0118] A data element in a group of data elements in the column representing a first portion of the body part including the vascular system, the data element being adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part not including the vascular system.
[0119] E10. Apparatus 100 according to E8 or E9, wherein the hardware component 110 is arranged to process multiple columns of the data elements in parallel by processes (a) to (g).
[0120] E11. An apparatus 100 according to any one of E8 to E10, wherein the data element metric is one of: the mean of at least some of the OCT data elements whose positions in the corresponding B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200; and the median of at least some of the OCT data elements whose positions in the corresponding B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data 200.
[0121] E12. The apparatus 100 according to any one of E1 to E11, wherein the correlation value is one of a Pearson correlation coefficient value, a Spearman rank correlation coefficient value, and a Kendall rank correlation coefficient value.
[0122] E13. Apparatus 100 according to any one of E1 to E12, wherein the hardware component 110 is arranged to calculate the correction for the second data element by evaluating a product of the first data element, the calculated correlation value and a scaling factor.
[0123] E14. The apparatus 100 according to any one of E1 to E13, wherein
[0124] The hardware component 110 is further arranged to generate an enface projection of the corrected OCTA data 300; and
[0125] The output component 120 is arranged to output the generated enface projection.
[0126] E15. Apparatus 100 according to E14, wherein the output component 120 is arranged to display the generated enface projection on a display device.
[0127] E16. An imaging device 400, comprising:
[0128] an imaging assembly 500 arranged to image a region of a body part and acquire optical coherence tomography angiography (OCTA) data 200 representing the distribution of vasculature in the imaged region of the body part; and
[0129] The apparatus 100 according to any of E1 to E15, arranged to process the acquired OCTA data 200 to generate corrected OCTA data 300 having reduced projection artifacts in enface projections relative to the OCTA data 200.
[0130] As in the example embodiment described above, each column of OCTA data 200 can be processed separately to 1) allow for parallelization where computational resources with multiple threads or cores are available in microprocessors and / or graphics processing units (GPUs), and 2) simplify the correction method by ignoring the influence of voxels in nearby columns on the column being processed. From a physical perspective, realistic models can account for scattering from blood vessels in the upper surface retinal layers that diffuse into nearby columns. For each voxel v that satisfies the source scattering characteristics within column a, other example embodiments can apply correction to all target voxels below v in all columns close to a, where proximity is defined by whether column b falls within a defined cone of influence, with its highest point or vertex at v and its axis parallel to a. The user can define the shape of the cone using geometric parameters (e.g., height and base radius, assuming a right circular cone). In the example embodiment described herein, the cone of influence is effectively restricted to span only the same column a, so that only voxels in a below v are corrected.
[0131] In the foregoing description, example aspects have been described with reference to several example embodiments. Therefore, the description should be regarded as illustrative rather than restrictive. Similarly, the figures shown in the accompanying drawings, which highlight the features and advantages of the example embodiments, are presented for illustrative purposes only. The architecture of the example embodiments is sufficiently flexible and configurable that it can be utilized in ways other than those shown in the accompanying drawings.
[0132] For example, in the above reference Figure 8A In the described process S120, the hardware component 110 sets the initial data element to the data element following the first data element in the column along the axial direction (z axis) in the OCTA data 200. Figure 8A In the process S130, the hardware component 110 sequentially processes each of the one or more data elements arranged starting from the initial data element in the column of the OCTA data 200 along the axial (z) direction. However, the order of processing the data elements below the first data element in the column in the process S130 is not limited to the axial direction, but may alternatively be in the opposite direction. That is, the hardware component 110 may alternatively set the initial data element to be the data element at the bottom of the column in the OCTA data 200 that is farthest from the first data element, and then, in the process S130, the hardware component 110 may process the data elements below the first data element in the column in the OCTA data 200 that are arranged starting from the initial data element. Figure 8A In a modified form of process S130, the hardware component 110 may sequentially process each of the one or more data elements arranged starting from the initial data element in the column of the OCTA data 200 along the negative axial direction (z-axis) toward the first data element. Figure 8A and Figure 8BIn the processes S120 to S150 of FIG. 1 , data elements in a column may be processed upwards along the column rather than being processed downwards along the column (as in the example embodiment).
[0133] In one example embodiment, the example software embodiments presented herein may be provided as a computer program or software, such as one or more programs having instructions or instruction sequences included or stored on an article of manufacture (e.g., a machine-accessible or machine-readable medium, an instruction storage device, or a computer-readable storage device, each of which may be non-transitory). The program or instructions on the non-transitory machine-accessible medium, machine-readable medium, instruction storage device, or computer-readable storage device may be used to program a computer system or other electronic device. The machine- or computer-readable medium, instruction storage device, and storage device may include, but are not limited to, floppy disks, optical disks, and magneto-optical disks, or other types of media / machine-readable media / instruction storage devices / storage devices suitable for storing or transmitting electronic instructions. The techniques described herein are not limited to any particular software configuration. They may be applied in any computing or processing environment. As used herein, the terms "computer-readable," "machine-accessible medium," "machine-readable medium," "instruction storage device," and "computer-readable storage device" shall include any medium capable of storing, encoding, or transmitting instructions or instruction sequences for execution by a machine, computer, or computer processor and causing the machine / computer / computer processor to perform any of the methods described herein. Furthermore, it is common in the art to refer to software in one form or another (e.g., program, procedure, process, application, module, unit, logic, etc.) as taking an action or causing a result. Such expressions are merely a shorthand way of stating that execution of the software by a processing system causes the processor to perform an action to produce a result.
[0134] Some embodiments may also be implemented by the preparation of application specific integrated circuits, field programmable gate arrays, or by interconnecting an appropriate network of conventional component circuits.
[0135] Some embodiments include computer program products. A computer program product may be one or more storage media, instruction storage devices, or memory devices having stored thereon or therein instructions that can be used to control or cause a computer or computer processor to perform any of the processes of the example embodiments described herein. Storage media / instruction storage devices / memory devices may include, by way of example and without limitation, optical disks, ROM, RAM, EPROM, EEPROM, DRAM, VRAM, flash memory, flash memory cards, magnetic cards, optical cards, nanosystems, molecular memory integrated circuits, RAID, remote data storage / archiving / warehousing devices, and / or any other type of device suitable for storing instructions and / or data.
[0136] Some implementations stored on any of one or more computer-readable media, instruction storage devices (multiple instruction storage devices), or storage devices (multiple storage devices) include hardware for controlling the system and software for enabling the system or microprocessor to interact with a human user or other mechanism using the results of the example embodiments described herein. Such software may include, without limitation, device drivers, operating systems, and user applications. Finally, as described above, such computer-readable media or storage devices also include software for performing example aspects of the present invention.
[0137] Software modules for implementing the processes described herein are included in the system's programming and / or software. In some example embodiments herein, the modules include software, but in other example embodiments herein, the modules include hardware or a combination of hardware and software.
[0138] Although various exemplary embodiments of the present invention have been described above, it should be understood that they are presented by way of example and not limitation. It will be apparent to those skilled in the relevant art that various changes in form and detail may be made. Therefore, the present invention should not be limited by any of the above exemplary embodiments, but should be defined only in accordance with the appended claims and their equivalents.
[0139] Furthermore, the purpose of the Abstract is to enable patent offices and the public generally, and especially scientists, engineers, and practitioners in the field who are not familiar with patent or legal terminology or wording, to quickly ascertain the nature and essence of the technical disclosure of the present application based on a cursory inspection. The Abstract is not intended to limit in any way the scope of the example embodiments presented herein. It should also be understood that any process recited in the claims need not be performed in the order presented.
[0140] Although this specification contains many specific embodiment details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features specific to the particular embodiments described herein. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable subcombination. Furthermore, although features may be described above as acting in a particular combination and even initially claimed as such, one or more features from a claimed combination may in some cases be deleted from the combination, and a claimed combination may be directed to a subcombination or variant of a subcombination.
[0141] In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of the various components in the above embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0142] Now that some illustrative embodiments and implementations have been described, it will be apparent that the foregoing embodiments are illustrative rather than restrictive and have been presented by way of example. Specifically, although many of the examples presented herein involve specific combinations of devices or software elements, these elements can be combined in other ways to achieve the same purpose. Actions, elements, and features discussed in conjunction with only one embodiment are not intended to be excluded from similar roles in that embodiment or other embodiments.
[0143] According to an embodiment of the present disclosure, the following aspects are also provided:
[0144] Item 1): A computer-implemented method for processing optical coherence tomography angiography (OCTA) data (200) for generating corrected OCTA data (300), the OCTA data (200) comprising an array (210) of columns (212-1 to 212-W) of data elements, the array representing the distribution of vasculature in an imaged region of a body part, the corrected OCTA data (300) showing reduced projection artifacts in enface projection relative to the OCTA data (200), the data elements in each column of the array (210) of columns (212-1 to 212-W) being generated from data elements in OCT data (250) in an A-scan of a corresponding B-scan of a set of repeated B-scans (251, 253, 255, 257) correspondingly located in the imaged region of the body part, the method comprising processing the data elements of the OCT data (250) and the data elements of the OCTA data (200) by the following process:
[0145] (i) Calculating (S10) a correlation value indicating the degree of correlation between:
[0146] a first sequence (dOCT1(i,j), dOCT2(i,j), dOCT3(i,j), dOCT4(i,j)) of data elements of the OCT data (250), wherein respective positions of the data elements of the first sequence within respective B-scans (B-scan1 to B-scan4) correspond to positions of the first data element (dOCTA(i,j)) within the array (210) of columns of the OCTA data (200), and
[0147] a second sequence (dOCT1(i,k), dOCT2(i,k), dOCT3(i,k), dOCT4(i,k)) of data elements of the OCT data (250), wherein respective positions of the data elements of the second sequence within respective B-scans (B-scan1 to B-scan4) correspond to positions of second data elements within the array of columns of the OCTA data (200), the second data elements being further away than the first data elements in an axial direction (z) of the OCTA data (200), wherein the columns (212-1 to 212-W) of the OCTA data (200) extend in the axial direction;
[0148] (ii) calculating a correction for the second data element using (S20) the first data element and the calculated correlation value; and
[0149] (iii) applying (S30) the calculated correction to the second data element,
[0150] wherein, in each execution of processes (i) to (iii), processes (i) to (iii) are executed multiple times using different combinations of data elements in the OCTA data (200) as the first data elements and data elements in the OCTA data (200) as the second data elements to generate the corrected OCTA data (300).
[0151] Item 2): The computer-implemented method for processing OCTA data (200) according to item 1), further comprising, in each of a plurality of executions of processes (i) to (iii) for processing data elements in a corresponding column of the OCTA data (200), as part of process (i) and before calculating the correlation value:
[0152] Each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data (200) is processed sequentially along an axial direction (z) along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and the data element that has been determined to exceed the OCTA signal threshold value is set as the first data element.
[0153] Item 3): A computer-implemented method for processing OCTA data (200) according to item 2), wherein the multiple executions of processes (i) to (iii) include executing process (i) for a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data (200) to the first data element in the first execution of process (i) and each repetition of process (i), and wherein:
[0154] When the process (i) is first performed to set a data element of the plurality of data elements in the column of the OCTA data (200) to the first data element, a predetermined data element in the column of the OCTA data (200) is used as the starting data element, and
[0155] In each repeated execution of process (i), the corresponding data element in the OCTA data (200) that has been set as the first data element in the previous execution of process (i) is used as the starting data element.
[0156] Item 4): The computer-implemented method for processing OCTA data (200) according to item 3), wherein the predetermined data element is one of the following:
[0157] a data element at the end of said column of said OCTA data (200); or
[0158] A data element in a group of data elements in the column representing a first portion of the body part including the vascular system, the data element being adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part not including the vascular system.
[0159] Item 5): The computer-implemented method for processing OCTA data (200) according to any preceding item, further comprising, in each of a plurality of executions of processes (i) to (iii) for processing data elements in a corresponding column of the OCTA data (200), as part of process (i) and before calculating the correlation value:
[0160] Each of a plurality of data elements arranged starting from an initial data element in the column of the OCTA data (200) is processed sequentially along the axial direction by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold, until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and setting the data element for which the data element metric is determined to exceed the OCT value threshold to the second data element, wherein positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans correspond to positions of data elements in the array of the column of the OCTA data (200).
[0161] Item 6): A computer-implemented method for processing OCTA data (200) according to item 5), wherein the multiple executions of processes (i) to (iii) include executing process (i) for a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data (200) to the second data element in the first execution of process (i) and each repetition of process (i), and wherein:
[0162] When process (i) is performed for the first time to perform the setup, the following data elements in the column of the OCTA data (200) are used as the initial data elements: data elements whose positions in the column of the OCTA data (200) correspond to positions adjacent to the position of the first data element in the column of the OCTA data (200) containing the first data element, and
[0163] In each repetition of process (i), the corresponding data element in the OCTA data (200) that was set as the second data element in the previous execution of process (i) is used as the initial data element.
[0164] Item 7): The computer-implemented method for processing OCTA data (200) according to item 1), wherein each of the plurality of columns of data elements is processed separately by performing processes (i) to (iii) using different combinations of data elements in the columns as the first data elements and the second data elements, by:
[0165] (a) sequentially processing (S110) each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data (200) along a first direction along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and setting the data element that has been determined to exceed the OCTA signal threshold value as the first data element;
[0166] (b) sequentially processing (S130) one or more data elements arranged starting from an initial data element in the column of the OCTA data (200) in a first direction along the column by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and setting the data element for which the data element metric is determined to exceed the OCT value threshold as the second data element, positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans corresponding to positions of data elements in the array of the column of the OCTA data;
[0167] (c) calculating (S10) a correlation value indicating the degree of correlation between:
[0168] a first sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of the first data elements within the array of columns of the OCTA data (200), and
[0169] a second sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of the second data elements within the array of columns of the OCTA data (200);
[0170] (d) calculating a correction for the second data element using (S20) the first data element and the calculated correlation value;
[0171] (e) applying (S30) the calculated correction to the second data element;
[0172] (f) Repeating the process from (b) to (e), wherein:
[0173] In a first execution of process (b), the initial data element is a data element in the OCTA data (200) whose position in the column corresponds to a position adjacent to the position of the first data element in the column,
[0174] In each repetition of process (b), the initial data element is the data element in the column that was set to the second data element in a previous execution of process (b), and
[0175] Repeating processes (b) to (e) until there are no more data elements in the column of the OCTA data (200) to be processed in process (b); and
[0176] (g) Repeating processes (a) to (f), wherein:
[0177] In a first execution of process (a), the starting data element is a predetermined data element in the column of the OCTA data (200),
[0178] In each repetition of process (a), the starting data element is the data element in the column that was set to the first data element in a previous execution of process (a), and
[0179] Processes (a) to (f) are repeated until there are no more than two data elements in the column of the OCTA data (200) to be processed in process (a).
[0180] Item 8): The computer-implemented method for processing OCTA data (200) according to item 7), wherein the predetermined data element is one of the following:
[0181] a data element at the end of said column of said OCTA data (200); or
[0182] A data element in a group of data elements in the column representing a first portion of the body part including the vascular system, the data element being adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part not including the vascular system.
[0183] Item 9): A computer-implemented method of processing OCTA data (200) according to item 7) or item 8), wherein the plurality of columns of data elements are processed in parallel by processes (a) to (g).
[0184] Item 10): A computer-implemented method for processing OCTA data (200) according to any one of items 5) to 9), wherein the data element metric is one of: the mean of at least some of the OCT data elements whose positions in the corresponding B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data (200); and the median of at least some of the OCT data elements whose positions in the corresponding B-scans of the repeated B-scans correspond to the positions of the data elements in the array of the columns of the OCTA data (200).
[0185] Item 11): A computer-implemented method for processing OCTA data (200) according to any of the preceding items, wherein the correlation value is one of a Pearson correlation coefficient value, a Spearman rank correlation coefficient value, and a Kendall rank correlation coefficient value.
[0186] Item 12): A computer-implemented method for processing OCTA data (200) according to any preceding item, wherein the correction for the second data element is calculated by evaluating the product of the first data element, the calculated correlation value and a scaling factor.
[0187] Item 13): The computer-implemented method for processing OCTA data (200) according to any of the preceding items, further comprising:
[0188] generating (S60) an enface projection of the corrected OCTA data (300); and
[0189] The generated enface projection is output (S70).
[0190] Item 14): A computer program (645) comprising instructions which, when executed by a processor (620), cause the processor (620) to perform a method according to at least one of the preceding items.
[0191] Item 15): An apparatus (100) arranged to process optical coherence tomography angiography (OCTA) data (200) to generate corrected OCTA data (300), the OCTA data (200) comprising an array of columns of data elements representing the distribution of vasculature in an imaged region of a body part, the corrected OCTA data (300) showing reduced projection artifacts in enface projection relative to the OCTA data (200), the data elements in each column of the array of columns being generated from data elements in an A-scan of a corresponding B-scan in a set of repeated B-scans of the OCT data (250) correspondingly located in the imaged region of the body part, the apparatus comprising:
[0192] A hardware component (110) arranged to perform a method comprising processing data elements of the OCT data (250) and data elements of the OCTA data (200) by:
[0193] (i) Calculate the correlation value indicating the degree of correlation between the following
[0194] a first sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of first data elements within the array of columns of the OCTA data (200), and
[0195] a second sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of second data elements within the array of columns of the OCTA data (200), the second data elements being located further in an axial direction of the OCTA data (200) than the first data elements, the columns of the OCTA data (200) extending in the axial direction;
[0196] (ii) calculating a correction for the second data element using the first data element and the calculated correlation value; and
[0197] (iii) applying the calculated correction to the second data element,
[0198] The hardware component (110) is arranged to perform processes (i) to (iii) a plurality of times using a different combination of data elements in the OCTA data (200) as the first data elements and data elements in the OCTA data (200) as the second data elements in each execution of processes (i) to (iii) to generate the corrected OCTA data (300); and
[0199] An output component (120) arranged to output the corrected OCTA data (300).
Claims
1. A computer-implemented method for processing optical coherence tomography angiography (OCTA) data (200) for generating corrected OCTA data (300), the OCTA data (200) comprising an array (210) of columns (212-1 to 212-W) of data elements representing the distribution of vasculature in an imaged region of a body part, the corrected OCTA data (300) showing reduced projection artifacts in enface projection relative to the OCTA data (200), the data elements in each of the array (210) of columns (212-1 to 212-W) being generated from data elements in OCT data (250) in an A-scan of a corresponding B-scan of a set of repeated B-scans (251, 253, 255, 257) correspondingly located in the imaged region of the body part, the method comprising processing the data elements of the OCT data (250) and the data elements of the OCTA data (200) by: (i) Calculating (S10) a correlation value indicating the degree of correlation between: The first sequence (d OCT1 (i, j), d OCT2 (i, j), d OCT3 (i, j), d OCT4 (i, j)), wherein the data elements of the first sequence correspond to the first data element (d) at the corresponding position within the corresponding B-scan. OCTA (i, j)) within the array (210) of columns of the OCTA data (200), and The second sequence (d OCT1 (i, k), d OCT2 (i, k), d OCT3 (i, k), d OCT4 (i, k)), wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of second data elements within the array of columns of the OCTA data (200), the second data elements being further in an axial direction (z) of the OCTA data (200) than the first data elements, wherein the columns (212-1 to 212-W) of the OCTA data (200) extend in the axial direction; (ii) calculating a correction for the second data element using (S20) the first data element and the calculated correlation value; and (iii) applying (S30) the calculated correction to the second data element, wherein, in each execution of processes (i) to (iii), processes (i) to (iii) are executed multiple times using different combinations of data elements in the OCTA data (200) as the first data elements and data elements in the OCTA data (200) as the second data elements to generate the corrected OCTA data (300).
2. The computer-implemented method of processing OCTA data (200) of claim 1, further comprising, in each of a plurality of executions of processes (i) through (iii) for processing data elements in a corresponding column of the OCTA data (200), as part of process (i) and before calculating the correlation value: Each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data (200) is processed sequentially along an axial direction (z) along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and the data element that has been determined to exceed the OCTA signal threshold value is set as the first data element.
3. The computer-implemented method of processing OCTA data (200) according to claim 2, wherein: The multiple executions of processes (i) to (iii) include executing process (i) for a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data (200) to the first data element in the first execution of process (i) and each repetition of process (i), and wherein: When the process (i) is first performed to set a data element of the plurality of data elements in the column of the OCTA data (200) to the first data element, a predetermined data element in the column of the OCTA data (200) is used as the starting data element, and In each repeated execution of process (i), the corresponding data element in the OCTA data (200) that has been set as the first data element in the previous execution of process (i) is used as the starting data element.
4. The computer-implemented method of processing OCTA data (200) according to claim 3, wherein: The predetermined data element is one of the following: a data element at the end of said column of said OCTA data (200); or A data element in a group of data elements in the column representing a first portion of the body part including the vascular system, the data element being adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part not including the vascular system.
5. The computer-implemented method of processing OCTA data (200) of claim 1, further comprising, in each of a plurality of executions of processes (i) through (iii) for processing data elements in a corresponding column of the OCTA data (200), as part of process (i) and before calculating the correlation value: Each of a plurality of data elements arranged starting from an initial data element in the column of the OCTA data (200) is processed sequentially along the axial direction by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold, until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and setting the data element for which the data element metric is determined to exceed the OCT value threshold to the second data element, wherein positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans correspond to positions of data elements in the array of the column of the OCTA data (200).
6. The computer-implemented method of processing OCTA data (200) according to claim 5, wherein: The multiple executions of processes (i) to (iii) include executing process (i) for a first time and then repeating process (i) to set different corresponding data elements in the column of the OCTA data (200) to the second data element in the first execution of process (i) and each repetition of process (i), and wherein: When process (i) is performed for the first time to perform the setup, the following data elements in the column of the OCTA data (200) are used as the initial data elements: data elements whose positions in the column of the OCTA data (200) correspond to positions adjacent to the position of the first data element in the column of the OCTA data (200) containing the first data element, and In each repetition of process (i), the corresponding data element in the OCTA data (200) that was set as the second data element in the previous execution of process (i) is used as the initial data element.
7. The computer-implemented method of processing OCTA data (200) according to claim 1, wherein: Each of the plurality of columns of data elements is processed separately by performing processes (i) to (iii) using different combinations of data elements in the columns as the first data elements and the second data elements by: (a) sequentially processing (S110) each of a plurality of data elements arranged starting from a starting data element in the column of the OCTA data (200) along a first direction along the column by determining whether the data element exceeds an OCTA signal threshold value until a data element is determined to exceed the OCTA signal threshold value, and setting the data element that has been determined to exceed the OCTA signal threshold value as the first data element; (b) sequentially processing (S130) one or more data elements arranged starting from an initial data element in the column of the OCTA data (200) in a first direction along the column by determining whether a data element metric based on at least some of the OCT data elements exceeds an OCT value threshold until a data element for which the data element metric is determined to exceed the OCT value threshold is processed, and setting the data element for which the data element metric is determined to exceed the OCT value threshold as the second data element, positions of at least some of the OCT data elements in corresponding B-scans of the repeated B-scans corresponding to positions of data elements in the array of the column of the OCTA data; (c) calculating (S10) a correlation value indicating the degree of correlation between: a first sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of the first data elements within the array of columns of the OCTA data (200), and a second sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of the second data elements within the array of columns of the OCTA data (200); (d) calculating a correction for the second data element using (S20) the first data element and the calculated correlation value; (e) applying (S30) the calculated correction to the second data element; (f) Repeating the process from (b) to (e), wherein: In a first execution of process (b), the initial data element is a data element in the OCTA data (200) whose position in the column corresponds to a position adjacent to the position of the first data element in the column, In each repetition of process (b), the initial data element is the data element in the column that was set to the second data element in a previous execution of process (b), and Repeating processes (b) to (e) until there are no more data elements in the column of the OCTA data (200) to be processed in process (b); and (g) Repeating processes (a) to (f), wherein: In a first execution of process (a), the starting data element is a predetermined data element in the column of the OCTA data (200), In each repetition of process (a), the starting data element is the data element in the column that was set to the first data element in a previous execution of process (a), and Processes (a) to (f) are repeated until there are no more than two data elements in the column of the OCTA data (200) to be processed in process (a).
8. The computer-implemented method of processing OCTA data (200) according to claim 7, wherein: The predetermined data element is one of the following: a data element at the end of said column of said OCTA data (200); or A data element in a group of data elements in the column representing a first portion of the body part including the vascular system, the data element being adjacent to a boundary between the group of data elements and a data element in the column representing a second portion of the body part not including the vascular system.
9. The computer-implemented method of processing OCTA data (200) of claim 7, wherein the plurality of columns of data elements are processed in parallel by processes (a) through (g).
10. A computer-implemented method of processing OCTA data (200) according to any one of claims 5 to 9, wherein: The data element metric is one of: a mean of at least some of the OCT data elements whose positions in respective ones of the repeated B-scans correspond to positions of the data elements in the array of columns of the OCTA data (200); and a median value of at least some of the OCT data elements whose positions in the respective B-scans of the repeated B-scans correspond to the positions of the data elements in the array of columns of the OCTA data (200).
11. A computer-implemented method for processing OCTA data (200) according to any one of claims 1 to 9, wherein: The correlation value is one of a Pearson correlation coefficient value, a Spearman rank correlation coefficient value, and a Kendall rank correlation coefficient value.
12. A computer-implemented method of processing OCTA data (200) according to any one of claims 1 to 9, wherein: A correction for the second data element is calculated by evaluating the product of the first data element, the calculated correlation value, and a scaling factor.
13. The computer-implemented method of processing OCTA data (200) according to any one of claims 1 to 9, further comprising: generating (S60) an enface projection of the corrected OCTA data (300); and The generated enface projection is output (S70).
14. A non-transitory computer-readable storage medium storing computer-readable instructions which, when executed by a processor (620), cause the processor (620) to perform the method according to at least one of the preceding claims.
15. An apparatus (100) arranged to process optical coherence tomography angiography (OCTA) data (200) to generate corrected OCTA data (300), the OCTA data (200) comprising an array of columns of data elements representing the distribution of vasculature in an imaged region of a body part, the corrected OCTA data (300) showing reduced projection artifacts in enface projection relative to the OCTA data (200), the data elements in each column of the array of columns being generated from data elements in an A-scan of a corresponding B-scan in a set of repeated B-scans of the OCT data (250) correspondingly located in the imaged region of the body part, the apparatus comprising: A hardware component (110) arranged to perform a method comprising processing data elements of the OCT data (250) and data elements of the OCTA data (200) by: (i) Calculate the correlation value indicating the degree of correlation between the following a first sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the first sequence within respective B-scans correspond to positions of first data elements within the array of columns of the OCTA data (200), and a second sequence of data elements of the OCT data (250), wherein respective positions of the data elements of the second sequence within respective B-scans correspond to positions of second data elements within the array of columns of the OCTA data (200), the second data elements being located further in an axial direction of the OCTA data (200) than the first data elements, the columns of the OCTA data (200) extending in the axial direction; (ii) calculating a correction for the second data element using the first data element and the calculated correlation value; and (iii) applying the calculated correction to the second data element, The hardware component (110) is arranged to perform processes (i) to (iii) a plurality of times using a different combination of data elements in the OCTA data (200) as the first data elements and data elements in the OCTA data (200) as the second data elements in each execution of processes (i) to (iii) to generate the corrected OCTA data (300); and An output component (120) arranged to output the corrected OCTA data (300).
Citation Information
Patent Citations
OCTA capillary network imaging method with repeated scanning
CN111568373A
System for oct image translation, ophthalmic image denoising, and neural network therefor
CN113396440A