{"id":2,"date":"2020-05-05T17:59:18","date_gmt":"2020-05-05T17:59:18","guid":{"rendered":"http:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/?page_id=2"},"modified":"2020-12-16T18:54:11","modified_gmt":"2020-12-16T18:54:11","slug":"sample-page","status":"publish","type":"page","link":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","title":{"rendered":"Project Description"},"content":{"rendered":"\n<p><strong>Overview<\/strong><\/p>\n\n\n\n<p>The primary goal of this project is to achieve high-fidelity 3D reconstruction by learning implicit representations.  In contrast to the existing literature, we aim to design a method that can be used to <strong><em>learn these representations<\/em><\/strong> for any arbitrary shape, be it <strong><em>open\/closed, or shapes which have ill-defined genus<\/em><\/strong>.  The applications of this method include <strong><em>high-fidelity reconstruction of damaged vehicles<\/em><\/strong> for insurance purposes, and automatic computation of <strong><em>building roof surface area<\/em><\/strong> via 3D reconstruction from aerial imagery. <\/p>\n\n\n\n<p>Project is Sponsored by <strong><em>Verisk Analytics<\/em><\/strong> and advised by <strong><em>Prof. Laszlo Je<\/em>ni<\/strong> at CMU and <strong><em>Dr. Maneesh Singh<\/em><\/strong> from Verisk.<\/p>\n\n\n\n<p><strong>Approach<\/strong><\/p>\n\n\n\n<p>We disentangle the implicit representation of a shape into  an unsigned distance field <em>uDF<\/em> and a normal vector field <em>nVF<\/em>. This decomposition enables us to represent both open and closed shapes with arbitrary topology, which, to the best of our knowledge, is a significant improvement over existing methods. We aim to model these functions using feed-forward networks with non-linear activation functions. <\/p>\n\n\n\n<p>We begin with a formal definition of a <em>uDF<\/em>: it&#8217;s a function that outputs the closest unsigned distance to the surface from any given point in 3D space. Note that this is in contrast to an <em>sDF<\/em> which is meant to output negative distances inside the shape and positive distances outside. Several notable current approaches for representing shapes, thus bound to the assumption that the underlying surface is watertight.  We argue that an <em>sDF<\/em> can inherently describe only closed shapes. To relax this assumption, we model a 3D shape using a <em>uDF<\/em> which can represent both watertight and non-watertight shapes equally well.     <\/p>\n\n\n\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=uDF%28%5Cboldsymbol%7Bx%7D%29+%3D+d+%3A+x+%5Cin+%5Cmathbb%7BR%7D%5E3%2C+d+%5Cin+%5Cmathbb%7BR%7D%5E%2B.&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"uDF(&#92;boldsymbol{x}) = d : x &#92;in &#92;mathbb{R}^3, d &#92;in &#92;mathbb{R}^+.\" class=\"latex\" \/><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"759\" height=\"435\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png\" alt=\"\" class=\"wp-image-130\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png 759w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1-300x172.png 300w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption><strong>                                                                                               Figure 1: Overview                      <\/strong><\/figcaption><\/figure>\n\n\n\n<p>As can be noted, trivially removing the sign of the <em>sDF<\/em> leads to a <em>uDF<\/em>. However, this sacrifices some important properties of the <em>sDF<\/em> leading to a new set of challenges which we need to address. (1) The <em>uD<\/em>F is non-differentiable at the surface (see Figure 2) implying it can&#8217;t be reliably trained using points sampled from the surface. We overcome this by never actually sampling the training data points on the surface but slightly away from the surface; (2) Unlike <em>sDFs<\/em>, we cannot reliably extract the surface normal from a  <em>uDF<\/em> due to its non-differentiability (See Figure 2). Since estimation of high quality surface normals is important for several downstream tasks, we propose to learn a normal vector field (<em>nVF<\/em>), which, for any 3D location, <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=x&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"x\" class=\"latex\" \/>, represents the <em>nVF<\/em> normal to the surface point closest to <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=x&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"x\" class=\"latex\" \/>. Formally,<\/p>\n\n\n\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=nVF%28%5Cboldsymbol%7Bx%7D%29+%3D+%5Cboldsymbol%7Bv%7D%3A+%5Cboldsymbol%7Bx%7D+%5Cin+%5Cmathbb%7BR%7D%5E3%2C+%5Cboldsymbol%7Bv%7D+%5Cin+%5Cmathbb%7BR%7D%5E3%2C&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"nVF(&#92;boldsymbol{x}) = &#92;boldsymbol{v}: &#92;boldsymbol{x} &#92;in &#92;mathbb{R}^3, &#92;boldsymbol{v} &#92;in &#92;mathbb{R}^3,\" class=\"latex\" \/> <br> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bv%7D+%3D+n%28%5Cboldsymbol%7B%5Ctilde%7Bx%7D%7D%29%3A+%5Cboldsymbol%7B%5Ctilde%7Bx%7D%7D+%3D+%5Cboldsymbol%7Bx%7D+%2B+%5Cboldsymbol%7Br_x%7DuDF%28%5Cboldsymbol%7Bx%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{v} = n(&#92;boldsymbol{&#92;tilde{x}}): &#92;boldsymbol{&#92;tilde{x}} = &#92;boldsymbol{x} + &#92;boldsymbol{r_x}uDF(&#92;boldsymbol{x})\" class=\"latex\" \/><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"733\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-2.png\" alt=\"\" class=\"wp-image-131\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-2.png 967w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-2-300x227.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-2-768x582.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption><strong>                                                                                 Figure 2: Non-Differentiability of uDF<\/strong><\/figcaption><\/figure>\n\n\n\n<p>Given a 3D shape represented by the noisy triangle soup, we construct training samples, <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BP%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{P}\" class=\"latex\" \/>, which contain a point, <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bx%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{x}\" class=\"latex\" \/>, the <em>uDF<\/em> and the <em>nVF<\/em> evaluated at <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bx%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{x}\" class=\"latex\" \/><\/p>\n\n\n\n<p style=\"text-align: center\"> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BP%7D+%3D+%28%5Cboldsymbol%7Bx%7D%2C+d%2C+%5Cboldsymbol%7Bv%7D%29%3A+d+%3D+uDF%28%5Cboldsymbol%7Bx%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{P} = (&#92;boldsymbol{x}, d, &#92;boldsymbol{v}): d = uDF(&#92;boldsymbol{x})\" class=\"latex\" \/> <br> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bv%7D%3DnVF%28%5Cboldsymbol%7Bx%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{v}=nVF(&#92;boldsymbol{x})\" class=\"latex\" \/><\/p>\n\n\n\n<p>We first densely sample a set of {points, surface normal} pairs from the triangle soup, by uniformly sampling points on each triangle face. Let&#8217;s call this set of points $ latex \\mathcal{X}= {(\\boldsymbol{x_s}, \\boldsymbol{v_s})}$. Since each point is sampled from a triangle face, the normal to the triangle face provides the associated surface normal for that point. <\/p>\n\n\n\n<p>Given this set $ latex \\mathcal{X}$, the set <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BP%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{P}\" class=\"latex\" \/> is constructed by sampling points <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bx%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{x}\" class=\"latex\" \/> in 3D space and finding the nearest corresponding point in <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BX%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{X}\" class=\"latex\" \/> to construct the training sample <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%28%5Cboldsymbol%7Bx%7D%2C+%7C%7C%5Cboldsymbol%7Bx_s%7D+-%5Cboldsymbol%7Bx%7D%7C%7C_2%2C+%5Cboldsymbol%7Bv_s%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"(&#92;boldsymbol{x}, ||&#92;boldsymbol{x_s} -&#92;boldsymbol{x}||_2, &#92;boldsymbol{v_s})\" class=\"latex\" \/>. The set <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BP%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{P}\" class=\"latex\" \/> is used train the DNNs to approximate the <em>uDF<\/em> and the <em>nVF<\/em>. More concretely, we train the DNN <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f_%7B%5Ctheta_d%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f_{&#92;theta_d}\" class=\"latex\" \/> to approximate <em>uDF<\/em>, and DNN <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f_%7B%5Ctheta_n%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f_{&#92;theta_n}\" class=\"latex\" \/> to approximate <em>nVF<\/em>.<\/p>\n\n\n\n<p>Before we describe how <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f_%7B%5Ctheta_n%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f_{&#92;theta_n}\" class=\"latex\" \/> is trained, please note that <em>uDF<\/em> naturally correspond to unoriented surfaces (which are also logically necessitated by open surfaces). However, for most ray-casting applications this is not an issue as the direction of the first intersected surface can be chosen based on the direction of the ray. So, the ambiguity of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"n\" class=\"latex\" \/> or <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=-n&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"-n\" class=\"latex\" \/> can be handled. This implies a <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Ctextit%7Bmodulo+180%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;textit{modulo 180}\" class=\"latex\" \/> representation in the DNN suffices. However, such a representation needs to be learnt from a noisy triangle soup with oriented surface normals with possible directional incoherence (in the <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Ctextit%7Bmodulo+180%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;textit{modulo 180}\" class=\"latex\" \/> sense) between adjacent triangles (See Figure 3). To allow for this, we optimize the minimum of the two possible losses, computed from each <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=n&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"n\" class=\"latex\" \/> or <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=-n&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"-n\" class=\"latex\" \/>. More concretely,   <\/p>\n\n\n\n<p style=\"text-align: center\"><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BL%7D_%7BnVF%7D%5E%7B%281%29%7D+%3D+%7C%7Cf_%7B%5Ctheta_n%7D%28x%29+-+v_s%7C%7C_2&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{L}_{nVF}^{(1)} = ||f_{&#92;theta_n}(x) - v_s||_2\" class=\"latex\" \/> <br> <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BL%7D_%7BnVF%7D%5E%7B%282%29%7D+%3D+%7C%7Cf_%7B%5Ctheta_n%7D%28x%29+-+%28-v_s%29%7C%7C_2&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{L}_{nVF}^{(2)} = ||f_{&#92;theta_n}(x) - (-v_s)||_2\" class=\"latex\" \/> <br><img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cmathcal%7BL%7D_%7BnVF%7D+%3D+min%28%5Cmathcal%7BL%7D_%7BnVF%7D%5E%7B%281%29%7D%2C%5Cmathcal%7BL%7D_%7BnVF%7D%5E%7B%282%29%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;mathcal{L}_{nVF} = min(&#92;mathcal{L}_{nVF}^{(1)},&#92;mathcal{L}_{nVF}^{(2)})\" class=\"latex\" \/><\/p>\n\n\n\n<p>This allows for the network to learn surface normals <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Ctextit%7Bmodulo+180%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;textit{modulo 180}\" class=\"latex\" \/>. The incoherence in the noisy triangle soup is handled by the continuity property of the DNNs and, practically, coherent normal fields are learnt as verified in our experiments. Thus, after training, the zero-level set of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f_%7B%5Ctheta_d%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f_{&#92;theta_d}\" class=\"latex\" \/> which approximates the <em>uDF<\/em>, represents points on the surface, while <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=f_%7B%5Ctheta_n%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"f_{&#92;theta_n}\" class=\"latex\" \/> approximating <em>nVF<\/em>, represents the surface normals of the corresponding points on this level set. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"972\" height=\"495\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-3.png\" alt=\"\" class=\"wp-image-134\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-3.png 972w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-3-300x153.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-3-768x391.png 768w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption><strong>Figure 3<\/strong>: <strong>Adjacent disconnect triangles<\/strong><\/figcaption><\/figure>\n\n\n\n<p><strong>Sphere Tracing uDFs<\/strong><\/p>\n\n\n\n<p> Sphere tracing is a standard technique to render images from a distance field that represents the shape. To create an image, rays are cast from the focal point of the camera, and their intersection with the scene is computed using sphere tracing. Roughly speaking, irradiance\/ radiance computations are performed at the point of intersection to obtain the color of the pixel for that ray. <\/p>\n\n\n\n<p>The sphere tracing process can be described as follows: given a ray, <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Br%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{r}\" class=\"latex\" \/>, originating at point, <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_0%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_0}\" class=\"latex\" \/>, iterative marching along the ray is performed to obtain its intersection with the surface. In the first iteration, this translates to taking a step along the ray with a step size of <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Ctextit%7BuDF%7D%28%5Cboldsymbol%7Bp_0%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;textit{uDF}(&#92;boldsymbol{p_0})\" class=\"latex\" \/> to obtain the next point <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_1%7D+%3D+%5Cboldsymbol%7Bp_0%7D+%2B+%5Cboldsymbol%7Br%7D%2AuDF%28%5Cboldsymbol%7Bp_0%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_1} = &#92;boldsymbol{p_0} + &#92;boldsymbol{r}*uDF(&#92;boldsymbol{p_0})\" class=\"latex\" \/>. Since <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=uDF%28%5Cboldsymbol%7Bp_0%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"uDF(&#92;boldsymbol{p_0})\" class=\"latex\" \/> is the smallest distance to the surface, the line segment <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5B%5Cboldsymbol%7Bp_0%7D%2C+%5Cboldsymbol%7Bp_1%7D%5D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"[&#92;boldsymbol{p_0}, &#92;boldsymbol{p_1}]\" class=\"latex\" \/> of the ray is guaranteed not to intersect the surface (<img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_1%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_1}\" class=\"latex\" \/> can touch but not transcend the surface). The above step is iterated <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=i&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"i\" class=\"latex\" \/> times till <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_i%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_i}\" class=\"latex\" \/> is <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cepsilon&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;epsilon\" class=\"latex\" \/> close to the surface. The i-th iteration is given by <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_i%7D+%3D+%5Cboldsymbol%7Bp_%7Bi-1%7D%7D+%2B+uDF%28%5Cboldsymbol%7Bp_i%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_i} = &#92;boldsymbol{p_{i-1}} + uDF(&#92;boldsymbol{p_i})\" class=\"latex\" \/> and the stopping criteria  <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=uDF%28%5Cboldsymbol%7Bp_i%7D%29%5Cleq%5Cepsilon&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"uDF(&#92;boldsymbol{p_i})&#92;leq&#92;epsilon\" class=\"latex\" \/>. <\/p>\n\n\n\n<p>Note that for <em>uDF<\/em>, the above procedure can be used to get close to the surface but doesn&#8217;t obtain a point on the surface. One we are close enough to the surface, we can use a local planarity assumption (without loss of generalization) to obtain the intersection estimate. This is illustrated in Figure 4 and is obtained in the following manner:  if we stop the sphere tracing of the <em>uDF<\/em> at a point <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_i%7D&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_i}\" class=\"latex\" \/>, we evaluate the <em>nVF<\/em> as <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bn%7D+%3D+nVF%28%5Cboldsymbol%7Bp_i%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{n} = nVF(&#92;boldsymbol{p_i})\" class=\"latex\" \/>, and compute the cosine of the angle between the <em>nVF<\/em> and the ray direction. The estimate is then obtained as <img decoding=\"async\" src=\"https:\/\/s0.wp.com\/latex.php?latex=%5Cboldsymbol%7Bp_%7Bproj%7D%7D+%3D+%5Cboldsymbol%7Bp_i%7D+%2B+%5Cboldsymbol%7Br%7D%2AuDF%28%5Cboldsymbol%7Bp_i%7D%29%2F%28%5Cboldsymbol%7Br%7D%5Ccdot%5Cboldsymbol%7Bn%7D%29&#038;bg=ffffff&#038;fg=000&#038;s=0&#038;c=20201002\" alt=\"&#92;boldsymbol{p_{proj}} = &#92;boldsymbol{p_i} + &#92;boldsymbol{r}*uDF(&#92;boldsymbol{p_i})\/(&#92;boldsymbol{r}&#92;cdot&#92;boldsymbol{n})\" class=\"latex\" \/>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"313\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4-1024x313.png\" alt=\"\" class=\"wp-image-137\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4-1024x313.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4-300x92.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4-768x235.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4-1536x469.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-4.png 1889w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption><strong>Figure 4: Sphere Tracing uDFs<\/strong><\/figcaption><\/figure>\n\n\n\n<p><strong>Benefit of using nVFs<\/strong><\/p>\n\n\n\n<p>In Figure 5, we visualize ray casting using normals obtained by differentiating the <em>uDF<\/em> (Left) and ray casting using the surface normals estimated by the <em>nVF<\/em> (Right). This high-quality rendering empirically validates the need for learning an <em>nVF<\/em> alongside a<em> uDF<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"484\" src=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5-1024x484.png\" alt=\"\" class=\"wp-image-138\" srcset=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5-1024x484.png 1024w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5-300x142.png 300w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5-768x363.png 768w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5-1536x725.png 1536w, https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-5.png 1861w\" sizes=\"auto, (max-width: 706px) 89vw, (max-width: 767px) 82vw, 740px\" \/><figcaption><strong>Figure 5: High Quality Rendering using nVF<\/strong><\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Overview The primary goal of this project is to achieve high-fidelity 3D reconstruction by learning implicit representations. In contrast to the existing literature, we aim to design a method that can be used to learn these representations for any arbitrary shape, be it open\/closed, or shapes which have ill-defined genus. The applications of this method &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Project Description&#8221;<\/span><\/a><\/p>\n","protected":false},"author":68,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-2","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Project Description - Learning Implicit 3D Representation for Arbitrary Shapes<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Project Description - Learning Implicit 3D Representation for Arbitrary Shapes\" \/>\n<meta property=\"og:description\" content=\"Overview The primary goal of this project is to achieve high-fidelity 3D reconstruction by learning implicit representations. In contrast to the existing literature, we aim to design a method that can be used to learn these representations for any arbitrary shape, be it open\/closed, or shapes which have ill-defined genus. The applications of this method &hellip; Continue reading &quot;Project Description&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/\" \/>\n<meta property=\"og:site_name\" content=\"Learning Implicit 3D Representation for Arbitrary Shapes\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-16T18:54:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/\",\"name\":\"Project Description - Learning Implicit 3D Representation for Arbitrary Shapes\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/wp-content\\\/uploads\\\/sites\\\/38\\\/2020\\\/12\\\/image-1.png\",\"datePublished\":\"2020-05-05T17:59:18+00:00\",\"dateModified\":\"2020-12-16T18:54:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/wp-content\\\/uploads\\\/sites\\\/38\\\/2020\\\/12\\\/image-1.png\",\"contentUrl\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/wp-content\\\/uploads\\\/sites\\\/38\\\/2020\\\/12\\\/image-1.png\",\"width\":759,\"height\":435},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Project Description\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/#website\",\"url\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/\",\"name\":\"Learning Implicit 3D Representation for Arbitrary Shapes\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mscvprojects.ri.cmu.edu\\\/2020teamh\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Project Description - Learning Implicit 3D Representation for Arbitrary Shapes","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","og_locale":"en_US","og_type":"article","og_title":"Project Description - Learning Implicit 3D Representation for Arbitrary Shapes","og_description":"Overview The primary goal of this project is to achieve high-fidelity 3D reconstruction by learning implicit representations. In contrast to the existing literature, we aim to design a method that can be used to learn these representations for any arbitrary shape, be it open\/closed, or shapes which have ill-defined genus. The applications of this method &hellip; Continue reading \"Project Description\"","og_url":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","og_site_name":"Learning Implicit 3D Representation for Arbitrary Shapes","article_modified_time":"2020-12-16T18:54:11+00:00","og_image":[{"url":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","url":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","name":"Project Description - Learning Implicit 3D Representation for Arbitrary Shapes","isPartOf":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#primaryimage"},"image":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#primaryimage"},"thumbnailUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png","datePublished":"2020-05-05T17:59:18+00:00","dateModified":"2020-12-16T18:54:11+00:00","breadcrumb":{"@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#primaryimage","url":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png","contentUrl":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-content\/uploads\/sites\/38\/2020\/12\/image-1.png","width":759,"height":435},{"@type":"BreadcrumbList","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/"},{"@type":"ListItem","position":2,"name":"Project Description"}]},{"@type":"WebSite","@id":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/#website","url":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/","name":"Learning Implicit 3D Representation for Arbitrary Shapes","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/pages\/2","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/comments?post=2"}],"version-history":[{"count":26,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/pages\/2\/revisions"}],"predecessor-version":[{"id":139,"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/pages\/2\/revisions\/139"}],"wp:attachment":[{"href":"https:\/\/mscvprojects.ri.cmu.edu\/2020teamh\/wp-json\/wp\/v2\/media?parent=2"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}