<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>CODERNER</title>
    <link>https://jseobyun.tistory.com/</link>
    <description>작은 기록 모음</description>
    <language>ko</language>
    <pubDate>Wed, 8 Apr 2026 16:36:01 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>침닦는수건</managingEditor>
    <image>
      <title>CODERNER</title>
      <url>https://tistory1.daumcdn.net/tistory/5011336/attach/0fd94e84d681499ca27249a38c4554f1</url>
      <link>https://jseobyun.tistory.com</link>
    </image>
    <item>
      <title>Stable-SCore: A Stable Registration-based Framework for 3D Shape Correspondence</title>
      <link>https://jseobyun.tistory.com/735</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAYT7s/dJMcahb6AQG/XCbTexaNu5bdd2hG7aks90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAYT7s/dJMcahb6AQG/XCbTexaNu5bdd2hG7aks90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAYT7s/dJMcahb6AQG/XCbTexaNu5bdd2hG7aks90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAYT7s%2FdJMcahb6AQG%2FXCbTexaNu5bdd2hG7aks90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;931&quot; height=&quot;270&quot; data-origin-width=&quot;931&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많고 많은 mesh간의 correspondence를 추정한 다음, registration하는 논문. 간단히 말하면 형상이 다른 mesh를 A-&amp;gt;B로 registration하는 방법. 광범위한 correspondence 데이터셋을 활용해서 최적화에 사용할 flow를 뱉어주는 네트워크를 사전에 학습시킨게 핵심이고 뒤에 최적화의 경우 diff-rendering을 사용한 익숙한 방법. 디테일 적으로 NJF를 이용해서 최적화하거나 하는 부분도 좋은 듯.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgWCt6/dJMcadnciVX/xccml7LIqAWf7tkuQuuypK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgWCt6/dJMcadnciVX/xccml7LIqAWf7tkuQuuypK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgWCt6/dJMcadnciVX/xccml7LIqAWf7tkuQuuypK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgWCt6%2FdJMcadnciVX%2Fxccml7LIqAWf7tkuQuuypK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;504&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실한 prior를 갖고 시작하다보니 기존 방식 대비 왜곡이 적은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcDpso/dJMcaiB3gWc/FKFXkCZDulMX2XFZuOPGP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcDpso/dJMcaiB3gWc/FKFXkCZDulMX2XFZuOPGP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcDpso/dJMcaiB3gWc/FKFXkCZDulMX2XFZuOPGP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcDpso%2FdJMcaiB3gWc%2FFKFXkCZDulMX2XFZuOPGP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;951&quot; height=&quot;416&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FnUjH/dJMcai27cyV/4d5MiTPoq3jWVJNXa8I9Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FnUjH/dJMcai27cyV/4d5MiTPoq3jWVJNXa8I9Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FnUjH/dJMcai27cyV/4d5MiTPoq3jWVJNXa8I9Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFnUjH%2FdJMcai27cyV%2F4d5MiTPoq3jWVJNXa8I9Fk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;467&quot; height=&quot;240&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;전체 파이프라인은 2D correspondence에 강하게 의존한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;SD-DINO를 기본으로 feature extractor를 만들었는데, 이 네트워크로 MESH를 렌더링한 이미지에서 feature를 뽑음.&lt;br /&gt;&lt;br /&gt;feature 끼리 NN 매칭하면 2D correspondence가 나오는 방식.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이게 cue가 되어서 최적화가 도는데, 당연히 이것만 갖고는 다 찌그러짐. 따라서 NJF를 이용해서 강하게 topology 유지를 시키면서 최적화함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eImXOL/dJMb99ZsL41/tlCO7yWifKjv5NSsBBy0Yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eImXOL/dJMb99ZsL41/tlCO7yWifKjv5NSsBBy0Yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eImXOL/dJMb99ZsL41/tlCO7yWifKjv5NSsBBy0Yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeImXOL%2FdJMb99ZsL41%2FtlCO7yWifKjv5NSsBBy0Yk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;636&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;MESH를 30 각도로 렌더링해서 학습에 사용했으며 SD-DINO frozen feature가 1등공신.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;correspondence는 NN 매칭으로 얻어짐 &amp;lt;-이게 그렇게 정확하지 않을텐데... 잘되는 걸 보면 NJF가 대단한건지...아니면 학습 데이터 규모가 엄청났던 건지 모르겠다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/11D1F/dJMcaaRBu38/Lnhs7nU1sFjjbrtOZ2ra8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/11D1F/dJMcaaRBu38/Lnhs7nU1sFjjbrtOZ2ra8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/11D1F/dJMcaaRBu38/Lnhs7nU1sFjjbrtOZ2ra8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F11D1F%2FdJMcaaRBu38%2FLnhs7nU1sFjjbrtOZ2ra8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;98&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;98&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;760&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/suaHv/dJMcadgso6h/9V0YgZLxuvokk3Zxqr2iO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/suaHv/dJMcadgso6h/9V0YgZLxuvokk3Zxqr2iO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/suaHv/dJMcadgso6h/9V0YgZLxuvokk3Zxqr2iO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsuaHv%2FdJMcadgso6h%2F9V0YgZLxuvokk3Zxqr2iO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;760&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;760&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;347&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qPJeY/dJMcab32aZg/fM4jsjtINlEqqPIGjyTET0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qPJeY/dJMcab32aZg/fM4jsjtINlEqqPIGjyTET0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qPJeY/dJMcab32aZg/fM4jsjtINlEqqPIGjyTET0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqPJeY%2FdJMcab32aZg%2FfM4jsjtINlEqqPIGjyTET0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;347&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;347&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;3D, 2D correspondence 제공되는 데이터 전부 모아서 학습했고. 카메라 각도는 mesh A, B가 최대한 같도록 유지하면서 학습했다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;feature 퀄리티를 높이기 위해서 CLIP contrasitve loss 사용했고 &lt;br /&gt;&lt;br /&gt;왼손 오른손 같은 헷갈리는 부분을 위해 geodesic distance 기반으로 loss도 추가함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqrXsR/dJMcagEiYSS/c7L7Gk10iipqssC8dPdQGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqrXsR/dJMcagEiYSS/c7L7Gk10iipqssC8dPdQGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqrXsR/dJMcagEiYSS/c7L7Gk10iipqssC8dPdQGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqrXsR%2FdJMcagEiYSS%2Fc7L7Gk10iipqssC8dPdQGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;462&quot; height=&quot;562&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;이제 최적화.&lt;br /&gt;&lt;br /&gt;각 vertex마다 이미지 space에서 얼마나 이동했는지 2d flow를 색상처럼 부여함.&lt;br /&gt;&lt;br /&gt;diff rendering하면 이게 앞서 구한 2D correspondence와 domain이 같음. 따라서 loss를 걸어서 둘 간의 거리를 좁히면 점점 vertex가 이동하는 모양이 나옴.&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnelTH/dJMcabQuN8B/69ORuHlAfkhuwWqUCGkUEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnelTH/dJMcabQuN8B/69ORuHlAfkhuwWqUCGkUEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnelTH/dJMcabQuN8B/69ORuHlAfkhuwWqUCGkUEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnelTH%2FdJMcabQuN8B%2F69ORuHlAfkhuwWqUCGkUEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;461&quot; height=&quot;184&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;CD, normal loss는 덤&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuZLV0/dJMcachzmWu/02hj533iX1eOcbKU9LneF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuZLV0/dJMcachzmWu/02hj533iX1eOcbKU9LneF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuZLV0/dJMcachzmWu/02hj533iX1eOcbKU9LneF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuZLV0%2FdJMcachzmWu%2F02hj533iX1eOcbKU9LneF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;458&quot; height=&quot;264&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dG9gnS/dJMcadOf3G2/yfmUf9ZKBHT2nWSsnc2fY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dG9gnS/dJMcadOf3G2/yfmUf9ZKBHT2nWSsnc2fY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dG9gnS/dJMcadOf3G2/yfmUf9ZKBHT2nWSsnc2fY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdG9gnS%2FdJMcadOf3G2%2FyfmUf9ZKBHT2nWSsnc2fY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;458&quot; height=&quot;242&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;NJF를 사용하므로, face마다 jacobian을 추정하는게 본체인데 결국. 최적화 과정에서 이게 너무 급변하면 망가짐.&lt;br /&gt;&lt;br /&gt;따라서 jacobian이 항상 identity에 가깝도록 억제 (잘 안변하도록)&lt;br /&gt;&lt;br /&gt;더불어서 face가 많이 찌그러지면 안되므로, face가 rotation위주로 변하도록 jacobian이 jacobian(rotation only)와 같도록 억제한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;603&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btccSq/dJMb99ZsMce/La2NKnqhtLLQkypGE8GUt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btccSq/dJMb99ZsMce/La2NKnqhtLLQkypGE8GUt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btccSq/dJMb99ZsMce/La2NKnqhtLLQkypGE8GUt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtccSq%2FdJMb99ZsMce%2FLa2NKnqhtLLQkypGE8GUt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;839&quot; height=&quot;603&quot; data-origin-width=&quot;839&quot; data-origin-height=&quot;603&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pGydy/dJMcag5mqPG/pka7Ut6wvC9WqugGLB1qL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pGydy/dJMcag5mqPG/pka7Ut6wvC9WqugGLB1qL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pGydy/dJMcag5mqPG/pka7Ut6wvC9WqugGLB1qL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpGydy%2FdJMcag5mqPG%2Fpka7Ut6wvC9WqugGLB1qL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;465&quot; height=&quot;346&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Others</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/735</guid>
      <comments>https://jseobyun.tistory.com/735#entry735comment</comments>
      <pubDate>Tue, 20 Jan 2026 19:51:12 +0900</pubDate>
    </item>
    <item>
      <title>Gaussian Opacity Fields: Efficient Adaptive Surface Reconstruction in Unbounded Scenes</title>
      <link>https://jseobyun.tistory.com/734</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czDvDu/dJMcafFnphi/cq6IaCR2yiz0TsxfmkPBkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czDvDu/dJMcafFnphi/cq6IaCR2yiz0TsxfmkPBkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czDvDu/dJMcafFnphi/cq6IaCR2yiz0TsxfmkPBkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczDvDu%2FdJMcafFnphi%2Fcq6IaCR2yiz0TsxfmkPBkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1194&quot; height=&quot;366&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Gaussian-to-Mesh에 속하는 논문인데, 3DGS에는 3DGS-&amp;gt;2DGS로 내려찍는 방식으로 하는데 반대로 조금은 느리겠지만 NeRF에서 원래 하던 방식대로 pixel-to-ray를 만들고 ray tracing하면서 3DGS를 적분해나가는 식으로 바꾼 논문. 왜 이 불편함을 감수하느냐. ray 단위로 다시 시선을 바꾼 다음 적분하기 시작하면 NeRF에서 그랬듯 surface를 찾기 쉬워지기 때문이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문에서는 3DGS를 학습할 때 surface를 쉽게 찾아 meshing 난이도를 낮추기 위한 loss로 제안하지만 그보다 더 핵심은 어떻게 주어진 3DGS에 NeRF에서 쓰던 ray 단위의 적분을 적용할 것이냐다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJiB9V/dJMb99LUhWb/mSArmhnkKkkKUYeZBaFKb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJiB9V/dJMb99LUhWb/mSArmhnkKkkKUYeZBaFKb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJiB9V/dJMb99LUhWb/mSArmhnkKkkKUYeZBaFKb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJiB9V%2FdJMb99LUhWb%2FmSArmhnkKkkKUYeZBaFKb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;432&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmdgMN/dJMcabCXRmL/knMEeu9wPKgv8ey7LqNNTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmdgMN/dJMcabCXRmL/knMEeu9wPKgv8ey7LqNNTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmdgMN/dJMcabCXRmL/knMEeu9wPKgv8ey7LqNNTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmdgMN%2FdJMcabCXRmL%2FknMEeu9wPKgv8ey7LqNNTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;150&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;세팅은 일반 3DGS랑 완벽히 동일함.&lt;br /&gt;&lt;br /&gt;추가 primitive가 있는 것도 아님.&lt;br /&gt;&lt;br /&gt;그래서 꼭 이 논문에서 제안하는 방식으로 학습한 개체가 아니더라도 mesh로 그대로 바꿀 수 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;980&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nyHIW/dJMcaiox6m7/IO7JMixceJQVphVCWM2AuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nyHIW/dJMcaiox6m7/IO7JMixceJQVphVCWM2AuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nyHIW/dJMcaiox6m7/IO7JMixceJQVphVCWM2AuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnyHIW%2FdJMcaiox6m7%2FIO7JMixceJQVphVCWM2AuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;581&quot; height=&quot;980&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;980&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD5I39/dJMcacolhxx/XXoU0c14MvKv0kzZlV9GQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD5I39/dJMcacolhxx/XXoU0c14MvKv0kzZlV9GQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD5I39/dJMcacolhxx/XXoU0c14MvKv0kzZlV9GQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD5I39%2FdJMcacolhxx%2FXXoU0c14MvKv0kzZlV9GQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;330&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;핵심은 pixel 단위로 ray를 쏘고 그 과정에서 부딪히는 모든 3DGS를 거리 순서대로 NeRF처럼 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;적분해서&lt;span&gt; surface를 찾아내는 것.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3DGS가 2D projection을 통해 가속했던 부분이 사라지므로 속도는 좀 느려짐.&lt;br /&gt;&lt;br /&gt;뒤에 나오는데 ray를 따라가다 3DGS에 진입하면 해당 3DGS에서 opacity 값을 뽑아내서 쓰면 되고 (거리 기반으로), 하나 차이점은 3DGS 센터를 넘어갔다면 그때부터는 최대opacity를 계속 뽑아내서 쓴다.&lt;br /&gt;&lt;br /&gt;이건 직관적으로 ray가 앞쪽에서 오기 때문에 3DGS를 통과 이후엔 계속 가려짐 효과가 생긴다. 이걸 반영하기 위해서 통과 이후엔 실제 opacity 값이 어떻든 다 최대값으로 한다.&lt;br /&gt;&lt;br /&gt;3DGS의 중심은 찾기 쉬우니 계산도 간단.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCNR7H/dJMcaiWmAKD/87QQoVQuyVPnivFhLKpvE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCNR7H/dJMcaiWmAKD/87QQoVQuyVPnivFhLKpvE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCNR7H/dJMcaiWmAKD/87QQoVQuyVPnivFhLKpvE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCNR7H%2FdJMcaiWmAKD%2F87QQoVQuyVPnivFhLKpvE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;595&quot; height=&quot;295&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;렌더링을 해서 색상을 얻어내야 할때는 ray 컨셉을 굳이 고수할 이유가 없다. ray 단위로 구현할 부분은 surface를 찾아낼 때 뿐.&lt;br /&gt;&lt;br /&gt;따라서 색상을 만들땐 원래 3DGS 방식 그대로 사용한다. projection 방식으로.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;1054&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Uktwb/dJMcaiWmAKP/hRshkC6yekgAoQNz8D2ai1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Uktwb/dJMcaiWmAKP/hRshkC6yekgAoQNz8D2ai1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Uktwb/dJMcaiWmAKP/hRshkC6yekgAoQNz8D2ai1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUktwb%2FdJMcaiWmAKP%2FhRshkC6yekgAoQNz8D2ai1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;1054&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;1054&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;341&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YlHjr/dJMcaiWmAKT/c5WkLOO8narNerSnlVHCmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YlHjr/dJMcaiWmAKT/c5WkLOO8narNerSnlVHCmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YlHjr/dJMcaiWmAKT/c5WkLOO8narNerSnlVHCmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYlHjr%2FdJMcaiWmAKT%2Fc5WkLOO8narNerSnlVHCmk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;341&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;341&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;아까 했던 얘기랑 똑같은 얘기.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;ray를 따라 적분해나가면서 surface를 찾을 것인데, 3DGS 내부의 어떤 점 t를 샘플링했다면 해당 t가 3DGS내에서 갖는 opacity 값을 사용하면된다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;t가 중심을 넘어간 위치라면 최대값으로 뱉어서 이후 계산 과정에서 무의미하도록 만들고.&lt;br /&gt;&lt;br /&gt;ray 위의 점 t에 여러 3DGS가 있을 수도 있는데, 이 경우에는 가장 작은 값을 사용했다고 한다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpi8rv/dJMcagjYrTr/XYTnWHHO5zUPBK5qtLGnwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpi8rv/dJMcagjYrTr/XYTnWHHO5zUPBK5qtLGnwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpi8rv/dJMcagjYrTr/XYTnWHHO5zUPBK5qtLGnwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpi8rv%2FdJMcagjYrTr%2FXYTnWHHO5zUPBK5qtLGnwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;614&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;학습 과정에서는 loss가 몇개 추가되면 위 formulation으로 mesh surface를 뽑아내는데 더 유리한 형태로 수렴한다고 함.&lt;br /&gt;&lt;br /&gt;첫번째는 같은 ray상에 있는 gaussian끼리는 중심이 서로 같도록 유도하는 것. 다시 말해 surface에만 3dgs가 있어야 하니까 일단 한 곳으로 모이게 하는 것.&lt;br /&gt;&lt;br /&gt;이 때 앞에있는 것과 뒤에있는 것 간의 가중치차이는 있어야 하니 blending weight를 앞에 곱해준다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;----------------&lt;br /&gt;하나 주의할 점은 blending weight도 결국 3DGS primitive로부터 뽑아낸 값이기 때문에 3DGS primitive가 값이 달라질수가 있다. 다른 말로 blending weight로 인해 엄한 3DGS opacity가 높아질수가있다.&lt;br /&gt;&lt;br /&gt;따라서 gradient를 끊어줬다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IYtIF/dJMcag5mqbA/WcZ4hpP8CmBDcj04hfuKvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IYtIF/dJMcag5mqbA/WcZ4hpP8CmBDcj04hfuKvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IYtIF/dJMcag5mqbA/WcZ4hpP8CmBDcj04hfuKvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIYtIF%2FdJMcag5mqbA%2FWcZ4hpP8CmBDcj04hfuKvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;461&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/puhOw/dJMcagxvftC/ljTN6LI4QdpAh9lebqWGA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/puhOw/dJMcagxvftC/ljTN6LI4QdpAh9lebqWGA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/puhOw/dJMcagxvftC/ljTN6LI4QdpAh9lebqWGA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpuhOw%2FdJMcagxvftC%2FljTN6LI4QdpAh9lebqWGA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;437&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NsjL0/dJMcabXgZGs/GDYYgHfBQNcxbvqcr7EgIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NsjL0/dJMcabXgZGs/GDYYgHfBQNcxbvqcr7EgIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NsjL0/dJMcabXgZGs/GDYYgHfBQNcxbvqcr7EgIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNsjL0%2FdJMcabXgZGs%2FGDYYgHfBQNcxbvqcr7EgIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;324&quot; data-origin-width=&quot;578&quot; data-origin-height=&quot;324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;depth가는데 normal 따라간다고. normal도 loss로 걸어주면 좋음.&lt;br /&gt;&lt;br /&gt;근데 이게 좀 어려운게 3DGS는 결국 타원체기 때문에 normal이 고르지 않음. 방사형으로 뻗어나가는 normal을 갖고 있어서 smooth한 normal을 표현하기가 매우 어려움. (달걀을 갖고 평면을 표현하려는 것과 비슷)&lt;br /&gt;&lt;br /&gt;그래서 3DGS의 normal을 그대로 사용하면 normal consistency가 큰 도움이 안됨.-&amp;gt; approximation 해서 normal이 도움되도록 변경&lt;br /&gt;&lt;br /&gt;1) 3dgs를 타원에서 원으로, 방향도 xyz 같도록 normalize함&lt;br /&gt;2) ray를 법선으로 갖는 plane 생성, 그리고 뒤집기&lt;br /&gt;3) plane's normal을 unnormalize&lt;br /&gt;&lt;br /&gt;이렇게 하면 3DGS이 타원체건 말건 결국 ray 진입각, 3dgs의 회전상태에 따라 normal이 결정되므로 normal이 일정하게 표현됨.&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC8A0o/dJMcajubtoC/mAmOUja5KkPm5enbkdOI41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC8A0o/dJMcajubtoC/mAmOUja5KkPm5enbkdOI41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC8A0o/dJMcajubtoC/mAmOUja5KkPm5enbkdOI41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC8A0o%2FdJMcajubtoC%2FmAmOUja5KkPm5enbkdOI41%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;283&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UewTd/dJMcahXvG0f/9v1KTkL5VKUPoDhROPK0ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UewTd/dJMcahXvG0f/9v1KTkL5VKUPoDhROPK0ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UewTd/dJMcahXvG0f/9v1KTkL5VKUPoDhROPK0ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUewTd%2FdJMcahXvG0f%2F9v1KTkL5VKUPoDhROPK0ik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;586&quot; height=&quot;388&quot; data-origin-width=&quot;586&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;마지막으로 densification에서 손을 대는데, 기존에는 position gradient의 크기 기준을 정할 때 그냥 sum이었음.&lt;br /&gt;&lt;br /&gt;근데 이건 생각해보면 한 픽셀에 걸리는 gradient가 여러 3DGS에 의해 결정되는데, 하나는 밀고 하나는 당기면 분명 변화가 필요한 픽셀이지만 sum으로 보면 0이기 때문에 변화가 없다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;따라서 sum을 할게 아니라 크기의 sum으로 해야된다는게 저자들의 주장.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWDPps/dJMcabbTOuE/aUntVpXkkYEFHwn5XTqVZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWDPps/dJMcabbTOuE/aUntVpXkkYEFHwn5XTqVZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWDPps/dJMcabbTOuE/aUntVpXkkYEFHwn5XTqVZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWDPps%2FdJMcabbTOuE%2FaUntVpXkkYEFHwn5XTqVZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1196&quot; height=&quot;297&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;결과보면 꽤나 의미가 있는 듯함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQ8sKx/dJMcagqJC8F/CVsQcrKhAcLegi0akdU4tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQ8sKx/dJMcagqJC8F/CVsQcrKhAcLegi0akdU4tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQ8sKx/dJMcagqJC8F/CVsQcrKhAcLegi0akdU4tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQ8sKx%2FdJMcagqJC8F%2FCVsQcrKhAcLegi0akdU4tk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;211&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mU26v/dJMcagqJC8L/oK2k0aKcCBa9nL1kShTKVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mU26v/dJMcagqJC8L/oK2k0aKcCBa9nL1kShTKVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mU26v/dJMcagqJC8L/oK2k0aKcCBa9nL1kShTKVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmU26v%2FdJMcagqJC8L%2FoK2k0aKcCBa9nL1kShTKVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;255&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;최종 단에서 3DGS to mesh 하는 방법&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3DGS 중심, 그리고 이를 둘러싸는 bounding box 점 8개 = 총 9개 point를 각 3DGS마다 생성한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그리고 나서 tetra hedral grid 생성하는 알고리즘을 돌림.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이렇게 하면 전체 공간을 둘러싸는 voxel이 아니라 실제 3DGS가 존재하는 공간만 감싸는 불규칙한 tetrahedral grid가 생성됨.&lt;br /&gt;&lt;br /&gt;여기다가 marching tetrahedral을 갈기면 mesh가 나온다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;357&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biBvnJ/dJMcadU2E30/BMYqjvvBddJ4Qgw1ga4u31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biBvnJ/dJMcadU2E30/BMYqjvvBddJ4Qgw1ga4u31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biBvnJ/dJMcadU2E30/BMYqjvvBddJ4Qgw1ga4u31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiBvnJ%2FdJMcadU2E30%2FBMYqjvvBddJ4Qgw1ga4u31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;583&quot; height=&quot;357&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;357&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;하나 문제는 grid를 형성하고 있는 vertex 중에 3DGS 중심에서 뽑힌 애들은 opacity가 있지만 bounding box 출신들은 opacity 값이 없음.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이를 추출하기 위해서 vertex를 이미지로 내려찍고, 해당하는 픽셀에 개입하는 3DGS를 모은 다음 거리 기반으로 모든 opacity를 계산한 뒤 최솟값을 할당했다고 함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmTzwH/dJMcaiB3gLK/WqXImeK9aXVkHNmDOCr9KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmTzwH/dJMcaiB3gLK/WqXImeK9aXVkHNmDOCr9KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmTzwH/dJMcaiB3gLK/WqXImeK9aXVkHNmDOCr9KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmTzwH%2FdJMcaiB3gLK%2FWqXImeK9aXVkHNmDOCr9KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;582&quot; height=&quot;429&quot; data-origin-width=&quot;582&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;marching tetrahedral 갈길 때, 그냥 하면 linear 가정으로 하기 때문에 좀 각진 mesh가 나올 수도 있음.&lt;br /&gt;&lt;br /&gt;이를 완화하기 위해서 한 edge에서 bineary search 8번, 최대 256개 위치를 뒤지면서 가장 적합한 위치를 찾아서 사용했다고 함.&lt;br /&gt;&lt;br /&gt;이건 marching 알고리즘을 정확히 몰라서 이해 못함.&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nTTrI/dJMcai27cuS/2yrqSuXE8yA5DQnpY6cefk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nTTrI/dJMcai27cuS/2yrqSuXE8yA5DQnpY6cefk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nTTrI/dJMcai27cuS/2yrqSuXE8yA5DQnpY6cefk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnTTrI%2FdJMcai27cuS%2F2yrqSuXE8yA5DQnpY6cefk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;333&quot; data-origin-width=&quot;587&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZF5CH/dJMcaivhLXJ/RaxwKf5Cs97kM4gypvmSmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZF5CH/dJMcaivhLXJ/RaxwKf5Cs97kM4gypvmSmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZF5CH/dJMcaivhLXJ/RaxwKf5Cs97kM4gypvmSmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZF5CH%2FdJMcaivhLXJ%2FRaxwKf5Cs97kM4gypvmSmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;585&quot; height=&quot;472&quot; data-origin-width=&quot;585&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;디테일이 많아서 그런지, NeuS보다 좋음. 되게 고무적인듯.&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;503&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQajbU/dJMcaiIO3nT/QuqHtJ9Uv47WJtHDtzw7X0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQajbU/dJMcaiIO3nT/QuqHtJ9Uv47WJtHDtzw7X0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQajbU/dJMcaiIO3nT/QuqHtJ9Uv47WJtHDtzw7X0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQajbU%2FdJMcaiIO3nT%2FQuqHtJ9Uv47WJtHDtzw7X0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;591&quot; height=&quot;503&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;503&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjTPH5/dJMcaiIO3nZ/7yrud72OauxBCk0T80sjkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjTPH5/dJMcaiIO3nZ/7yrud72OauxBCk0T80sjkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjTPH5/dJMcaiIO3nZ/7yrud72OauxBCk0T80sjkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjTPH5%2FdJMcaiIO3nZ%2F7yrud72OauxBCk0T80sjkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1191&quot; height=&quot;859&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;859&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;895&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oD4yW/dJMcaiIO3oa/40kH1sbC93AmZ7tDZPXS8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oD4yW/dJMcaiIO3oa/40kH1sbC93AmZ7tDZPXS8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oD4yW/dJMcaiIO3oa/40kH1sbC93AmZ7tDZPXS8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoD4yW%2FdJMcaiIO3oa%2F40kH1sbC93AmZ7tDZPXS8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1198&quot; height=&quot;895&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;895&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/3D vision</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/734</guid>
      <comments>https://jseobyun.tistory.com/734#entry734comment</comments>
      <pubDate>Tue, 20 Jan 2026 19:35:18 +0900</pubDate>
    </item>
    <item>
      <title>Gsplat 설치할 때 No module named &amp;quot;torch&amp;quot; 뜨는 문제 (torch 설치 이미 되어있음)</title>
      <link>https://jseobyun.tistory.com/733</link>
      <description>&lt;pre id=&quot;code_1763354923667&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;error: subprocess-exited-with-error

  &amp;times; Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─&amp;gt; [22 lines of output]
      Setting MAX_JOBS to 10
      Traceback (most recent call last):
        File &quot;/home/jseob/miniconda3/envs/da3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py&quot;, line 389, in &amp;lt;module&amp;gt;
          main()
        File &quot;/home/jseob/miniconda3/envs/da3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py&quot;, line 373, in main
          json_out[&quot;return_val&quot;] = hook(**hook_input[&quot;kwargs&quot;])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File &quot;/home/jseob/miniconda3/envs/da3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py&quot;, line 143, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File &quot;/tmp/pip-build-env-sbqrwjfo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py&quot;, line 331, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File &quot;/tmp/pip-build-env-sbqrwjfo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py&quot;, line 301, in _get_build_requires
          self.run_setup()
        File &quot;/tmp/pip-build-env-sbqrwjfo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py&quot;, line 512, in run_setup
          super().run_setup(setup_script=setup_script)
        File &quot;/tmp/pip-build-env-sbqrwjfo/overlay/lib/python3.12/site-packages/setuptools/build_meta.py&quot;, line 317, in run_setup
          exec(code, locals())
        File &quot;&amp;lt;string&amp;gt;&quot;, line 135, in &amp;lt;module&amp;gt;
        File &quot;&amp;lt;string&amp;gt;&quot;, line 33, in get_extensions
      ModuleNotFoundError: No module named 'torch'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed to build 'gsplat' when getting requirements to build wheel&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gsplat 설치할 때 위와 같이 뜬금없이 torch 에러를 겪을 일이 있다. 가상 환경에 분명 torch 설치는 잘 되어있고 import도 문제없이 잘 되는 상태인데 반복돼서 까다로웠던 문제.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결법&lt;/h3&gt;
&lt;pre id=&quot;code_1763354992070&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install ninja&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 ninja 깔려있는건 확인해야 함. CUDA extension 빌드할 때 ninja가 필요하기 때문에 이게 없으면 에러가 날 수도 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1763355045510&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install git+https://github.com/nerfstudio-project/gsplat.git@0b4dddf04cb687367602c01196913cde6a743d70 --no-build-isolation&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;--no-build-islation&lt;/b&gt; 태그를 추가해서 설치해줘야 함. 이게 없으면 torch가 어디에 설치되어있는지 못 찾아서 위와 같은 문제가 날 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Trouble/Vision</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/733</guid>
      <comments>https://jseobyun.tistory.com/733#entry733comment</comments>
      <pubDate>Mon, 17 Nov 2025 13:51:45 +0900</pubDate>
    </item>
    <item>
      <title>AnyUp : Universal Feature Upsampling</title>
      <link>https://jseobyun.tistory.com/732</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nkkgz/dJMcahCK57B/c1Y3SskVZnD0ICPbz7GeJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nkkgz/dJMcahCK57B/c1Y3SskVZnD0ICPbz7GeJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nkkgz/dJMcahCK57B/c1Y3SskVZnD0ICPbz7GeJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNkkgz%2FdJMcahCK57B%2Fc1Y3SskVZnD0ICPbz7GeJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;329&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 FeatUp이라는 논문을 보고 모델마다 새학습, 샘플마다 새학습 문제로 범용성이 매우 떨어진다고 생각하고 말았는데, 범용성을 개선한 버전이 나왔다. 래퍼런스 논문들을 보니 이 foundation feature 해상도를 높이는 연구가 간간히 되어왔던 것 같긴 하다. 컨셉은 아주 간단하고 어찌보면 가장 쉽게 생각할 수 있는 방식인 것 같다. 구조를 어떤식으로 썼는지와 학습을 안정적으로 한 것에 의미가 좀 더 있는 듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 297px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 297px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 297px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;627&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEgGlG/dJMcaaXV62K/w3Uk8CSbD2KNCNdooM6Hx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEgGlG/dJMcaaXV62K/w3Uk8CSbD2KNCNdooM6Hx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEgGlG/dJMcaaXV62K/w3Uk8CSbD2KNCNdooM6Hx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEgGlG%2FdJMcaaXV62K%2Fw3Uk8CSbD2KNCNdooM6Hx0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;936&quot; height=&quot;627&quot; data-origin-width=&quot;936&quot; data-origin-height=&quot;627&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 297px;&quot;&gt;해상도, 모델따라 재학습을 최소화한게 장점.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G1DPe/dJMcahvZsHX/aMt84tGeMaRxRLxfKCR8J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G1DPe/dJMcahvZsHX/aMt84tGeMaRxRLxfKCR8J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G1DPe/dJMcahvZsHX/aMt84tGeMaRxRLxfKCR8J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG1DPe%2FdJMcahvZsHX%2FaMt84tGeMaRxRLxfKCR8J0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;935&quot; height=&quot;544&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 63.1395%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mNfmu/dJMcadG7UB6/EmJVsZ03WnPDH2wsCIssP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mNfmu/dJMcadG7UB6/EmJVsZ03WnPDH2wsCIssP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mNfmu/dJMcadG7UB6/EmJVsZ03WnPDH2wsCIssP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmNfmu%2FdJMcadG7UB6%2FEmJVsZ03WnPDH2wsCIssP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;536&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 36.8605%;&quot;&gt;그림이 설명을 너무 잘해서. 그럼보면 끝.&lt;br /&gt;&lt;br /&gt;고해상도에서 feature 뽑고 crop한거랑&lt;br /&gt;저해상도에서 feature 뽑고 upsample 한거랑 같도록 함.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;cossim + l2로 학습&lt;br /&gt;&lt;br /&gt;구조적 핵심은 local feature로도 충분히 upsample이 가능하다는 가정하에 local window attention으로만 처리함.&lt;br /&gt;&lt;br /&gt;멀리 있는 feature의 개입을 완전 차단해서 noise를 제거함.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 63.1395%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coPaNv/dJMcagKCigb/SpkZDiTgGSSowlSAKx7YF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coPaNv/dJMcagKCigb/SpkZDiTgGSSowlSAKx7YF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coPaNv/dJMcagKCigb/SpkZDiTgGSSowlSAKx7YF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoPaNv%2FdJMcagKCigb%2FSpkZDiTgGSSowlSAKx7YF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;932&quot; height=&quot;260&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8YkF4/dJMcabCxCfC/xfpGDlcPRu1nHMKPusVkRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8YkF4/dJMcabCxCfC/xfpGDlcPRu1nHMKPusVkRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8YkF4/dJMcabCxCfC/xfpGDlcPRu1nHMKPusVkRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8YkF4%2FdJMcabCxCfC%2FxfpGDlcPRu1nHMKPusVkRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;563&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 36.8605%;&quot;&gt;feature dimension이 1024든 768든 다 돌아가게 하려면 나름의 트릭이 필요함.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;-&amp;gt; feature channel이 N개면 1개 1개마다 병렬적으로 씌울 수 있는 conv kernel을 학습한다.&lt;br /&gt;&lt;br /&gt;각 channel이 독립적으로 local feature를 들고 있다고 가정하고 local feature라면 upsample되는 양상은 어차피 같을 것이므로 conv kernel을 공유해서 사용해도 된다는 논리.&lt;br /&gt;&lt;br /&gt;따라서 N channel을 M conv 커널로 처리해서&amp;nbsp;&lt;br /&gt;&lt;br /&gt;NxM feature를 뽑고 N 개 방향으로 weighted sum하는 식으로 M으로 줄임&lt;br /&gt;&lt;br /&gt;모든 모델의 feature가 M으로 줄여짐.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 63.1395%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;261&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmllWi/dJMcahW3RX0/uev70H2bUIvLrQNyO0XZs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmllWi/dJMcahW3RX0/uev70H2bUIvLrQNyO0XZs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmllWi/dJMcahW3RX0/uev70H2bUIvLrQNyO0XZs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmllWi%2FdJMcahW3RX0%2Fuev70H2bUIvLrQNyO0XZs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;932&quot; height=&quot;261&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;261&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 36.8605%;&quot;&gt;이렇게 dimension을 맞춘 이후에는 이미지랑 같이 local window attention 으로 처리해서 최종 upsampled feature를 만든다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 62.907%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TNuu8/dJMcagjx4BH/zPDiO7AwBHtE6HXQpX6BI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TNuu8/dJMcagjx4BH/zPDiO7AwBHtE6HXQpX6BI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TNuu8/dJMcagjx4BH/zPDiO7AwBHtE6HXQpX6BI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTNuu8%2FdJMcagjx4BH%2FzPDiO7AwBHtE6HXQpX6BI0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;933&quot; height=&quot;313&quot; data-origin-width=&quot;933&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 37.093%;&quot;&gt;cossim하고 l2 loss를 같이 쓰는 식.&lt;br /&gt;&lt;br /&gt;특별한 건 없다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E7wHr/dJMcagKCijd/qRuJzgmmRD09Xw4Tk8Yp80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E7wHr/dJMcagKCijd/qRuJzgmmRD09Xw4Tk8Yp80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E7wHr/dJMcagKCijd/qRuJzgmmRD09Xw4Tk8Yp80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE7wHr%2FdJMcagKCijd%2FqRuJzgmmRD09Xw4Tk8Yp80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;932&quot; height=&quot;532&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;local에 집중해서 처리하면서 noise가 확실히 줄어든 모습. 뭐 데이터를 어떤 걸 썼냐의 차이도 있겠다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lTOzU/dJMcacg9bRW/bdwThfCfdB4aOIz1E7g1iK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lTOzU/dJMcacg9bRW/bdwThfCfdB4aOIz1E7g1iK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lTOzU/dJMcacg9bRW/bdwThfCfdB4aOIz1E7g1iK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlTOzU%2FdJMcacg9bRW%2FbdwThfCfdB4aOIz1E7g1iK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;939&quot; height=&quot;395&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;upsampled feature의 성능을 평가하는건 역시 downstream task까지 가봐야하는데. 훨씬 깔끔한 결과로 이어짐.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwRYKB/dJMcafyaVwW/e1XGfxvyMkGTYBvgt5f031/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwRYKB/dJMcafyaVwW/e1XGfxvyMkGTYBvgt5f031/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwRYKB/dJMcafyaVwW/e1XGfxvyMkGTYBvgt5f031/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwRYKB%2FdJMcafyaVwW%2Fe1XGfxvyMkGTYBvgt5f031%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;930&quot; height=&quot;416&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;모델 사이즈가 가변해도 다 통함. 모델 크기가 크나 작으나 통용됨.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;623&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VWW76/dJMcaa4HIQu/Mc8CyTHWQsFnRNj2FSTmD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VWW76/dJMcaa4HIQu/Mc8CyTHWQsFnRNj2FSTmD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VWW76/dJMcaa4HIQu/Mc8CyTHWQsFnRNj2FSTmD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVWW76%2FdJMcaa4HIQu%2FMc8CyTHWQsFnRNj2FSTmD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;925&quot; height=&quot;623&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;623&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;튀는 attention이 줄어듦.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Others</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/732</guid>
      <comments>https://jseobyun.tistory.com/732#entry732comment</comments>
      <pubDate>Wed, 12 Nov 2025 19:16:21 +0900</pubDate>
    </item>
    <item>
      <title>Animal Avatars: Reconstructing Animatable 3D Animals from Casual Videos</title>
      <link>https://jseobyun.tistory.com/731</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9u97D/dJMcai2I1UI/82SREbZHrHC9hU7Nw55IO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9u97D/dJMcai2I1UI/82SREbZHrHC9hU7Nw55IO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9u97D/dJMcai2I1UI/82SREbZHrHC9hU7Nw55IO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9u97D%2FdJMcai2I1UI%2F82SREbZHrHC9hU7Nw55IO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;410&quot; data-origin-width=&quot;935&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동물 논문은 예전에 SMAL 이후로 본 적이 사실 없는데, 그 이후로 그렇게 발전한 것 같진 않다. 데이터가 없을 뿐더러 관심도 낮아서 연구가 그리 많이 안된 느낌. 이해도 가는게 움직이는 개를 어떻게 찍나...그리고 개를 그렇게 많이 모으는 것도 힘들고 털이 많아서 reconstruction도 애초에 안되니 데이터를 모을 수가 없다. (어찌 보면 블루 오션인 것 같기도)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 논문은 주어진 개 video에서 해당 개랑 가장 닮은 SMAL 파라미터를 뽑아주고, NeRF 컨셉을 이용해서 texture를 발라주는 논문이다. SMAL에 색상을 입히는 방식이기 때문에 정확도가 엄청 높진 않다. 하지만 여태까지 다뤘던 논문 대비는 완성도가 많이 올라간 버전.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핵심은 CSE가 동물 버전도 있다는 것에서 착안해서 CSE 예측값을 fitting의 pseudo GT로 활용하는 것. + SMAL surface 주변에서 국소 NeRF 렌더링으로 texture를 찾아내는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CO1JB/dJMcahbF4ga/oWnQKLhVKVmMO8pH8DJHpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CO1JB/dJMcahbF4ga/oWnQKLhVKVmMO8pH8DJHpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CO1JB/dJMcahbF4ga/oWnQKLhVKVmMO8pH8DJHpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCO1JB%2FdJMcahbF4ga%2FoWnQKLhVKVmMO8pH8DJHpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;500&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXNeW2/dJMcabP38yo/MprQhMkvVyKrqsuXmkrj61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXNeW2/dJMcabP38yo/MprQhMkvVyKrqsuXmkrj61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXNeW2/dJMcabP38yo/MprQhMkvVyKrqsuXmkrj61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXNeW2%2FdJMcabP38yo%2FMprQhMkvVyKrqsuXmkrj61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;949&quot; height=&quot;242&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;482&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pI62u/dJMcabP38zp/W1k70MqkytcDkxrzicVxmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pI62u/dJMcabP38zp/W1k70MqkytcDkxrzicVxmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pI62u/dJMcabP38zp/W1k70MqkytcDkxrzicVxmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpI62u%2FdJMcabP38zp%2FW1k70MqkytcDkxrzicVxmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;949&quot; height=&quot;482&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;482&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/opRiw/dJMcaboZGIF/fclN0VM23wcvKSVqibBXFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/opRiw/dJMcaboZGIF/fclN0VM23wcvKSVqibBXFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/opRiw/dJMcaboZGIF/fclN0VM23wcvKSVqibBXFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FopRiw%2FdJMcaboZGIF%2FfclN0VM23wcvKSVqibBXFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;405&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;기본적으로 딥러닝이 아니라 최적화 프레임워크다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이미지 + 카메라 포즈 + 마스크 + CSE 예측 결과가 주어졌다고 했을 때 differential rendering 을 통해 SMAL 파라미터를 역추정하는 것이 1단계&lt;br /&gt;&lt;br /&gt;1단계가 완료되었을 때 SMAL surface 살짝 안쪽 살짝 바깥 쪽에 surface를 하나 더 만들어 내고 inner&amp;lt;-&amp;gt;outer 사이 공간에서의 짧은 ray 에 대해 raidan field technique을 써서 texture를 찾는다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;texture는 고로 NeRF 네트워크가 있어야 됨. texture map이나 vertex color로 찾아지는건 아니다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.6977%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJbdKX/dJMcacIcVpn/d1vYLm0lPF2YK6dZkmFPgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJbdKX/dJMcacIcVpn/d1vYLm0lPF2YK6dZkmFPgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJbdKX/dJMcacIcVpn/d1vYLm0lPF2YK6dZkmFPgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJbdKX%2FdJMcacIcVpn%2Fd1vYLm0lPF2YK6dZkmFPgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;950&quot; height=&quot;304&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.3023%;&quot;&gt;shape 파라미터는 공유, 매 프레임마다 pose 파라미터는 각각이다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;715&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3uhcB/dJMcain7ukV/1Om6kzlbYz9khYPzVJ1RuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3uhcB/dJMcain7ukV/1Om6kzlbYz9khYPzVJ1RuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3uhcB/dJMcain7ukV/1Om6kzlbYz9khYPzVJ1RuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3uhcB%2FdJMcain7ukV%2F1Om6kzlbYz9khYPzVJ1RuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;955&quot; height=&quot;715&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;715&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;CSE랑 SMAL에서 사용하는 topology 차이가 있긴 해서 이 둘을 매칭해주고 나서 사용했음.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOFvOk/dJMcacOYta7/20JWaNvx6Y1FCxk1yChJBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOFvOk/dJMcacOYta7/20JWaNvx6Y1FCxk1yChJBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOFvOk/dJMcacOYta7/20JWaNvx6Y1FCxk1yChJBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOFvOk%2FdJMcacOYta7%2F20JWaNvx6Y1FCxk1yChJBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;945&quot; height=&quot;651&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;좋은 논문의 활용은 시간이 지나도 빛이 바래지 않는다. CSE 재등장..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;아무도 관심 갖지 않았던 CSE표현법의 장점.&lt;br /&gt;&lt;br /&gt;topology matching만 된다면 꼭 사람이 아닌 형상에 대해서도 surface embedding을 만들 수 있다는 장점.&lt;br /&gt;&lt;br /&gt;고로 CSE 동물 버전이 존재하는데, 이걸 가져와서 입력 정보로 같이 썼다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;(테스트 해보니, 모든 프레임에 대해서 성공할 정도로 안정성이 높진 않다. 개를 위에서 찍거나, 개의 뒤를 찍으면 잘 안된다. 예측 실패한 프레임은 버리는 식으로 처리했음)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt6ic0/dJMcah3OK43/t77EGpX5i8LEEzXKLciiR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt6ic0/dJMcah3OK43/t77EGpX5i8LEEzXKLciiR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt6ic0/dJMcah3OK43/t77EGpX5i8LEEzXKLciiR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt6ic0%2FdJMcah3OK43%2Ft77EGpX5i8LEEzXKLciiR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;952&quot; height=&quot;484&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIwbBn/dJMcacnT1aC/T2RJeA19ZPujjRcK6eNzfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIwbBn/dJMcacnT1aC/T2RJeA19ZPujjRcK6eNzfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIwbBn/dJMcacnT1aC/T2RJeA19ZPujjRcK6eNzfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIwbBn%2FdJMcacnT1aC%2FT2RJeA19ZPujjRcK6eNzfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;108&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;108&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4lnR2/dJMcacnT1aO/R3ViKenAkppwmRGhrZRkU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4lnR2/dJMcacnT1aO/R3ViKenAkppwmRGhrZRkU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4lnR2/dJMcacnT1aO/R3ViKenAkppwmRGhrZRkU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4lnR2%2FdJMcacnT1aO%2FR3ViKenAkppwmRGhrZRkU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;946&quot; height=&quot;643&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;이제 대망의 텍스처, 사실 geometry가 완벽히 이미지랑 픽셀 레벨로 맞는다면 그냥 texture map 최적화를 하면 끝이지만, 최대한 닮은 SMAL을 얻어낼 뿐이라서 입력과 이격이 꽤 크다. (실제로 큼)&lt;br /&gt;&lt;br /&gt;그래서 그냥 최적화 하면 눈이 이상한데 붙어있을 수도 있음&lt;br /&gt;&lt;br /&gt;아마 이 문제를 저자들도 겪었는지, 단순 최적화를 포기하고 NeRF로 처리해서 약간의 noise handling을 기대한 것 같다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;개가 요리 조리 온몸비틀기를 하는 와중에 일관된 ray를 생성하는 것은 거의 불가능하니&amp;nbsp;&lt;br /&gt;&lt;br /&gt;surface 근처에서 ray는 일정할 거라고 가정한 후 SMAL surface 주변 공간에서만 radience field를 계산했다.&amp;nbsp;&lt;br /&gt;(이론 상 허공에 있는 애는 애초에 개 색깔에 영향을 안주니까 당연하기도 함.)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;684&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgiP5i/dJMb99LtV5G/3LpklSB5dXYGNyhoQ8wIfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgiP5i/dJMb99LtV5G/3LpklSB5dXYGNyhoQ8wIfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgiP5i/dJMb99LtV5G/3LpklSB5dXYGNyhoQ8wIfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgiP5i%2FdJMb99LtV5G%2F3LpklSB5dXYGNyhoQ8wIfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;948&quot; height=&quot;684&quot; data-origin-width=&quot;948&quot; data-origin-height=&quot;684&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;렌더링한다고 하면 view direction을 따라 내려오다가 outer-inner surface에 부딪히는 위치를 찾아내서 그 사이 값만 갖고 렌더링.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.814%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdY7gX/dJMcaezfTAR/WHvFIztE0LdHUi71tKUEaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdY7gX/dJMcaezfTAR/WHvFIztE0LdHUi71tKUEaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdY7gX/dJMcaezfTAR/WHvFIztE0LdHUi71tKUEaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdY7gX%2FdJMcaezfTAR%2FWHvFIztE0LdHUi71tKUEaK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;957&quot; height=&quot;207&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;749&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMcuzb/dJMcaezfTAV/RGEalTa5YSnNm8kRWVoND1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMcuzb/dJMcaezfTAV/RGEalTa5YSnNm8kRWVoND1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMcuzb/dJMcaezfTAV/RGEalTa5YSnNm8kRWVoND1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMcuzb%2FdJMcaezfTAV%2FRGEalTa5YSnNm8kRWVoND1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;957&quot; height=&quot;749&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;749&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.186%;&quot;&gt;모든 최적화가 그렇듯 초기 글로벌 포즈가 없으면 깨진다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;여기서도 SMAL의 글로벌 포즈만 먼저 매 프레임 피팅을 해둔다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이건 CSE에서 같이 뽑을 수 있는 keypoint도 있고 CSE map 자체도 있기에 파라미터만 잘 잠궈둔다면 가능.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 65.6977%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;669&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/claX9y/dJMcafrolsR/VIYS6H23IQYUnSyHUTagY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/claX9y/dJMcafrolsR/VIYS6H23IQYUnSyHUTagY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/claX9y/dJMcafrolsR/VIYS6H23IQYUnSyHUTagY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclaX9y%2FdJMcafrolsR%2FVIYS6H23IQYUnSyHUTagY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;950&quot; height=&quot;669&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;669&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dg8Ur/dJMcaa4G0uf/oKA98YygXMugvCRqQHJhV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dg8Ur/dJMcaa4G0uf/oKA98YygXMugvCRqQHJhV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dg8Ur/dJMcaa4G0uf/oKA98YygXMugvCRqQHJhV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDg8Ur%2FdJMcaa4G0uf%2FoKA98YygXMugvCRqQHJhV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;942&quot; height=&quot;235&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 34.3023%;&quot;&gt;global pose를 찾아뒀으니 이제 나머지 관절만 relative form으로 최적화 해줬다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;여기서 카메라 포즈는 이미 알고 있다는 가정&lt;br /&gt;&lt;br /&gt;사실 이 카메라 포즈를 알고 있다는 가정이 엄청 큰 건데 이게 더 문제될 것 같기도.&lt;br /&gt;&lt;br /&gt;개가 돌아다니는 영상을 찍었는데 틈틈히 보이는 것만 갖고 정확한 카메라 포즈를 SfM 푼다는 것이 가능할지... VGGSfM 같은걸 쓰라고 하는데 잘 될까?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;1245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc59zj/dJMcabCwTef/wHUZaop9pW96rbkK1S2Bo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc59zj/dJMcabCwTef/wHUZaop9pW96rbkK1S2Bo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc59zj/dJMcabCwTef/wHUZaop9pW96rbkK1S2Bo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc59zj%2FdJMcabCwTef%2FwHUZaop9pW96rbkK1S2Bo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;955&quot; height=&quot;1245&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;1245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;1) CSE dense map이 있으니 렌더링된 결과랑 직접 비교&lt;br /&gt;&lt;br /&gt;2) CSE 네트워크가 keypoint도 몇개 뱉어주는데 이걸 비교&lt;br /&gt;&lt;br /&gt;3) texture까지 포함해서 렌더링했을 때 입력 이미지와 비교&lt;br /&gt;&lt;br /&gt;4) 마스크가 비슷하도록 비교&lt;br /&gt;&lt;br /&gt;5) SMAL 파라미터가 너무 튀지 않도록 억제.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;1534&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/roS6I/dJMcadAlz6B/H4qrNt1vZGkXCY2lPcsOu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/roS6I/dJMcadAlz6B/H4qrNt1vZGkXCY2lPcsOu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/roS6I/dJMcadAlz6B/H4qrNt1vZGkXCY2lPcsOu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FroS6I%2FdJMcadAlz6B%2FH4qrNt1vZGkXCY2lPcsOu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;949&quot; height=&quot;1534&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;1534&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;성능이 안좋아보여도 개가 들어가니 귀여워 보이는 마법.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EHVEO/dJMcafSsZUu/fOcl3P5ejKpzeoMKPWCGzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EHVEO/dJMcafSsZUu/fOcl3P5ejKpzeoMKPWCGzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EHVEO/dJMcafSsZUu/fOcl3P5ejKpzeoMKPWCGzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEHVEO%2FdJMcafSsZUu%2FfOcl3P5ejKpzeoMKPWCGzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;946&quot; height=&quot;385&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTHvI9/dJMcafLHlwp/8ttBoGQfnHXEjPXYJXq2Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTHvI9/dJMcafLHlwp/8ttBoGQfnHXEjPXYJXq2Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTHvI9/dJMcafLHlwp/8ttBoGQfnHXEjPXYJXq2Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTHvI9%2FdJMcafLHlwp%2F8ttBoGQfnHXEjPXYJXq2Fk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;946&quot; height=&quot;385&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JMXVC/dJMcahW27Fe/Qsk0tZbxFjXzXXbUKu4Mqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JMXVC/dJMcahW27Fe/Qsk0tZbxFjXzXXbUKu4Mqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JMXVC/dJMcahW27Fe/Qsk0tZbxFjXzXXbUKu4Mqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJMXVC%2FdJMcahW27Fe%2FQsk0tZbxFjXzXXbUKu4Mqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;950&quot; height=&quot;256&quot; data-origin-width=&quot;950&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Others</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/731</guid>
      <comments>https://jseobyun.tistory.com/731#entry731comment</comments>
      <pubDate>Mon, 10 Nov 2025 18:14:51 +0900</pubDate>
    </item>
    <item>
      <title>DualPM: Dual Posed-Canonical Point Maps for 3D Shape and Pose Reconstruction</title>
      <link>https://jseobyun.tistory.com/730</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;644&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpv4Ja/dJMcaiaAhMS/ALkMmXyovDH6uRkkKiuzO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpv4Ja/dJMcaiaAhMS/ALkMmXyovDH6uRkkKiuzO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpv4Ja/dJMcaiaAhMS/ALkMmXyovDH6uRkkKiuzO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbpv4Ja%2FdJMcaiaAhMS%2FALkMmXyovDH6uRkkKiuzO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;429&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;644&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;point map representation이 인기를 얻으면서 누군가는 canonical point map을 다룰 것이라고 바로 생각했었는데, 역시나 있다. 정말 naive하게 camera space point를 예측함과 동시에 canonical space point를 픽셀 별로 예측하는 걸 추가한 것. 새로운 formulation 없이 output에 추가되었다는 것은 좀 아쉬운 점.&amp;nbsp;GT가 존재해야만 풀 수 있는 문제이므로, 일반화할 수 없는게 아쉽다. 뭔가 self-supervised 요소를 넣어서 풀었다면 확장이 가능하니까 더 좋았을 것 같은데... 누군가 곧 하겠지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deformed-canonical 구도에서 주 대상은 역사적으로 사람이었는데, 사람은 변화 자유도가 너무 높을 뿐더러 학습시킬 만큼 충분한 4D 데이터셋이 없다. 따라서 사족 동물 synthetic 데이터로 간소화해서 컨셉만 보여준 논문이라고 보면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d63xel/dJMcaaDCAXz/nwwYoAtZWuwFXWA4sjKZVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d63xel/dJMcaaDCAXz/nwwYoAtZWuwFXWA4sjKZVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d63xel/dJMcaaDCAXz/nwwYoAtZWuwFXWA4sjKZVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd63xel%2FdJMcaaDCAXz%2FnwwYoAtZWuwFXWA4sjKZVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1127&quot; height=&quot;484&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDkQRy/dJMcadAlzk1/lxs7hUGrP9ymEhyfwhxb4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDkQRy/dJMcadAlzk1/lxs7hUGrP9ymEhyfwhxb4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDkQRy/dJMcadAlzk1/lxs7hUGrP9ymEhyfwhxb4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDkQRy%2FdJMcadAlzk1%2Flxs7hUGrP9ymEhyfwhxb4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;163&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;66&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pcej2/dJMcag4Urak/xZskOosF13OPo4ZoAkt3YK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pcej2/dJMcag4Urak/xZskOosF13OPo4ZoAkt3YK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pcej2/dJMcag4Urak/xZskOosF13OPo4ZoAkt3YK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpcej2%2FdJMcag4Urak%2FxZskOosF13OPo4ZoAkt3YK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;66&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;66&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;DINOv2 feature로 시작해서, 픽셀 별로 canonical point 먼저 예측하고, 이게 다시 입력으로 들어가서 deformed point를 예측하게되는 순서.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이 때 visible point만 하는게 아니라 occluded point도 다루고 싶어했기 대문에 point를 2N개 예측하도록 했다. (2N인 이유는 들어갔다 나왔다. surface에 2번 부딪힌다는 가정이기 때문)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;851&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJQJwt/dJMcaiaAhSp/HkQd3hgrUBMYdPdqcT6lQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJQJwt/dJMcaiaAhSp/HkQd3hgrUBMYdPdqcT6lQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJQJwt/dJMcaiaAhSp/HkQd3hgrUBMYdPdqcT6lQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJQJwt%2FdJMcaiaAhSp%2FHkQd3hgrUBMYdPdqcT6lQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;851&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;851&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k3siy/dJMcaiaAhSu/6c1k63BaYuYKJOcUwddYDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k3siy/dJMcaiaAhSu/6c1k63BaYuYKJOcUwddYDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k3siy/dJMcaiaAhSu/6c1k63BaYuYKJOcUwddYDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3siy%2FdJMcaiaAhSu%2F6c1k63BaYuYKJOcUwddYDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;545&quot; height=&quot;267&quot; data-origin-width=&quot;545&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;내용은 진짜 이게 끝이다. multiview image에서 correspondence끼리는 canonical point가 같아야 된다는 건 당연한 사실.&lt;br /&gt;&lt;br /&gt;뒤에 이걸 loss로 쓰진 않는다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;649&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6mAb4/dJMcadAlzmv/nOVCt6ONHvC983PEc7SqW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6mAb4/dJMcadAlzmv/nOVCt6ONHvC983PEc7SqW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6mAb4/dJMcadAlzmv/nOVCt6ONHvC983PEc7SqW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6mAb4%2FdJMcadAlzmv%2FnOVCt6ONHvC983PEc7SqW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;649&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bubtKZ/dJMcaap5nQy/kP5I9xqDsvcAr6qu3GKaP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bubtKZ/dJMcaap5nQy/kP5I9xqDsvcAr6qu3GKaP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bubtKZ/dJMcaap5nQy/kP5I9xqDsvcAr6qu3GKaP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbubtKZ%2FdJMcaap5nQy%2FkP5I9xqDsvcAr6qu3GKaP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;249&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;249&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;canonical Q 먼저 찾고 그걸 입력으로 써서 deformed P 찾고.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;GT가 있으니 그냥 l2 loss다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;839&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WtZ9K/dJMcaboZGnp/XibWmnVPoS1BNOQFuF0NZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WtZ9K/dJMcaboZGnp/XibWmnVPoS1BNOQFuF0NZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WtZ9K/dJMcaboZGnp/XibWmnVPoS1BNOQFuF0NZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWtZ9K%2FdJMcaboZGnp%2FXibWmnVPoS1BNOQFuF0NZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;544&quot; height=&quot;839&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;839&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mThWS/dJMcahJv0ul/ySfWb9N0023K9Q2FKxvzi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mThWS/dJMcahJv0ul/ySfWb9N0023K9Q2FKxvzi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mThWS/dJMcahJv0ul/ySfWb9N0023K9Q2FKxvzi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmThWS%2FdJMcahJv0ul%2FySfWb9N0023K9Q2FKxvzi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;395&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;가려진 점도 추정해야 canonical space가 더 밀도있게 찾아진다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;visible region만 추정하면 deformed space야 잘 찾아지겠지만 반쪽짜리 canonical point가 얻어질 것.&lt;br /&gt;&lt;br /&gt;adaptive하게 추정하는 것은 아니고 2N개 를 추가 추정하는 것으로 열어두고 (거리순으로 정렬된 형태로) opacity를 0-1로 같이 추정해서 알아서 도태되도록 설정함.&lt;br /&gt;&lt;br /&gt;정말 naive&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/54uxh/dJMcaeeXbua/iSjDtvPV7b8ad8Wb0aFkXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/54uxh/dJMcaeeXbua/iSjDtvPV7b8ad8Wb0aFkXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/54uxh/dJMcaeeXbua/iSjDtvPV7b8ad8Wb0aFkXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F54uxh%2FdJMcaeeXbua%2FiSjDtvPV7b8ad8Wb0aFkXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;547&quot; height=&quot;330&quot; data-origin-width=&quot;547&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;601&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJonLA/dJMcacamRi0/aHKY0jaH3JEK9alhtp3Q01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJonLA/dJMcacamRi0/aHKY0jaH3JEK9alhtp3Q01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJonLA/dJMcacamRi0/aHKY0jaH3JEK9alhtp3Q01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJonLA%2FdJMcacamRi0%2FaHKY0jaH3JEK9alhtp3Q01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;601&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;601&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;br /&gt;2N이니까 xyz xyz in out 총 6채널이고 opacity 1개 총 7개값을 예측하도록 설정했다.&amp;nbsp;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ed8Vbt/dJMcaesuhSv/9JliLIcytk6eJo6Y67UpbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ed8Vbt/dJMcaesuhSv/9JliLIcytk6eJo6Y67UpbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ed8Vbt/dJMcaesuhSv/9JliLIcytk6eJo6Y67UpbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fed8Vbt%2FdJMcaesuhSv%2F9JliLIcytk6eJo6Y67UpbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;550&quot; height=&quot;238&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;데이터는 위에 보다시피 말이다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.9984%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1124&quot; data-origin-height=&quot;1346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kBPds/dJMcaiPbVno/QXkQ3LzWpkUdAWsyL75eFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kBPds/dJMcaiPbVno/QXkQ3LzWpkUdAWsyL75eFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kBPds/dJMcaiPbVno/QXkQ3LzWpkUdAWsyL75eFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBPds%2FdJMcaiPbVno%2FQXkQ3LzWpkUdAWsyL75eFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1124&quot; height=&quot;1346&quot; data-origin-width=&quot;1124&quot; data-origin-height=&quot;1346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bddUT3/dJMcadG69AD/sAno0M0drEaaYZ3iNC7x0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bddUT3/dJMcadG69AD/sAno0M0drEaaYZ3iNC7x0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bddUT3/dJMcadG69AD/sAno0M0drEaaYZ3iNC7x0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbddUT3%2FdJMcadG69AD%2FsAno0M0drEaaYZ3iNC7x0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1133&quot; height=&quot;380&quot; data-origin-width=&quot;1133&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;342&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5vCMk/dJMcajHkAmy/CrR2PlLO0wnCCeyI9KLQfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5vCMk/dJMcajHkAmy/CrR2PlLO0wnCCeyI9KLQfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5vCMk/dJMcajHkAmy/CrR2PlLO0wnCCeyI9KLQfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5vCMk%2FdJMcajHkAmy%2FCrR2PlLO0wnCCeyI9KLQfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;554&quot; height=&quot;342&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;342&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;사실 좋은 표현법인지는 모르겠다.&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2HTR6/dJMcadG69AS/m01c3muEDYlpPBrXk9Qp40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2HTR6/dJMcadG69AS/m01c3muEDYlpPBrXk9Qp40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2HTR6/dJMcadG69AS/m01c3muEDYlpPBrXk9Qp40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2HTR6%2FdJMcadG69AS%2Fm01c3muEDYlpPBrXk9Qp40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;474&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;474&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Others</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/730</guid>
      <comments>https://jseobyun.tistory.com/730#entry730comment</comments>
      <pubDate>Mon, 10 Nov 2025 17:51:04 +0900</pubDate>
    </item>
    <item>
      <title>curope, RoPE cuda version 설치 실패하는 문제</title>
      <link>https://jseobyun.tistory.com/729</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;DUST3R 붐의 기저 연구인 &lt;a href=&quot;https://github.com/naver/croco&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;CrocoV2&lt;/a&gt; 에서 사용하면서 요새 간간히 사용하는게 보이는 RoPE. 속도가 일반 PE보다 느리긴 해서 학습 효율을 위해 CUDA로 구현된 코드가 같이 제공된다. Croco든 dust3r든 human3r인든 같은 코드를 쓰고 설치는 웬만하면 다음과 같이만 안내된다.&lt;/p&gt;
&lt;pre id=&quot;code_1762326569384&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd models/curope/
python setup.py build_ext --inplace
cd ../../&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 한 방에 안 될때가 많다는 것. 오류명을 봐도 뭐가 문젠지 몰라서 감을 못잡다가 최근에 우연히 해결했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;원인&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 torch 버전 문젠데 torch 버전이 올라가면서 못 따라오는 문제. 내 생각엔 2.6 버전 이후부터 이런 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;tokens.type()라고 쓰는 문법이 deprecated 돼서 그렇다. 그 return값인 at::DeprecatedTypeProperties도 당연히 없고, 없는 형을 c10::ScalarType으로 변환하라고 하니 터져버리는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;해결법&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;kernel.cu 파일에서 한 줄 바꿔주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1762326836700&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    98        const int N_BLOCKS = B * N; // each block takes care of H*D values
    99        const int SHARED_MEM = sizeof(float) * (D + D/4);
   100    
   101 -      AT_DISPATCH_FLOATING_TYPES_AND_HALF(tokens.type(), &quot;rope_2d_cuda&quot;, ([&amp;amp;] {
   101 +      AT_DISPATCH_FLOATING_TYPES_AND_HALF(tokens.scalar_type(), &quot;rope_2d_cuda&quot;, ([&amp;amp;] {
   102            rope_2d_cuda_kernel&amp;lt;scalar_t&amp;gt; &amp;lt;&amp;lt;&amp;lt;N_BLOCKS, THREADS_PER_BLOCK, SHARED_MEM&amp;gt;&amp;gt;&amp;gt; (
   103                //tokens.data_ptr&amp;lt;scalar_t&amp;gt;(), 
   104                tokens.packed_accessor32&amp;lt;scalar_t,4,torch::RestrictPtrTraits&amp;gt;(),
   105                pos.data_ptr&amp;lt;int64_t&amp;gt;(),
   106                base, fwd); //, N, H, D );
   107        }));
   108    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정 위치를 그냥 복붙하면 위와 같다.&amp;nbsp;101번째 줄만 바꿔주고 저장한 뒤, 똑같이 설치하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Trouble/Python, Pytorch</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/729</guid>
      <comments>https://jseobyun.tistory.com/729#entry729comment</comments>
      <pubDate>Wed, 5 Nov 2025 16:15:34 +0900</pubDate>
    </item>
    <item>
      <title>ImHead: A Large-scale Implicit Morphable Model for Localized Head Modeling</title>
      <link>https://jseobyun.tistory.com/728</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cywtGr/dJMcaelECQZ/VScIDCKfcmh7ilt8G2qCF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cywtGr/dJMcaelECQZ/VScIDCKfcmh7ilt8G2qCF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cywtGr/dJMcaelECQZ/VScIDCKfcmh7ilt8G2qCF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcywtGr%2FdJMcaelECQZ%2FVScIDCKfcmh7ilt8G2qCF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1170&quot; height=&quot;362&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;362&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩌면 NPHM의 후속작이라고 불릴 수 있을 것 같은데, 약간의 Local controllability를 향상시키고 데이터셋의 범위를 크기 넓혀서 만들었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터셋을 4000 id 규모로 공개하고 학습에 이용했는데, 직접 스캔한 것을 이렇게 공개했나 하고 대단하다고 생각했었는데 있는 안면부 데이터를 completion해서 사용했다.&amp;nbsp; MimicMe 데이터셋에 NPHM을 피팅해서 사용하는 방식 + 약간의 후처리를 곁들였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kSS4L/dJMcajN17uR/unHlVfnH9S9YwCXtNsQfi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kSS4L/dJMcajN17uR/unHlVfnH9S9YwCXtNsQfi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kSS4L/dJMcajN17uR/unHlVfnH9S9YwCXtNsQfi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSS4L%2FdJMcajN17uR%2FunHlVfnH9S9YwCXtNsQfi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;424&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqy7bG/dJMcaj8kSLi/PYkEFiYKo9FvgFdOMke1f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqy7bG/dJMcaj8kSLi/PYkEFiYKo9FvgFdOMke1f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqy7bG/dJMcaj8kSLi/PYkEFiYKo9FvgFdOMke1f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcqy7bG%2FdJMcaj8kSLi%2FPYkEFiYKo9FvgFdOMke1f1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;537&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;537&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;1. mimicme에서 4000개 subject 20개 expression 얼굴 스캔을 가져옴&lt;br /&gt;&lt;br /&gt;2. FLAME fitting해서 좌표계 맞추고 스케일 맞추고.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3. NPHM을 피팅함.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;4. NPHM mesh를 얻어낸 다음, 얼굴부만 NICP로 한 번 더 업데이트.&lt;br /&gt;&lt;br /&gt;머리통 완성~&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 788px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 427px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 427px;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCxylO/dJMcacVFXuB/Qdsutu3KhRnfbbFLUR2imK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCxylO/dJMcacVFXuB/Qdsutu3KhRnfbbFLUR2imK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCxylO/dJMcacVFXuB/Qdsutu3KhRnfbbFLUR2imK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCxylO%2FdJMcacVFXuB%2FQdsutu3KhRnfbbFLUR2imK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1159&quot; height=&quot;584&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;584&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 361px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 361px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SDZxH/dJMcahvUJBP/ZKTSuiwPb6RrGNVcVcy94k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SDZxH/dJMcahvUJBP/ZKTSuiwPb6RrGNVcVcy94k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SDZxH/dJMcahvUJBP/ZKTSuiwPb6RrGNVcVcy94k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSDZxH%2FdJMcahvUJBP%2FZKTSuiwPb6RrGNVcVcy94k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;340&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EFqON/dJMcahvUJBS/24iaQc6CITySQKOwyEM9qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EFqON/dJMcahvUJBS/24iaQc6CITySQKOwyEM9qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EFqON/dJMcahvUJBS/24iaQc6CITySQKOwyEM9qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEFqON%2FdJMcahvUJBS%2F24iaQc6CITySQKOwyEM9qk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;150&quot; data-origin-width=&quot;566&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 361px;&quot;&gt;그림만 봐서는 유사해 보이나, NPHM 과의 차이는 local id를 많이 뒀다는 것이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;global id를 local id로 분산시키는 방식으로 구조를 짜서 local id를 교체하는 방식으로 local control을 강화했다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;619&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOIyUJ/dJMcaelECZL/kpXtlR5cJo1umSBUFOOKSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOIyUJ/dJMcaelECZL/kpXtlR5cJo1umSBUFOOKSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOIyUJ/dJMcaelECZL/kpXtlR5cJo1umSBUFOOKSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOIyUJ%2FdJMcaelECZL%2FkpXtlR5cJo1umSBUFOOKSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;619&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;619&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;global id만 쓰면 global id 안에 각종 부분 정보가 aggregation되어 있을테니 당연히 분리가 어려움. control도 어렵고.&lt;br /&gt;&lt;br /&gt;따라서 global id는 그대로 쓰되, local id로 쪼개주는 네트워크를 둠.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wC6On/dJMcaaQ5LaX/eD3AZj0w7KjayjyMjIKRtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wC6On/dJMcaaQ5LaX/eD3AZj0w7KjayjyMjIKRtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wC6On/dJMcaaQ5LaX/eD3AZj0w7KjayjyMjIKRtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwC6On%2FdJMcaaQ5LaX%2FeD3AZj0w7KjayjyMjIKRtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;429&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;local id는 각각 개별 local network에 의해 처리되고 local feature로 분리됨.&lt;br /&gt;&lt;br /&gt;local id 별로 정보 공유가 아예없기 때문에 앞에 global id to local id의 분리력이 강조됨.&lt;br /&gt;&lt;br /&gt;local part는 총 39개로 위 그림에서 보이는 점 위치와 같다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vCHvn/dJMcajHgwAO/oQZaEhNVGqW55t22NYpwFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vCHvn/dJMcajHgwAO/oQZaEhNVGqW55t22NYpwFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vCHvn/dJMcajHgwAO/oQZaEhNVGqW55t22NYpwFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvCHvn%2FdJMcajHgwAO%2FoQZaEhNVGqW55t22NYpwFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;281&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;707&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/II6jq/dJMcaho88RS/Eb28Ih8DpHP3LkKYhSMwb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/II6jq/dJMcaho88RS/Eb28Ih8DpHP3LkKYhSMwb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/II6jq/dJMcaho88RS/Eb28Ih8DpHP3LkKYhSMwb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FII6jq%2FdJMcaho88RS%2FEb28Ih8DpHP3LkKYhSMwb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;707&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;707&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;local feature는 또 해당 local region에 해당하는 keypoint에 relative position encoding된 query와 함께 한 번 더 처리됨&lt;br /&gt;&lt;br /&gt;파트 별 f_j가 최종&lt;br /&gt;&lt;br /&gt;부수적으로 local id가 들어갔을 때 keypoint 뱉어주는 landmark net도 같이 학습함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;775&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIUIV/dJMcafdNk85/kSRI1X0IHyJg3tbJfYE4i1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIUIV/dJMcafdNk85/kSRI1X0IHyJg3tbJfYE4i1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIUIV/dJMcafdNk85/kSRI1X0IHyJg3tbJfYE4i1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIUIV%2FdJMcafdNk85%2FkSRI1X0IHyJg3tbJfYE4i1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;775&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;775&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;파트 39개 마다 겹치는 영역이 없는게 아니기 때문에 블렌딩이 필요한데 최종 sdf를 블렌딩하는게 아니라 feature level에서 블렌딩한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;landmark와 query가 떨어진 거리를 weight 삼아 local feature들을 aggregation해서 하나로 뭉쳐주고&lt;br /&gt;&lt;br /&gt;decoder가 이걸 sdf로 바꿔줌.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTd5A3/dJMcacg4qgb/9LX5WuIuYM1wkUluKtMtt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTd5A3/dJMcacg4qgb/9LX5WuIuYM1wkUluKtMtt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTd5A3/dJMcacg4qgb/9LX5WuIuYM1wkUluKtMtt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTd5A3%2FdJMcacg4qgb%2F9LX5WuIuYM1wkUluKtMtt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;886&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;말이 길지만 observation-to-canoncial 즉 표정 있는 상태에서 표정 없는 상태로 보내는 방향의 expression warping이 유리하다는 점을 얘기하는 것&lt;br /&gt;&lt;br /&gt;우리가 실제 스캔을 갖고 있고 이걸 모델로 표현하고자 하면 표정이 있는 스캔 데이터를 canonicalize하는 방향임.&lt;br /&gt;&lt;br /&gt;네트워크 자체도 입력이 이 방향으로 맞춰져 있어서 스캔을 때려넣고 바로 쓸 수 있어서 좋음.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;scan에서 뽑은 query + global id, global expression이 들어가면 displacment vector가 나오는 식.&lt;br /&gt;&lt;br /&gt;이걸 scan query에 더해주면 canonical query가 나온다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0x2VK/dJMcaiVToYv/7QjOIVoL7yxaJV7V1K86UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0x2VK/dJMcaiVToYv/7QjOIVoL7yxaJV7V1K86UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0x2VK/dJMcaiVToYv/7QjOIVoL7yxaJV7V1K86UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0x2VK%2FdJMcaiVToYv%2F7QjOIVoL7yxaJV7V1K86UK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;602&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qw34g/dJMcaawMY9G/kKPvpMS536Kb2SLVBzAYk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qw34g/dJMcaawMY9G/kKPvpMS536Kb2SLVBzAYk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qw34g/dJMcaawMY9G/kKPvpMS536Kb2SLVBzAYk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQw34g%2FdJMcaawMY9G%2FkKPvpMS536Kb2SLVBzAYk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;252&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;학습을 surface point의 SDF만 0으로 만들도록 해서 했다는데 이게 가능한건지 싶다.&lt;br /&gt;&lt;br /&gt;전부 다 0으로 가는 식으로 학습될 수도 있으니 off-the-surface point에 sdf를 같이 걸어주곤 하는데 여긴 안 했다고 한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이외에는 eikonal loss나 landmark loss 정도 추가하고 학습함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 353px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 353px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 353px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;457&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zP5DN/dJMb99SbrGH/KYnibur3BJLOfwJlHeNQWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zP5DN/dJMb99SbrGH/KYnibur3BJLOfwJlHeNQWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zP5DN/dJMb99SbrGH/KYnibur3BJLOfwJlHeNQWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzP5DN%2FdJMb99SbrGH%2FKYnibur3BJLOfwJlHeNQWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;457&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cscgAP/dJMcaiVTo2I/AAGJTqixKDmy2jYEG3ZCc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cscgAP/dJMcaiVTo2I/AAGJTqixKDmy2jYEG3ZCc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cscgAP/dJMcaiVTo2I/AAGJTqixKDmy2jYEG3ZCc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcscgAP%2FdJMcaiVTo2I%2FAAGJTqixKDmy2jYEG3ZCc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;328&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 353px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;327&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xBx0z/dJMb99SbrGL/1KIerkGawxSImnfmQ3rI40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xBx0z/dJMb99SbrGL/1KIerkGawxSImnfmQ3rI40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xBx0z/dJMb99SbrGL/1KIerkGawxSImnfmQ3rI40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxBx0z%2FdJMb99SbrGL%2F1KIerkGawxSImnfmQ3rI40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;567&quot; height=&quot;327&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;327&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK8Lu7/dJMb99SbrGV/yr4gCvGAYylhA42sXCVZIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK8Lu7/dJMb99SbrGV/yr4gCvGAYylhA42sXCVZIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK8Lu7/dJMb99SbrGV/yr4gCvGAYylhA42sXCVZIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK8Lu7%2FdJMb99SbrGV%2Fyr4gCvGAYylhA42sXCVZIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;442&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;752&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CSDj5/dJMb99SbrHb/PVcUhKlRe7aGWZ9pZMnv5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CSDj5/dJMb99SbrHb/PVcUhKlRe7aGWZ9pZMnv5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CSDj5/dJMb99SbrHb/PVcUhKlRe7aGWZ9pZMnv5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCSDj5%2FdJMb99SbrHb%2FPVcUhKlRe7aGWZ9pZMnv5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1186&quot; height=&quot;752&quot; data-origin-width=&quot;1186&quot; data-origin-height=&quot;752&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;NPHM보다 잘되는 것은 데이터의 확장이 제일 클 것 같고, local id의 추가라기보단 학습의 완성도 차이일 것 같다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9QetB/dJMcac2rygv/xWUs3GopRxJCzvSzskTjDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9QetB/dJMcac2rygv/xWUs3GopRxJCzvSzskTjDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9QetB/dJMcac2rygv/xWUs3GopRxJCzvSzskTjDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9QetB%2FdJMcac2rygv%2FxWUs3GopRxJCzvSzskTjDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1158&quot; height=&quot;451&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;451&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;799&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dyh6C/dJMcaesqdsF/ddDV3Q6Y1IMSVefMKOxHBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dyh6C/dJMcaesqdsF/ddDV3Q6Y1IMSVefMKOxHBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dyh6C/dJMcaesqdsF/ddDV3Q6Y1IMSVefMKOxHBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDyh6C%2FdJMcaesqdsF%2FddDV3Q6Y1IMSVefMKOxHBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;799&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;799&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uidEq/dJMcacaiPBh/w2EKKtVwLOjK20byRLjqJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uidEq/dJMcacaiPBh/w2EKKtVwLOjK20byRLjqJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uidEq/dJMcacaiPBh/w2EKKtVwLOjK20byRLjqJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuidEq%2FdJMcacaiPBh%2Fw2EKKtVwLOjK20byRLjqJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;244&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;local id를 분리를 빡세개 하기 때문에 correspondence 가 좀 더 잘 유지되지 않을까 싶다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Human</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/728</guid>
      <comments>https://jseobyun.tistory.com/728#entry728comment</comments>
      <pubDate>Mon, 27 Oct 2025 18:07:51 +0900</pubDate>
    </item>
    <item>
      <title>Generative Human Geometry Distribution</title>
      <link>https://jseobyun.tistory.com/727</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;784&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLEv6X/dJMcaiVTnEx/q4kzTkKMhYz0tKyFQiUUlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLEv6X/dJMcaiVTnEx/q4kzTkKMhYz0tKyFQiUUlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLEv6X/dJMcaiVTnEx/q4kzTkKMhYz0tKyFQiUUlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLEv6X%2FdJMcaiVTnEx%2Fq4kzTkKMhYz0tKyFQiUUlk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;981&quot; height=&quot;784&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;784&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jseobyun.tistory.com/726&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Geometry Distributions&lt;/a&gt; 을 준비하면서 동시에 준비한 듯한 논문. 데이터의 표현법을 고민했으니, 이 표현법을 사용해서 뭔가 새로운 시도를 해보고 싶었을 것이다. 그 결과 3D generative model의 새로운 접근을 보여준다. 기존 방식들은 SDF representation을 사용하므로 학습이 굉장히 어렵다. surface point sampling 방식에 따라서, 그리고 네트워크 크기에 따라서 말이다.&amp;nbsp;저자들이 이전 논문에서 제안한 방식은 학습만 된다면 데이터를 효과적으로 표현하는 대체재를 만들기 때문에&amp;nbsp; 좀 더 효율적인 모델 학습이 가능할 것으로 기대된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 budget의 한계인지 사람 데이터로 scope를 줄여서 시도했다. objaverse 같은 수억 데이터를 직접 geom distr로 표현해서 뭔가를 시도해보기엔 죽기 전에 안 끝날 것이기 때문에 범위를 확 줄였고, 이미 distribution으로 표현된 데이터군을 선별한 듯 하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SMPL로 이미 사람 데이터는 distribution화 되어있으므로, 별도로 geom distr를 scracth부터 학습하지 않고 SMPL distribution+feature을 decoding했을 때 surface point가 나오도록 학습을 한 뒤, feature만 generative model로 바꿔주는 식의 접근을 했다. 다시 말하면 SMPL에 입힐 변형량을 3D gen하는 방식.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qwMlZ/dJMcadtvS6l/t3XAXygjgqRPqChgTE5Fb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qwMlZ/dJMcadtvS6l/t3XAXygjgqRPqChgTE5Fb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qwMlZ/dJMcadtvS6l/t3XAXygjgqRPqChgTE5Fb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqwMlZ%2FdJMcadtvS6l%2Ft3XAXygjgqRPqChgTE5Fb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;412&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;flow matching이 대세긴 대세인가 보다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;diffusion model의 한 패러다임인데, 네트워크가 noise만 예측하는 것이 아니라 변형량 자체를 예측하도록 하는 방식.&lt;br /&gt;&lt;br /&gt;foward-inverse 추적이 가능함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvKzKr/dJMcaj1zhfM/5AvykBGgHkmJ39gohFG7S0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvKzKr/dJMcaj1zhfM/5AvykBGgHkmJ39gohFG7S0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvKzKr/dJMcaj1zhfM/5AvykBGgHkmJ39gohFG7S0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvKzKr%2FdJMcaj1zhfM%2F5AvykBGgHkmJ39gohFG7S0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;981&quot; height=&quot;323&quot; data-origin-width=&quot;981&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HK0GN/dJMcaj1zhfH/iviBTeorj9vYcVWZLSw6b1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HK0GN/dJMcaj1zhfH/iviBTeorj9vYcVWZLSw6b1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HK0GN/dJMcaj1zhfH/iviBTeorj9vYcVWZLSw6b1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHK0GN%2FdJMcaj1zhfH%2FiviBTeorj9vYcVWZLSw6b1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;471&quot; height=&quot;334&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;334&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9tdnO/dJMb99SbqL8/UTtf84eRAkuCNzWnotAYjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9tdnO/dJMb99SbqL8/UTtf84eRAkuCNzWnotAYjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9tdnO/dJMb99SbqL8/UTtf84eRAkuCNzWnotAYjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9tdnO%2FdJMb99SbqL8%2FUTtf84eRAkuCNzWnotAYjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;344&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;일단 데이터의 distribution이 존재하는 사람 데이터로 시작.&lt;br /&gt;&lt;br /&gt;SMPL fitting이 완료된 데이터를 SMPL vertex map + feature map으로 변환해서 준비해둔다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;이를 위해서 (a)와 같은 denoiser 이전의 encoder + upsampler가 추가된다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;샘플마다 feature map을 부여하고, 학습 과정에서 샘플 별 feature map이 학습되도록 함.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;나중에 이 feature map들만 싹 모아서 diffusion model의 학습 데이터로 이용.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B7q6B/dJMcaaDyywa/Clao2oT4rUcYsqKGTAP410/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B7q6B/dJMcaaDyywa/Clao2oT4rUcYsqKGTAP410/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B7q6B/dJMcaaDyywa/Clao2oT4rUcYsqKGTAP410/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB7q6B%2FdJMcaaDyywa%2FClao2oT4rUcYsqKGTAP410%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;471&quot; height=&quot;326&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Geom distr는 normal distribution을 source distribution으로 가정했지만 여기선 사람 데이터 distribution이 존재하므로 굳이 normal로 안 쓰고 SMPL distribution을 쓴다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWQj8e/dJMcaaQ5JTY/Gbo29CAqpyNJZOMJwsPDXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWQj8e/dJMcaaQ5JTY/Gbo29CAqpyNJZOMJwsPDXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWQj8e/dJMcaaQ5JTY/Gbo29CAqpyNJZOMJwsPDXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWQj8e%2FdJMcaaQ5JTY%2FGbo29CAqpyNJZOMJwsPDXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;573&quot; data-origin-width=&quot;476&quot; data-origin-height=&quot;573&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;사람 스캔 데이터 별로 SMPL 피팅이 완료되어있는데 SMPL surface point와 nearest point를 찾아서 매칭을 해둔다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;여기서 smpl surface point는 무한개 뽑을 수 있기 때문에 pair가 사실 상 무한개 일것.&lt;br /&gt;&lt;br /&gt;이 때 관찰된 하나의 문제는 nearest 매칭으로만 하고 끝내면 one-to-many matching이 되는데 high frequency 영역에서는 scan의 많은 점들이 하나의 SMPL 점으로 매칭될 것.&lt;br /&gt;&lt;br /&gt;같은 값이 많이 학습 과정에서 들어가면 성능이 떨어지므로 매칭된 smpl 점을 살짝 NOISE 줘서 위치를 변화시켜 줌 .&lt;br /&gt;&lt;br /&gt;일종의 트릭.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/llbiN/dJMcafSoROb/FavQUvekBMVQL2Wihla9HK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/llbiN/dJMcafSoROb/FavQUvekBMVQL2Wihla9HK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/llbiN/dJMcafSoROb/FavQUvekBMVQL2Wihla9HK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FllbiN%2FdJMcafSoROb%2FFavQUvekBMVQL2Wihla9HK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;626&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;하나 더 surface point를 뽑을텐데, 사람이라는게 몸통은 잘 안움직이고 팔다리가 많이 움직이기 때문에 수치적으로 보면 xyz 중에 몸통 영역 xyz는 샘플이 자주되는 모양이 될테고 팔다리는 샘플이 자주 안되는 모양처럼 보일 것이다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;다시말해 학습에 보여지는 xyz 범위가 너무 뭉친다는 것.&lt;br /&gt;&lt;br /&gt;이를 해결하기 위해서 SCAN - SMPL different vector화 한다. 데이터를&lt;br /&gt;&lt;br /&gt;변형량+방향을 예측하도록 하므로 이제는 값의 범위가 몸통이건 팔이건 상관없이 비슷비슷해진다. 따라서 안정적인 수치 범위를 확보할 수 있음.&lt;br /&gt;&lt;br /&gt;이에 따라 네트워크의 출력도 변형량의 변화량으로 다시 정의됨.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKzT2S/dJMcagw0pl8/xSQzeWFoyYnbY8ZFKgOvYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKzT2S/dJMcagw0pl8/xSQzeWFoyYnbY8ZFKgOvYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKzT2S/dJMcagw0pl8/xSQzeWFoyYnbY8ZFKgOvYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKzT2S%2FdJMcagw0pl8%2FxSQzeWFoyYnbY8ZFKgOvYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;618&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;326&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qXi4H/dJMcaeTuyLl/m2FYvU5pLZAspKKYmyLdN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qXi4H/dJMcaeTuyLl/m2FYvU5pLZAspKKYmyLdN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qXi4H/dJMcaeTuyLl/m2FYvU5pLZAspKKYmyLdN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqXi4H%2FdJMcaeTuyLl%2Fm2FYvU5pLZAspKKYmyLdN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;326&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;326&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;위와 같이 정의해서 한번 학습이 완료되면 이제는 condition을 추가한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;image나 text, pose, normal condition이 추가될 수 있도록해서 한번 더 학습해준다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;사소한 트릭으로 입력 SMPL vertex map을 넣을 때 뒤에다가 segmentation map이랑 smpl normal map을 같이 넣어줬다고 함.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;571&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbJ1PC/dJMb995IBTc/OdFuHr8ryHKCiYuJ9cbWE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbJ1PC/dJMb995IBTc/OdFuHr8ryHKCiYuJ9cbWE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbJ1PC/dJMb995IBTc/OdFuHr8ryHKCiYuJ9cbWE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbJ1PC%2FdJMb995IBTc%2FOdFuHr8ryHKCiYuJ9cbWE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;475&quot; height=&quot;571&quot; data-origin-width=&quot;475&quot; data-origin-height=&quot;571&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHHVe/dJMcah3KFeh/afq4syMkK7ESh7MrKDmQA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHHVe/dJMcah3KFeh/afq4syMkK7ESh7MrKDmQA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHHVe/dJMcah3KFeh/afq4syMkK7ESh7MrKDmQA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHHVe%2FdJMcah3KFeh%2Fafq4syMkK7ESh7MrKDmQA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;471&quot; height=&quot;120&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;condition으로 dino feature도 들어감.&lt;br /&gt;&lt;br /&gt;데이터 셋은 THHUman이랑 4DDress 썼다고 함.&lt;br /&gt;&lt;br /&gt;데이터 규모가 크진 않다. feasibility만 보는 수준.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnrfiD/dJMcain3rbR/vZy4blvDJ44M4RBPwt0QC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnrfiD/dJMcain3rbR/vZy4blvDJ44M4RBPwt0QC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnrfiD/dJMcain3rbR/vZy4blvDJ44M4RBPwt0QC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnrfiD%2FdJMcain3rbR%2FvZy4blvDJ44M4RBPwt0QC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;483&quot; height=&quot;268&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;geom distr representation이 새로운 3D gen 모델에 사용될 수 있음을 이론적을 보인 것이 크고, 아직 성능은 갈 길이 먼 듯 하다.&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K0EWO/dJMb99SbqMm/M2LnreBa8pW2VFgF7ugmV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K0EWO/dJMb99SbqMm/M2LnreBa8pW2VFgF7ugmV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K0EWO/dJMb99SbqMm/M2LnreBa8pW2VFgF7ugmV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK0EWO%2FdJMb99SbqMm%2FM2LnreBa8pW2VFgF7ugmV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;470&quot; height=&quot;516&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/79qsx/dJMcafkyVaD/HPtNZdGLfT4Ya5RJnkhhuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/79qsx/dJMcafkyVaD/HPtNZdGLfT4Ya5RJnkhhuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/79qsx/dJMcafkyVaD/HPtNZdGLfT4Ya5RJnkhhuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F79qsx%2FdJMcafkyVaD%2FHPtNZdGLfT4Ya5RJnkhhuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;483&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Nearest matching할 때 SMPL point에 noise를 주는 트릭은 이것 때문일 것 같다.&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/omPkj/dJMcafkyVaH/0QapepLKnkmqRXw4LW8iC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/omPkj/dJMcafkyVaH/0QapepLKnkmqRXw4LW8iC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/omPkj/dJMcafkyVaH/0QapepLKnkmqRXw4LW8iC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FomPkj%2FdJMcafkyVaH%2F0QapepLKnkmqRXw4LW8iC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;479&quot; height=&quot;428&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;1065&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPUX25/dJMcajUNGXA/Sa4yLc3zmuStRiAkd2Dmr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPUX25/dJMcajUNGXA/Sa4yLc3zmuStRiAkd2Dmr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPUX25/dJMcajUNGXA/Sa4yLc3zmuStRiAkd2Dmr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPUX25%2FdJMcajUNGXA%2FSa4yLc3zmuStRiAkd2Dmr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;471&quot; height=&quot;1065&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;1065&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;810&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cW97zj/dJMcagRjbil/yrg4o7JCHmp4Kz4OaBJslK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cW97zj/dJMcagRjbil/yrg4o7JCHmp4Kz4OaBJslK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cW97zj/dJMcagRjbil/yrg4o7JCHmp4Kz4OaBJslK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcW97zj%2FdJMcagRjbil%2Fyrg4o7JCHmp4Kz4OaBJslK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;461&quot; height=&quot;810&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;810&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Human</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/727</guid>
      <comments>https://jseobyun.tistory.com/727#entry727comment</comments>
      <pubDate>Mon, 27 Oct 2025 17:02:37 +0900</pubDate>
    </item>
    <item>
      <title>Geometry Distributions</title>
      <link>https://jseobyun.tistory.com/726</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;내 맘대로 Introduction&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r1H9O/dJMcacH8KOM/JwUZoCY6e98KC8EjXTIiP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r1H9O/dJMcacH8KOM/JwUZoCY6e98KC8EjXTIiP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r1H9O/dJMcacH8KOM/JwUZoCY6e98KC8EjXTIiP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr1H9O%2FdJMcacH8KOM%2FJwUZoCY6e98KC8EjXTIiP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1163&quot; height=&quot;522&quot; data-origin-width=&quot;1163&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ICCV 2025에 가서 현장에서 본 포스터 중 눈에 띄어서 읽어본 논문. mesh의 surface point를 gaussian distribution으로 압축하고, 나중에 이 distribution만 갖고 다시 mesh surface points를 복원해낼 수 있도록 한 논문. 일종의 새로운 3D 표현법 이면서 압축률까지 가져갈 수 있는 방식. mesh resolution, 처리 가능한 point의 개수, watertightness 등 3D 데이터를 처리할 때 발목을 붙잡는 많은 이슈들이 있는데 그걸 해결해보고자 시도한 방식.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나 또한 메모리가 한정된 상황에서 그리고 데이터마다 퀄리티가 다른 상황에서 이걸 어떻게 동일한 기준으로 encoding하여 사용할 수 있을지 고민 중인데 좋은 insight를 주는 논문이라 생각한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 읽고 나니 flow matching을 통해 normal distribution과 surface point distribution을 맞추는 방식이라는 걸 알았다. 다시 말해 1개의 데이터를 인코딩하려면 diffusion model 하나급의 학습 리소스가 들어간다는 것.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습이 완료되었다고 가정한다면 뭐 활용처가 있지만 실제로 이 데이터 1개를 압축하기 위해 A100 4장을 몇십 시간씩 쓴다는게 말이 안되는 듯 하다. 실효성은 그렇게 높지 않지만, 아이디어에 집중해서 봐야 좋을 듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터가 같은 그룹으로 잘 묶이기만 한다면 범용 모델도 만들 수 있지 않을까 싶다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;메모&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XsKG1/dJMcahCGikz/KLWUsq0o1uOV33ad50H4b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XsKG1/dJMcahCGikz/KLWUsq0o1uOV33ad50H4b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XsKG1/dJMcahCGikz/KLWUsq0o1uOV33ad50H4b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXsKG1%2FdJMcahCGikz%2FKLWUsq0o1uOV33ad50H4b0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;579&quot; height=&quot;307&quot; data-origin-width=&quot;579&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dThiO6/dJMcaklR2II/H236sAzMiSY9zX3gL1kIcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dThiO6/dJMcaklR2II/H236sAzMiSY9zX3gL1kIcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dThiO6/dJMcaklR2II/H236sAzMiSY9zX3gL1kIcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdThiO6%2FdJMcaklR2II%2FH236sAzMiSY9zX3gL1kIcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;367&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;기존 방식들이 겪는 해상도를 맘대로 다룰 수 있는지 여부, 그리고 결과적으로 데이터 표현력이 얼마나 좋은지를 강조하며 시작.&lt;br /&gt;&lt;br /&gt;chamfer distance만으로 이정도를 학습한 것은 대단한 것 같다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXII1N/dJMcagDLZsR/WE1yeWBRSo1D3cbGXkMYKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXII1N/dJMcagDLZsR/WE1yeWBRSo1D3cbGXkMYKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXII1N/dJMcagDLZsR/WE1yeWBRSo1D3cbGXkMYKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXII1N%2FdJMcagDLZsR%2FWE1yeWBRSo1D3cbGXkMYKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;158&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qt27l/dJMcagDLZs2/XEG2ITv1ksHM6flsyOlXN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qt27l/dJMcagDLZs2/XEG2ITv1ksHM6flsyOlXN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qt27l/dJMcagDLZs2/XEG2ITv1ksHM6flsyOlXN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqt27l%2FdJMcagDLZs2%2FXEG2ITv1ksHM6flsyOlXN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;197&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;mesh로 표현된 3D 데이터가 있을 때 이를 하나의 distribution으로 표현할 수 있는가.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;mesh vertex,face의 개수와 상관없이 그 형상이 본질적으로 표현하는 모습을 담게 할 수 있는가.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;형상을 하나의 distribution이라고 가정하고 normal distribution to 형상 distribution 간의 flow matching, 즉 diffusion process를 학습한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그렇다면 normal distr에서 무한히 샘플링한 다음 diffusion했을 때 무한 surface point를 얻을 수 있음.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;661&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o0rTa/dJMcac2rwFa/51Oig5VkamGDzh8VskoKrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o0rTa/dJMcac2rwFa/51Oig5VkamGDzh8VskoKrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o0rTa/dJMcac2rwFa/51Oig5VkamGDzh8VskoKrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo0rTa%2FdJMcac2rwFa%2F51Oig5VkamGDzh8VskoKrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;560&quot; height=&quot;661&quot; data-origin-width=&quot;560&quot; data-origin-height=&quot;661&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLYyhT/dJMcaaQ5JkR/YLHjlaDK5AwbefC74P0bj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLYyhT/dJMcaaQ5JkR/YLHjlaDK5AwbefC74P0bj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLYyhT/dJMcaaQ5JkR/YLHjlaDK5AwbefC74P0bj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLYyhT%2FdJMcaaQ5JkR%2FYLHjlaDK5AwbefC74P0bj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;449&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;distribution to distribution 의 matching으로 접근하는 것.&lt;br /&gt;&lt;br /&gt;그리고 네트워크 구조도 단순히 hash grid, MLP로 하면 안되고 적절한 구조가 있다는 것이 핵심.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boeWiL/dJMcaezbMHV/q8m76WNMDsF4skyjhcZDvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boeWiL/dJMcaezbMHV/q8m76WNMDsF4skyjhcZDvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boeWiL/dJMcaezbMHV/q8m76WNMDsF4skyjhcZDvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboeWiL%2FdJMcaezbMHV%2Fq8m76WNMDsF4skyjhcZDvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1157&quot; height=&quot;387&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0l0gu/dJMcadtvSO3/GKl509a9sJoJWFzrskfuJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0l0gu/dJMcadtvSO3/GKl509a9sJoJWFzrskfuJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0l0gu/dJMcadtvSO3/GKl509a9sJoJWFzrskfuJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0l0gu%2FdJMcadtvSO3%2FGKl509a9sJoJWFzrskfuJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;163&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YXcNS/dJMcabWLC1C/vTKcKgkuxQwDjZ4PZEnCp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YXcNS/dJMcabWLC1C/vTKcKgkuxQwDjZ4PZEnCp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YXcNS/dJMcabWLC1C/vTKcKgkuxQwDjZ4PZEnCp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYXcNS%2FdJMcabWLC1C%2FvTKcKgkuxQwDjZ4PZEnCp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;567&quot; height=&quot;650&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;일단 컨셉을 확실하게 이해시키기 위해 학습은 됐다 치고 distribution to distribution 갖고 어떻게 surface point를 복원해낼 것인지를 설명한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;그냥 diffusion model이 아니라 flow model로 학습시켰다는 가정이기 때문에 foward-inverse가 추적이 된다. 따라서 normal distribution에서 random sample point를 뽑고, 이를 매 t마다 조금씩 denoise하면서 이동량을 적분한다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그러면 trajectory가 나오는데 이걸 끝까지 따라가면 최종 surface point에 도착함.&lt;br /&gt;&lt;br /&gt;결과적으로 normal distribution에서 원하는 개수의 N sample point를 만들고 diffusion을 계속하면서 적분해주면 surface point N개를 얻을 수 있다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;540&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxxnrV/dJMcaacub9Z/DYkPcp9FAaJ4QBNH6n0Juk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxxnrV/dJMcaacub9Z/DYkPcp9FAaJ4QBNH6n0Juk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxxnrV/dJMcaacub9Z/DYkPcp9FAaJ4QBNH6n0Juk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxxnrV%2FdJMcaacub9Z%2FDYkPcp9FAaJ4QBNH6n0Juk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;540&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;540&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;forward sampling&lt;br /&gt;&lt;br /&gt;normal distribution to target distribution 방향으로 적분해나가는 것을 의미함. 실제로는 이것만 자주 쓸 것.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7RC8x/dJMcaiBABDT/eCNjfjJZsskupOXmLvFky1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7RC8x/dJMcaiBABDT/eCNjfjJZsskupOXmLvFky1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7RC8x/dJMcaiBABDT/eCNjfjJZsskupOXmLvFky1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7RC8x%2FdJMcaiBABDT%2FeCNjfjJZsskupOXmLvFky1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;76&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;76&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBLkIa/dJMcaiBABDY/knHzIA1AoPRhM35kPycgq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBLkIa/dJMcaiBABDY/knHzIA1AoPRhM35kPycgq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBLkIa/dJMcaiBABDY/knHzIA1AoPRhM35kPycgq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBLkIa%2FdJMcaiBABDY%2FknHzIA1AoPRhM35kPycgq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;297&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;inverse sampling&lt;br /&gt;&lt;br /&gt;이걸 실제로 쓰이진 않지만 flow model이기 때문에 구현이 가능함.&lt;br /&gt;&lt;br /&gt;어떤 형상이 어떤 모양의 distribution으로 표현되는지 역추적하고 시각화할 때 도움이 됨.&lt;br /&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EF8xl/dJMcaho87zk/FSL0s2sm3nK1D7M9RPKxkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EF8xl/dJMcaho87zk/FSL0s2sm3nK1D7M9RPKxkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EF8xl/dJMcaho87zk/FSL0s2sm3nK1D7M9RPKxkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEF8xl%2FdJMcaho87zk%2FFSL0s2sm3nK1D7M9RPKxkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;576&quot; height=&quot;300&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mMRdH/dJMcaiBABEO/7sq3L47GizNZq7jM3scSt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mMRdH/dJMcaiBABEO/7sq3L47GizNZq7jM3scSt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mMRdH/dJMcaiBABEO/7sq3L47GizNZq7jM3scSt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmMRdH%2FdJMcaiBABEO%2F7sq3L47GizNZq7jM3scSt1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;564&quot; height=&quot;464&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nUgCA/dJMcaezbMIo/pPAglOeVXtOoSy6cbleqAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nUgCA/dJMcaezbMIo/pPAglOeVXtOoSy6cbleqAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nUgCA/dJMcaezbMIo/pPAglOeVXtOoSy6cbleqAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnUgCA%2FdJMcaezbMIo%2FpPAglOeVXtOoSy6cbleqAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;263&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;1. surface에서 매번 random sampling&lt;br /&gt;&lt;br /&gt;2. noise를 조금 더해줌&amp;nbsp;&lt;br /&gt;&lt;br /&gt;3. denoiser가 noise를 맞추도록 수식(5)와 같이 학습&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw24Yg/dJMcafLDgWq/zugw673FzUu9SmutsaqDA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw24Yg/dJMcafLDgWq/zugw673FzUu9SmutsaqDA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw24Yg/dJMcafLDgWq/zugw673FzUu9SmutsaqDA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw24Yg%2FdJMcafLDgWq%2Fzugw673FzUu9SmutsaqDA1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;561&quot; height=&quot;182&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cotTk2/dJMcafLDgWu/31FkCTSqLi3crfiBVejq2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cotTk2/dJMcafLDgWu/31FkCTSqLi3crfiBVejq2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cotTk2/dJMcafLDgWu/31FkCTSqLi3crfiBVejq2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcotTk2%2FdJMcafLDgWu%2F31FkCTSqLi3crfiBVejq2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;577&quot; height=&quot;371&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xHeKx/dJMcaiawfKP/oeib6faBlMXU2o8kGPS6z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xHeKx/dJMcaiawfKP/oeib6faBlMXU2o8kGPS6z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xHeKx/dJMcaiawfKP/oeib6faBlMXU2o8kGPS6z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxHeKx%2FdJMcaiawfKP%2Foeib6faBlMXU2o8kGPS6z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;562&quot; height=&quot;356&quot; data-origin-width=&quot;562&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1 epoch에 2.5분 보통 1000epoch 돌리니까 샘플당 2500분이 걸린다 거의 40 시간..........................................................&lt;br /&gt;&lt;br /&gt;게다가 A100 4장 쓴다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTche8/dJMcafZashE/lQ69KyRG6Zrb11qok9XtIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTche8/dJMcafZashE/lQ69KyRG6Zrb11qok9XtIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTche8/dJMcafZashE/lQ69KyRG6Zrb11qok9XtIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTche8%2FdJMcafZashE%2FlQ69KyRG6Zrb11qok9XtIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1170&quot; height=&quot;818&quot; data-origin-width=&quot;1170&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KX9Fl/dJMcabvHgF6/qGpCcekHs55Bq3WcCTmPAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KX9Fl/dJMcabvHgF6/qGpCcekHs55Bq3WcCTmPAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KX9Fl/dJMcabvHgF6/qGpCcekHs55Bq3WcCTmPAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKX9Fl%2FdJMcabvHgF6%2FqGpCcekHs55Bq3WcCTmPAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;569&quot; data-origin-width=&quot;569&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;학습만 잘 됐다 치면 의도한대로 무한 point&amp;nbsp; 핸들링이 가능하다. 성능도 나름 괜찮고&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;623&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xg2Jh/dJMcafkyUAg/6R5J1wgtnEVmLpspky4c01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xg2Jh/dJMcafkyUAg/6R5J1wgtnEVmLpspky4c01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xg2Jh/dJMcafkyUAg/6R5J1wgtnEVmLpspky4c01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXg2Jh%2FdJMcafkyUAg%2F6R5J1wgtnEVmLpspky4c01%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;623&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;623&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpPdIh/dJMcahQdtJN/X6CL08nzNg2OuKFQxW50sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpPdIh/dJMcahQdtJN/X6CL08nzNg2OuKFQxW50sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpPdIh/dJMcahQdtJN/X6CL08nzNg2OuKFQxW50sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpPdIh%2FdJMcahQdtJN%2FX6CL08nzNg2OuKFQxW50sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1167&quot; height=&quot;238&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;xyz rgb를 같이 다루면서 학습시키면 색상도 당연히 커버 가능 (이러면 근데 학습 시간도 늘고 모델도 커지므로....)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;776&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuqpyB/dJMcai9qyHx/L7zIfEuKPImkXVAdXKJLGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuqpyB/dJMcai9qyHx/L7zIfEuKPImkXVAdXKJLGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuqpyB/dJMcai9qyHx/L7zIfEuKPImkXVAdXKJLGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuqpyB%2FdJMcai9qyHx%2FL7zIfEuKPImkXVAdXKJLGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;557&quot; height=&quot;776&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;776&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;이론상 다양한 primitives들도 같이 담는게 가능함.&lt;br /&gt;&lt;br /&gt;distribution은 uniform보다 normal로 사용하는게 잘 됨.&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;1145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK3zE9/dJMcae61JIf/7hdLwAHwo20c5bIF4CP9r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK3zE9/dJMcae61JIf/7hdLwAHwo20c5bIF4CP9r1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK3zE9/dJMcae61JIf/7hdLwAHwo20c5bIF4CP9r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK3zE9%2FdJMcae61JIf%2F7hdLwAHwo20c5bIF4CP9r1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;571&quot; height=&quot;1145&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;1145&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 34px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 17px;&quot; colspan=&quot;2&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MT6Fy/dJMcaajfMxD/xAx16ZD8b8kPaaMiEAgm10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MT6Fy/dJMcaajfMxD/xAx16ZD8b8kPaaMiEAgm10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MT6Fy/dJMcaajfMxD/xAx16ZD8b8kPaaMiEAgm10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMT6Fy%2FdJMcaajfMxD%2FxAx16ZD8b8kPaaMiEAgm10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1180&quot; height=&quot;311&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;학습 완료된 애를 inverse해서 normal distribution을 얻어보면 실제로 normal 같이 생기진 않음. distribution간 매칭이 완전 1대1 대응으로 이루어지진 않는다는 뜻.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dc27eU/dJMcagDLZNp/fvc07yk2c4F3ipRHVQsfk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dc27eU/dJMcagDLZNp/fvc07yk2c4F3ipRHVQsfk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dc27eU/dJMcagDLZNp/fvc07yk2c4F3ipRHVQsfk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdc27eU%2FdJMcagDLZNp%2Ffvc07yk2c4F3ipRHVQsfk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;573&quot; height=&quot;284&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;smooth하게 diffusion 되어가는 모습&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Paper/Others</category>
      <author>침닦는수건</author>
      <guid isPermaLink="true">https://jseobyun.tistory.com/726</guid>
      <comments>https://jseobyun.tistory.com/726#entry726comment</comments>
      <pubDate>Mon, 27 Oct 2025 16:29:16 +0900</pubDate>
    </item>
  </channel>
</rss>