<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Sig. Proc.</journal-id>
<journal-title>Frontiers in Signal Processing</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Sig. Proc.</abbrev-journal-title>
<issn pub-type="epub">2673-8198</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">842570</article-id>
<article-id pub-id-type="doi">10.3389/frsip.2022.842570</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Signal Processing</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>VIPDA: A Visually Driven Point Cloud Denoising Algorithm Based on Anisotropic Point Cloud Filtering</article-title>
<alt-title alt-title-type="left-running-head">Cattai et&#x20;al.</alt-title>
<alt-title alt-title-type="right-running-head">VIPDA: A Visually Driven</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Cattai</surname>
<given-names>Tiziana</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1609575/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Delfino</surname>
<given-names>Alessandro</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Scarano</surname>
<given-names>Gaetano</given-names>
</name>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Colonnese</surname>
<given-names>Stefania</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1178210/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Department of Information Engineering, Electronics and Telecommunications</institution>, <institution>University La Sapienza of Rome</institution>, <addr-line>Rome</addr-line>, <country>Italy</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1219348/overview">Hagit Messer</ext-link>, Tel Aviv University, Israel</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1230069/overview">Milos Brajovic</ext-link>, University of Montenegro, Montenegro</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1151081/overview">Miaohui Wang</ext-link>, Shenzhen University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Stefania Colonnese, <email>stefania.colonnese@uniroma1.it</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Statistical Signal Processing, a section of the journal Frontiers in Signal Processing</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>16</day>
<month>03</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>2</volume>
<elocation-id>842570</elocation-id>
<history>
<date date-type="received">
<day>23</day>
<month>12</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>02</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Cattai, Delfino, Scarano and Colonnese.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Cattai, Delfino, Scarano and Colonnese</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these&#x20;terms.</p>
</license>
</permissions>
<abstract>
<p>Point clouds (PCs) provide fundamental tools for digital representation of 3D surfaces, which have a growing interest in recent applications, such as e-health or autonomous means of transport. However, the estimation of 3D coordinates on the surface as well as the signal defined on the surface points (vertices) is affected by noise. The presence of perturbations can jeopardize the application of PCs in real scenarios. Here, we propose a novel visually driven point cloud denoising algorithm (VIPDA) inspired by visually driven filtering approaches. VIPDA leverages recent results on local harmonic angular filters extending image processing tools to the PC domain. In more detail, the VIPDA method applies a harmonic angular analysis of the PC shape so as to associate each vertex of the PC to suit a set of neighbors and to drive the denoising in accordance with the local PC variability. The performance of VIPDA is assessed by numerical simulations on synthetic and real data corrupted by Gaussian noise. We also compare our results with state-of-the-art methods, and we verify that VIPDA outperforms the others in terms of the signal-to-noise ratio (SNR). We demonstrate that our method has strong potential in denoising the point clouds by leveraging a visually driven approach to the analysis of 3D surfaces.</p>
</abstract>
<kwd-group>
<kwd>point cloud</kwd>
<kwd>denoising</kwd>
<kwd>non-Euclidean domain</kwd>
<kwd>angular harmonic filtering</kwd>
<kwd>graph signal processing</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Digital representation of real 3D surfaces has a crucial importance in a variety of cutting-edge applications, such as autonomous navigation (<xref ref-type="bibr" rid="B24">Huang J.&#x20;et&#x20;al., 2021</xref>), UAV fleets (<xref ref-type="bibr" rid="B30">Ji et&#x20;al., 2021</xref>), extended reality streaming, or telesurgery (<xref ref-type="bibr" rid="B26">Huang T. et&#x20;al., 2021</xref>). Point clouds represent 3D surfaces by means of a set of 3D locations of points on the surface. In general, those points can be acquired by active or passive techniques (<xref ref-type="bibr" rid="B7">Chen et&#x20;al., 2021</xref>; <xref ref-type="bibr" rid="B34">Rist et&#x20;al., 2021</xref>), in presence of random errors, and they may be associated with color and texture information as well. Point cloud denoising can in general be applied as an enhancement stage at the decoder side of an end-to-end communication system, involving volumetric data, for e.g., for extended reality or mixed reality services. Although lossless compression of point clouds is feasible (<xref ref-type="bibr" rid="B33">Ramalho et&#x20;al., 2021</xref>), color point cloud lossy coding based on 2D point cloud projection (<xref ref-type="bibr" rid="B38">Xiong et&#x20;al., 2021</xref>) is increasingly relevant both in sensor networks (<xref ref-type="bibr" rid="B14">de Hoog et&#x20;al., 2021</xref>) and autonomous systems (<xref ref-type="bibr" rid="B35">Sun et&#x20;al., 2020</xref>). Nonlocal estimation solutions (<xref ref-type="bibr" rid="B41">Zhu et&#x20;al., 2022</xref>) or color-based (<xref ref-type="bibr" rid="B28">Irfan and Magli 2021b</xref>) solutions as well as solutions for point cloud sequences (<xref ref-type="bibr" rid="B22">Hu et&#x20;al., 2021a</xref>) have been proposed.</p>
<p>The extraction of visually relevant features on point cloud is needed for tasks as pattern recognition, registration, compression and quality evaluation (<xref ref-type="bibr" rid="B39">Yang et&#x20;al.</xref>s<xref ref-type="bibr" rid="B39">, 2020</xref>; <xref ref-type="bibr" rid="B16">Diniz et&#x20;al., 2021</xref>), and semantic segmentation. Point cloud (PC) processing has been widely investigated, and many of the proposed processing methods are based on the geometric properties (<xref ref-type="bibr" rid="B23">Hu et&#x20;al., 2021b</xref>; <xref ref-type="bibr" rid="B17">Er&#xe7;elik et&#x20;al., 2021</xref>). Still, feature extraction on PC is mostly focused on information related to the point cloud shape. In addition, new PC acquisition systems for surveillance (<xref ref-type="bibr" rid="B13">Dai et&#x20;al., 2021</xref>) or extended reality (XR) (<xref ref-type="bibr" rid="B40">Yu et&#x20;al., 2021</xref>) require processing tools operating both on geometry and texture. Shape and texture processing needs development of new tools because of the non-Euclidean nature of the real surfaces modeled by a point cloud. In this direction, few studies in the literature simultaneously leverage both geometry and texture information. Furthermore, in the context of classical image processing, several effective tools have been inspired by the human visual systems (HVSs), which process both texture and shape, and it is sensitive to angular patterns such as edges, forks, and corners (<xref ref-type="bibr" rid="B2">Beghdadi et&#x20;al., 2013</xref>). In particular, two-dimensional circular harmonic functions (CHFs) have been investigated for visually driven image processing and specifically for angular pattern detection. CHFs have been successfully applied to interpolation (<xref ref-type="bibr" rid="B10">Colonnese et&#x20;al., 2013</xref>), deconvolution (<xref ref-type="bibr" rid="B8">Colonnese et&#x20;al., 2004</xref>), and texture synthesis (<xref ref-type="bibr" rid="B4">Campisi and Scarano 2002</xref>). On the contrary, point cloud processing lacks HVS-inspired processing tools, which can, in principle, provide alternative perspectives.</p>
<p>In this article, we leverage a class of point cloud multiscale anisotropic harmonic filters (MAHFs) inspired by HVS. MAHFs were recently introduced in our conference article (<xref ref-type="bibr" rid="B11">Conti et&#x20;al. (2021)</xref>). First, we recall the MAHF definition and describe their local anisotropic behavior that highlights directional components of the point cloud texture or geometry. In addition, we show their applicability to both geometric and textured PC data. Second, we illustrate how MAHF can be applied to visually driven PC denoising problems. Denoising is a crucial preprocessing step for many further point cloud processing techniques. In real acquisition scenarios, the perturbations on the PC vertices or on the associated signal severely affect the PC usability. MAHF is used to drive an iterative denoising algorithm so as to adapt the restoration to the local information. The proposed method differs from other competitors (<xref ref-type="bibr" rid="B41">Zhu et&#x20;al., 2022</xref> and the references) in linking the denoising with visually relevant features, as estimated by suitable anisotropic filtering in the vertex domain. We test the performance of the visually driven point cloud denoising algorithm (VIPDA) on synthetic and real data from the public database (<xref ref-type="bibr" rid="B36">Turk and Levoy 1994</xref>; <xref ref-type="bibr" rid="B12">d&#x2019;Eon et&#x20;al., 2017</xref>). Specifically, considering different signal-to-noise-ratios by adding Gaussian noise to the original data, we verify that our method outperforms state-of-the-art alternatives in denoising&#x20;data.</p>
<p>The structure of the article is as follows. In <xref ref-type="sec" rid="s2">Section 2</xref>, we review a particular class of HVS-inspired image filters, namely the circular harmonic filters, which are needed to introduce our point cloud filtering approach. In <xref ref-type="sec" rid="s3">Section 3</xref>, we present a class of multiscale anisotropic filters, formerly introduced in <xref ref-type="bibr" rid="B11">Conti et&#x20;al. (2021</xref>), and we illustrate their relation with visually driven image filters. In <xref ref-type="sec" rid="s5">Section 5</xref>, we present the visually driven point cloud denoising algorithm (VIPDA) based on the proposed manifold filters. In <xref ref-type="sec" rid="s6">Section 6</xref>, we show by numerical simulations that the VIPDA outperforms state-of-the-art competitors. <xref ref-type="sec" rid="s7">Section 7</xref> concludes the article.</p>
</sec>
<sec id="s2">
<title>2 Circular Harmonic Functions for HVS-Based Image Filtering: A Review</title>
<p>Before the introduction of the MAHFs, a step back is necessary in order to contextualize the research problems by investigating other filter methods in the Euclidean domain.</p>
<p>In several important applications in the field of image processing, circular harmonic functions (CHFs) have been used (<xref ref-type="bibr" rid="B32">Panci et&#x20;al., 2003</xref>; <xref ref-type="bibr" rid="B9">Colonnese et&#x20;al., 2010</xref>). As mentioned previously, CHFs have been widely applied in image processing applications because they are able to detect relevant image features, such as edges, lines, and crosses, i.e.,&#x20;they perform the analysis in an analogous way to the behavior of the HVS during the pre-attentive step. It is important to remark here that the results of the order-1 CHFs are complex images, in which the module corresponds to the edge magnitude while the phase describes the orientation. Taken together, this filtering procedure returns precious information about the structures of the output image; in fact, it underlines the edges by simultaneously measuring their intensity and direction. The interest in CHFs also stems from the fact that they can be integrated within an invertible filter bank, thereby being exploited for suitable processing, for e.g., image enhancement, in the CHF-transformed domain (<xref ref-type="bibr" rid="B32">Panci et&#x20;al., 2003</xref>).</p>
<p>CHFs&#x2019; properties relate to the specific way in which they characterize the information belonging to two points. In fact, they encode the distance as well as the geometric direction that joins&#x20;them.</p>
<p>These aspects are evident in the mathematical formulation of CHFs. Let us consider the 2D domain of the continuous CHF described by the polar coordinates (<italic>r</italic>, <italic>&#x3d1;</italic>) that, respectively, represent the distance from the origin and the angle with the reference <italic>x</italic> axis. The CHF of order <italic>k</italic> is the complex filter defined as:<disp-formula id="e1">
<mml:math id="m1">
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mi>k</mml:mi>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>where the influence of the radial (r) and the angular (<italic>&#x3d1;</italic>) contributions are separated by the two factors. With the aim of preserving the isomorphism with the frequency space, the functions <italic>g</italic>
<sub>
<italic>k</italic>
</sub>(<italic>r</italic>) in <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> are usually isotropic Gaussian kernels. The variable <italic>k</italic> defines the angular structure of the model. For <italic>k</italic>&#x20;&#x3d; 0, the zero-order CHF returns output as a real image, represented by the low-pass version of the original one. As a general consideration, when the order k increases, CHFs are able to identify more and more complex structures on the images, such as edges (for <italic>k</italic>&#x20;&#x3d; 1), lines (for <italic>k</italic>&#x20;&#x3d; 2), forks (for <italic>k</italic>&#x20;&#x3d; 3), and crosses (for <italic>k</italic>&#x20;&#x3d; 4). We can see the effect of increasing the <italic>k</italic> order of the heat kernel on a sphere in <xref ref-type="bibr" rid="B11">Conti et&#x20;al. (2021</xref>).</p>
<p>Based on the definition of CHF and the introduction of a scale parameter <italic>&#x3b1;</italic>, circular harmonic wavelet (CHW) (<xref ref-type="bibr" rid="B29">Jacovitti and Neri 2000</xref>) of order <italic>k</italic> can be introduced and can be typically applied in the context of multi-resolution problems.</p>
<p>Finally, it is worth observing that the CHF output has been shown to be related to the Fisher information of the input w.r.t rotation and translation parameters. The Fisher information of an image w.r.t. shift/rotation estimation is associated with the power of the image first derivative w.r.t. the parameter under concern (<xref ref-type="bibr" rid="B18">Friedlander 1984</xref>). The CHF in the 2D account for a local derivative of the signal has been shown to be related to the Fisher information w.r.t. localization parameters (<xref ref-type="bibr" rid="B31">Neri and Jacovitti 2004</xref>).</p>
<p>In order to show a visual example of the application of CHF on real data, we consider the &#x201c;cameraman image,&#x201d; and we apply first-order CHF as an example to represent the effect of CHF on a real image. We report the results in <xref ref-type="fig" rid="F1">Figure&#x20;1</xref>, in which we can see the module in panel A and the phase in panel&#x20;B.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Results of CHF application on the &#x201c;cameraman image&#x201d; (with <italic>k</italic>&#x20;&#x3d; 1). In panel <bold>(A)</bold>, we have the module of the CHF &#x7c;<italic>h</italic>
<sup>(1)</sup>&#x7c;, and in panel <bold>(B),</bold> we have the associated phase <italic>&#x2220;h</italic>
<sup>(1)</sup>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g001.tif"/>
</fig>
<p>Stemming on these studies on directional harmonic analysis of 2D signals, we introduce in the following sections the multiscale anisotropic harmonic filters to be adopted in the non-Euclidean manifold domain.</p>
</sec>
<sec id="s3">
<title>3 Multiscale Anisotropic Harmonic Filters</title>
<p>Although the HVS is very complex in nature, its low-level behavior, as determined by the primary visual cortex, is well characterized by being bandpass and orientation selective (<xref ref-type="bibr" rid="B37">Wu et&#x20;al., 2017</xref>). Therefore, the CHF mimics these features on 2D images, and in this section, we show how to extend this behavior to manifold filters. Specifically, in this section, we describe a new class of visually driven filters operating on a manifold in the 3<italic>D</italic> space; the preliminary results on such filters appear in <xref ref-type="bibr" rid="B11">Conti et&#x20;al.</xref>(<xref ref-type="bibr" rid="B11">2021</xref>). We extend the presentation in <xref ref-type="bibr" rid="B11">Conti et&#x20;al. (2021</xref>) by an in-depth analysis of their relation with the CHF and by providing new results about their applications to point cloud filtering.</p>
<p>Our general idea consists in the extension of CHFs to 2<italic>D</italic> manifolds embedded in 3<italic>D</italic> domains. In this direction, the two key points to adapt to this new scenario are as follows: 1) we need to define a smoothing kernel that corresponds to the isotropic Gaussian smoothing in the 2<italic>D</italic> case; and 2) we have to identify an angular measurement on the surface of the manifold in the 3<italic>D</italic>&#x20;space.</p>
<p>In the following sections, we elaborate on the filters description first in the case of a 2<italic>D</italic> manifold defined in a continuous 3<italic>D</italic> domain and then in the case of its discretized version, as represented by a point cloud. The main notation is reported in <xref ref-type="table" rid="T1">Table&#x20;1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Table of main notation.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Notation</th>
<th align="center">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">
<inline-formula id="inf1">
<mml:math id="m2">
<mml:mi mathvariant="script">M</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">Manifold</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf2">
<mml:math id="m3">
<mml:mi mathvariant="script">G</mml:mi>
</mml:math>
</inline-formula>
</td>
<td align="left">Graph associated to the point cloud</td>
</tr>
<tr>
<td align="left">
<bold>A</bold>
</td>
<td align="left">Adjacency matrix</td>
</tr>
<tr>
<td align="left">
<bold>D</bold>
</td>
<td align="left">Degree matrix</td>
</tr>
<tr>
<td align="left">
<bold>L</bold>
</td>
<td align="left">Laplacian matrix</td>
</tr>
<tr>
<td align="left">
<italic>&#x3bb;</italic>, <bold>u</bold>
</td>
<td align="left">Eigenvalues and eigenvectors</td>
</tr>
<tr>
<td align="left">
<bold>p</bold>
<sub>
<bold>0</bold>
</sub>, <bold>p</bold>
</td>
<td align="left">Coordinates of point on the continuous manifold</td>
</tr>
<tr>
<td align="left">
<bold>p</bold>
<sub>
<bold>i</bold>
</sub>, <bold>p</bold>
<sub>
<bold>j</bold>
</sub>
</td>
<td align="left">Coordinates of point on the discrete manifold</td>
</tr>
<tr>
<td align="left">
<bold>q</bold>
<sub>
<bold>i</bold>
</sub>
</td>
<td align="left">Noisy coordinates of points on the discrete manifold</td>
</tr>
<tr>
<td align="left">
<inline-formula id="inf3">
<mml:math id="m4">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>
</td>
<td align="left">Reconstructed coordinates after denoising</td>
</tr>
<tr>
<td align="left">
<bold>n</bold>
<sub>
<bold>p</bold>
</sub>, <inline-formula id="inf4">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>
</td>
<td align="left">Direction orthogonal to the continuous and discrete manifold</td>
</tr>
<tr>
<td align="left">
<italic>&#x3d5;</italic>
<sup>(<italic>k</italic>)</sup>
</td>
<td align="left">MAHF of k order on the continuous Manifold</td>
</tr>
<tr>
<td align="left">
<italic>&#x3c6;</italic>
<sup>(<italic>k</italic>)</sup>
</td>
<td align="left">MAHF of k order on the discrete Manifold</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s3-1">
<title>3.1 MAHF on Manifolds</title>
<p>We first introduce the multiscale anisotropic harmonic filter (MAHF) on a continuous manifold <inline-formula id="inf5">
<mml:math id="m6">
<mml:mi mathvariant="script">M</mml:mi>
</mml:math>
</inline-formula> in <italic>R</italic>
<sup>3</sup>. The first step consists in the definition of a smoothing kernel, which is necessary to adapt to <xref ref-type="disp-formula" rid="e1">Eq. 1</xref> in this scenario. The smoothing kernel should account on the intrinsic (non-Euclidean) distance between a point <bold>p</bold>
<sub>0</sub> and a different point <bold>p</bold> on the manifold surface.</p>
<p>To this aim, we resort to the heat kernel that describes the diffusion of the heat from a point-wise source located at a point <bold>p</bold>
<sub>0</sub> on the manifold to a generic other manifold point <bold>p</bold>, after the time <italic>t</italic>. In formulas, the heat kernel <inline-formula id="inf6">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="script">M</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="script">M</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mi mathvariant="script">R</mml:mi>
</mml:math>
</inline-formula> is found as the fundamental solution of the heat propagation equation<xref ref-type="fn" rid="fn1">
<sup>1</sup>
</xref> under the initial condition <italic>f</italic>
<sub>0</sub>(<bold>p</bold>) &#x3d; <italic>&#x3b4;</italic>(<bold>p</bold> &#x2212;&#x20;<bold>p</bold>
<sub>0</sub>).</p>
<p>With these positions, given two points <bold>p</bold>
<sub>0</sub> and <bold>p</bold> on the manifold surface, the heat kernel is expressed as an infinite of suitable functions on the manifold. Specifically, let <inline-formula id="inf7">
<mml:math id="m8">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>(</mml:mo>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
</mml:math>
</inline-formula> be the eigenfunctions of the Laplace&#x2013;Bertrami (sum of directional derivatives) manifold operator. Therefore, <inline-formula id="inf8">
<mml:math id="m9">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="script">M</mml:mi>
<mml:mo>&#x2192;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:math>
</inline-formula>. For any point pair (<bold>p</bold>, <bold>p</bold>
<sub>0</sub>) on the manifold, the heat kernel is written as:<disp-formula id="e3">
<mml:math id="m10">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>The heat kernel <inline-formula id="inf9">
<mml:math id="m11">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> has the interesting property to represent a smooth function on the <inline-formula id="inf10">
<mml:math id="m12">
<mml:mi mathvariant="script">M</mml:mi>
</mml:math>
</inline-formula> manifold (<xref ref-type="bibr" rid="B21">Hou and Qin 2012</xref>), smoothly decreasing as a bell-shaped function at a rate depending on the parameter <italic>t</italic> (<xref ref-type="bibr" rid="B11">Conti et&#x20;al., 2021</xref>).</p>
<p>For what concerns angles, several definitions have been proposed in the context of convolutional neural networks on the manifold. Specifically, the polar coordinates on the geodesic can be defined using angular bins. Alternatively, a representation of points on the plane <inline-formula id="inf11">
<mml:math id="m13">
<mml:mi mathvariant="script">T</mml:mi>
</mml:math>
</inline-formula>, which is the plane tangent to the manifold in the point <bold>p</bold>. In this work, we define the angle <inline-formula id="inf12">
<mml:math id="m14">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> in a similar way to the second approach. As represented in the panel A in <xref ref-type="fig" rid="F2">Figure&#x20;2</xref>, the angle <inline-formula id="inf13">
<mml:math id="m15">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> corresponds to the azimuth in the spherical coordinates of the point <bold>p</bold>, when the reference is the system (t<sub>1</sub>,t<sub>1</sub>,n) with the origin centered in <bold>p</bold> and the n axis is normal to the tangent plane&#x20;<inline-formula id="inf14">
<mml:math id="m16">
<mml:mi mathvariant="script">T</mml:mi>
</mml:math>
</inline-formula>.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Graphical representation of angles in the 3<italic>D</italic> space. In panel <bold>(A),</bold> we represent the continuous manifold <inline-formula id="inf15">
<mml:math id="m17">
<mml:mi mathvariant="script">M</mml:mi>
</mml:math>
</inline-formula>, in which we highlight the angle <inline-formula id="inf16">
<mml:math id="m18">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> in orange. In panel <bold>(B),</bold> we have the discrete manifold on which a graph <inline-formula id="inf17">
<mml:math id="m19">
<mml:mi mathvariant="script">G</mml:mi>
</mml:math>
</inline-formula> is defined. The angle <inline-formula id="inf18">
<mml:math id="m20">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> is plotted in orange.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g002.tif"/>
</fig>
<p>With these positions, the multiscale anisotropic harmonic filters (MAHFs) <italic>&#x3d5;</italic> of <italic>k</italic> order and centered in <bold>p</bold>
<sub>0</sub> are defined as follows (<xref ref-type="bibr" rid="B11">Conti et&#x20;al., 2021</xref>):<disp-formula id="e4">
<mml:math id="m21">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mspace width="0.28em"/>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xfe38;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mspace width="0.28em"/>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>sin</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mspace width="0.28em"/>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xfe38;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
</mml:math>
<label>(4)</label>
</disp-formula>with <inline-formula id="inf19">
<mml:math id="m22">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> defined as in 3 and where we recognize the real <inline-formula id="inf20">
<mml:math id="m23">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and imaginary <inline-formula id="inf21">
<mml:math id="m24">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> part of the complex function <italic>&#x3d5;</italic>
<sup>(<italic>k</italic>)</sup>(<bold>p</bold>,&#x20;<bold>p</bold>
<sub>0</sub>).</p>
</sec>
<sec id="s3-2">
<title>3.2 MAHF on Point Clouds</title>
<p>In this subsection, we focus on the definition of MAHF on a 3<italic>D</italic> point cloud. Let us consider the graph <inline-formula id="inf22">
<mml:math id="m25">
<mml:mi mathvariant="script">G</mml:mi>
</mml:math>
</inline-formula> associated with the point cloud and defined as <inline-formula id="inf23">
<mml:math id="m26">
<mml:mi mathvariant="script">G</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">E</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf24">
<mml:math id="m27">
<mml:mi mathvariant="script">V</mml:mi>
</mml:math>
</inline-formula> is the set of <italic>N</italic> point cloud vertices <bold>p</bold>
<sub>
<italic>i</italic>
</sub> with <italic>i</italic>&#x20;&#x3d; 1&#x2025;<italic>N</italic>, and <inline-formula id="inf25">
<mml:math id="m28">
<mml:mi mathvariant="script">E</mml:mi>
</mml:math>
</inline-formula> is the set of edges (or links). The edge weights are represented by the <italic>N</italic>&#x20;&#xd7; <italic>N</italic> weighted adjacency matrix <bold>A</bold> or by the Laplacian graph <bold>L</bold> &#x3d; <bold>D</bold> &#x2212; <bold>A</bold>, being <bold>D</bold>, the degree matrix, which is a diagonal matrix with elements on the principal diagonal computed as <inline-formula id="inf26">
<mml:math id="m29">
<mml:msub>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. For 3D point clouds, the edge weights are selected such that the Laplacian <bold>L</bold> approximates the continuous domain Laplace&#x2013;Beltrami operator (<xref ref-type="bibr" rid="B3">Belkin et&#x20;al., 2009</xref>).</p>
<p>Let <italic>&#x3bb;</italic>
<sub>
<italic>n</italic>
</sub> and <bold>u</bold>
<sub>
<italic>n</italic>
</sub>, <italic>n</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 denote the eigenvalues and eigenvectors of <bold>L</bold>, respectively. In this case, the heat kernel at the <italic>i</italic>-th and <italic>j</italic>-th point cloud points (<bold>p</bold>
<sub>
<italic>i</italic>
</sub>, <bold>p</bold>
<sub>
<italic>j</italic>
</sub>) is obtained as follows:<disp-formula id="e5">
<mml:math id="m30">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>t</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(5)</label>
</disp-formula>i.e.,&#x20;it depends on the weighted sum of the products of the <italic>i</italic>-th and <italic>j</italic>-th coefficients of each and every Laplacian eigenvector. The eigenvectors corresponding to small eigenvalues, i.e.,&#x20;the low-frequency vectors of the graph Fourier transform defined on the graph, dominate the sum for large values of the parameter&#x20;<italic>t</italic>.</p>
<p>As the continuous case, in the discrete scenario, we define the angle <inline-formula id="inf27">
<mml:math id="m31">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula> as the azimuth of the <inline-formula id="inf28">
<mml:math id="m32">
<mml:mi mathvariant="script">T</mml:mi>
</mml:math>
</inline-formula> tangent plane to <italic>p</italic>
<sub>
<italic>i</italic>
</sub>, as graphically represented in <xref ref-type="fig" rid="F2">Figure&#x20;2B</xref>.</p>
<p>Similar to the continuous case, the multiscale anisotropic harmonic filters (MAHFs) <italic>&#x3c6;</italic> of k order and centered in <italic>p</italic>
<sub>
<italic>i</italic>
</sub> are defined as:<disp-formula id="e6">
<mml:math id="m33">
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>cos</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mspace width="0.28em"/>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xfe38;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:munder>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>j</mml:mi>
<mml:mspace width="0.28em"/>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi>sin</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mspace width="0.28em"/>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#xfe38;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:munder>
<mml:mo>,</mml:mo>
</mml:math>
<label>(6)</label>
</disp-formula>with <inline-formula id="inf29">
<mml:math id="m34">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> defined as in <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> and where we recognize the real <inline-formula id="inf30">
<mml:math id="m35">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and imaginary <inline-formula id="inf31">
<mml:math id="m36">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> parts of the complex function <italic>&#x3c6;</italic>
<sup>(<italic>k</italic>)</sup>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>,&#x20;<bold>p</bold>
<sub>
<italic>j</italic>
</sub>).</p>
</sec>
</sec>
<sec id="s4">
<title>4 Visually Driven Point Cloud Filtering: MAHF as Anisotropic Analysis of Texture and Shape in Point Clouds</title>
<p>Let us consider a real-valued <italic>D</italic>-dimensional signal on the point cloud vertices <bold>s</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) &#x2208; <italic>R</italic>
<sup>
<italic>D</italic>
</sup>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1. Applying <italic>k</italic>-th-order MAHF for the vertex domain signal on graph filtering obtains the output point cloud signal <bold>r</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) as:<disp-formula id="e7">
<mml:math id="m37">
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>The filtering realized by the MAHFs performs an anisotropic harmonic angular filtering of the signal defined on the point cloud. The period of the harmonic analysis decreases as the filter order increases, and MAHF of different orders <italic>k</italic> are matched to different angular patterns of the input signal <bold>s</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212;&#x20;1.</p>
<p>MAHF applies to both texture and shape signals, depending on the choice of the input signal <bold>s</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1. For video point clouds, the signal <bold>s</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) can represent the luminance and the chrominances observed at the point <bold>p</bold>
<sub>
<italic>i</italic>
</sub>. If this is the case, the MAHF output highlights texture patterns on the surface. On the other hand, the signal <bold>s</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 can be selected so as to represent geometric information. A relevant case is when the signal represents the normal to the point cloud surface at each vertex <bold>p</bold>
<sub>
<italic>i</italic>
</sub> as follows:<disp-formula id="e8">
<mml:math id="m38">
<mml:mi mathvariant="bold">s</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">n</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The application of MAHF to the signal defined as in <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> will be exploited in the following derivation of VIPDA.</p>
<p>To sum up, the MAHFs can be applied to different kinds of data defined on point clouds, and they provide a way to extract several point-wise shape and texture point cloud features for different values of the order k. A schematic representation of MAHF application to texture (luminance) and shape (point cloud normals) information is illustrated in <xref ref-type="fig" rid="F3">Figure&#x20;3</xref>.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Application of MAHF to texture (luminance) and shape (point cloud normals).</p>
</caption>
<graphic xlink:href="frsip-02-842570-g003.tif"/>
</fig>
</sec>
<sec id="s5">
<title>5 Visually Driven Point Cloud Denoising Algorithm</title>
<p>In this section, we illustrate the VIPDA approach, based on application of the aforementioned MAHF to the problem of PC denoising.</p>
<p>Let us consider the case in which the point cloud vertices are observed in presence of an additive noise. Thereby, the observed coordinates are written as<disp-formula id="e9">
<mml:math id="m39">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>where <bold>w</bold>
<sub>
<italic>i</italic>
</sub> is an i.i.d. random noise. The denoising provides an estimate <inline-formula id="inf32">
<mml:math id="m40">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> of the original locations <bold>p</bold>
<sub>
<italic>i</italic>
</sub>. Let us remark that this problem is different from recovery of a signal defined at the vertices, which will be addressed in the future&#x20;work.</p>
<p>Point cloud denoising algorithms typically leverage 1) data fidelity (<xref ref-type="bibr" rid="B27">Irfan and Magli 2021a</xref>), 2) manifold smoothness (low-rankedness) (<xref ref-type="bibr" rid="B15">Dinesh et&#x20;al., 2020</xref>), and 3) local or cooperative averaging (<xref ref-type="bibr" rid="B6">Chen et&#x20;al., 2019</xref>) objectives.</p>
<p>Here, the local manifold smoothness is accounted by adapting the estimator <inline-formula id="inf33">
<mml:math id="m41">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> to the local shape variability as estimated at the first algorithm stage. Specifically, the MAHF is applied to the point cloud estimated normals <bold>n</bold>
<sup>(0)</sup>(<bold>q</bold>
<sub>
<italic>j</italic>
</sub>) as:<disp-formula id="e10">
<mml:math id="m42">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Thereby, each point <bold>q</bold>
<sub>
<italic>i</italic>
</sub> is assigned a weight related to the normal variations in its neighborhood. The key idea is that when fast variations of the normal are observed around <bold>q</bold>
<sub>
<italic>i</italic>
</sub>, the surface smoothness is reduced, and the set of neighboring points to be exploited to compute the estimate <inline-formula id="inf34">
<mml:math id="m43">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> should be reduced accordingly. Therefore, the size <italic>K</italic>
<sub>
<italic>i</italic>
</sub> of the neighborhood of the point <bold>q</bold>
<sub>
<italic>i</italic>
</sub> to be used in the estimation stage is selected based on the MAHF-filtered signal <bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>). Specifically, <italic>K</italic>
<sub>
<italic>i</italic>
</sub> is selected as a function of the mean square value of the MAHF output, namely<disp-formula id="equ1">
<mml:math id="m44">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="script">K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bd;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where <inline-formula id="inf35">
<mml:math id="m45">
<mml:mi mathvariant="script">K</mml:mi>
</mml:math>
</inline-formula> is an integer function defined on <italic>R</italic>. This is exemplified in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref> (left), which illustrates a point cloud (namely a low-resolution version of the Stanford bunny in <xref ref-type="bibr" rid="B36">Turk and Levoy (1994)</xref>) and two neighborhoods of different sizes <italic>K</italic>
<sub>
<italic>i</italic>
</sub> and <italic>K</italic>
<sub>
<italic>j</italic>
</sub> around points characterized by different values of the mean square value of the MAHF output, namely &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup>, plotted in <xref ref-type="fig" rid="F4">Figure&#x20;4</xref> (right).</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Examples of two neighborhoods of different sizes <italic>K</italic>
<sub>
<italic>i</italic>
</sub> and <italic>K</italic>
<sub>
<italic>j</italic>
</sub> (left) around points characterized by different values of the mean square value of the MAHF output &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup> (right). The considered point cloud is a low-resolution version of the Stanford bunny in <xref ref-type="bibr" rid="B36">Turk and Levoy 1994</xref>).</p>
</caption>
<graphic xlink:href="frsip-02-842570-g004.tif"/>
</fig>
<p>After the size of the estimation window at each point is given, the denoising algorithm iteratively alternates 1) the computation of a candidate estimate of the point location based on spatially adaptive averaging over the <italic>K</italic>
<sub>
<italic>i</italic>
</sub>-size neighborhood of the <italic>i</italic>-th vertex and 2) the update of the current estimate, along the direction of the normal to the surface.</p>
<p>In formulas, at the <italic>l</italic>-th iteration, the candidate estimate of the <italic>i</italic>-th point cloud vertex is computed as<disp-formula id="equ2">
<mml:math id="m46">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where <italic>&#x3b7;</italic>(<italic>i</italic>; <italic>K</italic>
<sub>
<italic>i</italic>
</sub>) denotes the set of <italic>K</italic>
<sub>
<italic>i</italic>
</sub> nearest neighbors of the <italic>i</italic>-th point cloud vertex. Then, the estimate is updated as<disp-formula id="equ3">
<mml:math id="m47">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>where <italic>&#x3c1;</italic>
<sub>0</sub> &#x2208; (0, 1] is a parameter controlling the update rate throughout the iterations. Finally, the normals <inline-formula id="inf36">
<mml:math id="m48">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> are recomputed on the estimated point cloud <inline-formula id="inf37">
<mml:math id="m49">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula>.</p>
<p>To sum up, the MAHF is applied once for all at the beginning of the iterations. For each vertex, the set of neighboring points is identified. Then, a candidate new point is computed as a weighted average of the neighbor and of the point itself. Then, the point estimated at the previous iteration is updated only by projection of the correction on the direction of the normal to the surface, as illustrated in <xref ref-type="fig" rid="F5">Figure&#x20;5</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Schematic representation of the VIPDA iteration. We report the original point <inline-formula id="inf38">
<mml:math id="m50">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> obtained at the (<italic>l</italic>&#x20;&#x2212; 1) iteration, with the normal to the tangent plane <italic>n</italic>
<sup>(<italic>l</italic>&#x2212;1)</sup> with <inline-formula id="inf39">
<mml:math id="m51">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>. At the iteration (<italic>L</italic>), the position of the point is updated obtaining the point <inline-formula id="inf40">
<mml:math id="m52">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g005.tif"/>
</fig>
<p>The normals to the surface are recomputed. The algorithm is terminated after few iterations (1-3 in the presented simulation results).</p>
<p>The algorithm is summarized as follows:</p>
<p>
<bold>Input:</bold> Noisy point clouds coordinates <bold>q</bold>
<sub>
<italic>i</italic>
</sub>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1; heat kernel spread <italic>t</italic>; update rate control parameter <italic>&#x3c1;</italic>
<sub>0</sub>.</p>
<p>
<bold>Output:</bold> Denoised point clouds coordinates <inline-formula id="inf41">
<mml:math id="m53">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula>.</p>
<p>Inizialization:</p>
<p>Computation of the heat kernel. <inline-formula id="inf42">
<mml:math id="m54">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula>
</p>
<p>Computation of the normals <bold>n</bold>
<sup>(0)</sup> and of their filtered version. <inline-formula id="inf43">
<mml:math id="m55">
<mml:mi mathvariant="bold-italic">&#x3bd;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
<p>Computation of <inline-formula id="inf44">
<mml:math id="m56">
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="script">K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bd;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula> and of the <italic>K</italic>
<sub>
<italic>i</italic>
</sub> nearest neighborhood <italic>&#x3b7;</italic>(<italic>i</italic>;&#x20;<italic>K</italic>
<sub>
<italic>i</italic>
</sub>)</p>
<p>
<bold>Iteration: for</bold> <italic>l</italic>&#x20;&#x3d; 1, &#x2026;, <italic>L</italic>&#x20;&#x2212;&#x20;1</p>
<p>Computation of the candidate estimate <inline-formula id="inf45">
<mml:math id="m57">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula>, with <italic>&#x3b1;</italic>
<sub>
<italic>j</italic>
</sub> &#x3d; (<italic>&#x3b1;</italic>
<sub>0</sub>)/<italic>K</italic>
<sub>
<italic>i</italic>
</sub>
</p>
<p>Update of the current estimate. <inline-formula id="inf46">
<mml:math id="m58">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo>&#x303;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>
</p>
<p>Update of the normals <inline-formula id="inf47">
<mml:math id="m59">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>l</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>An overview of the VIPDA algorithm stages appears in <xref ref-type="fig" rid="F6">Figure&#x20;6</xref>.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>VIPDA overview.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g006.tif"/>
</fig>
<sec id="s5-1">
<title>5.1 Remarks</title>
<p>As far as the computational complexity of VIPDA is concerned, a few remarks are in order. First, VIPDA implies an initial MAHF-filtering stage that implies the eigendecomposition. For the computation in 5, the use of all the elements of the eigendecomposition has a really high computational cost for large <italic>N</italic>. To solve this limitation, Chebychev polynomial approximation by <xref ref-type="bibr" rid="B25">Huang et&#x20;al. (2020)</xref>; <xref ref-type="bibr" rid="B19">Hammond et&#x20;al. (2011)</xref> can be applied in order to rewrite <xref ref-type="disp-formula" rid="e5">Eq. 5</xref> as a polynomial in <bold>L</bold>. For the sake of concreteness, we have evaluated the time associated with each stage of the algorithm, implemented in Matlab&#xa9; over a processor using this approximation for the Bunny cloud with <italic>N</italic>&#x20;&#x3d; 8,146. The net time for the computation of the heat kernel <inline-formula id="inf48">
<mml:math id="m60">
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">G</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula> sums up to <inline-formula id="inf49">
<mml:math id="m61">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>40.7</mml:mn>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mi>s</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, the computation of the filtered normals <bold>
<italic>&#x3bd;</italic>
</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) requires up to <italic>T</italic>
<sub>
<italic>&#x3bd;</italic>
</sub> &#x3d; 9.6[<italic>s</italic>], and the computation of the <italic>L</italic>&#x20;&#x3d; 3 or 4 iterations requires <italic>T</italic>
<sub>
<italic>L</italic>
</sub> &#x3d; 1.8[<italic>s</italic>]. Overall, the iterative denoising algorithms require <italic>T</italic>
<sub>
<italic>VIPDA</italic>
</sub> &#x3d; 60.74, which is comparable with state-of-the-art methods (e.g., the execution time on the same machine for the method in <xref ref-type="bibr" rid="B15">Dinesh et&#x20;al., 2020</xref> is about 70[<italic>s</italic>]).</p>
<p>Second, VIPDA is iterative, and it is not suited for parallelization. This observation stimulated the definition of an alternative version of the algorithm, namely VIPDAfast, boiling down to a single iteration and suitable for parallelization. This is achieved by a simplified application of the VIPDA key concept, that is, the adaptation of the size of the estimation neighborhood to the MAHF-filtered output. In the single iteration algorithm VIPDAfast, each point is straightforwardly estimated on a patch whose size is as a given function of the MAHF output at that point. Since all the estimates are obtained directly from the noisy sample, the algorithm may be parallelized on different subsets of points. The numerical simulation results will show that VIPDAfast, suited for parallelization, approximates the performance of the complete iterative VIPDA, especially on relatively smooth point clouds. VIPDAfast is expected to reduce the execution time in a way proportional to the number of available concurrent threads.</p>
<p>Finally, a remark on the noise model is in order. Indeed, the VIPDA at each iteration performs a local averaging, which tackles Gaussian noise and, in a suboptimal way, also impulsive noise. Still, the core of VIPDA allows 1) to adaptively select the neighborhood of the vertex to be used in the estimate and 2) to apply the correction to the noise component orthogonal to the mesh surface. These two principles can also be applied when the actual estimate is realized by different nonlinear operators tuned to the actual noise statistics by <xref ref-type="bibr" rid="B1">Ambike et&#x20;al. (1994)</xref>. Therefore, VIPDA can be extended to deal with different kinds of noise by replacing the average operator with a suitable nonlinear one, this is left for further&#x20;study.</p>
</sec>
</sec>
<sec id="s6">
<title>6 Simulation Results</title>
<p>In this section, we present simulation results associated with the application of MAHF on synthetic and real PC, and we measure the performances of VIPDA. In particular, in <xref ref-type="sec" rid="s6-1">subsec.6.1</xref>, we illustrate the MAHF behavior, also in comparison with CHF, and in <xref ref-type="sec" rid="s6-2">subsec.6.2</xref> we assess the performance of VIPDA, also in comparison with state-of-the-art denoising algorithms.</p>
<sec id="s6-1">
<title>6.1&#x20;MAHF-Based Point Cloud Filtering</title>
<p>In this subsection, we present some examples on the application of MAHF on different point clouds. In this article, we introduce a point cloud filtering method inspired by HVS, and we show its potential to both geometric and texture PC data. The proposed class of filters presents a local anisotropic behavior that highlights directional components of the point cloud texture or geometry. The filter output can be leveraged as input to various adaptive processing&#x20;tasks.</p>
<p>First, we consider the case of a point cloud obtained by equispaced sampling of a planar surface, over which a discontinuous signal is defined. This case is illustrated in <xref ref-type="fig" rid="F7">Figure&#x20;7A</xref>), in which we see the point cloud in which a two-valued signal is defined; the signal is characterized by a discontinuity in the middle. Then, MAHF filtering (with <italic>k</italic>&#x20;&#x3d; 1) is applied. In <xref ref-type="fig" rid="F7">Figure&#x20;7B</xref>, we report the square of the module of the related MAHF output. As expected, the MAHF highlights the vertices in correspondence with the signal discontinuity. In order to compare MAHF with CHF behavior, we take into account an analogous scenario for CHF filtering, namely we consider an image representing a discrete bidimensional step function, which is represented in <xref ref-type="fig" rid="F8">Figure&#x20;8A</xref>. We apply the <italic>k</italic>&#x20;&#x3d; 1 CHF to the image, and we separately plot its module and phase in the panel <xref ref-type="fig" rid="F8">Figures 8B, C</xref>, respectively. The output of the <italic>k</italic>&#x20;&#x3d; 1 MAHF and CHF filters highlights the areas in correspondence with the discontinuity of the signal. Thereby, we recognize that the <italic>k</italic>&#x20;&#x3d; 1 MAHF filter straightforwardly extends to the planar point cloud domain, the behavior observed applying the <italic>k</italic>&#x20;&#x3d; 1 CHF filter on image data. Indeed, we remark that the MAHF and CHF filters definitions in the point cloud domain and image domain, respectively, are analogous, and it is expected that the MAHF can retrieve structured discontinuities of the signals defined on a point&#x20;cloud.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Results of the application of MAHF (<italic>k</italic>&#x20;&#x3d; 1) on a two-valued signal (in panel <bold>(A)</bold>). We compute the MAHF, and we report the square of the module of the output in panel <bold>(B)</bold>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g007.tif"/>
</fig>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Results of the application of CHF (<italic>k</italic>&#x20;&#x3d; 1) on a discrete bidimensional step function in panel <bold>(A)</bold>. We compute the output of the MAHF, and we report the square of the module in panel <bold>(B)</bold> and the phase in panel <bold>(C)</bold>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g008.tif"/>
</fig>
<p>After exemplifying the relation between MAHF and CHF, we apply MAHF to open access point clouds. For this study, we consider two point clouds belonging to the 8iVSLF dataset (d&#x2019;Eon et&#x20;al., 2017). Specifically, we consider the point clouds red and black and long dress (d&#x2019;Eon et&#x20;al., 2017), which are the 3D point clouds illustrated in the insets of panels A and B in <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>. Each point cloud vertex is associated to the red, green, and blue components of the surface color as seen using a multi-camera rig. The original point clouds red and black and long dress have been resampled to a number of points equal to <italic>N</italic>&#x20;&#x3d; 9,622 and <italic>N</italic>&#x20;&#x3d; 9,378, respectively.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>MAHF applied on the point cloud normals for different data: <bold>(A)</bold> red and black and <bold>(B)</bold> long dress. In the insets of each panel, we have original images. Here, MAHFs are applied to the normals <inline-formula id="inf50">
<mml:math id="m62">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> to the point cloud surface. We compute the square module of the MAHF output &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g009.tif"/>
</fig>
<p>First of all, we apply MAHF to the normals <inline-formula id="inf51">
<mml:math id="m63">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula> to the point cloud surface<xref ref-type="fn" rid="fn2">
<sup>2</sup>
</xref>, and we compute the square module of the MAHF output, namely the estimated &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 in <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>. We graphically represent it in gray-scale pseudo-colors in <xref ref-type="fig" rid="F9">Figure&#x20;9</xref>. The largest values of &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 are associated to the vertices characterized by curvature changes in each point&#x20;cloud.</p>
<p>Then, for each point cloud, we analyze the filtering of the color information. At each vertex <italic>p</italic>
<sub>
<italic>i</italic>
</sub>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1, we compute the luminance given by the available RGB values, and we apply MAHF by considering the luminance as the real-valued input signal <italic>s</italic>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>), <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 over the point cloud graph. The MAHF output <inline-formula id="inf52">
<mml:math id="m64">
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mi>s</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mspace width="0.28em"/>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:math>
</inline-formula> is then computed. We present the square module <italic>r</italic>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>) of the MAHF filter output in <xref ref-type="fig" rid="F10">Figure&#x20;10</xref> for the two point clouds under study. In this case, this method is able to highlight luminance variations on the graph, and it spots out details in the images such as the arms in panel A or the feet in panel B of <xref ref-type="fig" rid="F10">Figure&#x20;10</xref>.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>MAHF applied on luminance images for two point clouds: <bold>(A)</bold> red and black and <bold>(B)</bold> long dress. We report the original luminance images in the insets of each panel. In this case, MAHFs are applied to the luminance <italic>s</italic>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>). We compute the square module of the MAHF output, which corresponds to <italic>r</italic>(<bold>p</bold>
<sub>
<italic>i</italic>
</sub>).</p>
</caption>
<graphic xlink:href="frsip-02-842570-g010.tif"/>
</fig>
</sec>
<sec id="s6-2">
<title>6.2 VIPDA Performances</title>
<p>After illustrating the application of MAHF to point cloud filtering on shape and texture information by means of examples on real data, we address the assessment of VIPDA in this subsection.</p>
<p>To this aim, we first illustrate the application of VIPDA over synthetic data. Specifically, we consider the point cloud related to the Stanford bunny (<xref ref-type="bibr" rid="B36">Turk and Levoy 1994</xref>), resampled at <italic>N</italic>&#x20;&#x3d; 8,146. The noisy coordinates <bold>q</bold>
<sub>
<italic>i</italic>
</sub> of the points on the PC are obtained as in <xref ref-type="disp-formula" rid="e9">Eq. 9</xref>. In the simulations, a Gaussian noise <bold>w</bold>
<sub>
<italic>i</italic>
</sub> is added to the original coordinates <bold>p</bold>
<sub>
<italic>i</italic>
</sub>. The intensity of the additive noise is measured by the signal-to-noise ratio (SNR), which is a parameter varied in the following analyses, and it is computed as:<disp-formula id="e11">
<mml:math id="m65">
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mi>o</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>s</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>log</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>We plot the original point cloud in <xref ref-type="fig" rid="F11">Figure&#x20;11A</xref>, in which the pseudo-color is associated to the third coordinate of <bold>q</bold>
<sub>
<italic>i</italic>
</sub>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 (coordinate w.r.t. the <italic>z</italic>-axis). In <xref ref-type="fig" rid="F11">Figure&#x20;11B</xref>, we plot the noisy point cloud obtained for <italic>SNR</italic>
<sub>
<italic>noisy</italic>
</sub> &#x3d; 38dB. The pseudo-colors of the point cloud represent the square module of the difference between the noisy coordinates &#x2016;<italic>p</italic>
<sub>
<italic>i</italic>
</sub> &#x2212; <italic>q</italic>
<sub>
<italic>i</italic>
</sub>&#x2016;<sup>2</sup>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 and the original ones computed as &#x2016;<italic>p</italic>
<sub>
<italic>i</italic>
</sub> &#x2212; <italic>q</italic>
<sub>
<italic>i</italic>
</sub>&#x2016;<sup>2</sup>. In this manner, the point color (represented in a color scale from blue for zero values and red for the maximum values) reflects how much each point is corrupted by the additive Gaussian&#x20;noise.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Results of VIPDA at each step. We consider a point cloud related to the Stanford bunny (<xref ref-type="bibr" rid="B36">Turk and Levoy 1994</xref>) which is represented with its original coordinates <bold>p</bold>
<sub>
<italic>i</italic>
</sub> in panel <bold>(A)</bold>. Then, a Gaussian noise <bold>w</bold>
<sub>
<italic>i</italic>
</sub> is added with SNR &#x3d; 38, and the noisy points <bold>q</bold>
<sub>
<italic>i</italic>
</sub> on the point cloud are represented in panel <bold>(B)</bold>. The colors associated to the color bar correspond to the difference between noisy and original coordinates &#x2016;<italic>p</italic>
<sub>
<italic>i</italic>
</sub> &#x2212; <italic>q</italic>
<sub>
<italic>i</italic>
</sub>&#x2016;<sup>2</sup>. In panel <bold>(C),</bold> we report the output of the MAHF &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup> applied to the estimated normals <inline-formula id="inf53">
<mml:math id="m66">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. In panel <bold>(D),</bold> we have results of VIPDA. We have <inline-formula id="inf54">
<mml:math id="m67">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> points belonging to the denoised PC, and the colors relate to the difference between reconstructed and original coordinates <inline-formula id="inf55">
<mml:math id="m68">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>.</p>
</caption>
<graphic xlink:href="frsip-02-842570-g011.tif"/>
</fig>
<p>Then, we apply the MAHF to the estimated normals <bold>n</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>), <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1 of the noisy point cloud, and we compute the square value of the MAHF output at each vertex, namely &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup>, <italic>i</italic>&#x20;&#x3d; 0, &#x2026;, <italic>N</italic>&#x20;&#x2212; 1. The so-obtained values are illustrated in <xref ref-type="fig" rid="F11">Figure&#x20;11C</xref>, as pseudo-colors at the vertices. We recognize that the largest values are observed in correspondence to vertices in areas of normal changes. These results exemplify that the MAHFs are able to capture the variability of the signals.</p>
<p>Finally, we apply VIPDA to the filtered point cloud, and we show the denoised point cloud in <xref ref-type="fig" rid="F11">Figure&#x20;11D</xref>. Here, we have the <inline-formula id="inf56">
<mml:math id="m69">
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> points reconstructed by VIPDA, and we define the signal associated to each new point as the error computed between the original coordinates <italic>p</italic> and the reconstructed ones as <inline-formula id="inf57">
<mml:math id="m70">
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
</inline-formula>. From a visual analysis, we recognize that the points in D are closer to original ones in A with respect to absence of denoising in B; this effect is more visible at the boundary of the point cloud. A more quantitative result is provided by the following SNR computation:</p>
<p>Specifically, we design a signal-dependent feature graph Laplacian regularizer (SDFGLR) that assumes surface normals computed from point coordinates are piecewise smooth with respect to a signal-dependent graph Laplacian matrix.</p>
<p>Finally, we perform analyses based on the SNR and compare our method with different alternatives. In this direction, we first consider the algorithm proposed in <xref ref-type="bibr" rid="B15">Dinesh et&#x20;al., (2020</xref>), in which authors perform a graph Laplacian regularization that starts from the hypothesis that the normals to the surface at the point cloud vertices are smooth w.r.t graph Laplacian. For sake of comparison, we also study the average case, in which we analyze the PC results from the local average of its spatial coordinates. Finally, we consider the VIPDA and the VIPDAfast algorithms. In the simulations, <inline-formula id="inf58">
<mml:math id="m71">
<mml:mi mathvariant="script">K</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:mi mathvariant="bold-italic">&#x3bd;</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula> is set equal to a bi-level function, depending on whether &#x2016;<bold>
<italic>&#x3bd;</italic>
</bold>(<bold>q</bold>
<sub>
<italic>i</italic>
</sub>)&#x2016;<sup>2</sup> is above the threshold <italic>&#x3b8;</italic> or not. We set <italic>t</italic>&#x20;&#x3d; 10 and <italic>&#x3b1;</italic>
<sub>0</sub> &#x3d; 0.9 on all the data and <inline-formula id="inf59">
<mml:math id="m72">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.06</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">K</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>3,9</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> on synthetic data and <inline-formula id="inf60">
<mml:math id="m73">
<mml:mi>&#x3b8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.08</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="script">K</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>3,15</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> on real&#x20;data.</p>
<p>In order to perform the computations, we first consider the Stanford bunny point cloud, and we select different levels of SNR, namely <italic>SNR</italic>
<sub>
<italic>noisy</italic>
</sub> &#x3d; 35, 38, 40, 48dB. Then, we take into account different denoising algorithms and report the SNR achieved on the denoised point cloud in <xref ref-type="table" rid="T2">Table&#x20;2</xref>. For each method, we compute the SNR as the distance between the reconstructed coordinates and the original ones as<disp-formula id="equ4">
<mml:math id="m74">
<mml:mi>S</mml:mi>
<mml:mi>N</mml:mi>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>10</mml:mn>
<mml:mo>&#x2061;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>log</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">&#x2016;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">&#x302;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">&#x2016;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:math>
</disp-formula>
</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Table of SNR with Stanford bunny point cloud.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">SNR<sub>noisy</sub>
</th>
<th align="center">SNR<sub>(</sub>
<xref ref-type="bibr" rid="B15">
<sub>Dinesh et&#x20;al. 2020</sub>
</xref>
<sub>)</sub>
</th>
<th align="center">SNR<sub>average</sub>
</th>
<th align="center">SNR<sub>iter</sub>
</th>
<th align="center">SNR<sub>iterPARA</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">35</td>
<td align="char" char=".">35.07</td>
<td align="char" char=".">35.42</td>
<td align="char" char=".">35.89</td>
<td align="char" char=".">
<bold>35.94</bold>
</td>
</tr>
<tr>
<td align="left">38</td>
<td align="char" char=".">38.28</td>
<td align="char" char=".">38.28</td>
<td align="char" char=".">38.92</td>
<td align="char" char=".">
<bold>38.96</bold>
</td>
</tr>
<tr>
<td align="left">40</td>
<td align="char" char=".">40.69</td>
<td align="char" char=".">40.15</td>
<td align="char" char=".">40.97</td>
<td align="char" char=".">
<bold>40.98</bold>
</td>
</tr>
<tr>
<td align="left">48</td>
<td align="char" char=".">46.69</td>
<td align="char" char=".">46.49</td>
<td align="char" char=".">
<bold>48.62</bold>
</td>
<td align="char" char=".">
<bold>48.62</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Highest values for each SNR are highlighted in bold.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>Our results show that our denoising method outperforms the alternatives. The method with the parallelization even increases the performances w.r.t. the iterative one. This is due to the particular nature of the point cloud, in which the flat areas and the high curvature areas are relatively easy to distinguish, and the method coarsely operating on the two point sets achieves the best results. This is more clearly highlighted on point clouds acquired on real objects as illustrated in the following: We consider the two other point clouds (Red and Black and Long Dress) for two fixed levels of noise with SNR at 40dB and 48dB. The results are, respectively, reported in <xref ref-type="table" rid="T3">Tables 3</xref>, <xref ref-type="table" rid="T4">4</xref>. SNR values show that the proposed VIPDA, either in its original or fast version, performs better than state-of-the-art competitors in denoising point cloud signals corrupted by Gaussian noise. Finally, we consider a smooth point cloud, namely a sphere with <italic>N</italic>&#x20;&#x3d; 900 points. Also on this smooth point cloud, where the MAHF gives a uniform output and the patch size is fixed, VIPDA achieves an SNR improvement. The correction by VIPDA is restrained to the normal direction and leads to a smooth surface. Thereby, VIPDA achieves a SNR improvement also on smooth surfaces, and an improvement due to the reduction of the normal noise component is observed even in the limit case of a planar&#x20;mesh.</p>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>Table of SNR with fixed SNR of noisy data at 40&#xa0;dB with different point clouds, i.e.,&#x20;Stanford bunny, long dress and red and black, and spherical meshes.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Point cloud</th>
<th align="center">SNR<sub>(</sub>
<xref ref-type="bibr" rid="B15">
<sub>Dinesh et&#x20;al. 2020</sub>
</xref>
<sub>)</sub>
</th>
<th align="center">SNR<sub>average</sub>
</th>
<th align="center">SNR<sub>VIPDA</sub>
</th>
<th align="center">SNR<sub>VIPDAfast</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Stanford bunny</td>
<td align="char" char=".">40.69</td>
<td align="char" char=".">40.15</td>
<td align="char" char=".">40.97</td>
<td align="char" char=".">
<bold>40.98</bold>
</td>
</tr>
<tr>
<td align="left">Red and black</td>
<td align="char" char=".">40.03</td>
<td align="char" char=".">40.49</td>
<td align="char" char=".">40.48</td>
<td align="char" char=".">
<bold>40.50</bold>
</td>
</tr>
<tr>
<td align="left">Long dress</td>
<td align="char" char=".">39.99</td>
<td align="char" char=".">40.49</td>
<td align="char" char=".">
<bold>40.63</bold>
</td>
<td align="char" char=".">
<bold>40.63</bold>
</td>
</tr>
<tr>
<td align="left">Sphere</td>
<td align="char" char=".">39.97</td>
<td align="char" char=".">39.49</td>
<td align="char" char=".">
<bold>40.46</bold>
</td>
<td align="char" char=".">
<bold>40.46</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Highest values for each SNR are highlighted in bold.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<table-wrap id="T4" position="float">
<label>TABLE 4</label>
<caption>
<p>Table of SNR with fixed SNR of noisy data at 48&#xa0;dB with several point clouds, i.e.,&#x20;Stanford bunny, long dress and red and black, and spherical meshes.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Point cloud</th>
<th align="center">SNR<sub>(</sub>
<xref ref-type="bibr" rid="B15">
<sub>Dinesh et&#x20;al. 2020</sub>
</xref>
<sub>)</sub>
</th>
<th align="center">SNR<sub>average</sub>
</th>
<th align="center">SNR<sub>VIPDA</sub>
</th>
<th align="center">SNR<sub>VIPDAfast</sub>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Stanford Bunny</td>
<td align="char" char=".">46.69</td>
<td align="char" char=".">46.49</td>
<td align="char" char=".">
<bold>48.62</bold>
</td>
<td align="char" char=".">
<bold>48.62</bold>
</td>
</tr>
<tr>
<td align="left">Red and black</td>
<td align="char" char=".">48.05</td>
<td align="char" char=".">47.72</td>
<td align="char" char=".">48.26</td>
<td align="char" char=".">
<bold>48.27</bold>
</td>
</tr>
<tr>
<td align="left">Long dress</td>
<td align="char" char=".">48.03</td>
<td align="char" char=".">47.70</td>
<td align="char" char=".">
<bold>48.58</bold>
</td>
<td align="char" char=".">48.57</td>
</tr>
<tr>
<td align="left">Sphere</td>
<td align="char" char=".">48.09</td>
<td align="char" char=".">38.25</td>
<td align="char" char=".">
<bold>48.26</bold>
</td>
<td align="char" char=".">
<bold>48.26</bold>
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>Highest values for each SNR are highlighted in bold.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>It is important to mention that the performance of all the methods, including the proposed method, degrades severely if the SNR decreases. This is due to the fact that, in correspondence with low SNR, the positions of the vertices are displaced such that the positions of the noisy points may even exchange with respect to the original ones, and this phenomenon is not recovered even though the MAHF on the signal is recomputed at each iteration. A possible solution to this would be to initially denoise the Laplacian associated to the point cloud graph by leveraging a spectral prior, as in <xref ref-type="bibr" rid="B5">Cattai et&#x20;al. (2021</xref>), or by jointly exploiting the shape and texture information; this latter point is left for future studies.</p>
<p>To sum up, these findings demonstrate the potential of the proposed VIPDA approach for point cloud denoising and pave the way for designing new processing tools for signals defined over non-Euclidean domains.</p>
</sec>
</sec>
<sec sec-type="conclusion" id="s7">
<title>7 Conclusion</title>
<p>This work has presented a novel point cloud denoising approach, the visually driven point cloud denoising algorithm (VIPDA). The proposed method differs from other competitors in linking the denoising with visually relevant features, as estimated by suitable anisotropic angular filters in the vertex domain.</p>
<p>VIPDA leverages properties inspired by those of the human visual system (HVS), and it is viable for application on the texture and geometry data defined over a point cloud. The VIPDA approach leads to smooth denoised surfaces since it iteratively corrects the noise component normal to the manifold underlying the point cloud by projecting the observed noisy vertex toward the plane tangent to the underlying manifold surface. The performance of VIPDA has been numerically assessed on real open access data and compared with state-of-the-art alternatives.</p>
<p>The proposed algorithm is effective in denoising real point cloud data, and thereby it makes point cloud modeling more suitable for real applications. Our findings pave the way to HVS-inspired point cloud processing, both for enhancement and restoration purposes, by suitable anisotropic angular filtering.</p>
</sec>
</body>
<back>
<sec id="s8">
<title>Data Availability Statement</title>
<p>Publicly available datasets were analyzed in this study. These data can be found at: <ext-link ext-link-type="uri" xlink:href="https://mpeg-pcc.org/index.php/pcc-content-database/">https://mpeg-pcc.org/index.php/pcc-content-database/</ext-link>.</p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>TC and SC conceived and designed the analysis; AD collected the data, performed the analysis, and contributed to the algorithm definition; GS contributed to the analysis tools; and TC and SC wrote the manuscript.</p>
</sec>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<fn-group>
<fn id="fn1">
<label>1</label>
<p>Let &#x394; denote the Laplace&#x2013;Bertrami operator, i.e.,&#x20;a linear operator computing the sum of directional derivatives of a function defined on the manifold. The heat propagation equation is written as:<disp-formula id="e2">
<mml:math id="m75">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>where <italic>f</italic>(<bold>p</bold>, <italic>t</italic>) is the solution under initial condition <italic>f</italic>
<sub>0</sub>(<bold>p</bold>).</p>
</fn>
<fn id="fn2">
<label>2</label>
<p>The point cloud normals are computed using the &#xa9;Matlab by the implementation of the method in <xref ref-type="bibr" rid="B20">Hoppe et&#x20;al. (1992)</xref>.</p>
</fn>
</fn-group>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ambike</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ilow</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hatzinakos</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>1994</year>). <article-title>Detection for Binary Transmission in a Mixture of Gaussian Noise and Impulsive Noise Modeled as an Alpha-Stable Process</article-title>. <source>IEEE Signal. Process. Lett.</source> <volume>1</volume>, <fpage>55</fpage>&#x2013;<lpage>57</lpage>. <pub-id pub-id-type="doi">10.1109/97.295323</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Beghdadi</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Larabi</surname>
<given-names>M.-C.</given-names>
</name>
<name>
<surname>Bouzerdoum</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Iftekharuddin</surname>
<given-names>K. M.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>A Survey of Perceptual Image Processing Methods</article-title>. <source>Signal. Processing: Image Commun.</source> <volume>28</volume>, <fpage>811</fpage>&#x2013;<lpage>831</lpage>. <pub-id pub-id-type="doi">10.1016/j.image.2013.06.003</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Belkin</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2009</year>). &#x201c;<article-title>Constructing Laplace Operator from point Clouds in <italic>R</italic>
<sup>
<italic>d</italic>
</sup>
</article-title>,&#x201d; in <conf-name>Proceedings of the Twentieth Annual ACM-SIAM Symposium on Discrete Algorithms</conf-name>, <conf-loc>New York</conf-loc>, <conf-date>January 4&#x2013;6, 2009</conf-date> (<publisher-name>SIAM</publisher-name>), <fpage>1031</fpage>&#x2013;<lpage>1040</lpage>. </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Campisi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2002</year>). <article-title>A Multiresolution Approach for Texture Synthesis Using the Circular Harmonic Functions</article-title>. <source>IEEE Trans. Image Process.</source> <volume>11</volume>, <fpage>37</fpage>&#x2013;<lpage>51</lpage>. <pub-id pub-id-type="doi">10.1109/83.977881</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cattai</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Corsi</surname>
<given-names>M.-C.</given-names>
</name>
<name>
<surname>Bassett</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>De Vico Fallani</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Improving J-Divergence of Brain Connectivity States by Graph Laplacian Denoising</article-title>. <source>IEEE Trans. Signal. Inf. Process. Over Networks</source> <volume>7</volume>, <fpage>493</fpage>&#x2013;<lpage>508</lpage>. <pub-id pub-id-type="doi">10.1109/tsipn.2021.3100302</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Multi-patch Collaborative point Cloud Denoising via Low-Rank Recovery with Graph Constraint</article-title>. <source>IEEE Trans. Vis. Comput. Graph</source> <volume>26</volume>, <fpage>3255</fpage>&#x2013;<lpage>3270</lpage>. <pub-id pub-id-type="doi">10.1109/TVCG.2019.2920817</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>P. X.</given-names>
</name>
<name>
<surname>Menhas</surname>
<given-names>M. I.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>3d Reconstruction of Unstructured Objects Using Information from Multiple Sensors</article-title>. <source>IEEE Sensors J.</source> <volume>21</volume>&#x2013;<lpage>26963</lpage>. <pub-id pub-id-type="doi">10.1109/jsen.2021.3121343.26951</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Campisi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Panci</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Blind Image Deblurring Driven by Nonlinear Processing in the Edge Domain</article-title>. <source>EURASIP J.&#x20;Adv. Signal Process.</source> <volume>2004</volume>, <fpage>1</fpage>&#x2013;<lpage>14</lpage>. <pub-id pub-id-type="doi">10.1155/s1110865704404132</pub-id> </citation>
</ref>
<ref id="B9">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Randi</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Rinauro</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2010</year>). &#x201c;<article-title>Fast Image Interpolation Using Circular Harmonic Functions</article-title>,&#x201d; in <conf-name>2010 2nd European Workshop on Visual Information Processing (EUVIP)</conf-name>, <conf-loc>Paris, France</conf-loc>, <conf-date>5&#x2013;7 July 2010</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>114</fpage>&#x2013;<lpage>118</lpage>. <pub-id pub-id-type="doi">10.1109/euvip.2010.5699119</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Rinauro</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2013</year>). <article-title>Bayesian Image Interpolation Using Markov Random fields Driven by Visually Relevant Image Features</article-title>. <source>Signal. Processing: Image Commun.</source> <volume>28</volume>, <fpage>967</fpage>&#x2013;<lpage>983</lpage>. <pub-id pub-id-type="doi">10.1016/j.image.2012.07.001</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Conti</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Multiscale Anisotropic Harmonic Filters on Non Euclidean Domains</article-title>,&#x201d; in <conf-name>2021 29th European Signal Processing Conference (EUSIPCO) (Virtual Conference)</conf-name>, (<publisher-name>IEEE</publisher-name>), <fpage>701</fpage>&#x2013;<lpage>705</lpage>. </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>d&#x2019;Eon</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Harrison</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Myers</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chou</surname>
<given-names>P. A.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>8i Voxelized Full Bodies-A Voxelized point Cloud Dataset</article-title>. <comment>
<italic>ISO/IEC JTC1/SC29 Joint WG11/WG1 (MPEG/JPEG) input document WG11M40059/WG1M74006</italic> 7, 8</comment> </citation>
</ref>
<ref id="B13">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Dai</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>C.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Indoor 3d Human Trajectory Reconstruction Using Surveillance Camera Videos and point Clouds</article-title>,&#x201d; in <source>IEEE Transactions on Circuits and Systems for Video Technology</source>. <pub-id pub-id-type="doi">10.1109/tcsvt.2021.3081591</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>de Hoog</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Ahmed</surname>
<given-names>A. N.</given-names>
</name>
<name>
<surname>Anwar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Latr&#xe9;</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Hellinckx</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Quality-aware Compression of point Clouds with Google Draco</article-title>,&#x201d; in <source>Advances on P2P, Parallel, Grid, Cloud and Internet Computing. 3PGCIC 2021. Lecture Notes in Networks and Systems</source>. Editor <person-group person-group-type="editor">
<name>
<surname>Barolli</surname>
<given-names>L.</given-names>
</name>
</person-group> (<publisher-loc>Cham</publisher-loc>: <publisher-name>Springer</publisher-name>) <volume>343</volume>, <fpage>227</fpage>&#x2013;<lpage>236</lpage>. <pub-id pub-id-type="doi">10.1007/978-3-030-89899-1_23</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Dinesh</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Cheung</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Bajic</surname>
<given-names>I. V.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Point Cloud Denoising via Feature Graph Laplacian Regularization</article-title>. <source>IEEE Trans. Image Process.</source> <volume>29</volume>, <fpage>4143</fpage>&#x2013;<lpage>4158</lpage>. <pub-id pub-id-type="doi">10.1109/tip.2020.2969052</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Diniz</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Farias</surname>
<given-names>M. Q.</given-names>
</name>
<name>
<surname>Garcia-Freitas</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Color and Geometry Texture Descriptors for point-cloud Quality Assessment</article-title>,&#x201d; in <source>IEEE Signal Processing Letters</source>. <pub-id pub-id-type="doi">10.1109/lsp.2021.3088059</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Er&#xe7;elik</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Yurtsever</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Knoll</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>3d Object Detection with Multi-Frame Rgb-Lidar Feature Alignment</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>143138</fpage>&#x2013;<lpage>143149</lpage>. <pub-id pub-id-type="doi">10.1109/ACCESS.2021.3120261</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Friedlander</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>1984</year>). <article-title>On the Cramer- Rao Bound for Time Delay and Doppler Estimation (Corresp.)</article-title>. <source>IEEE Trans. Inform. Theor.</source> <volume>30</volume>, <fpage>575</fpage>&#x2013;<lpage>580</lpage>. <pub-id pub-id-type="doi">10.1109/tit.1984.1056901</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hammond</surname>
<given-names>D. K.</given-names>
</name>
<name>
<surname>Vandergheynst</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Gribonval</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2011</year>). <article-title>Wavelets on Graphs via Spectral Graph Theory</article-title>. <source>Appl. Comput. Harmonic Anal.</source> <volume>30</volume>, <fpage>129</fpage>&#x2013;<lpage>150</lpage>. <pub-id pub-id-type="doi">10.1016/j.acha.2010.04.005</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hoppe</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>DeRose</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Duchamp</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>McDonald</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Stuetzle</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Surface Reconstruction from Unorganized Points</article-title>. <source>ACM SIGGRAPH Comput. Graph.</source> <volume>26</volume>, <fpage>71</fpage>&#x2013;<lpage>78</lpage>. <pub-id pub-id-type="doi">10.1145/142920.134011</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hou</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2012</year>). <article-title>Continuous and Discrete Mexican Hat Wavelet Transforms on Manifolds</article-title>. <source>Graphical Models</source> <volume>74</volume>, <fpage>221</fpage>&#x2013;<lpage>232</lpage>. <pub-id pub-id-type="doi">10.1016/j.gmod.2012.04.010</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2021a</year>). <article-title>Dynamic point Cloud Denoising via Manifold-To-Manifold Distance</article-title>. <source>IEEE Trans. Image Process.</source> <volume>30</volume>, <fpage>6168</fpage>&#x2013;<lpage>6183</lpage>. <pub-id pub-id-type="doi">10.1109/tip.2021.3092826</pub-id> </citation>
</ref>
<ref id="B23">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Hu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Pang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Tian</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>C.-W.</given-names>
</name>
<name>
<surname>Vetro</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2021b</year>). &#x201c;<article-title>Graph Signal Processing for Geometric Data and beyond: Theory and Applications</article-title>,&#x201d; in <source>IEEE Transactions on Multimedia</source>. <pub-id pub-id-type="doi">10.1109/tmm.2021.3111440</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Choudhury</surname>
<given-names>P. K.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Real-time Road Curb and Lane Detection for Autonomous Driving Using Lidar point Clouds</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>144940</fpage>&#x2013;<lpage>144951</lpage>. <pub-id pub-id-type="doi">10.1109/access.2021.3120741</pub-id> </citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>S.-G.</given-names>
</name>
<name>
<surname>Lyu</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Qiu</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chung</surname>
<given-names>M. K.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Fast Polynomial Approximation of Heat Kernel Convolution on Manifolds and its Application to Brain Sulcal and Gyral Graph Pattern Analysis</article-title>. <source>IEEE Trans. Med. Imaging</source> <volume>39</volume>, <fpage>2201</fpage>&#x2013;<lpage>2212</lpage>. <pub-id pub-id-type="doi">10.1109/tmi.2020.2967451</pub-id> </citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liao</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Augmented Reality-Based Autostereoscopic Surgical Visualization System for Telesurgery</article-title>. <source>Int. J.&#x20;Comput. Assist. Radiol. Surg.</source> <volume>16</volume>, <fpage>1985</fpage>&#x2013;<lpage>1997</lpage>. <pub-id pub-id-type="doi">10.1007/s11548-021-02463-5</pub-id> </citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Irfan</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Magli</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2021a</year>). <article-title>Exploiting Color for Graph-Based 3d point Cloud Denoising</article-title>. <source>J.&#x20;Vis. Commun. Image Representation</source> <volume>75</volume>, <fpage>103027</fpage>. <pub-id pub-id-type="doi">10.1016/j.jvcir.2021.103027</pub-id> </citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Irfan</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Magli</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2021b</year>). <article-title>Joint Geometry and Color point Cloud Denoising Based on Graph Wavelets</article-title>. <source>IEEE Access</source> <volume>9</volume>, <fpage>21149</fpage>&#x2013;<lpage>21166</lpage>. <pub-id pub-id-type="doi">10.1109/access.2021.3054171</pub-id> </citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jacovitti</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Neri</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Multiresolution Circular Harmonic Decomposition</article-title>. <source>IEEE Trans. Signal. Process.</source> <volume>48</volume>, <fpage>3242</fpage>&#x2013;<lpage>3247</lpage>. <pub-id pub-id-type="doi">10.1109/78.875481</pub-id> </citation>
</ref>
<ref id="B30">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ji</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Guo</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Economy: Point Clouds-Based Energy-Efficient Autonomous Navigation for Uavs</article-title>. <source>IEEE Trans. Netw. Sci. Eng.</source> <volume>8</volume> (<issue>4</issue>), <fpage>2885</fpage>&#x2013;<lpage>2896</lpage>. <pub-id pub-id-type="doi">10.1109/tnse.2021.3049263</pub-id> </citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Neri</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Jacovitti</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2004</year>). <article-title>Maximum Likelihood Localization of 2-d Patterns in the Gauss-Laguerre Transform Domain: Theoretic Framework and Preliminary Results</article-title>. <source>IEEE Trans. Image Process.</source> <volume>13</volume>, <fpage>72</fpage>&#x2013;<lpage>86</lpage>. <pub-id pub-id-type="doi">10.1109/tip.2003.818021</pub-id> </citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Panci</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Campisi</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Colonnese</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Scarano</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2003</year>). <article-title>Multichannel Blind Image Deconvolution Using the Bussgang Algorithm: Spatial and Multiresolution Approaches</article-title>. <source>IEEE Trans. Image Process.</source> <volume>12</volume>, <fpage>1324</fpage>&#x2013;<lpage>1337</lpage>. <pub-id pub-id-type="doi">10.1109/tip.2003.818022</pub-id> </citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ramalho</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Peixoto</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Medeiros</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Silhouette 4d with Context Selection: Lossless Geometry Compression of Dynamic point Clouds</article-title>. <source>IEEE Signal. Process. Lett.</source> <volume>28</volume>, <fpage>1660</fpage>&#x2013;<lpage>1664</lpage>. <pub-id pub-id-type="doi">10.1109/lsp.2021.3102525</pub-id> </citation>
</ref>
<ref id="B34">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Rist</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Emmerichs</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Enzweiler</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gavrila</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Semantic Scene Completion Using Local Deep Implicit Functions on Lidar Data</article-title>,&#x201d; in <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>. <pub-id pub-id-type="doi">10.1109/tpami.2021.3095302</pub-id> </citation>
</ref>
<ref id="B35">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>S. S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>An Advanced Lidar point Cloud Sequence Coding Scheme for Autonomous Driving</article-title>,&#x201d; in <conf-name>Proceedings of the 28th ACM International Conference on Multimedia</conf-name>, <conf-loc>Seattle, WA, USA</conf-loc>, <conf-date>October 12&#x2013;16, 2020</conf-date>, <fpage>2793</fpage>&#x2013;<lpage>2801</lpage>. <pub-id pub-id-type="doi">10.1145/3394171.3413537</pub-id> </citation>
</ref>
<ref id="B36">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Turk</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Levoy</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>1994</year>). &#x201c;<article-title>Zippered Polygon Meshes from Range Images</article-title>,&#x201d; in <conf-name>Proceedings of the 21st annual conference on Computer graphics and interactive techniques</conf-name>, <conf-loc>Orlando, Florida</conf-loc>, <conf-date>July 24&#x2013;29, 1994</conf-date>. <comment>Computer Graphics Proceedings, Annual Conference Series</comment> (<publisher-name>ACM SIGGRAPH</publisher-name>), <fpage>311</fpage>&#x2013;<lpage>318</lpage>. <pub-id pub-id-type="doi">10.1145/192161.192241</pub-id> </citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Dong</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Kuo</surname>
<given-names>C.-C. J.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Enhanced Just Noticeable Difference Model for Images with Pattern Complexity</article-title>. <source>IEEE Trans. Image Process.</source> <volume>26</volume>, <fpage>2682</fpage>&#x2013;<lpage>2693</lpage>. <pub-id pub-id-type="doi">10.1109/tip.2017.2685682</pub-id> </citation>
</ref>
<ref id="B38">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Xiong</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Occupancy Map Guided Fast Video-Based Dynamic point Cloud Coding</article-title>,&#x201d; in <source>IEEE Transactions on Circuits and Systems for Video Technology</source>. </citation>
</ref>
<ref id="B39">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Sun</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). &#x201c;<article-title>Inferring point Cloud Quality via Graph Similarity</article-title>,&#x201d; in <source>IEEE Transactions on Pattern Analysis and Machine Intelligence</source>. </citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Gorbachev</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Eck</surname>
<given-names>U.</given-names>
</name>
<name>
<surname>Pankratz</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Navab</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Roth</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Avatars for Teleconsultation: Effects of Avatar Embodiment Techniques on User Perception in 3d Asymmetric Telepresence</article-title>. <source>IEEE Trans. Vis. Comput. Graphics</source> <volume>27</volume>, <fpage>4129</fpage>&#x2013;<lpage>4139</lpage>. <pub-id pub-id-type="doi">10.1109/tvcg.2021.3106480</pub-id> </citation>
</ref>
<ref id="B41">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhu</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>M.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). &#x201c;<article-title>Non-local Low-Rank point Cloud Denoising for 3d Measurement Surfaces</article-title>,&#x201d; in <source>IEEE Transactions on Instrumentation and Measurement</source>. <pub-id pub-id-type="doi">10.1109/tim.2021.3139686</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>