<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">High Performance GPU-Based Preprocessing for Time-of-Flight Imaging in Medical Applications</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Jakob</forename><surname>Wasza</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Pattern Recognition Lab</orgName>
								<orgName type="institution">Friedrich-Alexander University Erlangen</orgName>
								<address>
									<settlement>Nuremberg</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Sebastian</forename><surname>Bauer</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Pattern Recognition Lab</orgName>
								<orgName type="institution">Friedrich-Alexander University Erlangen</orgName>
								<address>
									<settlement>Nuremberg</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Joachim</forename><surname>Hornegger</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Pattern Recognition Lab</orgName>
								<orgName type="institution">Friedrich-Alexander University Erlangen</orgName>
								<address>
									<settlement>Nuremberg</settlement>
								</address>
							</affiliation>
							<affiliation key="aff1">
								<orgName type="department">Graduate School in Advanced Optical Technologies</orgName>
								<address>
									<settlement>Erlangen</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">High Performance GPU-Based Preprocessing for Time-of-Flight Imaging in Medical Applications</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">813CA08D12519558337254550FA45CAF</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T04:31+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"> Time-of-Flight (ToF)  <p>imaging is a promising technology for real-time metric surface acquisition and has recently been proposed for a variety of medical applications. However, due to limitations of the sensor, range data from ToF cameras are subject to noise and contain invalid outliers. In this paper, we discuss a real-time capable framework for ToF preprocessing in a medical environment. The contribution of this work is threefold. First, we address the restoration of invalid measurements that typically occur with specular reflections on wet organ surfaces. Second, we compare the conventional bilateral filter with the recently introduced concept of guided image filtering for edge preserving de-noising. Third, we have implemented the pipeline on the graphics processing unit (GPU), enabling high-quality preprocessing in real-time. In experiments, the framework achieved a depth accuracy of 0.8 mm (1.4 mm) on synthetic (real) data, at a total runtime of 40 ms.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Recent advances in Time-of-Flight (ToF) imaging have opened new perspectives for its use in medical engineering. In particular, the resolution (40k points), frame rate (40 Hz) and validity information provided by the camera hold potential for medical applications. ToF imaging has, among others, been proposed for 3D endoscopy <ref type="bibr" target="#b0">[1]</ref> and intra-operative organ surface registration <ref type="bibr" target="#b1">[2]</ref>. The inherent high degree of accuracy for these tasks requires a preprocessing pipeline to cope with the noisy and corrupted data obtained from the ToF sensor. Even though a proper sensor calibration <ref type="bibr" target="#b2">[3]</ref> can be used to eliminate systematic errors, de-noising provides the fundamental basis to produce steady and reliable surface data. At this, temporal averaging and edge preserving filters are commonly used <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3]</ref>. One issue that cannot be addressed by conventional filters is the elimination of invalid depth values caused by specular reflections that lead to saturated sensor elements. These effects often occur with ToF surface acquisition of organs due to their shiny and wet surface. In this paper, we propose to use a spectral domain method known from digital radiography to estimate the depth information at invalid pixels. As low filter run times are a crucial factor, we investigate the performance and robustness of the bilateral filter and the recently introduced guided image filter for edge preserving de-noising. To ultimately achieve real-time capability, we implemented all filters on the graphics processing unit (GPU).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Materials and Methods</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Preprocessing pipeline</head><p>The preprocessing pipeline in this work consists of three modules that operate on the distance information: (i) defect pixel interpolation, (ii) temporal averaging, (iii) edge preserving de-noising.</p><p>Defect Pixel Interpolation. In order to correct invalid depth measurements, we adopt a spectral domain method that was proposed by Aach and Metzler for defect pixel interpolation in digital radiography <ref type="bibr" target="#b3">[4]</ref>. The basic assumption is that the observed corrupted signal g can be expressed as a multiplication of the ideal signal f with a binary defect mask w given by the validity information provided by the camera. This corresponds to a convolution ( * ) in the frequency domain</p><formula xml:id="formula_0">g = f • w ≡ G = F * W<label>(1)</label></formula><p>where F ,G and W denote the spectra of f , g and w, respectively. The unknown complex coefficients of F are then estimated by an iterative spectral deconvolution scheme and the restored ideal signal is obtained as</p><formula xml:id="formula_1">f (x) = g (x) + (1 − w (x)) • f (x)<label>(2)</label></formula><p>where f denotes the inverse Fourier transform of the estimated spectrum F .</p><p>Temporal Averaging. For a frame at time t we perform temporal de-noising by computing the arithmetic mean of N successive frames g i</p><formula xml:id="formula_2">f t (x) = 1 N t i=t−N +1 g i (x)<label>(3)</label></formula><p>We note that this filter can be implemented in a recursive manner, i.e.</p><formula xml:id="formula_3">f t (x) = 1 N (N • f t−1 (x) − g t−N (x) + g t (x))<label>(4)</label></formula><p>This formulation provides an effective way to reduce GPU memory usage as not all N frames have to be stored and accessed. As the evaluation of equation ( <ref type="formula" target="#formula_3">4</ref>) per pixel x can be executed in parallel, an implementation on the GPU is straightforward.</p><p>Edge Preserving De-Noising. The bilateral filter proposed by Tomasi and Manduchi <ref type="bibr" target="#b4">[5]</ref> is a very popular spatial de-noising filter in ToF imaging. The discrete version for the Gaussian case can be expressed as</p><formula xml:id="formula_4">f (x) = 1 K x y ∈ ωx g(y) exp − x − y 2 σ 2 s exp − |g(x) − g(y)| σ 2 r (<label>5</label></formula><formula xml:id="formula_5">)</formula><p>where g denotes the input image and ω x denotes a local window centered at coordinate x. K x is a normalization factor, σ s and σ r control the spatial and range similarity, respectively. Due to its translational-variant kernel this filter is computationally expensive. Nevertheless, it can be implemented efficiently on the GPU as the evaluation of equation ( <ref type="formula" target="#formula_4">5</ref>) for all pixels x can be performed concurrently. In order to cope with boundary conditions and potentially noncoalesced GPU memory access patterns the input image g is bound as a texture.</p><p>Recently, the guided image filter was proposed by He et al. <ref type="bibr" target="#b5">[6]</ref>. This filter has a non-approximative linear-time algorithm for edge preserving filtering, thus, being very promising for real-time ToF preprocessing. The filter output for a pixel x can eventually be deduced as</p><formula xml:id="formula_6">f (x) = 1 |ω x | y ∈ ωx a y I(x) + 1 |ω x | y ∈ ωx b y<label>(6)</label></formula><p>where ω x denotes a local window centered at x and I denotes the guidance image. The evaluation of the summations in equation ( <ref type="formula" target="#formula_6">6</ref>) and the estimation of the coefficients a y and b y <ref type="bibr" target="#b5">[6]</ref> can be done by using box filters. In turn, box filtering can be performed efficiently by using integral images which provides the basis for a linear-time algorithm. We employ the parallel-prefix-sum algorithm as described in <ref type="bibr" target="#b6">[7]</ref> for the computation of integral images on the GPU.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Experiments</head><p>In order to assess the accuracy of the presented methods we evaluate the absolute distance error between a ground truth and a template object on a per-pixel basis.</p><p>Synthetic Data. Deciding on a ground truth for the evaluation is a non-trivial task as the ideal metric surface of the observed object is in general not known. Therefore, we conduct experiments on simulated distance values reconstructed from the z-buffer representation of a 3D scene. These values constitute the unbiased ground truth in this experiment. We then approximate the temporal noise on a per-pixel basis by adding an individual offset drawn from a normal distribution with σ = 10 mm and µ = 0 mm. This standard deviation is motivated by observations on real ToF data. In order to simulate the effect of amplitude related noise variance and total reflections we additionally corrupt the distance data by Perlin noise <ref type="bibr" target="#b7">[8]</ref>. For this study, we rendered a porcine liver mesh segmented from a CT scan. Real Data. The focus of the real data experiments is the comparison of a common preprocessing pipeline (temporal averaging, edge preserving de-noising) with a pipeline that additionally performs defect pixel interpolation. We conducted the experiment using a PMD CamCube 3.0 with a resolution of 200×200 pixels. For the ground truth generation, we averaged 1000 frames acquired from an uncorrupted liver phantom and applied a bilateral filter with σ s = 50 mm and σ r = 5 pixels to smooth out systematic artifacts that could not be corrected by sensor calibration. We then placed two pieces of aluminum foil onto the phantom to simulate a reflective surface. Using this corrupted phantom, we assessed the results of the standard preprocessing pipeline as applied for the ground truth and the same pipeline performing a defect pixel interpolation as a first step.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Results</head><p>We have implemented the defect pixel interpolation (DPI), temporal averaging (TA), bilateral filter (BF) and guided image filter (GF) on a Quadro FX 2800M GPU using NVidia's CUDA technology. Qualitative results for the defect pixel interpolation on real data are depicted in Fig. <ref type="figure" target="#fig_0">1</ref>. Without correction the corrupted regions show a mean error of 68.4 ± 40.2 mm. Using defect pixel interpolation we were able to reduce this error to 1.4 ± 1.1 mm. Qualitative and quantitative results for the filter evaluation on synthetic data are shown in Fig. <ref type="figure" target="#fig_1">2</ref> and Table <ref type="table" target="#tab_0">1</ref> whereby the error reduction is cumulative across filters while run times are not. Using the presented preprocessing pipeline we were able to reduce the mean error across the surface from 6.1±8.2 mm to 0.4±0.6 mm and 0.8±2.1 mm for the bilateral and the guided image filter, respectively. The bilateral filter shows a better accuracy at very strong edges (Fig. <ref type="figure" target="#fig_1">2</ref>). Given a total pipeline runtime of approximately 40 ms, real-time constraints are satisfied.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Discussion</head><p>We have presented a real-time capable preprocessing pipeline for ToF imaging in medical applications. The defect pixel interpolation yielded promising results with regard to accuracy. Nonetheless, future research has to investigate alternative spectral domain methods as well as spatial domain methods for the restoration of invalid depth values. For edge preserving de-noising, guided image filtering turned out to be an alternative to the bilateral filter. However, the latter shows a better behavior at sharp edges. Future work has to investigate adaptive variants of edge preserving filters that additionally account for the amplitude related noise variance. Concerning runtime issues, we note that even on a current mid-range GPU real-time constraints can be satisfied. This is a promising result with regard to next-generation and potentially high-resolution ToF sensors.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Defect pixel interpolation on real data.</figDesc><graphic coords="4,152.06,552.56,67.19,77.80" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Filter operations on synthetic data.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Error analysis on synthetic data and filter run times.</figDesc><table><row><cell>Filter</cell><cell>None</cell><cell>DPI</cell><cell>TA</cell><cell>BF</cell><cell>GF</cell></row><row><cell>Mean error [mm] Runtime [ms]</cell><cell>6.1 ± 8.2 n/a</cell><cell>5.5 ± 5.1 34 ± 6.3</cell><cell>1.8 ± 1.5 0.7 ± 0.1</cell><cell>0.4 ± 0.6 2.9 ± 0.1</cell><cell>0.8 ± 2.1 2.6 ± 0.2</cell></row></table></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Time-of-flight 3D endoscopy</title>
		<author>
			<persName><forename type="first">J</forename><surname>Penne</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Höller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Stürmer</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Lect Notes Computer Sci</title>
		<imprint>
			<biblScope unit="volume">5761</biblScope>
			<biblScope unit="page" from="467" to="474" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Time-of-Flight Kameras für die intraoperative Oberflächenerfassung</title>
		<author>
			<persName><forename type="first">A</forename><surname>Seitel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Santos</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Mersmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Proc BVM</title>
		<imprint>
			<biblScope unit="page" from="11" to="15" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Time-of-Flight sensor calibration for accurate range sensing</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lindner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Schiller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kolb</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Comput Vis Image Underst</title>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
	<note>in press</note>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Defect interpolation in digital radiography -how object-oriented transform coding helps</title>
		<author>
			<persName><forename type="first">T</forename><surname>Aach</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Metzler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Proc SPIE</title>
		<imprint>
			<biblScope unit="volume">4322</biblScope>
			<biblScope unit="page" from="824" to="835" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Bilateral filtering for gray and color images</title>
		<author>
			<persName><forename type="first">C</forename><surname>Tomasi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Manduchi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc ICCV</title>
				<meeting>ICCV</meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="page" from="839" to="846" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Guided image filtering</title>
		<author>
			<persName><forename type="first">K</forename><surname>He</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Sun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">X</forename><surname>Tang</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Lect Notes Computer Sci</title>
		<imprint>
			<biblScope unit="volume">6311</biblScope>
			<biblScope unit="page" from="1" to="14" />
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Parallel prefix sum (scan) with CUDA</title>
		<author>
			<persName><forename type="first">M</forename><surname>Harris</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Sengupta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">D</forename><surname>Owens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">GPU Gems 3</title>
				<editor>
			<persName><forename type="first">H</forename><surname>Nguyen</surname></persName>
		</editor>
		<imprint>
			<publisher>Addison Wesley</publisher>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="1" to="18" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">An image synthesizer</title>
		<author>
			<persName><forename type="first">K</forename><surname>Perlin</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGGRAPH Comput Graph</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="287" to="296" />
			<date type="published" when="1985">1985</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
