<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>bbang_jun.log</title>
        <link>https://velog.io/</link>
        <description>대학원이 가고 싶은 컴쟁이</description>
        <lastBuildDate>Mon, 02 Mar 2026 10:47:56 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>bbang_jun.log</title>
            <url>https://velog.velcdn.com/images/bbang_jun/profile/c068330e-0410-4dbc-917f-a66a924a7286/image.avif</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. bbang_jun.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/bbang_jun" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[VIDEO SCENE SEGMENTATION
WITH GENRE AND DURATION SIGNALS]]></title>
            <link>https://velog.io/@bbang_jun/VIDEO-SCENE-SEGMENTATIONWITH-GENRE-AND-DURATION-SIGNALS</link>
            <guid>https://velog.io/@bbang_jun/VIDEO-SCENE-SEGMENTATIONWITH-GENRE-AND-DURATION-SIGNALS</guid>
            <pubDate>Mon, 02 Mar 2026 10:47:56 GMT</pubDate>
            <description><![CDATA[<h2 id="i-abstract">I. ABSTRACT</h2>
<p>비디오 장면 분할은 긴 분량의 비디오에서 의미론적으로 일관된 경계를 검출하는 것을 목표로 하며, 이는 low-level의 시각적 신호와 high-level의 서사 이해 사이의 간극을 메우는 작업이다. 그러나 기존 방법론들은 주로 인접한 셧간의 시각적 유사성에 의존하기 때문에, 서사적 전환이 시각적 변화와 일치하지 않는 경우 장면 경계를 정확히 식별하는데 어려움을 격는다.</p>
<p>본 논문에서는 제작 수준의 메타데이터, 구체적으로는 장르 컨벤션과 샷 길이 패턴을 비디오 장면분할에 통합하는 새로운 접근 방식을 제안한다. 본 연구의 주요 기여는 다음과 같다.</p>
<ol>
<li><strong>텍스트 기반 장르 정의</strong>를 의미론적 sementic priors로 활용하여 자기지도 학습 과정에서 샷 수준의 표현 학습을 가이드 함으로써 서사적 일관성을 더 잘 포착할 수 있게 합니다.</li>
<li>경험적 길이 통계에 기반하여 짧은 샷에 우선순위를 두는 duration-aware anchor selection strategy를 도입하여 pseudo-boundary 생성 품질을 개선한다.</li>
<li>추론시 긴 샷을 세부 세그먼트로 나누어 시간적 모델링을 향상시키는 <strong>test-time shot splitting strategy</strong>를 제안한다.</li>
</ol>
<h3 id="ii-introdiction">II. INTRODICTION</h3>
<p>긴 분량의 비디오 콘텐츠를 이해하기 위해서는 근저에 깔린 서사를 반영하는 의미있는 단위로 구조화하는 작업이 필요하다. 짧은 클립과 달리 영화, TV, 다큐멘터리와 같은 서사 중심의 비디오는 서사적 일관성을 유지하는 개별 <strong>SCENE</strong>으로 자연스럽게 조직되어 있다. 이러한 콘테츠를 장면 단위로 분할하는 것은 콘텐츠 기반 검색, 요약, QA, 등 광범위한 다운스트림 태스크를 지원하는 유용한 추상화 기능으로 제공한다. 그러나 현재의 접근 방식들은 장면 경계를 식별하기 위해 주로 visual-features를 사용하며, 이로인해 시각적 불연속성 없이 서사적 전환이 일어날때 오류가 발생한다. 이러한 한계는 순수하게 시각적인 접근 방석을 넘어 더 풍부한 문맥 정보를 활용할 수 있는 방법론이 필요함을 시사한다.</p>
<p>전문적인 비디오 제작 과정은 편집 패턴, 카메라 움직임, 시간적 구조와 같이 서사적 전환을 알리는 의도적으로 설계된 요소들을 통해 풍부한 문맥적 단서를 제공한다. 이러한 제작 요소 중 <strong>장르 컨벤션</strong>과 <strong>샷 길이 패턴</strong>은 컴퓨터를 이용한 장면 분석에 특히 유망한 신호이다. 하지만 이러한 신호를 활용하는 데는 몇가지 어려움이 있다. 장르 정보는 일반적으로 비디오 전체 수준에서만 제공되는 반면, 샷 길이 패턴은 장르와 제작 스타일에 따라 크게 변한다. 이를 해결하기 위해서는 메타데이타의 내재적 변동성과 granularity의 불일치를 처리하면서 제작 메타 데이터를 장면 분할에 통합할 수 있는 새로운 방법이 필요하다.</p>
<p>본 논문은 장르 컨벤션을 특스트 설명으로 인코딩하고, 이를 샷 표현 학습을 위한 의미론적 사전 정보로 사용할 것을 제안한다. 프레임워크는 사전 학습 단계에서 이 장르 정보를 통합하여 샷 수준의 표현을 강화한다. 
<img src="https://velog.velcdn.com/images/bbang_jun/post/e8ee529b-0cf7-4ff9-8787-f109fdb951af/image.png" alt=""></p>
<h2 id="iii-related-work">III. Related Work</h2>
<h3 id="31-video-scene-segmentation">3.1 Video Scene Segmentation</h3>
<p>비디오 장면 분할은 일반적으로 기본 시간 단위를 식병하기 위해 shot boundary detection부터 시작한다. 전통적인 방법들은 색상 히스토그램이나 모션 패턴 같은 low-level 시각 특징을 사용하여 연속된 샷들을 장면으로 그룹화한다. 그러나 이러한 특징 기반 접근 방식은 종종 샷 간의 high-level 의미론적 관계를 포착하는데 실패하여 복잡한 서사 콘텐츠에서의 효과가 제한된다.</p>
<p>MovieNet 공개는 여러 영화 장르에 걸친 주석을 제공하여 장면 분할 연구를 위한 실질적인 벤치마크를 제공했다. 이 데이터셋을 활용한 지도 학습 접근 방식은 강력한 성능을 달성하지만 방대한 수동 주석을 요구하여, 대규모 언레이블 비디오 컬렉션에 적용하기 어렵다는 한계가 있습니다. 이 한계를 극복하기 위해, 최근 연구들은 언레이블 비디오를 활용하는 자기지도 학습 프레임 워크를 채택하고 있다. 이러한 접근 방식은 전형적으로 pretext task에 의해 생성된 pseudo-boundary를 사용하여 대규모 언레이블 데이터 셋에서 샷 인코더를 사전학습하고, 더 작은 레이블 데이터셋에서 파인튜닝하는 2단계 패러다임을 따른다. </p>
<p>자기지도 장면 분할을 위해 샷 유사도, 장면 일관성, 메타데이터 기반 영화 유사도를 바탕으로 한 다양한 pretext task가 제안됩니다. 대표적으로 BaSSL은 주어진 샷 시퀸스의 양 끝에 위치한 두 개의 고정된 앵커 샷을 사용하여 의사장면 경계를 생성하는 방법을 소개한다. 이후 모델은 시퀸스 내 샷 간의 관계를 인코딩하여 문맥적 표현을 학습한다. 후속 연구들은 장거리 샷 간 관계와 다중 스케일 시간 문맥을 통합하여 이 프레임워크를 확장했다. 이러한 방법들이 유망한 결과를 보여주었지만, 대부분 주로 시각적 및 시간적 단서에 의존하며 의미론적 가이드를 위해 포괄적인 제작 수준의 메타데이터를 탐색하는 데는 한계가 있다.</p>
<p>메타데이터를 활용한 예로, Movie2Scenes는 장면 그룹화를 위해 동시 시청 패턴, 장르 레이블, 시놉시스 텍스트와 같은 메타 데이터 태그의 사용을 탐구한다. 구체적으로 이 방법은 이러한 메타 데이터를 사용하여 영화 수준의 유사도를 측정하고, 유사한 태그를 가진 영화 전번에 걸쳐 긍적장면 쌍을 구성하여 대조 학습 목적 함수를 훈련한다. 이 연구는 영화간 메타데이터 비교에 중점을 두어, 장면 수준 분석에 메타 데이터를 활용할 수 있는 잠재력을 보여주었다.</p>
<p>VSS-MGP는 다중 모달 신호를 사용하여 가장 빈번한 4개 장르에 대한 분류 모델을 훈련시킨 다음, 샷 수준의 장르 예측 분포를 기반으로 인접한 샷 간의 유사도를 계산하여 장면 분할을 수행한다. Movie-CLIP은 원래 장르 예측을 위해 설계된 다중 모달 융합 아키텍처를 제안하며, 이 구조가 장면 분할에 적용될 수 있음을 보여주었다. 그러나 VSS-MGP는 샷 단위의 장르 예측이 필요하며, Movie-CLIP은 장면 분할을 위해 장르 정보를 명시적으로 활용하지 않는다. </p>
<p>시각적 특징외에도 샷 길이 패턴은 영화 연구에서 서사 구조의 지표로 인식되어 왔다. 그러나 장르와 제작 스타일에 따라 샷 길이 분포의 변화가 상당히 크기 때문에 일관된 학습 전략을 개발하는 것이 까다로우며, 이는 adaptive 접근 방식의 필요성을 유발한다.</p>
<h3 id="32-long-form-video-understanding">3.2 Long-Form Video Understanding</h3>
<p>비디오 질의응답 및 서사 요약을 포함한 긴 비디오의 이해는 확장된 시간 범위에 걸쳐 의미론적 구조를 모델링해야한다. 이러한 태스크들은 프레임 수준의 분석보다는 장면이나 이벤트와 같은 더 높은 수준의 서사 단위에서 작동하는 것이 일반적이다. 장면 분할은 시간적 추론 및 콘텐츠 구성을 위한 의미론적으로 일관된 세그먼트를 정의함으로써 이러한 태스크에 유용한 구조적 단위를 제공할 수 있다.</p>
<p>Movie-Chat-1K 및 TVQA와 같은 긴 비디오 이해를 위한 최근 데이터셋들은 멀티모달 추론 태스크를 지원하기 위해 자막과 대화를 포함한 텍스트 주석을 통합한다. 그러나 이러한 데이터셋의 상당수는 명시적인 장면 경계 주석이 부족하여 장면 수준의 비디오 구성을 연구할 기회를 제한한다. 예를 들어, Movie-Chat-1k는 멀티 모달 QA 태스크에 중점을 두며 장면 경계 주석을 포함하지 않는다.</p>
<h2 id="iv-method">IV. Method</h2>
<h3 id="41-task-definition">4.1 Task Definition</h3>
<p>영화 및 TV쇼와 같은 서사 중심의 비디오는 일반적으로 프레임, 샷, 장면, 전체비디오라는 4단계 계층 구조로 구성된다. 샷은 단일 카메라에 의해 중단 없이 촬영된 연속된 프레임 시퀸스를 의미하며, 저수준의 시각적 단서를 사용하여 안정적으로 식별할 수 있습니다. 반명 장면은 동작, 장소, 시간의 연속성을 유지하는 여러삿으로 구성된 의미론적으로 응집력 있는 단위이며, 서사적 스토리텔링의 핵심 구조 요소 역할을 한다.</p>
<p>샷 경계가 종종 시각적 불연속성과 연관되는 반면, 장면 경계를 검출하려면 주제의 일관성, 장소의 변화, 시간적 연속성과 같은 고수준의 의미론적 관계를 이해해야한다. 비디오 장면 분할은 주어진 샷이 장면의 끝을 표시하는지 여부를 결정함으로써 이러한 경계를 식별하는 것을 목표로한다. 이는 각 샷에 대한 이진 분류 문제로 공식화될 수 있으며, 모델은 경계 예측을 수행하기 위해 시각적 특징을 주변 샷들의 문맥 정보와 통합해야 한다.</p>
<p>형식적으로 비디오는 $N$개의 샷으로 구성된 시퀸스 ${s_1, s_2, ..., s_N}$와 대응하는 이진 경계 레이블 ${y_1, y_2, ..., y_N}$로 표현될 수 있다. 여기서 $y_i \in {0, 1}$는 $s_i$가 장면의 끝을 표시하는지 여부를 나타낸다. 각 샷 샷 $s_i$는 샷 인코더 $\theta_E$에 의해 특징 벡터 $e_i$로 변환된다. 이러한 샷 표현들은 이어지는 섹션에서 설명할 보조 의미론적 신호에 의해 강화되어 경계 예측을 위한 입력으로 사용된다.</p>
<h3 id="42-genre-guided-shot-representation">4.2 Genre-Guided Shot Representation</h3>
<p>장르 컨벤션은 장면의 시각적 및 시각적 요소에 영향을 미치며, 잠재적으로 장면 구조를 이해하기 위한 의미론적 문맥을 제공한다. 샷들 전반에 걸쳐 시각적 외형은 다양할 수 있지만, 장르 컨벤션은 장면 내의 서사적 일관성을 식별하는 데 도움이 될 수 있는 일관된 의미론적 신호를 제공할 수 있다. 그러나 대부분의 영화가 여러 장르 태그와 연관되어 있어 각 샷이나 장면에 단일 장르를 할당하기 어렵기 때문에 장르를 직접 적용하는 것은 쉽지 않다.</p>
<p>이를 해결하기 위해, 자기지도 사전학습 단계에서 장르 컨벤션을 soft semantic prior로 활용한다. 각 장르에 대한 특징적인 시각적 서사적 설명을 통합하여 IMDb 정의에 기반한 장르별 텍스트 프롬프트를 구성한다. 이 프롬프트들은 CLIP의 텍스트 인코더를 사용하여 임베딩 벡터로 인코딩되어 장르 임베딩 세트 <strong>$G_e \in \mathbb{R}^{N_g \times D}$</strong>를 형성한다. 
(여기서 $N_g$는 장르 카테고리의 수, $D$는 임베딩 차원).</p>
<p>샷 인코더는 사전 계산된 장르 임베딩을 ViT 아키텍처 내에 고정된 파라미터로 통합한다. 
ViT 레이어 내에서 우리는 코사인 유사도를 사용하여 시각적 토큰 특징 $V_t \in \mathbb{R}^{N_t \times D}$와 저장된 장르 임베딩 $G_e$ 간의 유사도를 계산한다. 결과로 도출된 유사도 행렬 $A$는 시각적 토큰에 대한 장르의 관련성을 나타낸다. 그 다음 장르 임베딩은 projected되고 잔차 연결을 통해 원래의 시각적 특징과 통합한다.</p>
<blockquote>
<p>$$A = \text{softmax}\left(\frac{V_t G_e^T}{\sqrt{D}}\right)$$</p>
</blockquote>
<blockquote>
<p>$$V_t^{\text{genre}} = V_t + A G_e W$$</p>
</blockquote>
<p>여기서 $W \in \mathbb{R}^{D \times D}$는 통합 전에 가중치가 적용된 장르 정보를 투영한다. ViT 아키텍처를 따라, 강화된 토큰 특징 $V_t^{\text{genre}}$는 집계되어 최종 샷 수준 표현 $e_i$를 형성한다.</p>
<blockquote>
<ol>
<li>유사도 행렬 $A$ 연산:
 -$V_t \in \mathbb{R}^{N_t \times D}$: Query (비디오 샷의 각 패치 토큰)
 -$G_e \in \mathbb{R}^{N_g \times D}$: Key (21개의 장르 텍스트 임베딩)
 -$V_t G_e^T \in \mathbb{R}^{N_t \times N_g}$: 각 시각 패치가 21개 장르 중 어느 장르와 가장 높은 코사인 유사도(내적)를 가지는지 계산합니다.
 -$\sqrt{D}$로 나누는 것은 스케일 점곱 주의(Scaled Dot-Product Attention)의 표준 정규화 방식이며, Softmax를 통해 합이 1이 되는 확률 분포 $A$를 얻습니다. 즉, 특정 시각 토큰이 &#39;SF 장르 60%, 액션 장르 30%, 로맨스 10%&#39;의 특징을 가진다고 Soft(부드럽게) 할당합니다.</li>
</ol>
</blockquote>
<blockquote>
<ol start="2">
<li>잔차 연결 및 특성 주입:
 -$A G_e \in \mathbb{R}^{N_t \times D}$: Value ($G_e$)에 어텐션 가중치 $A$를 곱하여 각 시각 토큰에 주입할 &#39;장르 특징 벡터&#39;를 만듭니다.
 -$W$: 차원 축소/변환을 위한 학습 가능한 가중치 행렬입니다. (텍스트 임베딩 공간의 정보를 시각 임베딩 공간에 맞게 선형 변환)
 -최종적으로 기존 시각 특징 $V_t$에 장르 정보를 더해주는 잔차 연결($+ V_t$) 구조를 취하여 시각적 원본 정보의 손실을 막습니다.</li>
</ol>
</blockquote>
<h3 id="33-duration-aware-pseudo-boundary-generation">3.3 Duration-Aware Pseudo-Boundary Generation</h3>
<p> 특히 BaSSL과 같은 기존 pseudo-boundary 생성 방법들은 시퀸스 양 끝점에 고정된 앵커 위치를 사용하여 비디오 시퀸스 내의 다양한 시각적 패턴을 포착하는데 한계가 있다. 장면들이 일관된 샷 길이 패턴을 나타내며, 많은 장면들이 응집력 있는 서사 단위를 형성하는 더 짧은 샷들에 의해 지배된다는 점을 관찰했다. 이러한 통찰을 활용하기 위해, 고정된 끝점 선택 대신 짧은 샷에 우선순위를 두는 <strong>duration-aware</strong> 샘플링 전략을 도입학여 앵커 선택 메커니즘을 수정한다.</p>
<p>고정된 앵커를 선택하는 대신, 시퀸스 내 샷 길이의 역수에 기반하여 타겟 샷의 양쪽 하위 시퀸스에서 앵커 샷을 샘플링한다.</p>
<blockquote>
<p>$$P(s_i) = \frac{1/d_i}{\sum_{j=1}^N 1/d_j}$$</p>
</blockquote>
<p>여기서 $d_i$는 $i$번째 샷의 길이를 나타내며, $N$은 하위 시퀀스의 총 샷 수이다. 그런 다음 동적 시간 워핑을 차용한 유사도 기반 접근법을 사용하여 이러한 앵커 샷들 사이의 가짜 경계 $b^*$를 탐색한다.</p>
<blockquote>
<p>$$b^*(i, l, r) = \arg\max_{b=-L,...,R-1} \left( \frac{1}{b+L+1} \sum_{j=-L}^b \text{sim}(e_l, e_{i+j}) + \frac{1}{-b+R} \sum_{j=b+1}^R \text{sim}(e_r, e_{i+j}) \right)$$</p>
</blockquote>
<p>여기서 $\text{sim}(x, y)$는 샷 표현 간의 코사인 유사도, $i$는 타겟 샷의 인덱스, $L, R$은 각각 왼쪽과 오른쪽 앵커까지의 거리를 나타낸다. 이 과정은 입력 시퀀스를 두 개의 가짜 장면 시퀀스 $S_i^l = {s_{i-L}, ..., s_{b^}}$와 $S_i^r = {s_{b^+1}, ..., s_{i+R}}$로 나눈다.</p>
<h3 id="34-test-time-shot-split-strategy">3.4 Test-Time Shot Split Strategy</h3>
<p>훈련 방법이 샷 표현 학습을 향상시키지만, 실제 추론 과정은 샷 길이의 큰 변동성으로 인해 어려움에 직면한다. 긴 샷들은 단일 단위로 처리하기 어려운 여러 개의 의미론적 세그먼트를 포함할 수 있으며, 이는 시퀸스 기반 접근 방식에서 경계 검출 정확도에 잠재적으로 영향을 미칠 수 있다. 이 문제를 해결하기 위해, 모델을 재학습할 필요 없이 추론시에 긴 샷을 세분화하는 테스트 시간 샷 분할 전략을 제안한다.</p>
<p>길이가 $d_i &gt; \tau$ (10초로 설정)인 임의의 샷 $s_i$에 대해, 이를 동일한 길이의 세 개의 세그먼트로 분할하고 각각을 독립적인 샷으로 취급한다. 사전 추출된 키프레임이 사용 가능한 경우(예: MovieNet의 샷당 3개의 키프레임), 이들을 해당 세그먼트에 직접 할당한다. 그렇지 않은 경우 Uniform Temporal sampling을 사용하여 각 세그먼트에서 키 프레임을 추출한다.</p>
<blockquote>
<p>$${s_i^{(1)}, s_i^{(2)}, s_i^{(3)}} = \text{split}(s_i) \quad \text{if } d_i &gt; \tau$$</p>
</blockquote>
<p>이 전략은 전처리 수준에서 작동하므로 기존 아키텍처들과 호환된다. 경계 예측 후 검출된 경계들은 원본 시간 좌표로 다시 매핑된다.</p>
<h2 id="v-moviechat-sseg-dataset">V. MovieChat-SSeg Dataset</h2>
<p>Video Scene Segmentation의 평가를 위해 수동으로 주석처리된 벤치마크인 MovieChat-SSeg를 제안한다. 이 테이터셋은 원래 긴 형식의 비디오-언어 테스크를 위한 쿠레이션된 1000개의 비디오 클립을 포함하는 공개 데이터셋 MovieChat-1k를 기반으로 구축되었다. 장면 분할 연구를 위한 테스트베드를 만들기 위해 장면 경계를 수동으로 주석 처리하여 이 클립들을 확장했다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/691571b3-6bc2-40eb-ae82-556e7cc5f5bf/image.png" alt=""></p>
<p><strong>Annotation Process</strong> 장면 경계는 서사적 일관성, 장소 변화, 시간적 전환을 고려하여 확립된 가이드라인을 따르는 훈련된 작업자들에 의해 주석처리 된다. 이 주석 프로세스는 다중 단계로 이루어진다. 초기 독립적 주석 작업, 경계 모호 사례에 대한 논의, 그리고 의견 불일치에 대한 합의 도출. 모든 주석은 데이터셋 전체의 일관성을 보장하기 위해 검토된다.</p>
<p><strong>Dataset Characteristics</strong> MovieChat-SSeg는 영화, TV, 다큐멘터리를 아우르는 다양한 콘텐츠 유형을 포함함으로서 기존 벤치마크들을 보완한다. 이러한 콘텐츠의 다양성은 서로 다른 서사 구조와 편집 스타일에 걸친 평가를 가능케한다. 이 다양성은 다양한 편집 스타일과 스토리텔링 접근법에 걸쳐 장면 분할 방법론을 평가할 수 있게 한다.</p>
<p>데이터셋은 비디오당 여러장면 전환을 포착하면서도 효율적인 주석 작업을 가능하게 하는 집중된 세그먼트(평균 7.4분)로 구성된다. 그러나 이렇게 짧은 세그먼트에 집중하는 것은 전체 길이 콘텐츠에 존재하는 장기적인 서사 패턴을 포착하지 못할 수도 있다는 한계가 있다.</p>
<p>향후 연구를 지원하기 위해 주석 가이드라인 및 평가 프로토콜과 함께 MovieChat-SSeg를 공개적으로 배포한다.</p>
<h2 id="vi-evaluation">VI. Evaluation</h2>
<h3 id="61-dataset-and-evaluation-metrics">6.1 Dataset and Evaluation Metrics</h3>
<p>pre-traing을 위해 1100편의 영화가 포함된 MovieNet을 사용한다. 지도 학습 및 평가를 위해서는, 훈련 190, 검증 64, 테스트 64 분할을 따라 장면 경계 주석이 포함된 318편의 영화로 구성된 Movie-SSeg 하위 집합을 활용한다. 모델의 일반화 능력을 평가하기 위해, BBC 데이터셋과 새롭게 제안하나 MovieChat-SSeg 데이터셋 모두에서 제로샷 평가를 수행한다.</p>
<p>shot-level classification을 위해 AP, AUC-ROC, F1점수를 사용하고 Sequence-level segment alignment를 위해 mIoU를 사용하여 모델 성능을 평가한다.</p>
<h3 id="62-training-strategy">6.2 Training Strategy</h3>
<p>이전 연구들을 따라, 샷 인코더, 문맥 인코더, 그리고 예측 헤드로 구성된 모듈식 아키텍처를 채택한다. 문맥 인코더는 샷 간의 temporal dependencies를 모델링하고, 예측 헤드는 이진 장면 경계 예측을 출력한다. 사전 학습 동안 샷 인코더는 pseudo-boundaries를 사용하여 최적화된 후 fine-tuning 과정에서는 동결되며, 파인튜닝시에는 문맥 인코더와 예측 헤드만 업데이트 된다.</p>
<p>사전학습 단계어서 두 가지 목적 함수를 사용한다. 첫째, InfoNCE에 기반한 대조 손실을 적용한다. 여기서 의사 장면 내 샷들의 평균 표현을 scene-level 특징으로 간주하고, 이를 동일한 장면 내의 앵커샷과 쌍을 이루게 한다.</p>
<blockquote>
<p>$$L_{nce}(e, \bar{e}) = -\log \frac{\exp(\text{sim}(e, \bar{e}))}{\exp(\text{sim}(e, \bar{e})) + \sum_{e_n} \exp(\text{sim}(e_n, \bar{e})) + \sum_{\bar{e}_n} \exp(\text{sim}(e_n, \bar{e}_n))}$$</p>
</blockquote>
<p>여기서 $e$는 앵커 샷 표현을, $\bar{e}$는 의사 장면의 평균 특징을 나타낸다. $e_n$과 $\bar{e}<em>n$은 각각 네거티브 샷 표현과 네거티브 의사 장면 특징을 나타낸다. 각 샷 시퀀스는 인덱스 $b^$의 의사 경계에 의해 두 개의 의사 장면으로 나뉘므로, 두 세그먼트 모두에 대해 대조 손실을 계산한다: $L</em>{con} = L_{nce}(e_l, \bar{e}<em>l) + L</em>{nce}(e_r, \bar{e}_r)$. 여기서 $e_l$과 $e_r$은 각각 왼쪽 및 오른쪽 의사 장면에 대한 앵커 표현이다$\bar{e}l = \text{avg}(e_l, ..., e{b^})$와 $\bar{e}r = \text{avg}(e{b^*+1}, ..., e_r)$는 각 세그먼트의 평균 장면 수준 특징을 나타낸다.</p>
<p>둘째, 의사 경계 샷과 주어진 시퀸스에서 무작위로 선택된 non-boundary 샷을 구별하기 위해 binary-cross entropy loss를 적용한다.</p>
<blockquote>
<p>$$L_{pb}(c_{b^<em>}, c_n) = -\log(h_p(c_{b^</em>})) - \log(1 - h_p(c_n))$$</p>
</blockquote>
<p>여기서 $c_{b^*}$와 $c_n$은 문맥 인코더로부터 얻은 의사 경계 및 비경계 샷의 context-aware 샷 표현을 나타낸다. 함수 $h_p(\cdot)$는 예측 헤드로, 입력 표현을 경계일 확률로 매핑한다. 사전 학습 단계의 전체 목적 함수는 의사 경계 예측을 위한 대조 손실과 이진 교차 엔트로피 손실의 선형 결합으로 정의된다.</p>
<p>파인튜닝 동안에는 표준 binary-cross entropy loss를 사용하여 장면 경계 레이블을 바탕으로 문맥 인코더와 예측 헤드를 훈련하다.</p>
<blockquote>
<p>$$L_{sb}(c_i, y_i) = -y_i \log(h_p(c_i)) + (1 - y_i) \log(1 - h_p(c_i))$$</p>
</blockquote>
<p>여기서 $c_i$는 $i$번째 샷의 문맥 인식 표현이고 $y_i \in {0, 1}$는 실제 장면 ground truth이다. 추론 시에는 경계 확률 $h_p(c_i)$가 0.5 이상인 경우 해당 샷을 장면 경계로 예측한다.</p>
<h3 id="63-implementation-details">6.3 Implementation Details</h3>
<p>샷 인코더 백본으로 ViT-B/32를 사용하고 OpenCLIP 가중치로 초기화하여, 224 X 224 해상도의 이미지를 32 X 32패치 크기로 처리한다. 사전 학습된 ViT 백본 가중치는 동결하고, 장르 통합 모듈($W$)과 최종 MLP 분류 헤드만 학습한다. 이전 연구들을 따라, IMDb의 텍스트 정의가 포함된 21개의 장르 카테고리를 사용하며 OpenCLIP 텍스트 인코더를 사용하여 인코딩한다. 시퀸스 수준 경계 예측을 위해, 768은 은닉 차원을 가진 2층 BERT 아키텍처를 스크래치부터 훈련하여 적용한다.</p>
<p>훈련은 2단계 전략을 채택한다. 사전 학습 동안 배치 크기 256, 기본 학습률 0.3으로 20 에폭 동안 샷 및 문맥 인코더를 훈련합니다. 파인튜닝은 배치 크기 1024로 20 에폭 동안 수행된다. 옵티마이저는 Adam을 사용하며, 학습률은 $2.5 X 10^-6$, 모멘텀은 0.9이다. 모든 모델은 8개의 A100 GPU에서 훈련된다.</p>
<h3 id="64-comparison-results">6.4 Comparison Results</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/f03d6f63-921e-4d32-8bd0-6f168d192235/image.png" alt=""></p>
<p><strong>MovieNet-SSeg 데이터셋 결과</strong>: MovieNet-SSeg에서 SOTA 방법론들과 모델을 비교한 결과이다. 의사 경계 기반의 자기지도 학습 방법들(BaSSL, CAT, TranS4mer)이 전통적인 접근 방식에 비해 강력한 성능을 달성함을 볼 수 있다. 방법론은 동일한 ViT 백본을 사용하는 방법들(TranS4mer)대비 상당한 성능 향상을 포함하여 기존 접근법들보다 일관된 개선을 보여준다. 장르 가이드 표현과 같이 길이 기반 샘플링이라는 기여가 아키텍처 선택을 넘어 상호 보완적인 이점을 제공한다는 것을 입증한다.</p>
<p><strong>BBC 데이터셋 교차 도메인 평가</strong>: 교차 도메인 평가를 위헤 BBC 데이터셋에서 추가 실험을 수행했다. BBC 데이터셋은 MovieNet의 극장판 콘텐츠와는 다른 서사 구조를 가진 자연 및 야생 동물 다큐멘터리를 포함한다. 2번째 테이블과 같이, 방법은 기존 방식들과 비교하여 경쟁력 있는 성능을 달성했다. 이는 접근 방식이 극장판 영화를 넘어 다큐멘터리 콘텐츠에도 꽤 잘 일반화됨을 시사한다.</p>
<p><strong>MovieChat-SSeg 데이터셋 평가</strong>: MovieChat-SSeg는 영화, TV, 다큐멘터리라는 세 가지 뚜렷한 포맷을 갖춘 다양한 평가 벤치마크를 제공한다. 3번째 테이블과 같이, 모델은 TranS4mer대비 전체적으로 +8.8 AP의 개성을 보이며 모든 포맷에 걸쳐 경쟁력 있는 성능을 달성했다.</p>
<h3 id="65-ablation-studies">6.5 Ablation Studies</h3>
<p>설계 선택을 평가하고 다양한 구성의 영향을 조사하기 위해 절제 연구를 수행한다.</p>
<ol>
<li>샷 표현 학습에 장르 임베딩을 통합하는 방법(Index 1-3, 8)</li>
<li>장르 임베딩 생성을 위한 프롬프트 설계 전략(Index 4-5, 8)</li>
<li>길이 기반 앵커 샘플링을 위한 파라미터 설정(Index 6-7, 8)</li>
<li>다양한 길이 설정 전반에 걸친 테스트 시간 샷 분할을 위한 임계값 구성 (Index 8-11)
<img src="https://velog.velcdn.com/images/bbang_jun/post/9652f011-0b94-4690-b829-b3cb8cf17038/image.png" alt=""></li>
</ol>
<p><strong>Genre Embedding Integration</strong>: 단순 연결 전략보다 유사도 기반 잔차 접근 방식이 가장 좋은 성능(63.62 AP)를 달성했다. 이는 어텐션 메커니즘을 통한 장르 정보의 동적 통합이 단순 결합보다 효과적임을 보여준다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/2c9d2722-8bf6-4269-a468-e6556d63aa47/image.png" alt=""></p>
<p><strong>Genre Prompt Design</strong>: 장르 이름만 사용한 것보다 상세한 서술이 포함된 &#39;정의 기반&#39; 프롬프트가 가장 높은 성능을 달성</p>
<p><strong>Shot Duration</strong>: 고정된 끝점이나 긴 샷을 우선하는 전략보다, 역-길이 가중치 전략이 가장 좋은 성능을 달성했다. 짧은 샷을 앵커로 우선순위화하는 것이 더 다양한 훈련 신호를 제공함을 보여준다.</p>
<p><strong>Shot Split Threshold</strong>: 추론시 긴 샷을 분할할때 임계값이 작아질수록 일관된 성능 향상이 있었으며 10초 임게값이 최상의 성능을 달성했다.</p>
<h3 id="66-qualitative-analysis-of-failure-cases">6.6 Qualitative Analysis of Failure Cases</h3>
<p>시스템적인 실패 패턴을 식별하기 위해 Movie-SSeg 테스트 세트에서 성능이 가장 낮은 세 편의 비디오를 분석했다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/e77c3f86-ee94-4325-836b-53e28994cc92/image.png" alt=""></p>
<ul>
<li><p>Insert Shots : TV, 사진 등 짧은 삽입 영상이 장면 경계로 오분류되는 경우가 빈번하다. 이는 시각 기반 접근 방식이 주변 시퀸스와의 서사적 일관성을 유지하는 스토리텔링 기법을 이해할 수 있는 서사적 이해도가 부족함을 보여준다.</p>
</li>
<li><p>Lighting Variations : 번개, 깜빡임 등은 시각적 불연속성을 만들어 장면 변화로 오해를 일으킨다.</p>
</li>
<li><p>Subtle Spatial Transitions: 서사 흐름은 유지하면서 실내에서 실외로 확장되는 경우, 높은 시각적 유사도 때문에 분할하지 못하는 현상이 발생</p>
</li>
<li><p>CGI: 디지털 합성이나 CGI는 장면에 무관한 시각적 불연속성을 생성하여 경계로 오해받기 쉽다.</p>
</li>
</ul>
<h2 id="vii-conclusion">VII. CONCLUSION</h2>
<p>장르 가이드 표현학습, 길이 기반 앵커 샘플링, 테스트 타임샷 분할을 통해 제작 수준의 메타데이터를 활용하는 비디오 장면 분할을 위한 새로운 접근 방식을 제시합니다.</p>
<p>또한, 다양한 서사 구조에 대한 평가를 지원하기 이해 영화, TV, 다큐멘터리 등 여러 콘텐츠 유형에 걸쳐 1000개의 비디오 클립에 사람이 직접 주석을 단 장면 분할 벤치마크인 MovieChat-SSeg를 소개한다. 광범위한 실험을 통해 우리의 방법론이 여러 벤치 마크에서 SOTA 성능을 달성했으며, 다양한 비디오 콘텐츠 유형 전반에서 기존 접근 방식 대비 상당한 성능 향상을 이루었음을 입증했다.</p>
<p>방법론이 장르 및 시간적 메타데이터를 성공적으로 통합하기는 했으나, 시각적 변동성이 거의 없는 대화 중심의 장면과 같이 장면 경계 검출을 위한 시각적 및 제작 단서가 불충분한 콘텐츠에서는 여전히 한계에 직면한다.</p>
<p>접근 방식은 영화 스타일의 콘텐츠에 초점을 맞추고 있어 다른 컨벤션을 가진 비디오 포맷에서는 추가적인 adaptation이 필요할 수 있다. 현재의 사전 학습은 전적으로 MovieNet 데이터에만 의존하고 있으며, 더 다양하고 대규모의 비디오 데이터셋을 통합한다면 다양한 콘텐츠 유형에 대한 일반화 성능을 잠재적으로 향상시킬 수 있다. 
더 나아가 뉴스 방송, 브이로그, 교육용 콘텐츠와 같은 광범위한 비디오 카테고리에 대한 평가는 서사 중심 콘텐츠를 넘어선 방법론의 적용 가능성에 대한 통찰을 제공할 것이다.</p>
<h2 id="open-review">Open Review</h2>
]]></description>
        </item>
        <item>
            <title><![CDATA[SAMBA + VideoMind : Transfer Learning Toy Project]]></title>
            <link>https://velog.io/@bbang_jun/SAMBA-VideoMind-Transfer-Learning-Toy-Project</link>
            <guid>https://velog.io/@bbang_jun/SAMBA-VideoMind-Transfer-Learning-Toy-Project</guid>
            <pubDate>Mon, 23 Feb 2026 12:07:45 GMT</pubDate>
            <description><![CDATA[<h3 id="1-motivation">1. Motivation</h3>
<p>최근 제가 리뷰했던 VideoMind (ICLR 2025) 프로젝트는 긴 비디오 시퀀스를 추론하기 위해 에이전트 시스템(Planner, Grounder)과 Chain-of-LoRA를 도입하여 성공적인 성과를 거두었습니다.</p>
<p>하지만 냉정하게 시스템 관점에서 돌아보면, 이는 Transformer가 가지는 $\mathcal{O}(N^2)$ KV Cache 폭발 문제를 회피하기 위한 &#39;소프트웨어적 우회&#39; 전략이었습니다. 한 번에 긴 영상을 보면 메모리가 터지니, 영상을 잘게 쪼개서 에이전트가 순차적으로 보도록 만든 것이죠. 이 방식은 메모리는 아낄 수 있지만, 필연적으로 파이썬 루프와 I/O 병목으로 인한 <strong>심각한 추론 지연</strong>을 야기합니다.</p>
<p>세미나에서 리뷰한 <strong>SAMBA (ICLR 2025)</strong>는 이 문제를 아키텍처 레벨에서 근본적으로 해결합니다. 선형 순환 모델인 Mamba와 슬라이딩 윈도우 어텐션(SWA)을 결합하여 백본 자체가 $\mathcal{O}(N)$ 복잡도를 가지게 만듭니다.</p>
<p>저는 동일한 Long Video Feature Extraction Task를 가정하고, 기존 VideoMind의 에이전트 우회 방식과 SAMBA의 End-to-End 방식을 직접 PyTorch 코드로 구현하여 성능을 3-Way로 벤치마킹했습니다.</p>
<h3 id="2-benchmark-design-3-way-comparison">2. Benchmark Design (3-Way Comparison)</h3>
<p>긴 비디오 시퀀스(Token Length 최대 24,000)를 입력으로 주었을 때, 세 가지 접근법의 메모리(VRAM)와 속도(Latency)를 프로파일링했습니다.</p>
<h4 id="🔴-native-transformer-기존-모델에-우회-없이-긴-영상을-통째로-넣음-oom-발생-임계점-확인용">🔴 Native Transformer: 기존 모델에 우회 없이 긴 영상을 통째로 넣음 (OOM 발생 임계점 확인용)</h4>
<h4 id="🔵-videomind-bypass-agent-chunking-모사-긴-영상을-1000-프레임-단위로-쪼개서-순차적으로-attention을-돌린-뒤-결합-메모리는-버티지만-루프-병목-발생-예상">🔵 VideoMind Bypass (Agent Chunking 모사): 긴 영상을 1000 프레임 단위로 쪼개서 순차적으로 Attention을 돌린 뒤 결합 (메모리는 버티지만 루프 병목 발생 예상)</h4>
<h4 id="🟢-samba-end-to-end-논문에서-제안한-mambaswa-하이브리드로-긴-영상을-통째로-병렬-처리-메모리와-속도-모두-해결">🟢 SAMBA (End-to-End): 논문에서 제안한 Mamba+SWA 하이브리드로 긴 영상을 통째로 병렬 처리 (메모리와 속도 모두 해결)</h4>
<h3 id="3-runnable-pytorch-code-colab-프로파일러">3. Runnable PyTorch Code (Colab 프로파일러)</h3>
<p>아래는 제가 직접 설계하여 Colab 환경에서 검증한 벤치마킹 스크립트입니다. Transformer의 $\mathcal{O}(N^2)$ 병목과 SAMBA의 $\mathcal{O}(N)$ 병렬 처리 구조를 모사했습니다.</p>
<pre><code>import torch
import torch.nn as nn
import torch.nn.functional as F
import matplotlib.pyplot as plt
import gc
import time

# 하드웨어 세팅
device = torch.device(&quot;cuda&quot; if torch.cuda.is_available() else &quot;cpu&quot;)

# =====================================================================
# 1. Standard Transformer (VideoMind의 근본적 한계)
# =====================================================================
class FullAttentionLayer(nn.Module):
    def __init__(self, d_model, n_heads):
        super().__init__()
        self.qkv = nn.Linear(d_model, d_model * 3)
        self.out = nn.Linear(d_model, d_model)
        self.n_heads = n_heads

    def forward(self, x):
        B, N, D = x.shape
        qkv = self.qkv(x).reshape(B, N, 3, self.n_heads, D // self.n_heads).permute(2, 0, 3, 1, 4)
        q, k, v = qkv[0], qkv[1], qkv[2]

        # PyTorch 최적화를 우회하여 실제 O(N^2) 메모리 병목을 유도
        scores = torch.matmul(q, k.transpose(-2, -1)) / (q.size(-1) ** 0.5)
        attn = torch.nn.functional.softmax(scores, dim=-1)
        attn_out = torch.matmul(attn, v)

        return self.out(attn_out.permute(0, 2, 1, 3).reshape(B, N, D))

# =====================================================================
# 2. VideoMind Agent Bypass (기존 연구의 소프트웨어적 우회 전략 모사)
# - 긴 영상을 한 번에 못 보니, Chunk(예: 1000 프레임) 단위로 잘라서
#   순차적으로 Attention을 돌리고 결과를 취합하는 방식 (Chain-of-LoRA 스타일)
# =====================================================================
class VideoMindAgentBypass(nn.Module):
    def __init__(self, d_model, n_heads, chunk_size=1000):
        super().__init__()
        self.transformer_block = FullAttentionLayer(d_model, n_heads)
        self.chunk_size = chunk_size

    def forward(self, x):
        B, N, D = x.shape
        out_chunks = []

        # 에이전트가 영상을 쪼개서 순차적으로 추론하는 과정 모사 (O(N)번의 순차 루프)
        for i in range(0, N, self.chunk_size):
            chunk = x[:, i:i+self.chunk_size, :]
            # 각 청크별로 Transformer 연산
            processed_chunk = self.transformer_block(chunk)
            out_chunks.append(processed_chunk)

        return torch.cat(out_chunks, dim=1)

# =====================================================================
# 3. Samba Layer Proxy (본 논문의 해결책: End-to-End O(N) 하이브리드)
# =====================================================================
class SambaHybridLayer(nn.Module):
    def __init__(self, d_model, n_heads, window_size=1000):
        super().__init__()
        # 1. Mamba Proxy: O(N) 순환 상태로 전체 문맥을 압축
        self.mamba_proxy = nn.Sequential(
            nn.Conv1d(d_model, d_model, kernel_size=4, padding=3),
            nn.SiLU(),
            nn.Linear(d_model, d_model)
        )
        # 2. SWA Proxy: 병렬 처리 가능한 국소 어텐션
        self.window_size = window_size
        self.qkv_swa = nn.Linear(d_model, d_model * 3)
        self.out_swa = nn.Linear(d_model, d_model)
        self.n_heads = n_heads

    def forward(self, x):
        B, N, D = x.shape

        # Temporal Dynamics (Mamba - End to End)
        x_mamba = self.mamba_proxy[0](x.transpose(1, 2))[..., :N].transpose(1, 2)
        x_mamba = self.mamba_proxy[2](self.mamba_proxy[1](x_mamba))

        qkv = self.qkv_swa(x_mamba).reshape(B, N, 3, self.n_heads, D // self.n_heads)

        # 병렬 Block Local Attention (우회 없이 한 번에 연산)
        pad_len = (self.window_size - N % self.window_size) % self.window_size
        if pad_len &gt; 0:
            qkv = F.pad(qkv, (0, 0, 0, 0, 0, 0, 0, pad_len))

        N_padded = N + pad_len
        num_blocks = N_padded // self.window_size

        qkv = qkv.permute(2, 0, 3, 1, 4)
        q, k, v = qkv[0], qkv[1], qkv[2]

        q_block = q.view(B, self.n_heads, num_blocks, self.window_size, -1).transpose(1, 2).reshape(B * num_blocks, self.n_heads, self.window_size, -1)
        k_block = k.view(B, self.n_heads, num_blocks, self.window_size, -1).transpose(1, 2).reshape(B * num_blocks, self.n_heads, self.window_size, -1)
        v_block = v.view(B, self.n_heads, num_blocks, self.window_size, -1).transpose(1, 2).reshape(B * num_blocks, self.n_heads, self.window_size, -1)

        attn_chunk = F.scaled_dot_product_attention(q_block, k_block, v_block)

        out = attn_chunk.view(B, num_blocks, self.n_heads, self.window_size, -1).transpose(1, 2).reshape(B, N_padded, self.n_heads, -1)
        out = out[:, :N, :, :] 

        return self.out_swa(out.reshape(B, N, D))

# =====================================================================
# 4. Profiling System
# =====================================================================
def profile_task(model_class, seq_lengths, model_name, d_model=256, n_heads=8):
    peak_mems = []
    lats = []

    for seq_len in seq_lengths:
        try:
            model = model_class(d_model, n_heads).to(device)
            # Long Video Feature Extraction Task 모사 (1배치, 긴 프레임)
            dummy_video_features = torch.randn(1, seq_len, d_model, device=device)

            # Warmup
            with torch.no_grad():
                for _ in range(2):
                    _ = model(dummy_video_features)

            torch.cuda.synchronize()
            torch.cuda.reset_peak_memory_stats()
            torch.cuda.empty_cache()

            start_event = torch.cuda.Event(enable_timing=True)
            end_event = torch.cuda.Event(enable_timing=True)

            # Run Measurement
            with torch.no_grad():
                start_event.record()
                _ = model(dummy_video_features)
                end_event.record()

            torch.cuda.synchronize()

            peak_mem = torch.cuda.max_memory_allocated() / (1024 ** 2)
            latency_ms = start_event.elapsed_time(end_event)

            peak_mems.append(peak_mem)
            lats.append(latency_ms)
            print(f&quot;[{model_name}] Seq {seq_len:&lt;6}: {peak_mem:.1f} MB / {latency_ms:.1f} ms&quot;)

        except RuntimeError as e:
            if &quot;out of memory&quot; in str(e).lower():
                print(f&quot;[{model_name}] Seq {seq_len:&lt;6}: OOM 발생 (메모리 폭발)&quot;)
                peak_mems.append(None)
                lats.append(None)
            else:
                raise e
        finally:
            if &#39;model&#39; in locals(): del model
            if &#39;dummy_video_features&#39; in locals(): del dummy_video_features
            torch.cuda.empty_cache()
            gc.collect()

    return peak_mems, lats

# =====================================================================
# 5. Run &amp; Visualization
# =====================================================================
seq_lengths = [1000, 2000, 4000, 8000, 16000, 24000] 

print(&quot;1. Profiling Native Transformer (OOM 발생 예정)...&quot;)
tf_mem, tf_lat = profile_task(FullAttentionLayer, seq_lengths, &quot;Transformer&quot;)

print(&quot;\n2. Profiling VideoMind Bypass (메모리는 아끼지만 속도 지연 발생)...&quot;)
vm_mem, vm_lat = profile_task(VideoMindAgentBypass, seq_lengths, &quot;VideoMind Bypass&quot;)

print(&quot;\n3. Profiling SAMBA End-to-End (메모리 &amp; 속도 모두 최적화)...&quot;)
samba_mem, samba_lat = profile_task(SambaHybridLayer, seq_lengths, &quot;SAMBA&quot;)
</code></pre><h3 id="4-results--insights-실험-결과-해석">4. Results &amp; Insights (실험 결과 해석)</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/83dd7f73-6fe1-4097-a265-d810ff53eeb5/image.png" alt=""></p>
<p>직접 PyTorch로 구현한 프로파일링 결과는 제 가설을 증명했습니다. 두 지표의 결과를 비교해 보겠습니다.</p>
<p>Metric 1: Peak VRAM</p>
<h4 id="🔴-native-transformer빨간색-시퀀스가-8000-프레임을-돌파하는-순간-mathcalon2-곡선을-그리며-수직-상승하더니-결국-oomout-of-memory으로-사망했습니다-기존-백본의-치명적-한계입니다">🔴 Native Transformer(빨간색): 시퀀스가 8,000 프레임을 돌파하는 순간 $\mathcal{O}(N^2)$ 곡선을 그리며 수직 상승하더니 결국 OOM(Out of Memory)으로 사망했습니다. 기존 백본의 치명적 한계입니다.</h4>
<h4 id="🔵-videomind-bypass파란색-에이전트-청킹chunking을-통해-우회했기-때문에-vram-폭발은-성공적으로-막아냈습니다">🔵 VideoMind Bypass(파란색): 에이전트 청킹(Chunking)을 통해 우회했기 때문에 VRAM 폭발은 성공적으로 막아냈습니다.</h4>
<h4 id="🟢-samba초록색-아키텍처-자체가-선형적이라-영상을-한-번에-통째로-넣었음에도-파란색-선과-마찬가지로-vram이-상수-수준으로-낮게-유지되었습니다">🟢 SAMBA(초록색): 아키텍처 자체가 선형적이라 영상을 한 번에 통째로 넣었음에도 파란색 선과 마찬가지로 VRAM이 상수 수준으로 낮게 유지되었습니다.</h4>
<p>여기까지만 보면 &quot;그냥 VideoMind처럼 영상을 잘라서 주면 되는 거 아냐?&quot;라고 할 수 있습니다. 하지만 진정한 차이는 다음 지표에서 나타납니다.</p>
<p>Metric 2: Inference Latency (소프트웨어 우회 vs 하드웨어 네이티브)</p>
<h4 id="🔵-videomind-bypass파란색-메모리를-아끼기-위해-파이썬-단위에서-루프for를-돌며-영상을-쪼개고-순차-처리하느라-추론-시간latency이-기하급수적으로-길어졌습니다-에이전트-기반-우회-시스템이-가지는-현실적인-오버헤드입니다-이대로는-실시간-처리가-불가능해집니다">🔵 VideoMind Bypass(파란색): 메모리를 아끼기 위해 파이썬 단위에서 루프(for)를 돌며 영상을 쪼개고 순차 처리하느라 추론 시간(Latency)이 기하급수적으로 길어졌습니다. 에이전트 기반 우회 시스템이 가지는 현실적인 오버헤드입니다. 이대로는 실시간 처리가 불가능해집니다.</h4>
<h4 id="🟢-samba초록색-영상을-자르지-않고-한-번에-넣었음에도-vram이-터지지-않았을-뿐만-아니라-하드웨어-병렬-처리parallel-scan--flashattention를-100-활용하여-가장-압도적이고-선형적인-처리-속도를-보여주었습니다">🟢 SAMBA(초록색): 영상을 자르지 않고 한 번에 넣었음에도 VRAM이 터지지 않았을 뿐만 아니라, 하드웨어 병렬 처리(Parallel Scan &amp; FlashAttention)를 100% 활용하여 가장 압도적이고 선형적인 처리 속도를 보여주었습니다.</h4>
<p>💡 최종 어필 포인트</p>
<p>이 토이 프로젝트를 통해, 소프트웨어(에이전트)로 우회하던 VideoMind의 속도 지연 한계를 명확히 인지하고, SAMBA와 같은 <strong>$\mathcal{O}(N)$ 하이브리드 아키텍처를 Video 모델의 네이티브 백본으로 Task Transfer</strong>하는 것이 가장 근본적인 해결책임을 데이터로 입증했습니다.</p>
<p>단순히 최신 논문의 지식을 습득하는 것에 그치지 않고, 이를 저의 기존 연구가 가졌던 시스템적 한계를 돌파하는 실제적인 아키텍처 솔루션으로 즉각 치환하여 코드로 증명해 보았다는 점이 이번 세미나의 가장 큰 수확입니다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[VideoMind: A Chain-of-LoRA Agent for Long Video Reasoning]]></title>
            <link>https://velog.io/@bbang_jun/VideoMind-A-Chain-of-LoRA-Agent-for-Long-Video-Reasoning</link>
            <guid>https://velog.io/@bbang_jun/VideoMind-A-Chain-of-LoRA-Agent-for-Long-Video-Reasoning</guid>
            <pubDate>Wed, 04 Feb 2026 07:51:43 GMT</pubDate>
            <description><![CDATA[<h2 id="abstract">Abstract</h2>
<p>비디오는 고유한 시계열적 차원을 지니고 있어, 답변이 해석 가능한 시각적 근거와 직접적으로 연결되는 Grounded Understanding을 요구한다.LLM의 추론 능력은 비약적 발전하였으나, 멀티모달 추론(특히 비디오)는 여전히 미개척 영역으로 남아있다. 해당 논문은 시계열 근거 기반 비디오 이해를 위해 설계된 혁신적인 비디오 -언어 에이전트인 VideoMind를 소개한다. 혁신은 다음과 같다.</p>
<ol>
<li><strong>Role - based agentic Workflow</strong> : 비디오 시계열 추론에 필수적인 역량을 정의하고, 각 역할을 조율하는 <strong>Planner</strong>, 시계열적 국소화를 수행하는 <strong>Grounder</strong>, 시계열 구간의 정확성을 평가하는 <strong>Verifier</strong>, 그리고 최종 답변을 도출하는 <strong>Answerer</strong>로 구성된 워크플로우 개발</li>
<li><strong>Chain-of-Lora</strong> : 이러한 다양한 역할들을 효율적으로 통합하기 위해 새로운 <strong>Chain-of-Lora</strong> 전략을 제안, 이는 경량화된 LoRA 어댑터를 통해 모델 전환 오버헤드 없이 유연하게 역할을 전환할 수 있게 하여, 효율성과 유연성 사이의 균형을 맞춘다.</li>
</ol>
<p>14개의 공개 벤치마크를 대상으로 한 광범위한 실험을 통해, 본 에이전트가 다양한 이해과업에서 <strong>SOTA</strong> 성능을 달성함을 입증하였으며, 이는 비디오 에어전트 및 장기 시계열 추론 분야의 발전에 기여할 효과적인 방법임을 시사</p>
<h3 id="핵심-요약">핵심 요약</h3>
<p>Objective: 비디오의 &#39;시간적 근거(Temporal Grounding)&#39;를 명확히 하여 추론의 신뢰도 향상.</p>
<p>Architecture: 4가지 논리적 역할(Planner, Grounder, Verifier, Answerer)을 분리한 에이전트 구조.</p>
<p>Efficiency: 여러 모델을 로드하는 대신, Chain-of-LoRA를 통해 하나의 베이스 모델에서 어댑터만 교체하며 연산 효율 극대화.</p>
<p>Performance: 총 14개 벤치마크에서 기존 모델들을 상회하는 성능 확인.
<img src="https://velog.velcdn.com/images/bbang_jun/post/9fb94713-4111-42ec-a4a5-1b9bc177d596/image.png" alt="">
figure1.</p>
<h2 id="i-introduction">I. Introduction</h2>
<p>LLM의 발전은 Chain-of-Thought과 같은 추론에서 효과를 입증하며, 복장한 문제ㅐ 해결 시나리오에서 정확성과 해석 가능성을 모두 향상시켰다. 이러한 성과가 추론 능력을 시각적 수학 이해같은 멀티모달 영역으로 확장하려는 노력을 기울이고 있다.</p>
<p>멀티모달 입력 데이터중에서 <strong>비디오</strong>는 Temporal Dimension으로 인해 정적인 이미지나 텍스트에서는 발견되지 않는 복잡성을 지닌다. 효과적인 비디오 추론을 위해서는 단순히 외형을 인식하는 것 뿐만 아니라, 시간에 따른 Temporal Grounding에 따른 이해가 필수적이다.최근 시각정 CoT 방법론들은 정적 시각 입력에 대해 상세한 사고 과정을 생성하는데는 탁월하지만, Figure1.에서 보이듯 이전 시퀸스를 명시적으로 국소화하거나 재방문할 수 없기 때문에 비디오 분석에도 어려움이 있다.</p>
<p>다만, 인간은 비디오를 이해하기 쉽다. 인간은 복잡한 문제를 분해, 식별, 세부사항 살펴보기, 관찰 내용에 일관된 답변을 종합한다. 이러한 인간의 자연스러운 능력이 본 영구의 동기이며, 고급 비디오 추론을 달성하기 위해 여러 역량을 능숙하게 관리하며, 이 과정을 복제할 수 있는 AI assistant를 개발하게 되었다.</p>
<h3 id="비디오-마인드-소개">비디오 마인드 소개</h3>
<ol>
<li>다양한 요구사항 충족 : 비디오 이해에 필수적인 핵심 역할들을 정의, 정밀한 순간 검색을 위해 4가지 논리적 역할(Planner, Grounder, Verifier, Answerer)을 분리한 에이전트 구조를 차용했으며 예를 들어 <strong>Grounder</strong>는 강력한 시계열 근거 분석 능력을 보장하기 위해 타임스탬프 디코더를 장착하고 있습니다.</li>
<li>효율적 협업 : 단일 베이스 멀티모달 LLM(MLLM ex.Qwen2-VL)을 기반으로 구축된 새로운 <strong>Chain-0f-LoRA</strong> 전략을 제안한다. 이 접근 방식은 미니멀하면서도 유연한 설계 철학을 구현하여, 여러 개의 전체 모델을 사용하는 계산적 부담 없이 역할 간의 전환과 상호작용을 가능케 한다.
따라서 VideoMind는 효율성과 적응성을 동시에 달성하며 다양한 비디오에서 실용적이고 유연한 솔루션을 제공한다.</li>
</ol>
<p>VideoMind의 효과를 평가하기 위해 Grounded VideoQA, VTG, VideoQA를 포함한 14개의 벤치마크에서 광범위한 실험을 수행했다. VideoMind는 시계열적 근거 기반의 증거와 정확한 답변을 동시에 제공, 복잡한 추론을 점진적으로 처리하는 능력을 입증했다. 특히 2B사이즈에서도 CG-Bench의 긴 비디오 과업에서 GPT-4o와 같은 최고 성능 모델을 능가하는 성능을 보인다. 또, VTG 및 일반 VideoQA 설정에서도 강력한 성능을 보인디ㅏ. Ablation Study 결과 설계선택의 핵심적 기여가 확인된다.</p>
<h2 id="ii-related-works">II. Related Works</h2>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/02a754c0-93b5-4c72-9a48-c2911e43d300/image.png" alt="">
Figure2. VideoMind의 전체 워크플로우. Query가 주어지면, VideoMind는 다양한 역할(이 사례의 경우 Planner → Grounder → Verifier → Answerer)을 적응적으로 활성화하고, 개별 모듈을 호출하여 단계별 추론을 수행한다.</p>
<h3 id="21-temporal-grounded-video-understanding">2.1 Temporal-grounded Video Understanding</h3>
<p>비디오 캡셔닝, VideoQA, 비디오-텍스트 검색 등 비디오 이해 분야의 비약적인 발전은 인스턴스 수준의 이해를 강조해 왔으나, 이러한 모델들은 Visual-Grounded와의 대응성 및 해석 가능서잉 부족, 특히 긴 비디오에서 이러한 경향이 심하다. 
VTG는 다양한 질의에 대해 정밀한 시계열적 국소화를 요구함으로써 이를 해결하려 하지만, 기존 회귀 기반 모델은 국소화에는 능숙하나 텍스트 기반의 해석 가능성을 제공하는데 한계가 있다. 최근 벤치마크는 복잡한 질문에 대한 추론과 세밀한 시계열 대응을 동시에 요구하며 이러한 도전을 심화한다. 기존 베이스라인들은 주로 다중 작업 목적함수나 컴포넌트들로 구성된 모듈형 에이전트에 의존해왔으나, 이는 흔히 최적화되지 못한 성능을 보이거나 시스템이 지나치게 복잡해져 효율성과 유연성을 저해한다. VideoMind는 통합된 백본위에 구축된 에이전트 워크플로우를 도입, 국소화 능력과 해석 가능성을 강화하는 동시에 여러 기능을 원활하게 통합함으로써 기존 방법론의 한계를 극복한다.</p>
<h3 id="22-multi-modal-reasoning">2.2 Multi-modal Reasoning</h3>
<p>지도 학습 기반 명령어(SFT)으로 학습된 LLM은 자유 형식의 대화나 질의응답 등 일발화된 능력을 보여주지만, LLM의 추론 능력이 필수적인 복잡한 문제 해결에는 미습하다.</p>
<ol>
<li>이를 극복하기 위한 방법으로는 에어전트 기반 인터페이스를 개발하여 여러 시각적 도구의 텍스트 출력을 통합하고 LLM을 통해 언어적 추론을 가능하게 하는 것이다. Codex나 ReAct와 같은 전략을 활용하여 점진적인 실행 및 추론 과정에서 시각적 API(검출기나 캡서너)를 호출한다.</li>
<li>다른 대안으로는 강화학습을 통한 긴 CoT 프로세스 학습으로 대표되는 순수 텍스트 기반 추론이 LLM이 주류 패러다임이라면, 일부 연구는 이를 복잡한 수학적 문제를 위한 시각적 영역으로 확장했다. 이러한 진전에도 불구, 시계열 차원을 가로지르는 비디오 추론 확장은 여전히 미해결 과제로 남아있다. 정보량이 많은 비디오의 긴 문맥 특성을 고려, 비디오 중심의 CoT는 인간과 유사한 <strong>다시보기</strong> 전략과 중간 관찰 값에 대한 자기 검증을 포함해야 한다고 판단하며, 이에 따라 비디오 추론을 위한 새로운 <strong>Chain-of-LoRA</strong> 프레임 워크를 도입한다.</li>
</ol>
<h3 id="23-inference-time-searching">2.3 Inference-time Searching</h3>
<p>추론 시간 탐색은 로보틱스, 게임, 네비게이션 등의 분야에서 복잡한 추론 및 계획 과업을 해결하기 위한 핵심 기술로 떠오른다. 이는 학습 시 전략과 달리 학습 후 추론 과정에서 모델의 행동을 최적화한다. OpenAI o1의 등장은 제어된 디코딩, Best-of-N 샘플링, MCTS과 같은 샘플링 전략을 통합함으로써 LLM내의 이러한 추론 시간 기술을 발전시켰으며, 이를 통해 가중치 변경 없이도 출력을 반복적으로 정제하고 우수한 성능을 달성했다. 그러나 추론 시간 탐색의 잠재력은 시계열 추론이 독특한 과제를 제시하는 비디오 이해 분야에서는 활용되고 있지 않다. 본 프레임워크에서는 비디오 시계열 추론에 최적화된 MCTS 활용 방안을 탐구하며, 모델이 시계열 구간 선택에 민감하고 구간 선택이 최적이지 않을 경우 신뢰할 수 없는 예측을 생성한다는 점이 관찰됐다. 이를 해결하기 위해 비디오 모먼트 수준의 MCTS 접근법을 제안한다. 여기서 Grounder는 여러 구간 후보를 생성하고, 뒤이어 Verifier가 정확한 대응 여부를 평가 및 결정한다. 실험을 통해 이 전략이 다양한 비디오 컨텍스트에서 시계열 국소화의 정확도와 강건성을 유의미하게 향상시킴을 확인했다.</p>
<h2 id="iiivideomind">III.VideoMind</h2>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/8198fc29-ab60-4380-b5b8-35cad3c26b89/image.png" alt=""></p>
<p>figure2는 VideoMind의 전반적인 구조를 보여준다. 본 모델은 동적 해상도 입력을 기본적으로 지원하는 ViT기반 시각 인코더와 LLM 백본으로 구성된 Qwen2-VL 아키텍처를 계승한다. 비디오 입력 V와 텍스트 질의 Q가 주어지면, 모델은 다음의 역할들을 적응적으로 활성화하여 단계별 추론을 수행한다.</p>
<p>Planner (플래너): 질의에 따라 이후 역할들을 동적으로 조율한다.</p>
<p>Grounder (그라운더): 관련 비디오 구간(Moment)을 식별하고 국소화한다</p>
<p>Verifier (검증기): Grounder가 찾은 구간의 유효성을 평가하고, Boolean 출력을 통해 구간을 정밀화</p>
<p>Answerer (응답기): 자연어로 최종 답변을 생성, 이러한 메커니즘을 통해 모델은 비디오를 여러 번 다시 보며(다양한 시간 구간 및 공간 해상도 적용) 최종 해답을 도출한다.</p>
<h3 id="31-planner">3.1 Planner</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/cf185ed1-4bee-49e0-8d89-19a22b594697/image.png" alt="">
에이전트는 유연하게 다음 기능을 결정해야 한다. 이를 위해 시각적 문맥에 따라 기능 호출 순서를 결정하는 Planner 역할을 도입한다. 각 기능 호출은 </p>
<pre><code>{&quot;type&quot; : &lt;role&gt;, &quot;value&quot; : &lt;argument&gt;} </code></pre><p>형태의 JSON 객체로 정의되며, Figure3과 같이 세 가지 계획 모드를 제공한다.</p>
<ol>
<li>Grounding &amp; Answering : 답변과 시간적 구간을 모두 생성한다. 예를 들어 ~~할때 소년은 무엇을 하고 있나요? 같은 느낌으로</li>
<li>Grounding Only : 구간 검색 업무에 최적화되어 타임 스탬프만 출력한다.</li>
<li>Answering Only : 질문이 단순할 때, 예를 들어 요약, 추가적인 국소화 호출 없이 비디오 전체를 보고 즉시 답변 </li>
<li>Query Rehrasing : 번외로 질의가 불분명할 경우, 정확한 국소화를 위해 더 묘사적인 버전으로 질문을 재구성한다.</li>
</ol>
<h3 id="32-grounder">3.2 Grounder</h3>
<p>텍스트 질의를 바탕으로 관련 구간을 국소화한다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/dd291f5f-6a54-4cf5-8bf4-bd41bcda30fc/image.png" alt=""></p>
<h4 id="timestamp-decoder">Timestamp Decoder</h4>
<p>언어 모델링이나 특수 토큰을 통해 텍스트 형태의 타임 스탬프를 직접 예측하는 대신, LLM 위에 구축된 타임 스탬프 디코더 헤드를 개발했다. 타임 스탬프 디코딩 과정을 ㅌ용이하게 하기 위해 ** REG ** 라는 특수 토큰을 도입했다. 이 토큰이 생성되면, LLM 마지막 레이어의 <strong>REG</strong> 토큰 히든 상태와 모든 시각 토큰들이 타임스탬프 예측을 위해 디코더로 전송되어, 정규화된 시작 및 종료 타임스탬프를 나타내는 배열 즉 $[t_{start}, t_{end}]$를 얻게된다.</p>
<p>Figure4.에서 보듯, 디코더는 시각 토큰의 히든 상태 $h_v \in \mathbb{R}^{(T \times H \times W) \times D_L}$를 와 <strong>REG</strong> 토큰의 히든 상태 $h_r \in \mathbb{R}^{1 \times D_L}$를 입력으로 받는다. </p>
<p>여기서 $T, H, W, D_L$은 각각 LLM의 다운샘플링된 프레임 수, 너비, 높이, 히든 차원이다.</p>
<ol>
<li>시각 토큰 압축 :$H \times W$ 크기의 커널과 스트라이드를 가진 1D 평균 풀링(Average Pooling)을 적용하여 시각 토큰을 프레임당 하나의 토큰으로 압축한다.</li>
</ol>
<blockquote>
<p>$$h&#39;_v = \text{AvgPool}(h_v) \in \mathbb{R}^{T \times D_L} \quad \text{--- (1)}$$</p>
</blockquote>
<p>2.선형 투영: $h&#39;_v$와 $h_r$은 두 개의 선형 레이어 $E_v$와 $E_r$에 의해 투영되어 히든 차원이 $D$로 감소한다.</p>
<blockquote>
<p>$$e_v = E_v(h&#39;_v) \in \mathbb{R}^{T \times D}, \quad e_r = E_r(h_r) \in \mathbb{R}^{1 \times D} \quad \text{--- (2)}$$</p>
</blockquote>
<p>결과물인 $e_v$와 $e_r$은 각각 비디오 프레임과 질의에 대한 통합된 표현 역할을 한다다.</p>
<ol start="3">
<li>트랜스포머 인코딩: 정보의 효과적인 통합을 위해 학습 가능한 모달리티 임베딩을 더하고, 시퀀스 차원을 따라 연결한 후 트랜스포머로 인코딩한다.</li>
</ol>
<blockquote>
<p>$$[e&#39;_v; e&#39;_r] = \text{Transformer}([e_v + m_v + e_p; h_r + m_r]) \quad \text{--- (3)}$$</p>
</blockquote>
<ul>
<li>$m_v, m_r \in \mathbb{R}^{1 \times D}$: 모달리티 지표 역할을 하는 무작위 초기화된 학습 가능 임베딩.</li>
<li>$e_p$: 시계열 인지 능력을 보존하기 위한 정규화된 사인파(Sinusoidal) 위치 인코딩.</li>
</ul>
<h3 id="temporal-feature-pyramid">Temporal Feature Pyramid</h3>
<p>다양한 길이의 비디오와 구간에 대한 적응성을 높이기 위해, $e&#39;_v$를 네 단계의 다중 시계열 해상도를 가진 시계열 특징 피다미드로 매핑한다. 각 피라미드 레벨에 대해 
Conv1D → LayerNorm → SiLU
블록을 가변적인 횟수로 적용하며, Conv1D는 커널 크기와 스트라이드 2를 사용하여 시퀸스를 1/2로 다운 샘플링한다. 
네 단계는 각각 원본 시퀸스의 1, 1/2, 1/4, 1/8을 유지하며, 이를  $p^n_v \in \mathbb{R}^{(T/n^2) \times D}$ (여기서 $n \in [1, 4]$)로 표기한다.
예측 속도를 높이기 위해 모든 레벨의 시퀀스를 시계열 차원을 따라 $pv$ (길이 $L = T + T/2 + T/4 + T/8$)로 연결하여 병렬 예측이 가능하게 한다.</p>
<h3 id="training-objectives">Training Objectives</h3>
<p>연속적인 타임스탬프 모델링을 위해 두 개의 Dense Prediction Heads를 채택한다.</p>
<ol>
<li>Classification Head</li>
</ol>
<p>-프레임 단위의 전경-배경을 분류한다. 2층 Conv1D 모듈과 Sigmoid 활성화 함수로 구성되며, 각 프레임이 대상 구간 내에 속하는지 나타내는 신뢰도 점수 ${\hat{c}<em>i}^L</em>{i=0}$를 출력합니다. <strong>Binary Focal Loss</strong>를 사용하여 최적화합니다.</p>
<p>$$\mathcal{L}<em>{cls} = -\lambda</em>{cls}\alpha(1 - \hat{c}<em>i)^{\gamma} \log(\hat{c}_i) \quad \text{--- (4)}$$
($\alpha=0.9, \gamma=2.0, \lambda</em>{cls}=5.0$)</p>
<ol start="2">
<li>Boundary Regression Head</li>
</ol>
<p>-각 프레임에 대해 시계열 경계와의 1D오프셋  ${[\hat{b}^s_i, \hat{b}^e_i]}^L_{i=0}$을 예측한다. 
2층 컨볼루션 블록과 Exponential Function 활성화를 사용하며, <strong>L1 Loss</strong>로 지도 학습합니다.
$$\mathcal{L}<em>{reg} = \lambda</em>{reg}(|b^s_i - \hat{b}^s_i| + |b^e_i - \hat{b}^e_i|) \quad \text{--- (5)}$$
($\lambda_{reg}=1.0$)</p>
<ol start="3">
<li>Contrastive Loss</li>
</ol>
<p>-$e_v$와 $e_r$ 사이의 더 나은 정렬을 위해 추가적인 대조 손실을 통합한다. 모든 프레임-질의 쌍 간의 코사인 유사도 ${s_i}^L_{i=0}$를 계산하고 양성 프레임(GT 경계 내)을 샘플링하여 최적화한다.</p>
<p>$$\mathcal{L}<em>{con} = -\lambda</em>{con} \log \frac{\exp(s_p/\tau)}{\exp(s_p/\tau) + \sum_{i \in \Theta} \exp(s_i/\tau)} \quad \text{--- (6)}$$
($\Theta$: $s_p &gt; s_i$인 프레임 인덱스, $\tau=0.07, \lambda_{con}=0.05$)</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/76d9b1f1-85f0-4989-8cfe-f33baba62532/image.png" alt=""></p>
<h3 id="33-verifier">3.3 Verifier</h3>
<p>Grounder가 제안한 시각적 구간들이 항상 정확하진 않다. 따라서 후보 구간들의 유효성을 평가하기 위해 Verifier 역할을 도입했다. </p>
<ol>
<li>작동 매커니즘 : Verifier는 Grounder가 생성한 각 후보 구간 $[t_{start}, t_{end}]$를 입력으로 받는다. 모델은 해당 구간을 <strong>확대</strong>하여 더 높은 공간 해상도와 적절한 샘플링율로 시청한다.</li>
<li>출력 :  Verifier는 해당 구간의 Query와 일치하는지에 대해 <strong>YES</strong> 혹은 <strong>NO</strong>를 나타내는 Boolean 값을 출력하도록 학습되었다.</li>
<li>데이터 생성 : 사전 학습된 Grounder의 예측 결과를 활용하여 Verifier 학습용 데이터를 구축한다. Grounder의 예측 중 Ground Truth와 IoU가 0.7 이상인 것은 <strong>YES</strong> , 0.3 미만인 것은 <strong>NO</strong>로 레이블링하여 모델이 미세한 차이를 식별하도록 훈련했다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/1623da6c-6357-4776-aea1-dbffdd2e2a8d/image.png" alt="">
<img src="https://velog.velcdn.com/images/bbang_jun/post/91adfbf7-0ebb-4124-9f01-6b9c67d9e7b8/image.png" alt=""></p>
<h3 id="34-answerer">3.4 Answerer</h3>
<p>Answerer는 Grounder가 사용되었을 때는 크롭된 비디오 구간을 기반으로, Planner가 직접적인 답변을 선택했을 때는 비디오 전체를 기반으로 주어진 질문에 답변하는 역할을 담당한다. 이역할의 목적은 LMM(여기서는 Qwen2-VL)의 목적과 엄밀하게 일치하기 때문에, 우리는 아키텍처 수정이나 별도의 파인튜닝 없이 사전 학습된 모델을 직접 채택해 사용한다.</p>
<p>모든 모듈은 동일한 백본 LMM 위에 구축되었으며, 추가적인 LoRA 어댑터와 경량 다임스탬프 디코더가 증가된 형태이다. 각 역할에 따라 서로 다른 LoRa 어댑터가 교체되며, 이를 통해 모델 아키텍처의 수정을 최소화, 각 역할에 특화된 능력을 끌어낸다.</p>
<h2 id="iv-experiments">IV. Experiments</h2>
<h3 id="41-experimental-settings">4.1 Experimental settings</h3>
<p>구현 세부 사항: Qwen2-VL-2B-Instruct와 Qwen2-VL-7B-Instruct를 기본 모델로 사용한다.
시각 인코더는 600MB 미만의 메모리를 사용하여 모든 비디오를 네이티브 동적 해상도로 처리한다. </p>
<p>학습과정은 다음 두 단계로 나뉘어진다.</p>
<ol>
<li>Pre-training : 각 역할에 대해 Table1에 나열된 데이터셋을 사용하여 모델을 학습시킨다. 이 단계에서 백본 LLM에 LoRA 어댑터를 도입하고 Grounder를 위한 타임스탬프 디코더를 최적화한다.</li>
<li>Instruction Fine-tuning: 사전 학습된 체크포인트를 바탕으로 통합된 SFT 데이터셋을 사용하여 전체 모델을 미세조정하며, 이때 각 역할에 해당하는 LoRA 어댑터가 활성화된다. 학습은 8개의 NVIDIA H100 GPU에서 수행되며, DeepSeed ZeRO-3 전략을 활용했다.</li>
</ol>
<h3 id="42--grounded-videoqa">4.2  Grounded VideoQA</h3>
<p>CG-Bench, RexTime,NExT-GQA 세 가지 주요 벤치마크에서 VideoMind의 성능을 평가했다. 이 과정에서 복잡한 추론뿐 아니라 Temporal Grounding을 동시에 요구한다.
-성능분석 : VideoMind는 모든 벤치마크에서 기존 SOTA 모델들을 일관되게 능가한다.
-긴 비디오 장점 : 특히 27분 이상의 긴 비디오를 포함하는 CG-Benc에서, 2B모델은 GPT-4o를 정확도 측면에서 유의미한 차이로 이기며, 이는 Chain-of-LoRA를 통한 단계별 추론 방식이 거대 모델의 단일 패스 추론보다 장편 비디오 이해에 더 효율적임을 증명한다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/84bea56f-4b6a-4359-af1a-47366445d45f/image.png" alt=""></p>
<h3 id="43-video-temporal-grounding">4.3 Video Temporal Grounding</h3>
<p>VideoMind의 국소화 능력을 검증하기 위해 Charades-STA, ActivityNet-Captions, QVHighlights, TACoS, Ego4D-NLQ, ActivityNet-RTL 등 6개 데이터셋에서 실험을 수행했다.</p>
<p>평가지표 : 특정 IoU 임계값에서의 Recall@과 mAP 지표를 사용했다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/3d1fe997-ff6b-4bce-a278-302daa2a1594/image.png" alt="">
<img src="https://velog.velcdn.com/images/bbang_jun/post/e331c929-b53a-4f4f-ac60-a60f250a4f09/image.png" alt="">
결과: VideoMind는 텍스트 질의에 대응하는 정확한 시간 구간을 찾아내는데 탁월한 성능을 보이며, 특히 복잡한 활동이 포함된 ActivityNet과 Ego4D 데이터셋에서 높은 강건성을 기록했다.</p>
<h3 id="44-general-videoqa">4.4 General VideoQA</h3>
<p>국소화 정보 없이도 전체적인 비디오 이해 능력을 확인하기 위해 Video-MME, MLVU, LVBench, MVBench, LongVideoBench에서 평가를 진행했다.</p>
<p>결과: VideoMind는 Answerering-only에서도 기존의 강력한 LMM들과 대등하거나 그 이상의 성능을 보여주었으며, 이는 백본인 Qwen2-VL의 능력을 보존하면서도 에이전트 워크플로우를 성공적으로 통합함을 시사한다.</p>
<h3 id="45-ablation-studies">4.5 Ablation Studies</h3>
<p>제안된 구성 요소들의 기여도 파악을 위해 여러 절제 실험을 수행한다.</p>
<ol>
<li>Chain-of-LoRA의 효과: 단일 모델로 모든 역할을 수행하는 것보다 역할별 LoRA 어댑터를 사용하는 것이 각 과업에서의 전문성을 높여 전체적인 정확도를 향상시켰다.</li>
<li>Verifier의 역할 : Verifier를 통해 후보 구간을 검증하고 재확인하는 과정이 시계열 국소화를 5%~10% 가량 향상시키는 것을 확인했다.</li>
<li>Inference-time Searching (MCTS) : MCTS 전략을 적용했을 때, 모델이 최적의 구간을 선택할 확률이 높아져 복잡한 질의에 대한 오답률이 유의미하게 감소했다.</li>
</ol>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/80f96a03-cfa7-4690-846e-8f832cb3afef/image.png" alt="">
<img src="https://velog.velcdn.com/images/bbang_jun/post/737b4d2e-4c2e-4f2c-b472-86009002d65a/image.png" alt="">
<img src="https://velog.velcdn.com/images/bbang_jun/post/39735e95-b343-40f4-9fc8-b9b914a3e85b/image.png" alt=""></p>
<h2 id="v-conclusion--limitations">V. Conclusion &amp; Limitations</h2>
<p>시계열 근거 기반의 비디오 추론을 위해 설계된 새오운 비디오-언어 에이전트인 VideoMind를 소개했다. Planner, Grounder, Verifier, Answerer로 구성된 에이전트 워크플로우를 채택하고 있으며, 이러한 역할들 사이를 효율적으로 전환하기 위해 Chain-of-LoRA 전략을 함께 사용한다.</p>
<p>Grounded VideoQA, VTG, 그리고 VideoQA에 걸치 광범위한 실험은 VideoMind의 효과와 중요성을 입증하고, 정밀하고 증거에 기반한 답변을 제공함으로 <strong>장편 비디오 추론</strong>에 탁월한 성과를 보인다.</p>
<p>본 모델이 개별 설계의 최적화와 학습 데이터 준비 측면에서 막대한 최적화를 필요로 한다는 점을 인정한다. 향후 멀티모달 비디오 에이전트 및 추론 분야의 발전에 영감을 줄 수 있기를 기대한다.</p>
<h2 id="vi-🎓-under-graduated-students-insight-critical-thinking">VI. 🎓 Under Graduated Student&#39;s Insight (Critical Thinking)</h2>
<ol>
<li><p>실제로 실시간(Real-time) 서비스에 적용할 때, LoRA 파라미터 스위칭에 걸리는 Latency가 전체 추론 속도에 미치는 영향은 무시할 수 있는 수준인가?</p>
</li>
<li><p>Grounder 성능에 대한 종속성 : 워크플로우가 Sequential하다. Grounder가 엉뚱하거나 잘못된 구간을 짚으면 이미 Verifier과 Answerer의 성능과 상관없이 오답을 찾을 가능성이 있다고 생각한다. </p>
</li>
</ol>
<ul>
<li>Grounder가 후보 구간을 추출할 때의 Recall이 낮다면, Verifier의 검증 단계는 무의미해지지 않는가? 에이전트가 스스로 Grounding 실패를 감지하고 Planner로 되돌아가는 피드백 루프(Feedback Loop)가 부족해 보인다.</li>
</ul>
<ol start="3">
<li><p>Training Data Curation : Verifier가 단순히 <strong>1</strong> or <strong>0</strong>으로 판단하는 사례로 구성된다는게 문제점이다. Grounder가 특정 유형의 비디오 야간이라던지, 잔상이 남는 영상이라던지에 취약하다면, Verifier 역시 해당 도메인의 <strong>오답 즉 0</strong>만 학습하게 되어 Generalization 성능이 떨어지 않을까?</p>
</li>
<li><p>실험에 대해서도 2가지 의문이 남는다. 
첫번째는 Answerer의 Zero-Shot 성능이 과연 괜찮은가? Qwen2-VL을 그대로 사용하는 것으로 보인다. 다른 역할들은 LoRA로 최적화를 하는데 Answerer만은 튜닝하거나 최적화하지 않은 이유가 있을까? 
두번째로는 MCTS의 효율성이 사실인가?에 대한 의문이다. MCTS는 일반적으로 많은 샘플링을 요구하는데 2B 모델로 GPT-4o를 이겼다고 하지만, 동일 시간에서 실험한다는 가정이라면 더 효율적일까? 정확도를 위해 연산량을 늘리고 시간을 엄청 쓴게 아닌가 하는 생각이 든다. <strong>-&gt; 시간이 난다면 깃허브에서 코드를 돌려보는 것도 좋은 방법인 것 같다</strong></p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[Clothing Twin: Reconstructing Inner and Outer Layers of Clothing Using 3D Gaussian Splatting]]></title>
            <link>https://velog.io/@bbang_jun/Clothing-Twin-Reconstructing-Inner-and-Outer-Layers-of-Clothing-Using-3D-Gaussian-Splatting</link>
            <guid>https://velog.io/@bbang_jun/Clothing-Twin-Reconstructing-Inner-and-Outer-Layers-of-Clothing-Using-3D-Gaussian-Splatting</guid>
            <pubDate>Tue, 06 Jan 2026 13:13:25 GMT</pubDate>
            <description><![CDATA[<p>이번 포스팅에서는 <strong>Pacific Graphics 2025</strong>에 발표된 3D 의상 복원 관련 논문을 리뷰한다. 기존 3DGS(3D Gaussian Splatting) 연구들이 겉면 복원에 치중했다면, 이 논문은 <strong>의상의 안감(Inner Layer)</strong>까지 완벽하게 복원하는 파이프라인을 제안한다.</p>
<blockquote>
<p><strong>논문 정보</strong>
<strong>Title:</strong> Clothing Twin: Reconstructing Inner and Outer Layers of Clothing Using 3D Gaussian Splatting
<strong>Authors:</strong> Munkyung Jung, Dohae Lee, In-Kwon Lee (Yonsei Univ. &amp; MeTown Inc.)
<strong>Conference:</strong> Pacific Graphics 2025 (Computer Graphics Forum)</p>
</blockquote>
<h3 id="1-abstract-핵심-요약">1. Abstract: 핵심 요약</h3>
<h4 id="11-문제-problem">1.1 문제 (Problem):</h4>
<p>기존 3D 의상 복원은 마네킹에 입힌 상태로 촬영하므로 마네킹에 가려진 <strong>안감(Inner layer)</strong>을 복원할 수 없다. 단순히 겉면과 안면을 따로 찍어 합치는(Naive merging) 방식은 기하학적 불일치와 Gaussian Splat 간의 충돌(Artifact)로 인해 시각적 품질이 매우 떨어진다 .</p>
<h4 id="12-해결책-method">1.2 해결책 (Method):</h4>
<p>Clothing Twin이라는 새로운 프레임워크를 제안한다.
Data Acquisition: 의상을 똑바로 입혀서 한 번, 뒤집어 입혀서(Inside-out) 한 번 촬영하여 가려진 부분이 없도록 한다.
Geometric Alignment: 겉감과 안감의 메쉬를 추출한 뒤, Non-Rigid ICP를 통해 안감을 겉감 내부로 정교하게 밀어 넣는다.
Specialized Rendering: 겹쳐진 Gaussian들을 구분하기 위해 Mesh-Guided Back-face Culling과 Back-to-Front Alpha Blending이 적용된 특수 렌더러를 사용한다 .</p>
<h4 id="13-결과-result">1.3 결과 (Result):</h4>
<p>안감과 겉감이 시각적 아티팩트 없이 자연스럽게 렌더링되며, 기존 방식 대비 PSNR, SSIM, LPIPS 등 모든 지표에서 우수한 성능을 달성했다.</p>
<hr>
<h3 id="2-prerequisites-이론적-배경">2. Prerequisites: 이론적 배경</h3>
<p>이 논문을 깊게 이해하기 위해서는 Ghost Mannequin 기법의 한계와 3DGS의 렌더링 특성을 먼저 짚고 넘어가야 한다.</p>
<h4 id="21-ghost-mannequin--the-challenge">2.1. Ghost Mannequin &amp; The Challenge</h4>
<p>E-커머스에서는 옷이 마치 투명 인간에 입혀진 것처럼 목 부분 안쪽이 보이는 &#39;고스트 마네킹&#39; 사진을 많이 쓴다. 2D 이미지에서는 포토샵으로 마네킹을 지우고 다른 사진에서 안감을 떼어와 합성하면 그만이지만, 3D 복원에서는 이것이 매우 어렵다. 수백 장의 다각도 이미지에서 마네킹을 일관되게 지우고 안감을 채워 넣는 것은 수작업으로 불가능에 가깝기 때문이다.</p>
<h4 id="22-3d-gaussian-splatting의-한계">2.2. 3D Gaussian Splatting의 한계</h4>
<p>3DGS는 공간 상에 타원체(Gaussian)를 뿌려서 장면을 표현한다. 문제는 이것이 명시적인 표면(Mesh)이 없는 Point Cloud 기반이라는 점이다. 얇은 천의 앞면(Outer)과 뒷면(Inner)이 아주 가깝게 붙어 있으면, 렌더링 시 Gaussian들이 서로 겹치거나 순서가 뒤바뀌는 아티팩트가 발생한다 . 이를 해결하려면 렌더링 단계에서 어떤 Gaussian이 겉감이고 안감인지 명확히 구분해 줄 강력한 <strong>기하학적 가이드(Geometric Prior)</strong>가 필요하다.</p>
<hr>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/0bf64056-924a-45d6-8f2f-a4928f51383a/image.png" alt=""></p>
<h3 id="3-method-clothing-twin-pipeline">3. Method: Clothing Twin Pipeline</h3>
<p>이 논문의 파이프라인은 크게 데이터 획득, 기하학적 정렬, 그리고 렌더링의 3단계로 나뉜다.</p>
<h4 id="31-data-acquisition-protocol-데이터-획득">3.1. Data Acquisition Protocol (데이터 획득)</h4>
<p>가장 직관적인 해결책이다. 물리적으로 안감을 찍을 수 없다면, 옷을 뒤집어서(Inside-out) 찍으면 된다.</p>
<p>-Protocol: 의상을 똑바로 입혀서 겉감 데이터셋(Outer)을 얻고, 옷을 뒤집어 입혀서 안감 데이터셋(Inner)을 얻는다.
-Preprocessing: 뒤집어 찍은 안감 이미지는 겉감과 정합하기 위해 <strong>좌우 반전(Horizontal Flip)</strong>을 시킨다. 또한, 안감은 보통 겉감보다 빛을 덜 받아 어둡게 찍히므로, 겉감과의 컬러 일관성을 위해 <strong>톤 매핑(Tone Mapping)</strong>을 수행하여 밝기를 보정한다 .</p>
<h4 id="32-3dgs-optimization--geometric-alignment">3.2. 3DGS Optimization &amp; Geometric Alignment</h4>
<p>단순히 두 데이터셋으로 3DGS를 각각 학습시키면 옷의 주름이나 형태가 미세하게 달라서 겹쳐지지 않는다. Mesh를 가이드로 사용하여 이 문제를 푼다.</p>
<p>  1.Mesh Reconstruction: NeuS2 같은 기법으로 겉감($M_{out}$)과 안감($M_{in}$)의 메쉬를 각각 추출한다.
  2.GaussianMesh: 각 메쉬 표면에 Gaussian을 바인딩하여 학습시킨다. 이렇게 하면 Gaussian들이 메쉬 표면 근처에 위치하게 되어 제어가 쉬워진다.
  3.Non-Rigid ICP: 안감 메쉬($M_{in}$)를 겉감 메쉬($M_{out}$) 내부로 밀어 넣기 위해 비강체(Non-Rigid) ICP 알고리즘을 사용한다. 강체 변환(Rigid)만으로는 옷의 주름 차이를 극복할 수 없기 때문에, 메쉬를 <strong>변형(Deformation)</strong>시켜 겉감 안쪽에 딱 맞게 정렬한다.
  4.Gaussian Deformation: 메쉬가 변형된 위치 정보를 바탕으로, 거기에 붙어있는 안감 Gaussian($\mathcal{G}_{in}$)들도 같이 이동시킨다.</p>
<h4 id="33-specialized-rendering-pipeline-core-contribution">3.3 Specialized Rendering Pipeline (Core Contribution)</h4>
<p>기하학적으로 정렬했더라도, 렌더링 시 Gaussian이 뭉개져 보일 수 있다. 이를 해결하기 위한 3가지 핵심 렌더링 기법을 제안한다.</p>
<h4 id="1-mesh-guided-back-face-culling">1) Mesh-Guided Back-face Culling</h4>
<p>Gaussian의 위치만으로는 앞/뒤를 구분하기 힘들다. 따라서 카메라에서 픽셀로 Ray를 쏘아 <strong>가장 먼저 만나는 메쉬 면(Face)</strong>을 찾는다.</p>
<ul>
<li>Ray와 메쉬 Normal의 내적($n \cdot d$)을 계산하여, 양수면 안감(Inner), 음수면 겉감(Outer)을 렌더링하도록 픽셀별로 결정한다.</li>
<li>이로써 주름진 곳에서도 안감과 겉감이 섞이지 않는다.</li>
</ul>
<h4 id="2-back-to-front-alpha-blending">2) Back-to-Front Alpha Blending</h4>
<p>일반적인 3DGS는 카메라 가까운 것부터 먼 순서대로(Front-to-Back) $\alpha$-blending을 한다. 하지만 <strong>안감(Inner Layer)</strong>은 옷의 안쪽에서 바깥을 보는 시점(Inside-out)으로 촬영되었지만, 실제 렌더링은 바깥에서 안을 들여다보는 시점이다.</p>
<ul>
<li>따라서 안감을 렌더링할 때는 <strong>정렬 순서를 반대로(Back-to-Front)</strong> 하여 블렌딩해야 올바른 투명도와 색상이 나온다.</li>
</ul>
<h4 id="3-sh-incident-angle-recalculation">3) SH Incident Angle Recalculation</h4>
<p>Spherical Harmonics(SH)로 색을 계산할 때도 시점이 반전된 것을 고려해야 한다.</p>
<ul>
<li><p>기존 View Direction($d$)을 반사 평면(Reflection Plane) 기준으로 반사시킨 벡터($d_r$)를 사용하여 SH를 계산해야, 뒤집힌 면에 대해서도 정확한 조명 효과를 얻을 수 있다.</p>
<p>   $$d_{r}=d-2(d\cdot n)n$$</p>
</li>
</ul>
<hr>
<h3 id="4-experiments-성능-검증">4. Experiments: 성능 검증</h3>
<h4 id="41-quantitative-results-정량-평가">4.1 Quantitative Results (정량 평가)</h4>
<p>합성 데이터셋(Synthetic)을 사용하여 Ground Truth와 비교했다.</p>
<table>
<thead>
<tr>
<th align="left">Method</th>
<th align="center">PSNR $\uparrow$</th>
<th align="center">SSIM $\uparrow$</th>
<th align="center">LPIPS $\downarrow$</th>
</tr>
</thead>
<tbody><tr>
<td align="left">Outer only (기존 3DGS)</td>
<td align="center">31.89</td>
<td align="center">0.9808</td>
<td align="center">0.0099</td>
</tr>
<tr>
<td align="left">Outer + Inner (Naive)</td>
<td align="center">30.28</td>
<td align="center">0.9789</td>
<td align="center">0.0176</td>
</tr>
<tr>
<td align="left"><strong>Ours (Clothing Twin)</strong></td>
<td align="center"><strong>32.03</strong></td>
<td align="center"><strong>0.9887</strong></td>
<td align="center"><strong>0.0091</strong></td>
</tr>
</tbody></table>
<ul>
<li><strong>해석:</strong> 단순히 합친 것(Naive)보다 훨씬 높은 성능을 보이며, 겉감만 있는 경우보다도 수치가 높다. 이는 안감이 보이는 넥라인이나 소매 부분의 퀄리티 차이 때문이다.</li>
</ul>
<h4 id="42-ablation-study-구성-요소-검증">4.2 Ablation Study (구성 요소 검증)</h4>
<p>저자들은 제안한 3가지 렌더링 기법의 유효성을 검증했다.</p>
<ol>
<li><strong>w/o Mesh Guidance:</strong> 주름진 부분에서 안감이 겉감을 뚫고 나오는 아티팩트 발생.</li>
<li><strong>w/o Back-to-Front Blending:</strong> 안감의 색상이 탁해지고 불투명하게 렌더링됨.</li>
<li><strong>w/o Angle Recalculation:</strong> 조명이 어색하고 색상 왜곡 발생.</li>
</ol>
<hr>
<h3 id="5-conclusion">5. Conclusion</h3>
<p><strong>Clothing Twin</strong>은 &quot;어떻게 안감을 찍을 것인가?&quot;라는 물리적 문제와 &quot;어떻게 3DGS로 얇은 두 겹을 표현할 것인가?&quot;라는 렌더링 문제를 동시에 해결했다.
<strong>Contribution:</strong> 안/겉감 동시 복원 파이프라인 정립, Inter-layer artifact를 제거하는 특수 렌더러 개발.
<strong>Future Work:</strong> 물리 시뮬레이션(Physics-based simulation)과 연동하여 실제로 입어볼 수 있는(Try-on) 모델로 확장 가능성 제시.</p>
<hr>
<h3 id="🎓-graduate-students-insight-critical-thinking">🎓 Graduate Student&#39;s Insight (Critical Thinking)</h3>
<p>이 논문을 보면서 느낀 점과 연구자로서 가져갈 만한 인사이트를 정리한다.</p>
<ol>
<li><p><strong>Mesh Dependency의 귀환:</strong> 3DGS가 각광받은 이유는 &quot;Mesh 없이도&quot; 고퀄리티 렌더링이 가능했기 때문이다. 하지만 이 논문은 역설적으로 <strong>&quot;정교한 제어를 위해서는 다시 Mesh가 필요하다&quot;</strong>는 것을 보여준다. GaussianMesh를 사용하여 메쉬 표면에 Gaussian을 바인딩하는 전략은 Deformation이나 Collision 처리가 필요한 응용 분야(Physics-aware 3DGS)에서 필수가 될 것이다.</p>
</li>
<li><p><strong>Data Acquisition의 현실성:</strong> 옷을 뒤집어서(Inside-out) 촬영하는 아이디어는 훌륭하지만, 물리적 한계가 있다. 두꺼운 코트나 가죽 재킷은 뒤집으면 주름의 형태가 완전히 달라진다(Deformation). 논문에서는 Non-Rigid ICP로 이를 보정한다고 했지만, 재질이 뻣뻣할수록 정합 오차가 커질 위험이 있다.</p>
</li>
<li><p><strong>Rendering Overhead:</strong> 제안된 Mesh-Guided Culling은 픽셀마다 Ray-Mesh Intersection을 계산해야 한다. 논문에 따르면 RTX 4080 기준으로 약 <strong>10~20%의 렌더링 오버헤드</strong>가 발생한다. 실시간성이 중요한 VR/AR 환경에서는 이 비용을 줄이기 위한 가속화 연구(예: BVH 최적화)가 추가로 필요해 보인다.</p>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[[The Machine Learning] 1장: 소개]]></title>
            <link>https://velog.io/@bbang_jun/The-Machine-Learning-1%EC%9E%A5-%EC%86%8C%EA%B0%9C</link>
            <guid>https://velog.io/@bbang_jun/The-Machine-Learning-1%EC%9E%A5-%EC%86%8C%EA%B0%9C</guid>
            <pubDate>Sat, 06 Dec 2025 14:23:39 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/bbang_jun/post/e8dd87f7-ab39-4fa3-9941-2896d0446097/image.png" alt=""></p>
<p>랩실에서 논문을 쓰면서, 대학원을 준비하면서 논문들도 많이 읽게되는 중이다. AI에 대해서는 학부 수업에서 배운내용들, 버클리대학의 CS188 우리 아주 혐오스러운(?) 로봇친구와 함께 열심히 배웠다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/afce9316-cb61-4022-8fcc-70398d975415/image.png" alt=""></p>
<p>내용도 재밌고 얻어가는 부분도 많았지만 최근 논문을 읽으며 느끼는 문제점들이 생겼다.</p>
<ul>
<li><ol>
<li>수식에 대한 이해가 어렵다. -&gt; 기호에 대해서나 Method파트에 수식이해를 하는데 많은 시간을 쏟아야한다.</li>
</ol>
</li>
<li><ol start="2">
<li>기억이 잘 나지 않는 파트들이 존재한다. 단적인 예로 Parametric Model이라는 단어가 나왔는데 정의를 찾아보고 아!하고 느꼈지만 이런 개념들에 대한 이해가 조금 부족하다고 생각한다.</li>
</ol>
</li>
<li><ol start="3">
<li>논문을 쓰려면 이런 학술적인 문장들을 사용함에 익숙해져야한다. -&gt; 구어체에 익숙함에서 벗어나야한다.</li>
</ol>
</li>
</ul>
<p>그래서 시간이 있는 김에 </p>
<blockquote>
<p>Kevin P. Murphy / The Machine Learning : A Probabilistic Perspective</p>
</blockquote>
<p>책으로 이론을 다지고 이해해가려한다. </p>
<p>오늘은 1장 소개 파트에 나온 내용들을 간단히 정리하려 한다.</p>
<hr>
<h2 id="1-introduction-왜-확률인가">1. Introduction: 왜 &#39;확률&#39;인가?</h2>
<p>기존의 머신러닝이 단순히 입력 $x$를 출력 $y$로 매핑하는 함수 최적화 문제로 보일 수 있지만, Murphy는 첫 장부터 <strong>불확실성(Uncertainty)</strong>을 강조한다.</p>
<p>머신러닝은 데이터로부터 패턴을 학습하여, 미지의 데이터에 대한 불확실성을 <strong>확률 분포 $p(y|x)$</strong>로 모델링하는 과정이다.</p>
<h2 id="2-supervised-learning-지도-학습">2. Supervised Learning (지도 학습)</h2>
<h3 id="21-classification-분류">2.1 Classification (분류)</h3>
<p>출력 $y$가 이산적인 경우다.
Insight: 단순히 정답 클래스를 맞추는 것($\hat{y}$)보다, 모델이 자신의 예측을 얼마나 확신하는지를 아는 것이 의사결정에 훨씬 중요하다.</p>
<h3 id="22-regression-회귀">2.2 Regression (회귀)</h3>
<p>출력 $y$가 연속적인 경우다. 입력 변수와 출력 변수 간의 관계를 수식으로 모델링한다. 
(예: $y = f(x) + \epsilon$)</p>
<h2 id="3-unsupervised-learning-비지도-학습">3. Unsupervised Learning (비지도 학습)</h2>
<p>정답 $y$ 없이, 입력 $x$만 가지고 데이터의 숨겨진 구조(Latent Structure)를 찾아내는 과정이다.
💡 지도 학습보다 문제는 훨씬 어렵지만(Ill-posed), 레이블링 비용이 들지 않아 가용 데이터가 압도적으로 많다.</p>
<h3 id="31-discovering-clusters">3.1 Discovering Clusters</h3>
<p>데이터를 의미 있는 그룹으로 묶는다.잠재 변수 $z$가 <strong>이산적(Discrete)</strong>이라는 특징이 있다. (예: K-means, GMM)</p>
<h3 id="32-discovering-latent-factors">3.2 Discovering Latent Factors</h3>
<p>고차원 데이터를 저차원으로 압축하여 숨겨진 요인을 찾는다.잠재 변수 $z$가 <strong>연속적(Continuous)</strong>이다. (예: PCA, Autoencoder)활용: 차원 축소(Dimensionality Reduction), 시각화, 노이즈 제거.</p>
<h3 id="33-discovering-graph-structure">3.3 Discovering Graph Structure</h3>
<p>변수들 간의 조건부 독립성이나 인과 관계를 그래프(Edge)로 표현한다. (Sparse Graphical Model 등)</p>
<h3 id="34-matrix-completion">3.4 Matrix Completion</h3>
<p>넷플릭스 추천 시스템처럼 행렬의 빈칸(Missing Value)을 채우는 문제다. Low-rank approximation 이론과 밀접하게 연관된다.</p>
<h2 id="4-basic-concepts-핵심-이론-🔥">4. Basic Concepts (핵심 이론) 🔥</h2>
<h3 id="41-parametric-vs-non-parametric-models">4.1 Parametric vs Non-parametric Models</h3>
<p>가장 많이 오해하는 개념 중 하나다.</p>
<table>
<thead>
<tr>
<th align="center">비교 항목</th>
<th align="left">Parametric Model</th>
<th align="left">Non-parametric Model</th>
</tr>
</thead>
<tbody><tr>
<td align="center"><strong>정의</strong></td>
<td align="left">파라미터 수($\theta$)가 데이터 크기($N$)와 무관하게 <strong>고정</strong>됨</td>
<td align="left">데이터가 많아질수록 파라미터(혹은 복잡도)가 <strong>함께 증가</strong>함</td>
</tr>
<tr>
<td align="center"><strong>학습/추론</strong></td>
<td align="left">학습 후 $\theta$만 남기고 데이터는 버릴 수 있음 (<strong>빠른 추론</strong>)</td>
<td align="left">추론 시에도 데이터를 참조해야 하는 경우가 많음 (<strong>느린 추론</strong>, 메모리$\uparrow$)</td>
</tr>
<tr>
<td align="center"><strong>복잡도</strong></td>
<td align="left">모델의 용량(Capacity)이 제한적임</td>
<td align="left">데이터가 충분하면 어떤 복잡한 함수도 근사 가능 (High Capacity)</td>
</tr>
<tr>
<td align="center"><strong>장점</strong></td>
<td align="left">가볍고 빠르며, 데이터가 적을 때도 비교적 안정적임</td>
<td align="left"><strong>유연성(Flexibility)</strong>이 매우 높아, 가정(Assumption)을 최소화할 수 있음</td>
</tr>
<tr>
<td align="center"><strong>단점</strong></td>
<td align="left">복잡한 패턴을 포착하지 못할 수 있음 (<strong>High Bias</strong> 위험)</td>
<td align="left">데이터가 많아지면 계산 비용이 급증함 (<strong>Curse of Dimensionality</strong>에 취약)</td>
</tr>
<tr>
<td align="center"><strong>대표 예시</strong></td>
<td align="left">Linear Regression, Logistic Regression, MLP (Deep Learning)</td>
<td align="left">K-Nearest Neighbors (KNN), SVM (RBF Kernel), Gaussian Process</td>
</tr>
</tbody></table>
<h3 id="42-the-curse-of-dimensionality-차원의-저주">4.2 The Curse of Dimensionality (차원의 저주)</h3>
<p>차원($D$)이 늘어날수록 공간의 부피가 기하급수적으로 늘어나, 데이터의 밀도가 매우 희소(Sparse)해지는 현상이다.
Insight: 고차원에서는 &quot;거리(Distance)&quot;의 개념이 무의미해진다. 따라서 KNN 같은 거리 기반 알고리즘이 망가지게 된다. 이를 해결하려면 강력한 <strong>Inductive Bias(가정)</strong>를 주입하거나 차원 축소를 해야 한다.</p>
<h3 id="43-overfitting--model-selection">4.3 Overfitting &amp; Model Selection</h3>
<p>Overfitting: 모델이 학습 데이터의 노이즈까지 암기하여 Generalization(일반화) 성능이 떨어지는 현상이다. (Capacity &gt; Data Complexity)
Model Selection: 이를 막기 위해 Validation Set을 나누거나 Cross-Validation을 수행한다.핵심은 Bias-Variance Trade-off를 조절하는 것이다.</p>
<h3 id="44-no-free-lunch-theorem-nfl">4.4 No Free Lunch Theorem (NFL)</h3>
<p>-&gt; 나는 Free Lunch is over로 알고 있는데 같은 것인 것 같다.
&quot;모든 문제에 대해 항상 성능이 우월한 단 하나의 만능 모델은 존재하지 않는다.&quot;
결론: 따라서 연구자는 문제 도메인(이미지, 텍스트, 그래프 등)에 적합한 <strong>가정(Assumption)</strong>과 Inductive Bias를 모델에 적절히 심어줘야 한다.</p>
<hr>
<p>다음 포스팅에서는 Chapter 2. Probability 내용을 다뤄보겠다. 👋</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[PARTE: Part-Guided Texturing for 3D Human Reconstruction]]></title>
            <link>https://velog.io/@bbang_jun/PARTE-Part-Guided-Texturing-for-3D-Human-Reconstruction</link>
            <guid>https://velog.io/@bbang_jun/PARTE-Part-Guided-Texturing-for-3D-Human-Reconstruction</guid>
            <pubDate>Fri, 05 Dec 2025 14:30:08 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>논문 정보</strong>
<strong>Title:</strong> PARTE: Part-Guided Texturing for 3D Human Reconstruction from a Single Image
<strong>Authors:</strong> Hyeongjin Nam, Donghwan Kim et al. (Seoul National Univ. &amp; Korea Univ.)
<strong>Conference:</strong> ICCV 2025
<strong>Project Page:</strong> <a href="https://hygeniel228.github.io/PARTE/">https://hygeniel228.github.io/PARTE/</a></p>
</blockquote>
<h2 id="1-abstract-핵심-요약">1. Abstract: 핵심 요약</h2>
<ol>
<li><strong>Problem:</strong> Single Image 3D Reconstruction의 고질적인 문제는 <strong>&quot;Texture Misalignment&quot;</strong>다. 상의 색깔이 하의로 번지거나, 팔의 살색이 옷 위에 칠해지는 등 <strong>Boundary가 무너지는 현상</strong>이 빈번하다. 기존 방법들은 Global Context만 보고 색을 칠하기 때문이다.</li>
<li><strong>Method:</strong> <strong>PARTE</strong>라는 프레임워크를 제안한다. 핵심은 <strong>&quot;먼저 부위(Part)를 나누고, 그 가이드(Guidance)에 맞춰 색을 칠하자&quot;</strong>는 것이다.
<strong>1)PartSegmenter:</strong> Texture가 없는 3D Mesh 상태에서 먼저 3D Part Label(상의, 하의, 피부 등)을 추론한다.
<strong>2)PartTexturer:</strong> 추론된 Part Label을 <strong>Control Signal</strong>로 사용하여 Diffusion Model이 영역을 침범하지 않고 텍스처를 생성하도록 유도한다.</li>
<li><strong>Result:</strong> 기존 SOTA(TeCH, SiTH 등) 대비 압도적인 <strong>Part IoU</strong> 성능을 달성했다. 뒷모습이나 가려진 부분에서도 상/하의 분리가 완벽하게 이루어진다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/5c8c063f-7b13-4bc4-bdb4-13a23a6b5125/image.png" alt=""></li>
</ol>
<hr>
<h2 id="2-prerequisites-이론적-배경">2. Prerequisites: 이론적 배경</h2>
<p>이 논문을 이해하기 위해서는 <strong>Invisible Region Reconstruction</strong>의 난이도와 <strong>Semantic Conditioning</strong>의 중요성을 이해해야 한다.</p>
<h3 id="21-the-ambiguity-of-single-view-reconstruction">2.1. The Ambiguity of Single-View Reconstruction</h3>
<p>단 한 장의 사진(Front-view)으로 3D를 만들 때, 등(Back-view)이나 팔 안쪽은 정보가 전혀 없는 <strong>미지수(Unknown Variable)</strong>다.</p>
<ul>
<li><strong>Naive Approach:</strong> 기존 Regression 모델들은 이를 Neural Network의 &quot;감&quot;에 맡긴다. 결과적으로 네트워크는 평균적인 색상을 칠해버리는데, 이 과정에서 <strong>&quot;상의는 여기서 끝나고 하의는 여기서 시작된다&quot;</strong>는 구조적 정보(Structural Prior)를 무시하기 쉽다. 이를 <strong>Semantic Ambiguity</strong>라고 한다.</li>
</ul>
<h3 id="22-score-distillation-sampling-sds-with-constraints">2.2. Score Distillation Sampling (SDS) with Constraints</h3>
<p>최근에는 2D Diffusion Model의 강력한 Prior를 3D로 가져오는 SDS Loss를 많이 쓴다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/6979694a-3aed-42f2-ab80-2146afdb2800/image.png" alt=""></p>
<p>하지만 기본 SDS는 텍스트 프롬프트($y$)만 조건으로 받는다. &quot;A man wearing a red shirt&quot;라고 줬을 때, 셔츠가 어디까지인지 Diffusion 모델은 정확히 모른다. 따라서 <strong>Spatial Constraint(공간적 제약)</strong>를 추가로 주어야 정확한 텍스처링이 가능하다. 이 논문은 그 제약 조건을 <strong>3D Part Segmentation</strong>으로 정의했다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/27d7b532-b5f2-4de5-9f17-bd4791c71fbe/image.png" alt="">
SDS Loss 수도코드 (NeRF 기준)
1~3 : NeRF generator, optimizer, diffusion model을 초기화하고 로드한다.
5 : diffusion model의 time step t가 uniform하게 정의된다.
6 : 시간 t에 따라 noise의 정도를 결정하는 alpha와 sigma가 정의된다.
7 : 이미지 크기만큼 가우시안 분포로 노이즈를 만든다.
8 : NeRF를 통해 이미지 x를 만든다.
9 : reparameterize trick을 통해 가우시안 확률분포를 계산 가능한 수식으로 만든다. z_t로 계산된다.
10 : z_t와 text embedding y, t를 입력으로 U-Net을 통과한다.
11 : 위에서 언급한 아래 수식을 계산한다. Diffusion Model은 업데이트 안하기 때문에 stopgradient가 사용된다. </p>
<h5 id="dreamfusion-iclr-2023-논문에-해당-내용이-자세히-있으니-나중에-읽어보자">DreamFusion (ICLR 2023) 논문에 해당 내용이 자세히 있으니 나중에 읽어보자...</h5>
<hr>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/d0bd34d0-1a29-4e43-89d9-a0292467eed7/image.png" alt=""></p>
<h2 id="3-method-parte-framework">3. Method: PARTE Framework</h2>
<p>PARTE의 파이프라인은 <strong>Geometry Reconstruction $\rightarrow$ Part Segmentation $\rightarrow$ Part Texturing</strong>의 순차적(Sequential) 구조를 가진다.</p>
<h3 id="31-geometry-reconstruction-pre-processing">3.1. Geometry Reconstruction (Pre-processing)</h3>
<p>먼저 입력 이미지로부터 Texture가 없는 <strong>Base Mesh ($M_{geo}$)</strong>를 생성한다. 이 논문에서는 SOTA인 <code>TeCH</code>를 사용했지만, 어떤 Reconstruction 모델을 써도 무방(Model-Agnostic)하다. 중요한 건 텍스처를 입히기 전의 &quot;형태&quot;다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/7c76b228-2b3d-4541-9f88-4da58dbe8ab9/image.png" alt=""></p>
<h3 id="32-module-1-partsegmenter-3d-labeling">3.2. Module 1: PartSegmenter (3D Labeling)</h3>
<p>이 모듈의 목표는 3D Mesh의 각 Vertex에 $n=5$개의 라벨(Face&amp;Hair, Upper, Lower, Footwear, Others)을 할당하는 것이다.</p>
<ul>
<li><strong>Problem:</strong> 3D Segmentation 데이터셋은 부족하다. 반면 2D Segmentation 데이터셋은 풍부하다.</li>
<li><strong>Solution (Lifting 2D to 3D):</strong><ol>
<li>Textureless Mesh를 여러 각도($k$)에서 렌더링하여 <strong>Normal Map ($N^k$)</strong>을 얻는다.</li>
<li><strong>SegmentNet</strong>이라는 Transformer 기반 네트워크가 이 Normal Map과 Input Image를 보고 2D Segmentation Map ($S^k$)을 예측한다.</li>
<li>여러 뷰에서 예측된 2D 맵들을 3D 공간으로 역투영(Back-projection)하여 <strong>Voting</strong> 방식으로 최종 3D Part Label을 확정한다.</li>
</ol>
</li>
</ul>
<blockquote>
<p><strong>Why Transformer?</strong>
SegmentNet은 두 가지 Branch(Normal Map branch, Input Image branch)를 가진다. Normal Map은 &quot;옷의 주름/경계&quot; 같은 기하학적 정보를 주고, Input Image는 &quot;옷의 스타일&quot; 같은 의미론적 정보를 준다. 이 둘을 <strong>Self-Attention</strong>으로 융합(Fusion)하여 보이지 않는 뒷면의 파트까지 정확히 추론한다.</p>
</blockquote>
<h3 id="33-module-2-parttexturer-guided-diffusion">3.3. Module 2: PartTexturer (Guided Diffusion)</h3>
<p>이제 구획이 나눠진 Mesh($M_{part}$) 위에 색을 입힐 차례다. 저자들은 이를 위해 <strong>PartDiffusion</strong>이라는 커스텀 Diffusion 모델을 설계했다.</p>
<ul>
<li><p><strong>Conditioning Logic:</strong>
  기존 Stable Diffusion에 <strong>Fusion Layer</strong>를 추가하여 다음 세 가지 정보를 동시에 주입한다.</p>
<ol>
<li><strong>Text Prompts:</strong> <code>BLIP</code>으로 추출한 캡션 (Global Semantic).</li>
<li><strong>Input Image:</strong> 원본 이미지의 디테일 (Local Appearance).</li>
<li><strong>Part Segments:</strong> 방금 구한 Segmentation Map (Structural Constraint).</li>
</ol>
</li>
<li><p><strong>Optimization with SDS:</strong>
  $$
  \mathcal{L} = \mathcal{L}<em>{recon} + \mathcal{L}</em>{SDS}
  $$</p>
<ul>
<li><p>$\mathcal{L}_{recon}$: Front-view에서는 원본 이미지와 L2 Loss로 픽셀을 맞춘다.</p>
</li>
<li><p>$\mathcal{L}_{SDS}$: 다른 뷰(Side, Back)에서는 PartDiffusion이 예측한 Noise 분포를 따르도록 최적화한다.</p>
<p>여기서 핵심은 PartDiffusion이 <strong>&quot;Part Map&quot;을 조건으로 받기 때문에</strong>, 렌더링된 뷰에서 상의 영역에는 무조건 상의 텍스처만 생성하도록 강제된다는 점이다. 이를 통해 <strong>Texture Bleeding</strong>을 원천 차단한다.</p>
</li>
</ul>
</li>
</ul>
<hr>
<h2 id="4-experiments-analysis">4. Experiments: Analysis</h2>
<p>THuman2.1, HuMMan 데이터셋을 사용하여 정량적/정성적 평가를 진행했다.</p>
<h3 id="41-quantitative-results-part-alignment">4.1. Quantitative Results (Part Alignment)</h3>
<p>가장 주목할 지표는 <strong>Part IoU</strong>와 <strong>LPIPS</strong>다.</p>
<table>
<thead>
<tr>
<th align="left">Method</th>
<th align="center">PSNR $\uparrow$</th>
<th align="center">LPIPS $\downarrow$</th>
<th align="center">Part IoU $\uparrow$</th>
</tr>
</thead>
<tbody><tr>
<td align="left">TeCH (SOTA)</td>
<td align="center">21.089</td>
<td align="center">0.108</td>
<td align="center">0.588</td>
</tr>
<tr>
<td align="left">HumanRef</td>
<td align="center">21.302</td>
<td align="center">0.113</td>
<td align="center">0.576</td>
</tr>
<tr>
<td align="left"><strong>PARTE (Ours)</strong></td>
<td align="center"><strong>22.175</strong></td>
<td align="center"><strong>0.096</strong></td>
<td align="center"><strong>0.641</strong></td>
</tr>
</tbody></table>
<ul>
<li><strong>Analysis:</strong> <strong>Part IoU</strong>가 압도적으로 높다. 이는 텍스처가 제자리에 정확히 들어갔음을 의미한다. 기존 방법들은 구조적 제약이 없어서 Part IoU가 낮게(색이 번짐) 측정된다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/a777bcee-5495-4bab-b862-e568070adcfb/image.png" alt=""></li>
</ul>
<h3 id="42-qualitative-results-visual-fidelity">4.2. Qualitative Results (Visual Fidelity)</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/80c1afc1-ca76-4a07-a1f1-1246a14fe021/image.png" alt=""></p>
<ul>
<li><strong>Comparison:</strong> SiTH나 HumanRef 같은 모델들을 보면, 뒷모습에서 상의 텍스처가 엉덩이까지 내려오거나, 반팔 소매 안쪽에 살색 대신 옷 색깔이 칠해지는 아티팩트가 보인다.</li>
<li><strong>PARTE:</strong> 정확하게 허리 라인에서 상/하의 텍스처가 분리되며, 소매 끝단과 피부의 경계가 칼같이 나눠진다. 이는 <strong>PartSegmenter</strong>가 3D 상에서 명확한 가이드라인을 그어줬기 때문이다.</li>
</ul>
<hr>
<h2 id="5-conclusion--discussion">5. Conclusion &amp; Discussion</h2>
<h3 id="결론-요약">결론 요약</h3>
<p><strong>PARTE</strong>는 &quot;텍스처링은 기하학적 구조에 종속되어야 한다&quot;는 직관을 모델링한 연구다.</p>
<ol>
<li><strong>Divide and Conquer:</strong> 문제를 Segmentation과 Texturing로 쪼개서 풀었다.</li>
<li><strong>Explicit Guidance:</strong> Diffusion Model의 생성 능력을 믿되, <strong>Part Map</strong>이라는 강력한 제약 조건을 걸어 Hallucination을 막았다.</li>
</ol>
<h3 id="🎓-graduate-students-insight-critical-thinking">🎓 Graduate Student&#39;s Insight (Critical Thinking)</h3>
<ol>
<li><strong>Structural Prior의 승리:</strong> 단순히 데이터를 많이 때려 넣어서 해결하려는 접근 대신, &quot;사람은 파트별로 옷을 입는다&quot;는 사전 지식을 네트워크 구조에 녹여냈다.</li>
<li><strong>Dependency Issue:</strong> 첫 단계인 <code>Geometry Reconstruction</code>이 망가져서 Mesh가 뭉개지면, <code>PartSegmenter</code>도 뭉개지고, 결국 <code>PartTexturer</code>도 망한다. 즉, <strong>Error Propagation</strong>의 위험이 있지 않을까?</li>
<li><strong>Optimization Cost:</strong> Optimization-based method(SDS 사용)이기 때문에 Inference 시간이 꽤 걸릴 것이다. Real-time application을 위해서는 방식전환이 필요할 것 같다.</li>
</ol>
<p>앞으로 3D Human Generation 연구를 할 때, 단순히 RGB값만 예측하는 게 아니라 <strong>Semantic Map을 함께 예측</strong>하는 것이 필수가 될 것 같다는 생각이 든다.</p>
<hr>
<p><strong>References</strong></p>
<ul>
<li>Nam et al., &quot;PARTE: Part-Guided Texturing for 3D Human Reconstruction from a Single Image&quot;, ICCV 2025.</li>
<li>Huang et al., &quot;TeCH: Text-guided reconstruction of lifelike clothed humans&quot;, 3DV 2024.</li>
<li>Khirodkar et al., &quot;Sapiens: Foundation for human vision models&quot;, ECCV 2024.</li>
<li><a href="https://xoft.tistory.com/53">https://xoft.tistory.com/53</a> -&gt; SDS개념 참고</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[PERSONA: Personalized Whole-Body 3D Avatar with Pose-Driven Deformations
from a Single Image]]></title>
            <link>https://velog.io/@bbang_jun/PERSONA-Personalized-Whole-Body-3D-Avatar-with-Pose-Driven-Deformationsfrom-a-Single-Image</link>
            <guid>https://velog.io/@bbang_jun/PERSONA-Personalized-Whole-Body-3D-Avatar-with-Pose-Driven-Deformationsfrom-a-Single-Image</guid>
            <pubDate>Fri, 05 Dec 2025 05:04:57 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p><strong>논문 정보</strong>
<strong>Title:</strong> PERSONA: Personalized Whole-Body 3D Avatar with Pose-Driven Deformations from a Single Image
<strong>Authors:</strong> Geonhee Sim, Gyeongsik Moon (Korea Univ.)
<strong>Conference:</strong> ICCV 2025
<strong>Project Page:</strong> <a href="https://mks0601.github.io/PERSONA">https://mks0601.github.io/PERSONA</a></p>
</blockquote>
<h2 id="1-abstract3줄-핵심-요약">1. Abstract:3줄 핵심 요약</h2>
<ol>
<li><strong>Problem Formulation:</strong> Single Image 기반 3D Avatar 생성은 <strong>Identity Preservation</strong>과 <strong>Pose-Driven Deformation</strong> 사이의 Trade-off 문제에 직면해 있음. 기존 3D 방식은 데이터 부족으로 옷의 변형을 학습하지 못하고, Diffusion 방식은 시간적 일관성과 Identity가 무너짐.</li>
<li><strong>Proposed Method:</strong> <strong>PERSONA</strong>는 Diffusion Model의 Generative Prior를 3D Optimization 과정에 Distill하는 프레임워크를 제안.
 <strong>Data augment:</strong> Diffusion 기반으로 Pose-rich video를 생성하여 Motion Prior 확보.
<strong>Optimization:</strong> Synthetic Data의 품질 저하를 방어하기 위한 <strong>Balanced Sampling</strong>과 Texture/Geometry의 신뢰도를 분리한 <strong>Geometry-Weighted Optimization</strong> 도입.</li>
<li><strong>Contribution:</strong> 단일 이미지 입력만으로도 Canonical Space 내에서 <strong>Disentangled Representation</strong>(Pose와 Identity 분리)을 달성하고, 펄럭이는 옷자락 같은 Non-rigid motion을 물리적으로 그럴듯하게 재현함.
<img src="https://velog.velcdn.com/images/bbang_jun/post/b07fad1f-a986-4a6c-b6d2-a32dce3d3ad0/image.png" alt=""></li>
</ol>
<hr>
<h2 id="2-prerequisites-이론적-배경">2. Prerequisites: 이론적 배경</h2>
<p>이 논문을 깊이 이해하려면 <strong>Parametric Model</strong>과 <strong>Neural Rendering</strong>의 결합, 그리고 <strong>Synthetic Data</strong> 활용 시 발생하는 도메인 격차 문제를 알아야 한다.</p>
<p>머신러닝의 가장 대표적인 책인 머피의 머신러닝에서는 아래와 같이 정의한다.</p>
<p><strong>Parametric model</strong>: Linear regression, Logistic regression, Bayesian inference, Neural network(CNN, RNN 등) 등. 모델이 학습해야 하는 것이 명확히 정해져 있기 때문에 속도가 빠르고, 모델을 이해하기가 쉽다는 장점이 있다. 하지만 데이터의 분포가 특정한 분포를 따른다는 가정을 해야 하기 때문에 flexibility가 낮고, 간단한 문제를 푸는 데에 더 적합하다는 단점을 가진다. </p>
<p><strong>Non-parametric model</strong>: Decision tree, Random forest, K-nearest neighbor classifier 등. 데이터가 특정한 분포를 따른다는 가정을 하지 않기 때문에 더 flexible하다는 장점이 있다. 하지만 속도가 느린 경우가 많고, 더 큰 데이터를 필요로 하는 경우가 있으며 모델이 왜 그런 형태가 되었는지에 대한 명확한 설명을 하기가 쉽지 않다. </p>
<h3 id="21-hybrid-representation-smpl-x--3dgs">2.1. Hybrid Representation (SMPL-X + 3DGS)</h3>
<p>최근 Human Avatar 연구의 트렌드는 SMPL-X와 같은 <strong>Parametric Model</strong>의 제약(Rigid)을 3D Gaussian Splatting(3DGS)의 표현력으로 보완하는 것</p>
<ul>
<li><strong>SMPL-X:</strong> $\beta$(Shape), $\theta$(Pose) 파라미터로 사람의 기본 골격과 스킨을 정의. 하지만 옷의 주름이나 펄럭임 같은 High-frequency detail은 표현 불가.</li>
<li><strong>3DGS:</strong> 3D 공간에 Gaussian 분포를 뿌려 렌더링. Texture 표현력이 좋지만, 그 자체로는 Animation이 불가능.</li>
<li><strong>Combination:</strong> SMPL-X Mesh의 Vertex마다 Gaussian을 바인딩하고, <strong>LBS(Linear Blend Skinning)</strong>로 큰 움직임을 제어하되, 세부 변형은 별도의 Network로 학습</li>
</ul>
<h3 id="22-the-curse-of-single-view--prior-distillation">2.2. The Curse of Single-View &amp; Prior Distillation</h3>
<p>Single-view Reconstruction은 본질적으로 <strong>Ill-posed Problem</strong>입니다. 뒷모습이나 측면 정보가 없기 때문</p>
<ul>
<li>최근 연구들은 <strong>Video Diffusion Model</strong>이 학습한 방대한 <strong>2D Motion Prior</strong>를 3D 모델로 전이(Distillation)시키는 접근을 취한다</li>
<li>하지만 Diffusion이 생성한 비디오는 <strong>Identity Shift</strong>(얼굴이 바뀜)와 <strong>Inconsistent Texture</strong>(옷 무늬가 변함) 문제를 가진다. 이 논문은 이 &quot;Noise가 섞인 Prior&quot;를 어떻게 정제해서 3D 모델에 주입할 것인가에 대한 해답</li>
</ul>
<hr>
<h2 id="3-method-persona-framework">3. Method: PERSONA Framework</h2>
<p>PERSONA의 파이프라인은 크게 <strong>(1) Pose-rich Video Generation</strong>과 <strong>(2) Physics-aware 3D Optimization</strong>으로 나뉩니다. 특히 3DGS의 파라미터 업데이트 전략이 이론적으로 중요</p>
<h3 id="31-representation--deformation-module">3.1. Representation &amp; Deformation Module</h3>
<p>Canonical Space(T-pose와 유사)에 정의된 Gaussian들을 Target Pose로 변형시키기 위해 <strong>Deformation MLP</strong>를 설계</p>
<p>$$
\mu&#39; = W_{LBS} (\mu_{canon} + \Delta\mu(\theta, z))
$$</p>
<ul>
<li><p><strong>Canonical Gaussians:</strong> 초기에 SMPL-X 메쉬 위에 바인딩 됨.</p>
</li>
<li><p><strong>$\Delta\mu$ (Mean Offsets):</strong> MLP가 예측하는 값. 여기서 흥미로운 점은 <strong>Scale($s$)이나 Rotation($q$) Offset은 예측하지 않고, 오직 위치(Mean, $\mu$) Offset만 예측</strong>한다는 점</p>
<ul>
<li><em>Theoretical Insight:</em> Scale Offset을 학습하면 모델이 옷의 주름을 표현할 때 Gaussian을 찢거나 늘려서(Blurry) 표현하려는 경향이 생긴다. Shift만해야 텍스처의 선명도(Sharpness)를 유지하면서 기하학적 변형을 모사할 수 있다</li>
</ul>
</li>
</ul>
<h3 id="32-balanced-sampling-handling-distribution-shift">3.2. Balanced Sampling (Handling Distribution Shift)</h3>
<p>Diffusion으로 생성된 비디오 데이터셋 $\mathcal{D}<em>{gen}$과 원본 이미지 $I</em>{input}$ 사이에는 <strong>Distribution Gap</strong>이 존재. $\mathcal{D}<em>{gen}$은 포즈는 다양하지만 Identity 정보($P(ID|I</em>{input})$)가 훼손되어 있다.</p>
<p>학습 Loop 내에서 <strong>Oversampling</strong> 전략을 통해 이를 보정</p>
<ul>
<li>Training Batch 구성 시, $I_{input}$의 샘플링 비율을 인위적으로 높여 <strong>Authenticity(Identity)</strong>를 강제한다.</li>
<li>이때 발생하는 <strong>Baked-in Artifacts</strong>(원본의 그림자나 가려진 부분이 3D 텍스처에 고착되는 현상)를 막기 위해, Canonical Space에서 렌더링된 Positional Map에 Sobel Filter를 적용, <strong>Seam Boundary</strong>를 검출하여 가려진 영역의 학습을 분리.
<img src="https://velog.velcdn.com/images/bbang_jun/post/0c5b5f32-c526-4608-a516-597e7f2509a5/image.png" alt=""></li>
</ul>
<h3 id="33-geometry-weighted-optimization-loss-landscape-shaping">3.3. Geometry-Weighted Optimization (Loss Landscape Shaping)</h3>
<p>이 논문의 핵심이론으로 생성된 비디오 프레임 $I_{gen}$은 텍스처 품질은 낮지만(Low-fidelity Texture), 사람의 실루엣이나 깊이 정보는 꽤 정확하다.</p>
<p>따라서 Optimization 과정에서 <strong>Image Loss</strong>와 <strong>Geometry Loss</strong>의 가중치를 비대칭적으로 설정</p>
<p>$$
\mathcal{L}<em>{total} = \lambda</em>{img} \mathcal{L}<em>{RGB}(I</em>{render}, I_{gen}) + \lambda_{geo} \mathcal{L}<em>{geo}(M</em>{render}, M_{gen})
$$</p>
<ul>
<li><strong>For Generated Frames ($I_{gen}$):</strong><ul>
<li>$\lambda_{img} \approx 0$: 생성된 비디오의 픽셀 색상은 신뢰하지 않음 (Blurry Texture 방지).</li>
<li>$\lambda_{geo} \gg 0$: 생성된 비디오의 Mask, Depth, Normal Map은 신뢰함. 이를 통해 <strong>&quot;옷이 펄럭이는 물리적 움직임&quot;</strong>만 학습.</li>
</ul>
</li>
<li><strong>For Input Image ($I_{input}$):</strong><ul>
<li>$\lambda_{img} \gg 0$: 원본의 텍스처를 3DGS의 SH(Spherical Harmonics) 파라미터에 확실히 각인시킴.</li>
</ul>
</li>
</ul>
<p>즉, <strong>Geometry는 Diffusion Prior에서 배우고, Appearance는 Input Image에서 배우는</strong> 최적화 전략
<img src="https://velog.velcdn.com/images/bbang_jun/post/cc2b2735-6c87-41ba-9f21-a7c3de6ec416/image.png" alt=""></p>
<hr>
<h2 id="4-experiments-analysis">4. Experiments: Analysis</h2>
<h3 id="41-comparison-with-sota-quantitative">4.1. Comparison with SOTA (Quantitative)</h3>
<p>NeuMan 및 X-Humans 데이터셋에서의 평가 결과</p>
<table>
<thead>
<tr>
<th align="left">Method</th>
<th align="center">Approach</th>
<th align="center">PSNR $\uparrow$</th>
<th align="center">LPIPS $\downarrow$</th>
<th align="center">Pose-Driven Deform</th>
</tr>
</thead>
<tbody><tr>
<td align="left">AniGS</td>
<td align="center">3D (4DGS)</td>
<td align="center">27.46</td>
<td align="center">0.043</td>
<td align="center">$\times$ (Baked-in)</td>
</tr>
<tr>
<td align="left">Champ</td>
<td align="center">Diffusion</td>
<td align="center">25.19</td>
<td align="center">0.057</td>
<td align="center">$\circ$ (High Consistency)</td>
</tr>
<tr>
<td align="left"><strong>PERSONA</strong></td>
<td align="center"><strong>Hybrid</strong></td>
<td align="center"><strong>29.79</strong></td>
<td align="center"><strong>0.035</strong></td>
<td align="center"><strong>$\circ$</strong></td>
</tr>
</tbody></table>
<ul>
<li><strong>Analysis:</strong> PERSONA는 <strong>LPIPS(지각적 유사도)</strong>에서 압도적인 성능을 보인다. 이는 Balanced Sampling이 Identity를 잘 보존하고 있음을 수치적으로 증명</li>
<li>특히 기존 3D 방식(AniGS)이 Input Image의 주름을 모든 포즈에 복사(Baked-in)하는 반면, PERSONA는 포즈에 따른 옷의 인장/수축을 반영</li>
</ul>
<h3 id="42-ablation-study-why-geometry-weighted">4.2. Ablation Study: Why Geometry-Weighted?</h3>
<p>논문의 Figure 6은 Geometry-Weighted Optimization의 필요성을 명확히 보여줍니다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/540efd88-01e6-42e6-a2b3-77533ceaf78c/image.png" alt=""></p>
<ul>
<li><strong>High Image Loss Weight:</strong> 생성된 비디오의 흐릿한 텍스처까지 3DGS가 억지로 학습하려다 보니 전체적인 렌더링 퀄리티가 망가진다 (Blurry).</li>
<li><strong>Ours:</strong> Geometry Loss에 집중함으로써, 텍스처는 선명하게 유지하되-&gt;이미지, 실루엣-&gt;동영상 은 역동적으로 변하는 결과를 얻는다.</li>
</ul>
<hr>
<h2 id="5-conclusion--discussion">5. Conclusion &amp; Discussion</h2>
<h3 id="summary">Summary</h3>
<p><strong>PERSONA</strong>는 Single Image Avatar 생성 문제에서 <strong>Generative Prior</strong>를 3D Geometry로 효과적으로 전이시키는 방법론을 제시
단순히 데이터를 늘리는 것이 아니라, <strong>Synthetic Data의 Noise(Texture)와 Signal(Geometry)을 분리</strong>하여 Loss Function에 반영한 연구이다.</p>
<h3 id="🎓-graduate-students-insight-critical-thinking">🎓 Graduate Student&#39;s Insight (Critical Thinking)</h3>
<p>논문을 읽으며 든 생각과 한계점은 다음과 같습니다.</p>
<ol>
<li><strong>업스트림 모델에 종속된 결과들이 나올 것 같다:</strong> 결국 성능의 상한선이<strong>MimicMotion</strong>과 같은 비디오 생성 모델의 성능에 종속된다고 생각합니다. </li>
<li><strong>Scalability to Loose Clothing:</strong> 논문에서 제시한 것처럼 드레스나 디테일이 많은 옷처럼 SMPL-X 메쉬(Body Topology)와 Topological 차이가 큰 의상의 경우, Vertex Binding 기반의 접근법이 얼마나 유효할지 의문Gaussian이 메쉬에서 너무 멀어지면 Density Control이 어려울 것 같다. -&gt; 코드를 한번 돌려봐야겠당</li>
<li><strong>실시간 반영성이 높을 것 같다:</strong> 3DGS를 기반으로 하므로 학습 후 렌더링 속도는 매우 빠를 것으로 예상됩니다. 이는 VR/AR 어플리케이션 관점에서 NeRF 기반 방식보다 확실한 우위일 것 같다.</li>
</ol>
<p>다음에는 이 논문에서 사용된 <strong>MimicMotion</strong>이나 <strong>3DGS의 Deformation Model</strong>에 대해 더 깊게 파봐야 될 것 같다고 생각합니다.</p>
<hr>
<p><strong>References</strong></p>
<ul>
<li>[1] Sim et al., &quot;PERSONA: Personalized Whole-Body 3D Avatar with Pose-Driven Deformations from a Single Image&quot;, ICCV 2025.</li>
<li>[2] Moon et al., &quot;Expressive Whole-Body 3D Gaussian Avatar&quot;, ECCV 2024.</li>
<li>[3] Zhang et al., &quot;MimicMotion: High-Quality Human Motion Video Generation&quot;, CVPR 2024.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[DiffExp: Efficient Exploration in Reward Fine-tuning
for Text-to-Image Diffusion Models]]></title>
            <link>https://velog.io/@bbang_jun/DiffExp-Efficient-Exploration-in-Reward-Fine-tuningfor-Text-to-Image-Diffusion-Models</link>
            <guid>https://velog.io/@bbang_jun/DiffExp-Efficient-Exploration-in-Reward-Fine-tuningfor-Text-to-Image-Diffusion-Models</guid>
            <pubDate>Thu, 27 Nov 2025 16:04:24 GMT</pubDate>
            <description><![CDATA[<p><em>텍스트</em></p>
<blockquote>
<p><strong>논문 정보</strong>
<strong>Title:</strong> DiffExp: Efficient Exploration in Reward Fine-tuning for Text-to-Image Diffusion Models
<strong>Authors:</strong> Daewon Chae, June Suk Choi, Jinkyu Kim, Kimin Lee (Korea Univ &amp; KAIST)
<strong>Conference:</strong> AAAI 2025</p>
</blockquote>
<h2 id="1-abstract-3줄-요약">1. Abstract: 3줄 요약</h2>
<ol>
<li><strong>문제 (Problem):</strong> T2I 모델을 Reward 기반으로 튜닝할 때, 모델이 다양한 샘플을 만들어보지 못해(Lack of Exploration) 수렴이 느리고 국소 최적해(Local Optima)에 빠지는 문제가 발생함.</li>
<li><strong>해결책 (Method):</strong> <strong>DiffExp</strong>라는 새로운 탐색 전략을 제안. (1) 시간(Timestep)에 따라 <strong>CFG Scale을 동적으로 조절</strong>하고, (2) 프롬프트 내 단어의 <strong>가중치를 랜덤하게 증폭</strong>시켜 다양한 시도를 유도함.</li>
<li><strong>결과 (Result):</strong> 기존 SOTA 방법론(DDPO, AlignProp) 대비 약 <strong>20% 적은 샘플</strong>로 더 높은 Reward를 달성했으며, 학습하지 않은 프롬프트나 SDXL 같은 최신 모델에서도 뛰어난 일반화 성능을 보임.</li>
</ol>
<hr>
<h2 id="2-논문을-읽기-전-알아야-할-필수-개념-prerequisites">2. 논문을 읽기 전 알아야 할 필수 개념 (Prerequisites)</h2>
<p>이 논문을 깊게 이해하기 위해선 <strong>Reward Fine-tuning</strong>의 딜레마와 <strong>CFG</strong>의 역할을 확실히 잡고 가야 합니다.</p>
<h3 id="21-reward-fine-tuning과-exploration-exploitation-dilemma">2.1. Reward Fine-tuning과 Exploration-Exploitation Dilemma</h3>
<p>우리가 흔히 쓰는 Stable Diffusion 같은 모델은 기본적으로 데이터의 분포를 학습합니다. 하지만 &quot;사람이 보기에 얼마나 예쁜가(Aesthetic)&quot; 또는 &quot;프롬프트 내용을 빠짐없이 다 그렸나(Alignment)&quot; 같은 기준은 기본 학습만으론 만족시키기 어렵습니다.</p>
<p>그래서 <strong>강화학습(RL)</strong>의 개념을 빌려옵니다. 모델이 이미지를 생성하면 <strong>Reward Model</strong>이 점수를 매기고, 그 점수를 높이는 방향으로 모델을 업데이트하는 것이죠.</p>
<p>여기서 <strong>탐색(Exploration) vs 이용(Exploitation)</strong>의 문제가 발생합니다.</p>
<ul>
<li><strong>Exploitation (이용):</strong> 모델이 현재 점수가 잘 나오는 방식(예: 돌고래만 크게 그리기)만 고수합니다. 점수는 안정적이지만 발전이 없습니다.</li>
<li><strong>Exploration (탐색):</strong> 점수가 낮게 나오더라도 새로운 시도(예: 돌고래 옆에 자전거 그려보기)를 해봅니다. 실패할 확률이 높지만, 성공하면 대박(Global Optima)을 터뜨릴 수 있습니다.</li>
</ul>
<p>기존 방법론들은 <strong>Exploitation</strong>에 치우쳐 있어, 처음에 우연히라도 좋은 샘플을 못 만들면 영원히 발전하지 못하는 문제가 있었습니다.</p>
<h3 id="22-classifier-free-guidance-cfg">2.2. Classifier-Free Guidance (CFG)</h3>
<p>논문의 핵심 키워드인 <strong>CFG</strong>는 Diffusion 모델이 <strong>&quot;프롬프트를 얼마나 강하게 따를 것인가&quot;</strong>를 조절하는 계수입니다.</p>
<ul>
<li><strong>높은 CFG Scale:</strong> 프롬프트와 강하게 연결됨 $\rightarrow$ 이미지 품질(Fidelity)은 좋지만, 다양성이 사라지고 뻔한 그림만 나옴.</li>
<li><strong>낮은 CFG Scale:</strong> 프롬프트 의존도가 낮음 $\rightarrow$ 이미지가 다양하게 생성되지만(Diversity), 퀄리티가 떨어지거나 엉뚱한 그림이 나옴.</li>
</ul>
<blockquote>
<p>💡 <strong>핵심 아이디어:</strong> 보통은 이 CFG 값을 고정해두고 쓰는데, 이 논문은 <strong>&quot;학습 중에 이 값을 요리조리 바꿔보면 어떨까?&quot;</strong>라는 질문에서 시작합니다.</p>
</blockquote>
<hr>
<h2 id="3-introduction-왜-이-연구가-필요한가">3. Introduction: 왜 이 연구가 필요한가?</h2>
<p>저자들은 기존 방법론(DDPO)의 한계를 보여주기 위해 <strong>&quot;a dolphin riding a bike (자전거를 타는 돌고래)&quot;</strong> 라는 프롬프트로 실험을 진행했습니다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/3f05b4d7-77ad-466a-a84f-9ad62881867f/image.png" alt=""></p>
<p>결과는 충격적이었습니다.
기존 모델은 학습이 끝날 때까지 <strong>자전거를 그리지 못했습니다.</strong> 모델이 초기에 돌고래만 그리는 쉬운 길을 택했고, 생성 과정에서 자전거가 등장하는 샘플을 한 번도 못 만들어봤기 때문에 Reward Model이 &quot;자전거를 그리면 점수를 더 줄게!&quot;라고 알려줄 기회조차 없었던 거죠.</p>
<p>즉, Reward Fine-tuning이 성공하려면 <strong>Online Sample Generation</strong> 과정에서 <strong>&quot;좋은 Reward Signal을 가진 다양한 샘플&quot;</strong>을 찾아내는 <strong>탐색(Exploration)</strong> 능력이 필수적입니다. 이 논문의 제안하는 <strong>DiffExp</strong>는 바로 이 탐색 능력을 극대화하는 기법입니다.</p>
<hr>
<h2 id="4-preliminaries-수식으로-이해하기">4. Preliminaries: 수식으로 이해하기</h2>
<p>Diffusion 모델의 수식이 복잡해 보이지만, 핵심만 짚어보겠습니다.</p>
<h3 id="41-training-objective">4.1. Training Objective</h3>
<p>Text-to-Image 모델은 노이즈 $\epsilon$을 예측하도록 학습됩니다.
$$
\mathcal{L}<em>{DM} := \mathbb{E}</em>{x, c, \epsilon, t} [||\epsilon - \epsilon_\theta(x_t, t, c)||_2^2]
$$
여기서 $\epsilon_\theta(x_t, t, c)$는 텍스트 조건 $c$가 주어졌을 때 모델이 예측한 노이즈입니다.</p>
<h3 id="42-cfg-equation">4.2. CFG Equation</h3>
<p>가장 중요한 식입니다. CFG를 적용한 노이즈 예측 $\tilde{\epsilon}_\theta$는 다음과 같이 계산됩니다.
$$
\tilde{\epsilon}_\theta(x_t, t, c) = \epsilon_\theta(x_t, t) + w \cdot (\epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t))
$$</p>
<ul>
<li>$\epsilon_\theta(x_t, t)$: 텍스트 없이 예측한 노이즈 (Unconditional)</li>
<li>$\epsilon_\theta(x_t, t, c)$: 텍스트를 보고 예측한 노이즈 (Conditional)</li>
<li><strong>$w$</strong>: Guidance Scale (CFG Scale)</li>
</ul>
<p>이 식은 <strong>&quot;프롬프트 없는 그림에서 프롬프트 있는 그림 쪽으로 $w$만큼 더 세게 밀어붙여라&quot;</strong>라는 의미입니다.</p>
<hr>
<h2 id="5-method-diffexp-diffusionexplore">5. Method: DiffExp (DiffusionExplore)</h2>
<p>저자들은 모델이 <strong>(1) 다양성을 확보하면서도 (2) 높은 품질을 유지</strong>하도록 하기 위해 두 가지의 간단하지만 강력한 전략을 제안합니다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/a7e151ed-610a-460d-a29c-2c0e41a72f60/image.png" alt=""></p>
<p><em>(그림 설명: DiffExp의 전체 개요. (a) 랜덤 프롬프트 가중치 조절과 (b) 동적 CFG 스케줄링 과정을 보여줍니다.)</em></p>
<h3 id="strategy-1-dynamic-cfg-scale-scheduling">Strategy 1: Dynamic CFG Scale Scheduling</h3>
<p>기존에는 $w$를 상수로 고정했지만, DiffExp는 <strong>Denoising Step(시간 $t$)</strong>에 따라 $w$를 변화시킵니다.</p>
<p>$$
w(t) = \begin{cases} 
w_h &amp; \text{if } t &gt; t_{thres} \quad (\text{Late Stage}) \
w_l &amp; \text{if } t \le t_{thres} \quad (\text{Early Stage})
\end{cases}
$$
<em>(주의: 논문의 수식 (7)과 설명맥락을 고려할 때, Diffusion은 $T \to 0$으로 진행되므로, $t$가 큰 초기 단계(Early Step)에서 낮은 가중치, $t$가 작은 후기 단계(Late Step)에서 높은 가중치를 적용합니다.)</em></p>
<ol>
<li><strong>초기 단계 (Early Steps):</strong> $w$를 <strong>매우 낮게($w_l$)</strong> 설정합니다.<ul>
<li><strong>이유:</strong> 이미지 생성 초반은 전체적인 <strong>구도(Layout)와 개념</strong>을 잡는 시기입니다. 이때 $w$를 낮춰 모델의 구속을 풀어주면, 평소에 안 그리던 객체(예: 자전거)를 배치하는 <strong>다양한 시도(Diversity)</strong>를 하게 됩니다.</li>
</ul>
</li>
<li><strong>후기 단계 (Later Steps):</strong> $w$를 <strong>높게($w_h$)</strong> 설정합니다.<ul>
<li><strong>이유:</strong> 구도가 잡힌 후에는 디테일을 다듬어야 합니다. 이때는 CFG를 높여서 이미지의 <strong>품질(Fidelity)</strong>을 보장하고 텍스트와의 정합성을 높입니다.</li>
</ul>
</li>
</ol>
<p>이 <strong>&quot;치고 빠지는&quot;</strong> 전략을 통해 다양성과 품질이라는 두 마리 토끼를 다 잡습니다.</p>
<h3 id="strategy-2-random-prompt-weighting">Strategy 2: Random Prompt Weighting</h3>
<p>모델이 특정 단어(예: &quot;Dolphin&quot;)에만 집중하고 어려운 단어(예: &quot;Bike&quot;)를 무시하는 현상을 막기 위한 기법입니다.</p>
<ul>
<li>프롬프트 $c$에서 <strong>랜덤한 단어(Token)</strong> 하나를 선택합니다.</li>
<li>해당 단어의 임베딩 가중치를 $1.0 \sim 1.2$ 범위에서 랜덤하게 증폭시킵니다.
  $$c[i] \leftarrow c_{null} + w_{prompt} * (c[i] - c_{null})$$</li>
</ul>
<p>이렇게 하면 모델이 <strong>&quot;어? 갑자기 Bike가 중요해졌네?&quot;</strong> 하고 평소에 무시하던 자전거를 그릴 확률이 높아집니다. 이렇게 우연히 자전거를 그려서 높은 Reward를 받게 되면, 그 경험을 학습하여 나중에는 가중치 조절 없이도 자전거를 잘 그리게 됩니다.</p>
<hr>
<h2 id="6-experiments-성능-검증">6. Experiments: 성능 검증</h2>
<p>저자들은 대표적인 Reward Fine-tuning 방법론인 <strong>DDPO</strong>와 <strong>AlignProp</strong>에 DiffExp를 적용하여 성능을 비교했습니다.</p>
<h3 id="61-sample-efficiency-샘플-효율성">6.1. Sample Efficiency (샘플 효율성)</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/573bdd9c-2265-4db9-a70d-9a13b03860a3/image.png" alt=""></p>
<p><em>(그림 설명: 학습 진행에 따른 Reward 상승 곡선. 파란색(DiffExp)이 빨간색(Baseline)보다 훨씬 빠르게 상승합니다.)</em></p>
<ul>
<li><strong>결과:</strong> DiffExp를 적용한 경우(파란 선)가 기존 방법(빨간 선)보다 훨씬 가파르게 보상 점수가 오릅니다.</li>
<li><strong>해석:</strong> 약 <strong>20% 더 적은 샘플(Query)</strong>만으로도 동일하거나 더 높은 성능에 도달했습니다. GPU 리소스가 부족한 대학원생 입장에서 학습 속도가 빠르다는 건 엄청난 장점이죠.</li>
</ul>
<h3 id="62-qualitative-results-정성적-평가">6.2. Qualitative Results (정성적 평가)</h3>
<p>실제 생성된 이미지를 비교해보면 차이가 확연합니다.</p>
<ul>
<li><strong>Prompt:</strong> *&quot;A butterfly playing chess (체스 두는 나비)&quot;*<ul>
<li><strong>Baseline (AlignProp):</strong> &#39;체스&#39;라는 단어에 편향되어 체스 두는 <strong>사람</strong>을 그립니다. 나비는 없습니다.</li>
<li><strong>Ours (DiffExp):</strong> 놀랍게도 체스 말 위에 앉은 <strong>나비</strong>를 정확하게 그려냅니다. Random Prompt Weighting 덕분에 &quot;Butterfly&quot;의 존재감이 살아난 것이죠.</li>
</ul>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/9ea3b112-7506-41e6-ad76-e4297d30829c/image.png" alt=""></p>
<p><em>(그림 설명: Baseline과 DiffExp의 생성 이미지 비교. DiffExp가 프롬프트의 복합적인 요소를 훨씬 잘 반영합니다.)</em></p>
<h3 id="63-generalization--scalability-일반화-성능">6.3. Generalization &amp; Scalability (일반화 성능)</h3>
<ul>
<li><strong>Unseen Prompts:</strong> 학습 때 보지 못한 프롬프트에 대해서도 DiffExp가 더 높은 점수를 기록했습니다. 이는 모델이 특정 프롬프트만 외운(Overfitting/Reward Hacking) 게 아니라, 전반적인 생성 능력이 향상되었음을 의미합니다.</li>
<li><strong>SDXL 적용:</strong> 최신 모델인 Stable Diffusion XL에도 적용했을 때 성능 향상이 뚜렷했습니다. 모델 사이즈가 커져도 이 탐색 전략이 유효하다는 뜻입니다.</li>
</ul>
<hr>
<h2 id="7-conclusion--insight">7. Conclusion &amp; Insight</h2>
<h3 id="논문의-결론">논문의 결론</h3>
<p>이 논문은 Text-to-Image 모델의 Reward Fine-tuning에서 <strong>Exploration(탐색)</strong>이 얼마나 중요한지를 증명했습니다. <strong>DiffExp</strong>는 <strong>Dynamic CFG</strong>와 <strong>Random Prompt Weighting</strong>이라는, 구현하기 쉽지만 강력한 두 가지 도구로 기존 모델들의 &quot;창의력 부족&quot; 문제를 해결했습니다.</p>
<h3 id="🎓-대학생의-시선으로-본-review">🎓 대학생의 시선으로 본 Review</h3>
<p>개인적으로 이 논문이 매력적이었던 이유는 <strong>&quot;Simple is Best&quot;</strong>를 보여주었기 때문입니다.</p>
<ol>
<li><strong>복잡한 Loss 설계 불필요:</strong> 새로운 목적 함수를 유도하거나 복잡한 수식을 추가하지 않았습니다.</li>
<li><strong>Inference 단계의 통찰:</strong> 학습 과정 중 샘플링(Inference) 단계에서 <code>timesteps</code>와 <code>guidance scale</code>의 관계를 파악하여 성능을 올렸습니다. 이는 엔지니어링 관점에서도 적용하기 매우 좋습니다.</li>
<li><strong>높은 호환성:</strong> DDPO든 AlignProp이든, 혹은 미래에 나올 어떤 RL 기반 튜닝 방법론에도 <code>Plug-and-Play</code>로 갖다 붙일 수 있는 범용적인 모듈입니다.</li>
</ol>
<hr>
<p><strong>References</strong></p>
<ul>
<li>The Thirty-Ninth AAAI Conference on Artificial Intelligence (AAAI-25)</li>
<li>DiffExp: Efficient Exploration in Reward Fine-tuning for Text-to-Image Diffusion Models</li>
<li>Black et al., Training Diffusion Models with Reinforcement Learning (DDPO), ICLR 2024</li>
<li>Prabhudesai et al., Aligning text-to-image diffusion models with reward backpropagation (AlignProp), arXiv 2023</li>
<li>Ho and Salimans, Classifier-free diffusion guidance, arXiv 2022</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Expressive Whole-Body 3D Gaussian Avata]]></title>
            <link>https://velog.io/@bbang_jun/Expressive-Whole-Body-3D-Gaussian-Avata</link>
            <guid>https://velog.io/@bbang_jun/Expressive-Whole-Body-3D-Gaussian-Avata</guid>
            <pubDate>Thu, 20 Nov 2025 17:42:14 GMT</pubDate>
            <description><![CDATA[<h3 id="iabstract-핵심-요약">I.Abstract: 핵심 요약</h3>
<p>ExAvatar를 전신 파라메트릭 메쉬 모델(SMPL-X)과 3D Gaussian Splatting(3DGS)을 결합한 형태로 설계</p>
<p>1) 비디오 내 얼굴 표정과 포즈의 제한된 다양성과 
2) 3D 스캔이나 RGBD 이미지와 같은 3D 관측값의 부재이다. 비디오의 제한된 다양성은 새로운 얼굴 표정과 포즈에 대한 애니메이션을 만드는 일을 어렵게 만든다. </p>
<p>더 나아가, 3D 관측값의 부재는 비디오에서 관측되지 않은 인체 부위들에 대해 상당한 모호성을 유발할 수 있으며, 이는 새로운 동작에서 눈에 띄는 아티팩트를 초래할 수 있다. 
이를 해결하기 위해, 메쉬와 3D 가우시안의 하이브리드 표현을 도입한다. 하이브리드 표현에서는 각 3D 가우시안을 표면 상의 하나의 정점으로 취급하며, 이들 사이에 SMPL-X의 메쉬 토폴로지를 따르는 사전에 정의된 connectivity를 부여한다. 
이 방식은 SMPL-X의 얼굴 표현 공간에 의해 구동(driven)됨으로써, ExAvatar가 새로운 얼굴 표정을 가진 애니메이션이 가능하도록 만든다. 추가로, connectivity-based regularizer를 사용함으로써, 새로운 얼굴 표정과 포즈에서 발생하는 아티팩트를 크게 줄인다.</p>
<h3 id="ii-introduction">II. Introduction</h3>
<p>지금까지 whole-body 3D 인간 형상 모델들이 제안되어 왔다
그중 SMPL-X는 가장 널리 사용되는 모델로, 수많은 3D 전신 포즈 추정 방법들과 벤치마크를 촉발했다. </p>
<p>본 논문에서는 짧은 monocular 비디오로부터 생성 가능한, 표현력이 풍부한 전신 3D 인간 아바타 ExAvatar를 제안한다. ExAvatar는 전신 3D 파라메트릭 모델 SMPL-X와 3D Gaussian Splatting(3DGS)을 결합한 형태로 설계된다. ExAvatar는 SMPL-X의 전신 구동 가능성(whole-body drivability)과 3DGS의 포토리얼하고 효율적인 렌더링 능력을 모두 활용한다. 학습이 끝난 뒤에는, Fig. 1에 보이듯 SMPL-X의 새로운 얼굴 표정 코드와 3D 포즈로 애니메이션이 가능하다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/51fe24dc-464c-4cbe-a79a-5a3eeec1f5f7/image.png" alt=""></p>
<p>ExAvatar를 모델링하는 것은 다음 두 가지 이유로 결코 단순하지 않다. 
(1) 비디오 내 얼굴 표정과 포즈 다양성이 제한적이며, 
(2) 3D 스캔이나 RGBD 비디오와 같은 3D 관측치가 존재하지 않는다는 점이다.</p>
<p>비디오의 제한된 다양성 때문에, 새로운 얼굴 표정과 포즈에 대해 잘 구동되도록 만드는 것은 쉽지 않다. 더 나아가 3D 관측이 없으면, 비디오에서 가려져 관측되지 않은 인체 부위에 대해 모호성이 커지고, 이는 새로운 얼굴 표정과 포즈에서 눈에 띄는 아티팩트를 야기할 수 있다.</p>
<p>이러한 문제들을 해결하기 위해, ExAvatar 내에서 표면 메쉬와 3D 가우시안을 결합한 새로운 하이브리드 표현을 제안한다. 제안하는 하이브리드 표현에서는 각 3D 가우시안을 표면 상의 하나의 정점으로 취급하며, 이 정점들은 SMPL-X의 메쉬 토폴로지를 따르는 사전 정의된 연결 정보를 가진다. 기존의 볼류메트릭 아바타들은 정의상 이러한 연결성을 갖지 않는다. 또한 이전 3DGS 기반 연구들은 3D 가우시안 점들의 집합을, 정점들 간의 연결성을 고려하지 않는 포인트 클라우드로 취급한다.  </p>
<p>하이브리드 표현을 사용하면, ExAvatar는 SMPL-X의 얼굴 표현 공간과 완전히 호환된다. 따라서, 다양한 얼굴 표정이 포함되어 있지 않은 짧은 monocular 비디오로부터 학습된 경우에도, SMPL-X의 임의의 얼굴 표정 코드로 ExAvatar를 구동할 수 있다.</p>
<p>3D 가우시안은 SMPL-X와 정확히 동일한 메쉬 토폴로지를 공유하므로, FLAME과 SMPL-X에서와 같이, 얼굴 표정에 따라 3D 가우시안 점들을 움직이기 위해 단순히 정점 오프셋을 3D 가우시안 위치에 더해주면 된다.</p>
<p>–3D 관측을 요구하지 않는 짧은 monocular 비디오로부터 생성 가능한, 표현력 있는 전신 3D 인간 아바타 ExAvatar를 제안한다.
–표면 메쉬와 3D 가우시안을 결합한 하이브리드 표현을 제안한다. 이 표현 덕분에, 다양한 얼굴 표정이 없는 짧은 monocular 비디오로부터 학습하더라도, SMPL-X의 임의의 새로운 얼굴 표정 코드로 ExAvatar를 애니메이션할 수 있다.
–3D 가우시안 사이의 연결성 정보를 활용함으로써, 특히 새로운 얼굴 표정과 포즈에서의 아티팩트를 크게 줄인다.</p>
<h3 id="related-works">Related Works</h3>
<p>-논문 내용의 2가지 개념과 3DGS 정리</p>
<h4 id="3d-human-avatars">3D human avatars</h4>
<p>참조 논문 : A Survey on 3D Human Avatar Modeling - From Reconstruction to Generation</p>
<p>3D 인간 아바타(3D human avatar)라는 말을 들으면 보통 게임 캐릭터나 메타버스 아바타 정도를 떠올리지만, 논문에서 말하는 “아바타”는 조금 더 구체적이다.</p>
<blockquote>
<p>“특정 사람의 3D 형상(geometry) + 외관(appearance)을 함께 표현하고,
새로운 포즈나 다른 카메라 뷰에서도 자연스럽게 렌더링할 수 있는 모델”</p>
</blockquote>
<p>을 보통 3D 아바타라고 생각하면 된다.</p>
<pre><code>[원본 비디오] → [3D Reconstruction] → [3D Avatar] → [새 포즈 / 새 뷰 렌더링]</code></pre><p><img src="https://velog.velcdn.com/images/bbang_jun/post/65e54664-3b9d-400c-9afe-313a62686e94/image.png" alt=""></p>
<p>초기 연구들은 대부분 메쉬 기반이었다. 예를 들어 SMPL 메쉬를 가져다가 정점별 오프셋을 더해서 개인별 체형, 옷주름 등을 표현하는 방식이 대표적이다. 
이런 방식은 토폴로지가 고정된 깔끔한 메쉬 위에 디테일만 살짝살짝 올리는 느낌이다.</p>
<p>이후에는 NeRF 같은 볼류메트릭 / implicit 표현이 등장하면서,
“굳이 메쉬를 직접 쓰지 않고도 고품질 사람 아바타 만들 수 있지 않나?” 하는 흐름이 나왔다.</p>
<p>여러 대의 카메라로 촬영된 멀티뷰 영상 + 정확한 3D 포즈를 가지고 사람을 볼류메트릭하게 재구성하는 방법들
장면을 신경 복사장(NeRF)이나 Signed Distance Field로 표현해서 사진과 거의 구분이 안 가는 수준으로 렌더링하는 방법들</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/6da6991b-0390-4a56-9f57-008d279bca3e/image.png" alt=""></p>
<p>가장 큰 문제는 연구실 밖 구현이 힘들다는 거다.
문제1. 보통 사람은 16대 카메라가 달린 캡처 스튜디오에 들어가지 않는다.
문제2. 그냥 휴대폰으로 30초 정도 찍은 영상이 전부인 경우가 훨씬 많다.
문제3. 심지어 얼굴 표정도 다양하지 않고, 손도 제대로 안 보일 수 있다.</p>
<h4 id="whole-body-3d-human-modeling-smpl에서-smpl-x">Whole-body 3D Human Modeling: SMPL에서 SMPL-X</h4>
<p>참고 논문: <a href="https://arxiv.org/abs/1904.05866">https://arxiv.org/abs/1904.05866</a></p>
<pre><code>[SMPL]      : 몸 + 다리 + 팔 중심
[SMPL-X]    : 몸 + 다리 + 팔 + 얼굴 표정 + 손가락</code></pre><p><img src="https://velog.velcdn.com/images/bbang_jun/post/c3020637-fa4b-4bb6-a50f-5bf66e3113bf/image.png" alt=""></p>
<blockquote>
<p>“SMPL은 몸 중심, SMPL-X는 얼굴과 손이 포함된 전신 모델이다.
ExAvatar는 이 SMPL-X를 기반으로 얼굴·손까지 움직일 수 있는 아바타를 만든다.”</p>
</blockquote>
<p>간단히 정리하면:</p>
<h4 id="smpl">SMPL</h4>
<p>사람의 몸을 포즈(관절 회전) + 체형(shape) 파라미터로 표현하는 파라메트릭 메쉬 모델.
θ (pose), β (shape)를 넣으면 3D 메쉬가 나오는 형태.</p>
<h4 id="smpl-x">SMPL-X</h4>
<p>SMPL을 확장해서 몸 + 손 + 얼굴 표정까지 한 번에 표현하는 모델.
여기에 손가락 관절, 얼굴 표정용 blendshape, 눈·입 주변까지 다 들어간다.</p>
<p>연구 입장에서 SMPL-X가 중요한 이유는 단순하다.</p>
<blockquote>
<p>“전신 포즈 + 손 제스처 + 얼굴 표정을
하나의 일관된 파라미터 공간에서 다룰 수 있게 해준다.”</p>
</blockquote>
<p>그래서 요즘 전신 인체 이해/생성/아바타 분야 논문들에서
<strong>“우리는 SMPL-X를 사용했다”</strong>는 문장은 거의 기본 세팅처럼 따라붙는다.</p>
<h4 id="3d-gaussian-splatting3dgs-nerf-이후의-새로운-엔진">3D Gaussian Splatting(3DGS): NeRF 이후의 새로운 엔진</h4>
<p>3DGS는 사실 다른 논문을 리뷰할때도 많이 본 개념이라 가볍게 정리하고만 넘어가자</p>
<pre><code>[NeRF]   : 공간 전체를 MLP로 표현, 레이를 따라 샘플링
[3DGS]   : 장면을 3D Gaussian 점들의 집합으로 표현, 점들을 화면에 splat</code></pre><h4 id="nerf">NeRF</h4>
<p>“연속 공간 + MLP + 레이 샘플링”</p>
<h4 id="3dgs">3DGS</h4>
<p>“점 구름 + Gaussian 커널 + 가속된 splatting”</p>
<p>이라고 보는 느낌이다.</p>
<h4 id="exavatar를-위-개념들로-논문의-문맥으로-보자면-이렇다">ExAvatar를 위 개념들로 논문의 문맥으로 보자면 이렇다</h4>
<pre><code>[입력: 짧은 monocular 비디오]
        ↓
[SMPL-X 피팅 / 포즈·표정 추정]
        ↓
[SMPL-X 메쉬 정점 위에 3D Gaussian 최적화]
        ↓
[학습 완료된 ExAvatar]
        ↓
[임의의 SMPL-X 포즈·표정 코드 입력 → 전신 3DGS 렌더링]</code></pre><h3 id="iii-exavatar">III. ExAvatar</h3>
<h4 id="31-accurate-co-registration-of-smpl-x">3.1 Accurate co-registration of SMPL-X</h4>
<h4 id="한줄요약">한줄요약</h4>
<p>짧은 in-the-wild 비디오에서, 몸·손·얼굴이 모두 잘 맞는 SMPL-X 파라미터를 만들기 위해 joint offset, face offset 두 가지를 같이 최적화한다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/5c4d79af-19d3-4987-a13e-8b65aa5196d0/image.png" alt=""></p>
<p><strong>&quot;핵심 아이디어&quot;</strong></p>
<p>먼저 모든 프레임에 대해 SMPL-X regressor로 초기 SMPL-X 파라미터 추정 2D pose estimator로 2D 키포인트 추정 각 프레임마다 2D 키포인트에 맞게 θ, ψ, t를 다시 피팅하고, shape β는 전 프레임 공유</p>
<p>전신에서 가장 어려운 부분인 손·얼굴 정합을 위해 관절 위치를 보정하는 joint offset ΔJ
얼굴 정점 위치를 보정하는 face offset ΔV_face 두 개를 ID-dependent 파라미터로 도입 얼굴은 FLAME + DECA로 따로 고퀄 정합해 놓고, 그 결과를 SMPL-X 얼굴 메쉬에 투영해서 ΔV_face로 가져옴</p>
<p><strong>왜 중요한가</strong></p>
<p>짧은 비디오에서는 손, 얼굴이 자주 작게 나오거나 모션이 복잡해서 기본 SMPL-X만으로는 registration이 틀어지기 쉽다.</p>
<p>joint offset / face offset을 통해 skeleton과 표면을 사람별로 정교하게 맞춰 놓으면
→ 이후 Gaussian 아바타 학습의 기준 좌표계가 훨씬 깔끔해짐
→ 최종 아바타에서 손/얼굴이 ‘깨지는’ 현상 감소</p>
<h4 id="32-exavatar-아키텍처">3.2 ExAvatar 아키텍처</h4>
<h4 id="한-줄-요약">한 줄 요약</h4>
<p>→ SMPL-X에서 뽑은 canonical 메쉬 + 트라이플레인 + MLP들을 조합해서, 각 정점에 대응되는 3D Gaussian의 geometry·color를 회귀하는 구조.
<img src="https://velog.velcdn.com/images/bbang_jun/post/a83b5380-dd3f-4927-8835-6cfeaf7639ae/image.png" alt=""></p>
<p><strong>Canonical mesh V̄</strong></p>
<p>SMPL-X(β, ΔJ, ΔV_face, 大-pose)를 거쳐 얻은 메쉬를
PyTorch3D subdivision으로 upsample (167K verts, 335K faces)</p>
<p><strong>Triplane 기반 feature 추출</strong></p>
<p>1.학습 가능한 T ∈ ℝ³ˣᶜˣᴴˣᵂ (C=32, H=W=128)
2.중립 포즈 positional mesh P̄를 동일 topology로 업샘플
3.P̄를 각 평면에 투영 + bilinear interpolation → 정점별 feature
4.얼굴은 해상도·디테일이 중요해서 face 전용 triplane 하나 더 사용</p>
<p><strong>Gaussian 자산 회귀 (pose-independent)</strong></p>
<p>1.F(정점 feature)를 입력으로
MLP①: ΔV_tri, S_tri (geometry)
MLP②: C_tri (color)
2.Gaussian은 등방성으로 제한(스케일 1D, 회전/opacity 고정)</p>
<p><strong>Pose-dependent 보정</strong></p>
<p>추가 MLP 두 개
기본 Gaussian은 ID+환경을 표현하고, pose MLP는 작은 보정 역할만 수행</p>
<h4 id="33-애니메이션--렌더링">3.3 애니메이션 &amp; 렌더링</h4>
<p><strong>한 줄 요약</strong>
→ canonical 상태의 Gaussian 포인트들을 SMPL-X 포즈/표정으로 옮긴 뒤,
3DGS 렌더러로 이미지를 뽑는다.</p>
<h4 id="34-손실-함수--정규화">3.4 손실 함수 &amp; 정규화</h4>
<h4 id="image-loss">Image loss</h4>
<p>대상: I<em>_tri, I</em>_pose vs 입력 이미지</p>
<p>항목: L1 + (1 - SSIM) + LPIPS</p>
<p>사람 영역만 crop해서 계산 → 연산량 절감</p>
<h4 id="face-loss-mesh-기반">Face loss (mesh 기반)</h4>
<p>FLAME 기반 얼굴 UV 텍스처 평균을 고정해 놓고,differentiable mesh renderer로 뽑은 얼굴 이미지를 GT와 L1로 비교
이때 텍스처는 고정, Gaussian 위치만 움직이면서 loss 감소</p>
<p>목적:
geometry–texture의 일관성(입술, 눈썹 등)
새로운 표정/턱 포즈에서도 얼굴이 자연스럽게 움직이도록</p>
<h4 id="connectivity-based-regularizers-laplacian">Connectivity-based regularizers (Laplacian)</h4>
<p>V̄_tri, V̄_pose vs canonical mesh V̄의 Laplacian 차이 최소화</p>
<p>효과:
관측되지 않은 부위(가려진 등에 있는 Gaussian들)가
이상하게 튀는 것(floating Gaussian) 방지</p>
<p>SMPL-X 얼굴 geometry와의 형상 일치 유지
L2로 단순히 “메쉬에서 멀어지지 마라”만 하는 기존 방식보다
지역 구조를 유지하는 데 훨씬 유리</p>
<h3 id="ivexperiment">IV.Experiment</h3>
<h4 id="41-데이터셋">4.1 데이터셋</h4>
<h4 id="neuman--진짜-현실-세계에-가까운-monocular-비디오">NeuMan – 진짜 현실 세계에 가까운 monocular 비디오</h4>
<p>NeuMan 데이터셋은 실외에서 촬영된 짧은 단일 카메라 비디오들로 구성되어 있다. 한 영상에 한 명의 사람이 나오고, 약 15초 정도 걸어 다니거나 움직이는 장면이 담긴다. 배경에는 자전거, 나무, 건물 등 온갖 것들이 등장하고, 카메라 흔들림이나 조명 변화도 당연히 존재한다. 논문에서는 bike, citron, jogging, seattle처럼 인체가 잘 보이고 블러가 적은 시퀀스를 골라 실험에 사용한다.</p>
<p>여기서 중요한 포인트는 아주 단순하다.
<strong>3D 스캔도, 깊이 맵도, 멀티뷰도 없다.</strong>
그냥 우리가 평소에 휴대폰으로 찍는 것과 비슷한, RGB monocular 비디오 한 줄이 전부다.</p>
<h4 id="x-humans--스튜디오-rgbd-표정·손이-더-풍부한-데이터">X-Humans – 스튜디오, RGBD, 표정·손이 더 풍부한 데이터</h4>
<p>반대로 X-Humans는 스튜디오 환경에서 촬영된 고급 데이터셋이다. 여러 피사체에 대해 3D 스캔과 RGBD 비디오를 제공, 특히 얼굴 표정과 손 포즈가 훨씬 다양하게 담겨 있다. 원래 X-Avatar 논문이 이 데이터셋을 기반으로 전신 아바타 SOTA를 찍었던 바로 그 세트다.</p>
<p>X-Humans에는 두 가지 실험 프로토콜이 있다는 점이다. 스캔을 사용하는 경우, 그리고 RGBD 비디오를 사용하는 경우. X-Avatar는 RGBD와 정밀한 SMPL-X registration을 활용해서 전신 아바타를 학습한다.</p>
<p>0028, 0034, 0087 같은 특정 피사체를 골라놓고, 깊이 없이 RGB monocular 비디오만 사용해서 아바타를 만들고 X-Avatar와 성능을 비교한다. </p>
<h4 id="42-성능비교">4.2 성능비교</h4>
<h4 id="neuman에서의-비교--배경-포함-vs-인체만">NeuMan에서의 비교 – 배경 포함 vs 인체만</h4>
<p>먼저 NeuMan 데이터셋에서는 두 가지 방식으로 평가를 진행한다.
하나는 렌더링된 배경까지 포함해서 전체 이미지를 평가하는 방법, 다른 하나는 사람 영역만 남기고 배경 픽셀을 제거한 뒤 인체 부분만 평가하는 방법이다.</p>
<p>배경까지 포함해서 볼 때는 NeuMan, Vid2Avatar, HUGS 같은 방법들과 ExAvatar를 비교한다. 여기서는 단순히 “얼마나 똑같이 이미지를 복원하느냐”뿐 아니라, 사람과 배경의 조합 전체를 얼마나 잘 재현하느냐도 같이 본다. 이 설정에서도 ExAvatar는 PSNR과 SSIM이 가장 높고 LPIPS가 가장 낮다. 즉, 수치상으로도 가장 GT에 가깝고 perceptual 차이도 적다는 의미다. 게다가 이 중에서 실제로 얼굴과 손을 독립적으로 애니메이션할 수 있는 모델은 ExAvatar뿐이다.</p>
<p>배경을 떼어내고 인체만 평가하는 실험에서는 HumanNeRF, InstantAvatar, NeuMan, Vid2Avatar, GaussianAvatar, 3DGS-Avatar 등 다양한 최신 아바타/NeRF 계열과 비교한다. 이때는 이미지를 사람 마스크로 잘라낸 뒤 그 부분만 가지고 지표를 계산한다. 여기서도 ExAvatar가 PSNR, SSIM, LPIPS 모두에서 SOTA를 찍는다. “배경 포함 전체”로 보나, “사람만 떼 놓고” 보나 둘 다 가장 우수하다.</p>
<p>참고로 배경 마스크를 얻기 위해서는 GaussianAvatar와 동일하게 기성 segmentation 네트워크를 사용하고, 평가 시에는 기존 연구들처럼 테스트 프레임에 대해 SMPL-X 파라미터만 조금 미세 조정하고 나머지 파라미터는 고정해 두는 세팅을 따른다.</p>
<h4 id="x-humans-vs-x-avatar--rgbd를-이기는-rgb-monocular">X-Humans vs X-Avatar – RGBD를 이기는 RGB monocular</h4>
<p>다음은 X-Humans 데이터셋에서의 비교다. 여기서는 사실상 “이 논문의 하이라이트”에 가까운 결과가 나온다.</p>
<p>X-Avatar는 RGBD 비디오와 정확한 3D registration을 전제로 설계된 모델이다. 반면 ExAvatar는 깊이를 전혀 쓰지 않고, RGB monocular 비디오만 쓴다. 그럼에도 불구하고, 여러 subject에 대해 PSNR, SSIM, LPIPS를 비교해 보면 ExAvatar가 전반적으로 더 좋은 수치를 기록한다. 시각적 결과를 보면 얼굴의 입술, 눈 주변, 코, 이마 음영뿐 아니라 손 모양이나 손가락 디테일까지 더 자연스럽게 표현되는 경우가 많다.</p>
<p>표면 메쉬와 3D Gaussian을 결합한 하이브리드 표현, SMPL-X co-registration에서의 joint/face offset, 그리고 뒤에서 설명할 Laplacian 정규화와 face loss까지 포함한 전체 설계가, 더 좋은 설계를 만든 것 같다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/3c2557cd-3f6e-44cf-a3b5-ebacbe073063/image.png" alt=""></p>
<h3 id="v-conclusion">V. Conclusion</h3>
<p>요약하자면</p>
<blockquote>
<p>짧은 monocular 비디오 하나만으로, 얼굴·손까지 움직이는 전신 3D Gaussian 아바타를 만들 수 있고,
그걸 가능하게 만든 핵심은 <strong>“메쉬 + 3D Gaussian 하이브리드 표현”</strong>이다.</p>
</blockquote>
<p>ExAvatar는 SMPL-X라는 전신 파라메트릭 모델과 3D Gaussian Splatting을 묶어서,
3D 스캔이나 RGBD 같은 3D 관측 없이도 전신 아바타를 만든다. 이 하이브리드 표현 덕분에 두 가지 문제가 동시에 해결된다.</p>
<p>첫째, 짧은 영상이라 얼굴 표정·포즈가 다양하지 않다는 문제.
둘째, 깊이/스캔이 없기 때문에 가려진 부위(입 안, 손바닥, 몸 뒤쪽 등)가 애매하게 남는 문제.</p>
<blockquote>
<p>Gaussian을 그냥 뜬금없는 점구름으로 쓰지 말고,
SMPL-X 메쉬의 정점으로 취급하자.</p>
</blockquote>
<p>이렇게 하면 Gaussian들이 SMPL-X와 같은 connectivity를 공유하게 되고, SMPL-X의 얼굴 표정 공간을 그대로 드라이버로 쓸 수 있고, Laplacian 같은 메쉬 기반 정규화도 바로 먹일 수 있다. 이게 결국, 새로운 표정·포즈에서 아바타가 덜 깨지고 더 자연스럽게 동작하는 이유라고 정리한다.</p>
<p>실험에서 보여준 것처럼,깊이까지 쓰는 X-Avatar보다, 깊이 없이 RGB monocular만 쓰는 ExAvatar가 더 좋은 수치와 시각 결과를 낸다는 게 이들의 최종 결론.</p>
<h3 id="exavatar의-한계">ExAvatar의 한계</h3>
<p>첫 번째는 보이지 않는 부위는 결국 “그럴듯하게 상상”할 수밖에 없다는 점이다.
두 번째는 동적인 옷이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Optimized Minimal 3D Gaussian Splatting]]></title>
            <link>https://velog.io/@bbang_jun/Optimized-Minimal-3D-Gaussian-Splatting-cj3jc47d</link>
            <guid>https://velog.io/@bbang_jun/Optimized-Minimal-3D-Gaussian-Splatting-cj3jc47d</guid>
            <pubDate>Thu, 13 Nov 2025 14:48:33 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/bbang_jun/post/e8ab6ac7-8e93-4582-971f-c675c4a7f2eb/image.png" alt="">
가우시안 프리미티브의 개수를 최소한으로 유지하면서도 저장 용량을 최소화하는 것에 초점을 맞추고 증여한 가우시안들을 골라내 국소 구분도(local distinctiveness) 지표를 도입하였고 희소한 가우시안들에 대해 불규칙성과 연속성을 활용해 더 효율적인 속성 표현 방식을 제안.
5MB이하의 저장 용량으로도 장면을 표한하면서 600FPS 이상의 랜더링 속도를 달성할 수 있다.</p>
<hr>
<h3 id="알고가야할-부분들">알고가야할 부분들</h3>
<ol>
<li>그래픽스 시간에 배운 가우시안 스플레팅이란?
[출처: <a href="https://happy-support.tistory.com/25%5D">https://happy-support.tistory.com/25]</a>
<img src="https://velog.velcdn.com/images/bbang_jun/post/b8f6b3af-450a-4f1e-8159-d727672c6863/image.png" alt=""></li>
</ol>
<p>기존에는 NeRF기반으로 synthesis를 수행하곤 했는데 성능은 좋지만 연산량이 많고 실시간 렌더링에서의 활용은 어렵다.
그렇기에 소개된 개념이 바로 3D GS이다. 위 사진과 같이 타원을 이미지 상에 투영시키는 방법을 말한다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/3ae3788a-dfeb-4069-a4f3-589c32c02fd9/image.png" alt=""></p>
<p>전체적인 흐름은 위 figure와 같다.</p>
<p>카메라를 기준으로 초기 여러개의 점들을 생성하고 그 중점을 $M$이라고 하자 그 가우시안들은 모두 제각각의 크기를 가질 것이고 $S$를 그 크기라고하자. 또, 타원의 기울어진 정도가 있을테니 이를 $R$이라고하자. 마지막으로 가우시안들이 색조를 가질테니 이 색상을 $C$라고 하자.
<img src="https://velog.velcdn.com/images/bbang_jun/post/d2fd7dea-9378-42ae-857d-e48eaff78fde/image.png" alt="">
2D 공간상에 투영된 분포들을 이제 균일한 크기로 잘라 최종 Pixel값을 정하고 겹쳐지는 부분들에 대한 분포들이 가지는 불투명도를 $A$라고 하자.
<img src="https://velog.velcdn.com/images/bbang_jun/post/46e07eb7-3a93-432f-ad9e-b52b02c1dd5b/image.png" alt="">
가우시안 스플래팅을 소개하는 논문에서는 수도 코드를 다음과 같이 제시했다.</p>
<p>또, 초기점들에 대한 알고리즘은 SfM이라는 알고리즘이다. SfM은 여러 각도에서 찍은 사진들이 들어왔을때 point cloud를 생성하여 이미지를 구축하는 방법이고 이는 1992년 
<em>A Sequential Factorization Method for Recovering Shape and Motion from Image Streams</em> 라는 논문에서 제안되었다.</p>
<p>한마디로 정리하자면 여러장의 사진에서 &#39;특징&#39;을 추출하고 이를 유사도 기반으로 이어붙인다로 정리할 수 있다.</p>
<hr>
<h2 id="abstract">Abstract</h2>
<p>세줄 요약</p>
<ol>
<li>3DGS가 실시간 고성능 랜더링을 위한 표현방법으로 떠오르고 numerous explicit Gaussian primitives로 3D를 표현, 낭비 발생, 다른 논문들은 속성 압축에만 집중한다.</li>
<li>가우시안의 개수는 계산 비용과 직접적으로 연관되어 있기에 저장용량 최적화보다는 가우시안 개수를 효과적으로 줄이는 것이 중요하다.</li>
<li>본 논문에서 제시하는 OMG는 distinct 가우시안 선별, 프리미티브들 사이의 연속성과 불규칙성, 서브벡터 양자화까지 도입하여 용량을 감소시키고 랜더링 품질을 600fps까지 올린다.</li>
</ol>
<hr>
<h2 id="i-introduction">I. Introduction</h2>
<h4 id="1-3d-gaussian-splatting이-왜-중요한가">1) 3D Gaussian Splatting이 왜 중요한가</h4>
<p>최근 3DGS는 빠르고 포토리얼한 3D 장면 재구성을 위해 많이 쓰이는 방법이다.
기존 NeRF는 하나의 신경망이 장면 전체를 표현하고, 각 픽셀마다 광선을 쏜 뒤 많은 샘플을 MLP에 통과시키는 방식이라 계산량이 크다.</p>
<p>3DGS는 아이디어가 다르다.
    장면을 수많은 3D 가우시안(작은 반투명 구름 같은 점) 들로 표현한다.
    카메라 시점에서 이 가우시안들을 화면에 <strong>스플랫(splat)</strong> 하듯이 찍어내면서 렌더링한다.
    이 과정에서 타일 단위 병렬 처리(tile-based parallelism) 를 활용해 GPU에서 매우 빠르게 동작한다.</p>
<p>덕분에 3DGS는
-동적인 장면 재구성
-사람 아바타 렌더링
-생성 모델의 3D 표현
-도시 규모의 대형 장면 렌더링
같은 다양한 응용에서 많이 쓰이고 있다 한다.</p>
<h4 id="2-3dgs의-숨은-문제-가우시안이-너무-많다">2. 3DGS의 숨은 문제: 가우시안이 너무 많다</h4>
<p>3DGS는 학습 과정에서 가우시안의 개수를 자동으로 조절한다.
-위치 기울기(gradient)가 큰 가우시안은 복제하거나 분할해서 더 세밀하게 만든다.
-불투명도가 낮아서 거의 기여하지 않는 가우시안은 제거한다.</p>
<p>하지만, 장점만 있는 것은 아니다 부작용이 존재하는데</p>
<blockquote>
<p>최종적으로 한 장면에 300만 개가 넘는 가우시안이 남는 경우가 많다.</p>
</blockquote>
<p>저장 용량이 커지고
메모리 사용량과 연산량이 크게 증가한다.</p>
<p>그래서 기존 연구들은 먼저 <strong>“가우시안 수를 줄이자”</strong>에 집중해왔다.
중요도가 낮은 가우시안을 렌더링 손실이나 중요도 점수로 잘라내는 <strong>pruning 기법</strong>
가우시안을 언제 늘리고 언제 줄일지 더 똑똑하게 설계하는 <strong>densification 전략</strong></p>
<p>이런 연구들 덕분에 최근에는 가우시안 개수를 약 50만 개 정도까지 줄여도 화질을 유지하면서, 저사양 GPU에서도 실시간 렌더링이 가능해졌다 한다.</p>
<h4 id="3-가우시안만-줄여서는-부족하다">3. 가우시안만 줄여서는 부족하다</h4>
<blockquote>
<p>가우시안 하나가 59개의 학습 파라미터로 표현된다.</p>
</blockquote>
<p>즉, 위치, 크기, 모양(공분산), 색, 불투명도 등 여러 속성이 다 수치로 저장된다.
그래서 가우시안 개수를 많이 줄여도 저장 공간이 여전히 크다.</p>
<p>예를 들어, 논문에서 언급하는 한 설정에서는
가우시안 수를 줄였음에도 133MB나 차지한다(그림 1 참조).</p>
<p>그래서 두 번째 방향의 연구가 등장한다.
벡터 양자화(Vector Quantization)
뉴럴 필드(Neural Field)를 이용한 속성 재표현
정렬(sorting)과 엔트로피 최적화 등 압축 기법</p>
<p>을 사용해서 <strong>“가우시안의 속성을 압축하자”</strong>는 방향이다.
이 덕분에 저장 용량을 꽤 줄이는 데 성공한 연구들이 많이 나왔다 한다.</p>
<p>-&gt; 벡터 양자화란?
<a href="https://edbkorea.com/blog/%EB%B2%A1%ED%84%B0-%EC%96%91%EC%9E%90%ED%99%94vector-quantization%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80/">벡터 양자화 참고 자료 출처</a>
벡터 양자화(Vector Quantization, VQ)는 고차원 벡터를 코드워드(code word) 또는 중심점(centroid)이라 불리는 제한된 대표 지점 집합에 매핑하여 데이터를 압축한다. VQ는 데이터의 기능을 유지하면서 크기를 최소화하여 더 쉽고 효율적으로 처리 및 저장할 수 있게 한다. 이 방식은 이미지 압축, 오디오 처리, 머신러닝, 근사 최근접 탐색(ANN search)에 이상적이다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/3d1e29f9-0baf-426b-83c7-7ed94a7aaa28/image.png" alt="">
[출처: <a href="https://medium.com/data-science%5D">https://medium.com/data-science]</a></p>
<h4 id="4-적은-가우시안--압축이-어려운-이유">4. “적은 가우시안 + 압축”이 어려운 이유</h4>
<p>하지만 기존 압축 연구들은 여전히 가우시안 개수가 100만 개 이상인 설정을 전제로 하는 경우가 많다.
왜냐하면, 가우시안 수를 극단적으로 줄이면 두 가지 큰 문제가 생기기 때문이다.
    1.각 가우시안이 담당하는 영역이 너무 넓어진다.
    •한 점이 더 많은 공간을 표현해야 하므로
    •속성을 조금만 손실 압축해도 화질이 크게 깨지기 쉽다.
    2.가우시안 사이 간격이 멀어지면서 공간적 근접성(spatial locality)이 깨진다.
    •서로 이웃한 가우시안 사이의 속성이 비슷하다는 가정이 약해진다.
    •그러면 엔트로피를 줄이거나 규칙성을 이용해 압축하기가 어려워진다.</p>
<p>하지만 연산 비용(학습 시간, 렌더링 속도)은 가우시안 개수에 거의 비례한다.
따라서 “속성만 잘 압축하자” 수준을 넘어,
<strong>“가우시안 개수 자체를 최대한 줄이면서도 압축 가능한 구조를 만드는 것”</strong>이 중요해진다.</p>
<p>이 지점에서 OMG가 등장한다.</p>
<h4 id="5-omg의-핵심-아이디어-1-적은-가우시안에도-잘-맞는-속성-표현">5. OMG의 핵심 아이디어 1: 적은 가우시안에도 잘 맞는 속성 표현</h4>
<p>OMG(Optimized Minimal Gaussians)는
<strong>“가우시안 개수를 최대한 줄이면서도 잘 압축되는 표현”</strong>을 목표로 한다.</p>
<p>핵심 아이디어는 다음과 같다.</p>
<h4 id="51-per-gaussian-feature--작은-뉴럴-필드">5.1 per-Gaussian feature + 작은 뉴럴 필드</h4>
<p>가우시안 수를 줄이면 국소적인 연속성은 떨어지지만,
그래도 “가우시안 위치가 비슷하면, 장면 구조도 어느 정도 비슷하다” 는 정보는 남아 있다.</p>
<p>OMG는 이 점을 활용한다.
    1.먼저, 아주 가벼운 뉴럴 필드(neural field) 를 만든다.
입력: 가우시안의 위치
출력: 그 주변을 대표하는 거친(coarse) 공간 특징
파라미터 수가 매우 적어서 전체 모델 크기에 거의 영향을 주지 않는다.
    2.그리고 각 가우시안마다 per-Gaussian feature 벡터를 하나씩 둔다.
    3.최종 속성(색, 불투명도 등)은
“위치 기반 뉴럴 필드에서 나온 공간 특징”과
“per-Gaussian feature”를 합쳐서 표현하도록 설계한다.</p>
<p>이렇게 하면 원래 속성을 직접 다 저장하는 것보다 가우시안당 필요한 파라미터 수가 줄어든다.
즉, 더 컴팩트한 표현이 가능해진다.</p>
<h4 id="6-omg의-핵심-아이디어-2-sub-vector-quantizationsvq">6. OMG의 핵심 아이디어 2: Sub-Vector Quantization(SVQ)</h4>
<p>per-Gaussian feature 자체도 결국은 벡터이기 때문에,
그냥 두면 저장 공간을 또 잡아먹게 된다.</p>
<p>OMG는 이를 위해 Sub-Vector Quantization(SVQ) 를 사용한다.
기존 벡터 양자화(VQ)는
긴 벡터 전체를 하나의 코드워드(codeword)에 매핑한다.벡터 차원이 크면 코드북이 너무 커져서 연산량도 많고, 저장도 부담된다.
잔차 벡터 양자화(RVQ)는 여러 단계의 코드북과 인덱스를 사용하므로 인덱스를 많이 저장해야 해서 또 다른 저장 부담이 생긴다.</p>
<p>SVQ는 다음과 같이 절충한다.
1.하나의 긴 벡터를 여러 개의 서브벡터로 나눈다.
2.각 서브벡터에 대해 별도의 작은 코드북을 사용하여 양자화를 수행한다.</p>
<p>이 방식은 큰 하나의 코드북을 쓰는 것보다 연산 오버헤드가 적고 여러 단계 인덱스를 저장하는 RVQ보다 저장 부담도 줄며 여전히 고정밀 표현을 유지할 수 있다.</p>
<p>즉, <strong>“연산량과 저장량 사이의 밸런스를 잘 맞춘 VQ 방식”</strong>이라고 볼 수 있다.</p>
<h4 id="7-omg의-핵심-아이디어-3-정말-필요한-가우시안만-남기기">7. OMG의 핵심 아이디어 3: 정말 필요한 가우시안만 남기기</h4>
<p>마지막 퍼즐 조각은 “어떤 가우시안만 남길 것인가” 이다.</p>
<p>OMG는 새로운 중요도 척도(importance metric) 를 제안한다. 각 가우시안이 주변 이웃들과 얼마나 다른지(local distinctiveness) 를 평가한다. 이 값이 큰 가우시안은 해당 위치에서 중요한 정보를 가지고 있다고 본다.</p>
<p>이 척도는 기존 연구에서 쓰이던 학습 뷰에서의 블렌딩 가중치 기반 중요도 점수와 함께 사용된다.
이를 통해
장면 품질을 유지하면서도, 진짜로 의미 있는 가우시안만 남기고 나머지는 더 과감히 제거할 수 있다.</p>
<h3 id="method--experiment">Method &amp; Experiment</h3>
<h4 id="1-전체-아이디어-다시-정리">1. 전체 아이디어 다시 정리</h4>
<blockquote>
<p>“가우시안 개수도 줄이고, 각 가우시안이 쓰는 메모리도 줄여서,
저장 용량·연산량 둘 다 줄이자” 이다.</p>
</blockquote>
<h3 id="21-무엇을-그대로-두고-무엇을-바꾸는가">2.1 무엇을 그대로 두고, 무엇을 바꾸는가</h3>
<p>OMG는 geometry와 appearance를 다르게 취급한다. geometry(위치, 스케일, 회전)는 기존 3DGS처럼 가우시안마다 직접 학습한다. 희소한 설정에서는 가우시안 하나가 담당하는 공간이 넓어서, 위치나 모양까지 신경망으로 뭉개 버리면 품질이 많이 깨질 수 있기 때문이다. 반면 appearance(색과 불투명도)는 “per-Gaussian feature + 작은 neural field(MLP)” 구조로 바꾼다.</p>
<h3 id="22-per-gaussian-feature와-위치-기반-neural-field">2.2 per-Gaussian feature와 위치 기반 neural field</h3>
<p>OMG에서는 가우시안마다 두 가지 feature를 둔다. 첫째, 뷰와 상관없는 정적 색·불투명도용 feature $T_n$. 둘째, 뷰 의존적인 색 변화를 표현하는 feature $V_n$. 여기에 위치 $p_n$을 positional encoding한 뒤, 아주 작은 MLP에 넣어 공간 feature $F_n$을 얻는다. 그런 다음 $[T_n, F_n]$을 입력으로 하는 MLP에서 정적 SH 계수와 opacity를 출력하고, $[V_n, F_n]$을 입력으로 하는 다른 MLP에서 view-dependent SH 계수를 출력한다. 요약하면 $T_n, V_n$은 각 가우시안만의 “불규칙한 디테일”, $F_n$은 위치 기반 “연속적인 패턴”을 담당한다. 이 구조 덕분에 가우시안마다 완전한 SH 계수를 직접 저장하지 않아도 되고, 더 짧은 feature + 작은 MLP로 appearance를 표현할 수 있다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/08ef0b35-c2c3-47a2-b8ea-813cd014d8f2/image.png" alt=""></p>
<h3 id="23-sub-vector-quantizationsvq로-feature-압축">2.3 Sub-Vector Quantization(SVQ)로 feature 압축</h3>
<p>그냥 feature를 두면 여전히 메모리가 크다. 그래서 OMG는 Sub-Vector Quantization(SVQ)라는 변형된 벡터 양자화를 사용한다. 기존 VQ는 차원 D짜리 벡터 전체를 하나의 큰 코드북에서 가장 가까운 코드워드로 치환한다. 고품질을 위해 코드북 크기를 키우면 K-means 초기화와 검색이 무거워지고, 메모리도 많이 쓴다. Residual VQ(RVQ)는 여러 단계의 코드북으로 잔차를 순차 보정하지만, 단계마다 인덱스를 저장해야 해서 저장량이 늘어난다. SVQ는 여기서 절충을 한다. feature 벡터 $z \in \mathbb{R}^{ML}$를 길이 $L$짜리 서브벡터 $M$개로 쪼개고, 각 서브벡터 $z^{(m)}$마다 코드북 $C^{(m)} \in \mathbb{R}^{B \times L}$를 따로 둔다. 그다음 각 서브벡터는 자기 코드북 안에서 가장 가까운 코드워드 하나를 고르고, 이렇게 선택된 코드워드들을 이어 붙여 최종 양자화 벡터 $\hat{z}$를 만든다. 이렇게 하면 한 코드북이 처리하는 차원이 작아서 코드북 크기를 과하게 키울 필요가 적고, RVQ처럼 단계 인덱스가 누적되지도 않는다. OMG에서는 geometry 쪽의 스케일 $s_n$, 회전 $r_n$에도 SVQ를 적용하고, appearance 쪽에서는 $T_n$과 $V_n$을 이어 붙인 feature에 SVQ를 적용한 뒤 다시 $\hat{T}_n, \hat{V}_n$으로 분리해서 쓴다. 학습은 끝까지 end-to-end로 돌리지 않고, 마지막 일정 단계에서만 한다는 점도 중요하다. 대략 마지막 $1000$ step 정도를 남겨두고 현재 feature들에 대해 K-means로 코드북과 인덱스를 초기화한 뒤, 이후 구간에서는 인덱스는 고정하고 코드북만 렌더링 loss로 미세 조정한다. 코드북이 작아서 K-means도 금방 끝나고, 마지막 구간만 추가로 도는 구조라 전체 학습 시간 증가가 아주 작다.</p>
<h1 id="3----experiments-성능과-분석">3.    Experiments: 성능과 분석</h1>
<p>실험은 Mip-NeRF 360, Tanks &amp; Temples, Deep Blending 등 대표적인 3DGS 벤치마크에서 진행하며, 3DGS 원본, Mini-Splatting, Scaffold-GS, CompGS, Compact-3DGS, LightGaussian, EAGLES, HAC, LocoGS 같은 기존 압축 기법들과 비교한다. OMG는 중요도 threshold 값만 바꾼 OMG-XS, M, XL 등의 여러 버전으로 평가한다.</p>
<p>결과를 요약하면, OMG는 이전 SOTA와 거의 같은 화질을 유지하면서도 저장 용량을 대략 절반 수준까지 줄인다고 볼 수 있다. 예를 들어 Mip-NeRF 360에서 LocoGS와 비교했을 때, PSNR은 거의 같거나 약간 더 높으면서도, 모델 크기는 기존 방법보다 크게 줄어든다. 다른 데이터셋(Tanks &amp; Temples, Deep Blending)에서도 OMG-M, OMG-L은 가장 작거나 그에 가까운 용량을 가지면서 PSNR, SSIM, LPIPS에서 기존 방법과 비슷하거나 더 좋은 값을 보여준다.
##<img src="https://velog.velcdn.com/images/bbang_jun/post/8f4fb98b-25f8-4326-8680-99a0d45815cc/image.png" alt="">
속도 측면에서도 이득이 크다. 고성능 GPU 기준으로 OMG-XS는 수백 FPS, 최대 600FPS 이상의 렌더링 속도를 달성하면서, LocoGS보다 더 빠른 경우가 많다. 학습 시간도 Mini-Splatting과 비슷한 수준이라, 별도로 큰 학습 비용을 치르지 않고도 압축과 속도 개선을 동시에 얻는 구조라고 볼 수 있다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/718cc289-eb02-4775-b64a-6366f9217210/image.png" alt=""></p>
<p>Ablation 실험에서는 제안한 구성요소들이 실제로 도움이 되는지 확인한다. Local Distinctiveness(LD)를 사용하면 같은 가우시안 수에서 화질이 더 좋아지고, 같은 화질 기준으로 가우시안 수를 더 줄일 수 있다. 위치 기반 공간 feature F_n를 제거하면 PSNR, SSIM, LPIPS가 전반적으로 떨어져, 희소한 가우시안 설정에서 작은 MLP가 연속성을 보완하는 역할을 한다는 점을 보여준다. 또한 SVQ를 일반 VQ나 RVQ로 바꿔보면, 학습 시간과 저장 용량, 화질을 모두 고려했을 때 SVQ가 가장 균형 잡힌 선택이라는 것도 확인한다.</p>
<p>마지막으로, OMG는 특정 구현에만 붙는 트릭이 아니라, 여러 3DGS 변형 위에 “압축 레이어”처럼 얹어서 쓸 수 있는 일반적인 프레임워크라는 점도 보여준다. 예를 들어 densification에 특화된 3DGS-MCMC에 OMG를 적용했을 때, 가우시안 개수는 그대로 유지하면서도 모델 용량을 수십 배 줄이고, 화질은 아주 조금만 감소하는 수준으로 유지할 수 있다.</p>
<h3 id="4----conclusion">4.    Conclusion</h3>
<p>OMG는 3D Gaussian Splatting에서 “가우시안 수를 줄이면 압축이 어려워지고, 압축을 세게 하면 화질이 무너지는” 기존 딜레마를 구조적으로 해결하려는 시도를 한다. 기하 정보는 그대로 per-Gaussian 파라미터로 두고, 색과 불투명도는 per-Gaussian feature와 위치 기반 경량 neural field를 조합해 표현함으로써, 희소한 가우시안 설정에서도 연속성과 세밀한 표현을 동시에 잡으려 한다. 여기에 Sub-Vector Quantization을 적용해 feature를 효율적으로 양자화하고, Local Distinctiveness 기반 중요도 점수로 중복된 가우시안을 정리함으로써, 저장 용량과 연산량을 함께 줄이는 설계를 완성한다.</p>
<p>실험 결과를 보면, OMG는 Mip-NeRF 360을 포함한 여러 데이터셋에서 기존 SOTA와 비슷하거나 더 나은 화질을 유지하면서도 모델 크기를 대략 절반 수준까지 줄이고, 수백 FPS 이상의 실시간 렌더링 속도를 달성한다. 또 3DGS-MCMC처럼 다른 변형에도 자연스럽게 붙일 수 있어, 특정 구현에 종속되지 않는 “범용 압축 모듈”에 가깝다는 점도 확인된다.</p>
<p>정리하면, OMG는 3DGS를 연구하거나 실제 시스템에 적용할 때 “저장 용량 + 실시간성”을 동시에 고민하는 상황에서 유력한 선택지가 되는 방법이라 할 수 있다. 앞으로 내 연구나 프로젝트에서 3DGS 기반 표현을 사용할 때, 단순히 NeRF 대체 재현 성능만 볼 것이 아니라, OMG와 같은 압축 기법을 함께 고려해 전체 시스템 리소스를 어떻게 설계할지까지 같이 고민하는 것이 중요하다고 느끼게 하는 논문이다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Gather-Scatter Mamba: Accelerating Video Super-Resolution]]></title>
            <link>https://velog.io/@bbang_jun/Gather-Scatter-Mamba-Accelerating-Video-Super-Resolution</link>
            <guid>https://velog.io/@bbang_jun/Gather-Scatter-Mamba-Accelerating-Video-Super-Resolution</guid>
            <pubDate>Wed, 12 Nov 2025 03:49:57 GMT</pubDate>
            <description><![CDATA[<h2 id="초록">초록</h2>
<p>상태 공간 모델(State Space Models, SSM)—가장 두드러지게는 RNN—은 역사적으로 순차 모델링에서 중심적인 역할을 수행해 왔습니다. 비록 트랜스포머(Transformers)와 같은 어텐션 메커니즘이 전역적 컨텍스트를 모델링하는 능력 때문에 이후 우위를 점했지만, 그들의 <strong>이차 복잡도(quadratic complexity)</strong>와 제한된 확장성은 긴 시퀀스에는 덜 적합하게 만듭니다. 비디오 초해상도(VSR) 방법들은 전통적으로 프레임 간에 피처를 전파하기 위해 순환(recurrent) 아키텍처에 의존해 왔습니다. 그러나 이러한 접근 방식은 소실되는 기울기(vanishing gradients), 병렬 처리 부족, 느린 추론 속도와 같은 잘 알려진 문제들로 어려움을 겪습니다. Mamba와 같은 선택적 SSM의 최근 발전은 설득력 있는 대안을 제시합니다: 선형 시간 복잡도로 입력 의존적인 상태 전이(input-dependent state transitions)를 가능하게 함으로써, Mamba는 강력한 장거리 모델링 능력을 유지하면서 이러한 문제들을 완화합니다. 이러한 잠재력에도 불구하고, Mamba 단독으로는 그 인과적 특성(causal nature)과 명시적인 컨텍스트 통합의 부족으로 인해 미세한 공간 의존성을 포착하는 데 어려움을 겪습니다. 이러한 문제를 해결하기 위해, 우리는 공간 컨텍스트 통합을 위한 <strong>시프티드 윈도우 자기 주의(shifted window self-attention, SWSA)</strong>와 효율적인 시간적 전파를 위한 Mamba 기반 선택적 스캐닝을 결합한 하이브리드 아키텍처를 제안합니다. 더욱이, 우리는 Mamba 전파 전에 시간적 윈도우 내의 <strong>중앙 앵커 프레임(center anchor frame)</strong>을 향해 피처를 워핑하고, 그 후에 이를 다시 <strong>분산(scatter)</strong>시키는 정렬 인식(alignment-aware) 메커니즘인 <strong>Gather-Scatter Mamba (GSM)</strong>를 소개합니다. 이는 가려짐 아티팩트(occlusion artifacts)를 효과적으로 줄이고 통합된 정보가 모든 프레임에 걸쳐 효과적으로 재분배되도록 보장합니다.</p>
<h2 id="mamba란">MAMBA란?</h2>
<p>Mamba의 메인 : State Space Models
$h′(x)=Ah(t)+Bx(t),y(t)=Ch(t)$
제어이론에서의 상태공간 방정식을 동일하게 사용한다. 다만, 제어이론에서의 상태공간방정식의 경우 연속된 변수를 가정해서 사용하는 방정식인데 딥러닝의 경우 변수가 전부 이산형이기에 이산화를 거쳐야한다. </p>
<p>이상화 방법에는 총 3가지가 크게 사용되는데 오일러, ZOH, 이중선형방식이 있고 MAMBA는 ZOH방식을 사용한다. 
$h_t=\bar{A}h_{t-1}+\bar{B}x_t,y_t=Ch(t), \bar{A}=\exp(\Delta A), \bar{B}=(\Delta A)^{-1}\bigl(\exp(\Delta A)-I\bigr)\cdot\Delta B$</p>
<p>수식은 다음과 같은데 $t$가 커지면 커질수록 B와 C는 고정된 상태에서 A만 계속해서 곱해지는 경향이 발생한다.</p>
<h3 id="특징1-selective-mechanism">특징1. selective mechanism</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/0fa68cf7-2075-4320-8d14-ac22cf66184e/image.png" alt=""></p>
<p>Mamba논문에서는 기존 SSM들은 과도하게 모든 토큰들을 계산하는 방식을 취하고 있기에 비효율적이라고 한다. 그래서 Mamba는 Delta값으로 제어할 수 있는 반경을 좁히는 방식을 선택했다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/59230671-4e8e-433b-a426-53701765e560/image.png" alt="">
Mamba는 S6방법론을 채택했다. 기존 있던 S4 -&gt; 즉 SSM과 차이점은 파라미터로 존재했던 B,C를 x에 대한 output feature가 N인 선형함수로 치환한다. </p>
<p>GSM 구조 한눈에 보기</p>
<p>이 논문에서 제안하는 GSM(Gather-Scatter Mamba)는 <strong>비디오 초해상도(VSR)</strong>에 Mamba를 제대로 쓰기 위한 아키텍처라 한다. 저자들은 단순히 “기존 RNN을 Mamba로 바꿔 끼우는 것”이 아니라, Mamba의 특성을 고려한 공간·시간 분리 구조 + 정렬(align) 인지 메커니즘을 함께 설계한다. 전체 파이프라인은 대략 다음과 같이 구성된다.</p>
<p>먼저 입력 저해상도 비디오 $I^{LR}_t$에 대해, 한 프레임 단위로 <strong>시프티드 윈도우 자기주의(SWSA)</strong>를 적용해 공간(Spatial) 디테일을 보정한다. Swin Transformer처럼 윈도우를 기준으로 자기주의를 수행하되, 한 번은 원래 윈도우, 한 번은 shift된 윈도우를 사용해 로컬 컨텍스트를 잘 모으는 구조다. 여기까지는 프레임별 2D 처리 단계라 한다.</p>
<p>그 다음 단계가 이 논문의 핵심인 <strong>Window Propagation Module(WPM)</strong>이다. WPM은 일정 길이 $K$의 시간 윈도우(예: 과거 2프레임, 현재 프레임, 미래 2프레임)를 잡고, 이 안에서 GSM 블록을 사용해 <strong>시간 방향 전파(Temporal propagation)</strong>를 수행한다. GSM 블록 내부에서는
    1.    Gather 단계에서 이웃 프레임들을 앵커 프레임(중앙 프레임)으로 optical flow로 워핑해 정렬시키고,
    2.    정렬된 피처들을 시간축 우선 순서로 펼쳐서(temporal-first flatten) Mamba(SS2D)를 통과시킨 뒤,
    3.    Scatter 단계에서 Mamba 출력으로 얻은 residual을 각 프레임 위치로 다시 워핑해 되돌려준다.</p>
<p>이 과정을 윈도우를 슬라이딩시키며 앞 방향, 뒤 방향 두 번 반복해서 전체 시퀀스에 대해 양방향 전파를 수행한다. 위에서 공간 복원(SWSA)을 한 뒤, WPM을 통해 시간 정보를 모으고 퍼뜨리는 구조라서, “공간은 attention, 시간은 Mamba” 식의 역할 분담이 명확하게 이루어진다고 볼 수 있다.</p>
<h3 id="gather-scatter의-핵심-아이디어">Gather-Scatter의 핵심 아이디어</h3>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/daba0875-c92d-4859-87e3-bdcd2ba50b26/image.png" alt=""></p>
<p>기존 VSR 모델들은 대부분 “한 프레임을 기준(anchor)으로 과거 프레임들을 워핑해서 가져오고, 그 기준 프레임만 업데이트하는 방식”을 많이 사용한다. 이 논문에서는 이를 forward-anchored propagation이라고 부르고, 이에 비해 center-anchored + scatter 방식이 더 유리하다고 주장한다.</p>
<p>먼저 forward-anchored 방식에서는 윈도우의 끝 프레임을 앵커로 잡고, 그 이전 프레임들을 모두 그쪽으로 워핑한다. 이때 먼 과거 프레임일수록 모션 경로가 길어지고, occlusion이 많이 발생하여 정렬이 틀어지기 쉽다. 그리고 정렬된 피처들은 “현재 앵커 프레임만” 업데이트하는 데 쓰이고, 나머지 지원 프레임(supporting frames)은 버려진다. 계산해 놓은 피처를 제대로 재활용하지 못한다는 뜻이다.</p>
<p>GSM은 이를 <strong>중앙 앵커(center anchor)</strong>와 scatter 단계로 해결한다. Gather 단계에서는 윈도우 가운데 프레임을 앵커로 두고, 양옆의 과거·미래 프레임들을 모두 중앙으로 워핑한다. 이렇게 하면 각 프레임이 앵커까지 이동하는 경로가 짧아져서 occlusion과 워핑 오차가 줄어든다. 이 상태에서 Mamba로 시간축을 스캔하여 긴 범위의 시간 정보를 모은 뒤, Scatter 단계에서는 그 결과 residual을 다시 각 프레임 위치로 역워핑해서 되돌린다.</p>
<p>즉, “모든 프레임 → 앵커로 모으기(Gather) → Mamba로 처리 → 다시 각 프레임으로 흩뿌리기(Scatter)” 흐름을 통해 윈도우 안에 있는 모든 프레임을 동시에 향상시키는 구조를 만든다. 이 덕분에
    1.    각 프레임이 미래·과거 정보를 대칭적으로 공유할 수 있고,
    2.    한 번 계산한 피처가 여러 번 재사용되며,
    3.    Mamba의 1D 시퀀스 스캔이 “정렬된 상태”에서 진행되기 때문에 공간 misalignment에 덜 취약해진다.</p>
<h3 id="gsm-이론-메소드-정리">GSM 이론 메소드 정리</h3>
<p>위에서 전체 구조를 개념적으로 봤으니, 이제 GSM이 내부에서 어떤 수식/연산 흐름을 갖는지 간단히 정리해보면 다음과 같다.</p>
<p>먼저 backbone(인코더)을 통과한 저해상도 피처를 $F_t \in \mathbb{R}^{H\times W \times C}$라고 두고, 시간 윈도우 길이를 $K$라고 하면 윈도우는
$\mathcal{W} = {t - K, \dots, t, \dots, t + K}$
와 같이 정의된다. 여기서 가운데 프레임 $t$가 center anchor 역할을 한다.</p>
<h4 id="1단계-gather-정렬--시퀀스화">1단계: Gather (정렬 + 시퀀스화)</h4>
<p>각 프레임 $i \in \mathcal{W}$에 대해, optical flow $u_{i \rightarrow t}$를 이용해 피처를 앵커 프레임으로 워핑한다.
\tilde{F}{i \rightarrow t}(x) = F_i(x + u{i \rightarrow t}(x))
여기서 x는 공간 좌표이고, flow를 통해 “프레임 i에서 앵커 프레임 t로” 픽셀 위치를 맞춰준다. 이렇게 하면 윈도우 안의 모든 프레임이 공간적으로 정렬된 기준 좌표계(앵커 좌표) 위로 모이는 효과가 생긴다.</p>
<p>그 다음, 정렬된 피처들을 시간축 우선으로 펼쳐서 시퀀스를 만든다.
$Z = \bigl[z_{(t-K)}, \dots, z_{(t)}, \dots, z_{(t+K)}\bigr]$
여기서 각 $z_{(i)}$는 $\tilde{F}_{i \rightarrow t}$를 공간 차원$(H\times W)$에서 flatten한 벡터라고 보면 된다. 논문에서는 이때 temporal-first scanning을 쓴다. 즉, (시간 → 공간) 순서로 토큰을 나열해서 “같은 공간 위치의 여러 프레임 정보”가 Mamba가 보기에 연속적으로 오도록 만든다.</p>
<h4 id="2단계-mamba-기반-선택적-스캔">2단계: Mamba 기반 선택적 스캔</h4>
<p>이렇게 얻은 시퀀스 Z는 Mamba(SS2D) 블록으로 들어간다. 내부적으로는
$h_{n} = \bar{A}n h{n-1} + \bar{B}_n z_n,\quad y_n = C_n h_n$
형태의 상태공간 갱신을 수행한다. 여기서 $\bar{A}_n, \bar{B}_n, C_n$은 앞에서 설명한 것처럼 입력 $z_n$에 따라 달라지는 선택적(selective) 파라미터이다. 이 덕분에, 어떤 시간 위치/공간 위치의 토큰은 더 강하게, 어떤 토큰은 약하게 상태에 반영되도록 조절할 수 있다.</p>
<p>이 과정을 거치면, 중심 프레임 기준으로 모인 윈도우 내 정보가 Mamba를 통해 장거리(과거·미래)까지 섞인 상태의 출력 시퀀스 $\hat{Z}$로 바뀐다. 이걸 다시 공간 차원으로 reshape하면 앵커 좌표계에서의 강화된 피처 $\hat{F}^{(t)}_{\text{anchor}}$를 얻는다.</p>
<h4 id="3단계-scatter-다시-각-프레임으로-분산">3단계: Scatter (다시 각 프레임으로 분산)</h4>
<p>이제 이 정보를 각 프레임으로 되돌려줘야 한다. 이를 위해, Gather 때 썼던 optical flow의 반대 방향 $u_{t \rightarrow i}$를 사용해 Mamba 출력의 residual을 각 프레임 위치로 warp한다.
$\hat{F}i(x) = F_i(x) + \text{Warp}\bigl(\hat{F}^{(t)}{\text{anchor}}$, $u_{t \rightarrow i}\bigr)$
이 식은 “원래 프레임 피처 + 앵커에서 모은 정보를 역워핑해서 더해준 residual” 구조로 이해하면 된다. 이렇게 하면 윈도우 안 모든 프레임이 한 번 모였다가(aggregate), 다시 흩어지는(redistribute) 과정에서 서로의 정보를 공유하게 되고, occlusion이 있던 영역도 다른 프레임 정보로 보완할 수 있게 된다.</p>
<p>실제 네트워크에서는 이 GSM 블록을 앞 방향(시간 증가) 스캔, 뒤 방향(시간 감소) 스캔 두 번 적용해서,
    forward GSM에서 얻은 피처,
    backward GSM에서 얻은 피처
를 concat하거나 더해서 최종 시간 피처로 사용한다. 이렇게 하면 RNN에서 흔히 쓰던 양방향(bi-directional) 구조처럼 과거·미래 컨텍스트를 동시에 활용하는 효과를 얻게 된다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/241a88f4-a218-4974-8aff-c533bfeb1afc/image.png" alt=""></p>
<h3 id="실험-결과">실험 결과</h3>
<p>실험은 REDS, Vimeo-90K, Vid4 세 가지 대표 VSR 벤치마크에서 진행한다. REDS와 Vimeo-90K로 학습을 진행하고, REDS4, Vimeo-90K-T, Vid4에 대해 정량·정성 평가를 수행한다. 비교 대상은 TOFlow, EDVR 같은 전통적인 VSR부터 BasicVSR, BasicVSR++, VRT, RVRT, IART 같은 최신 강력한 방법까지 폭넓게 포함한다.</p>
<p>정량 결과를 보면, GSM은 Vimeo-90K-T에서 SOTA 혹은 그에 준하는 최고 수준의 PSNR, SSIM을 기록하고, REDS4와 Vid4에서도 기존 강력한 방법들과 비슷한 범위의 성능을 낸다. 특히 흥미로운 점은, GSM이 파라미터 수와 FLOPs 면에서 RVRT, IART 같은 Transformer 기반 모델들보다 더 가볍거나 비슷한 수준인데도, 성능은 거의 뒤처지지 않거나 일부 데이터셋에서 더 좋게 나온다는 점이다. 즉 “Transformer만이 고성능 VSR을 할 수 있는 것은 아니다”라는 메시지를 실험으로 보여준다고 볼 수 있다.</p>
<p>모델 효율성 측면에서도 GSM은 장점을 가진다. 저자들은 RTX 3090 기준으로 실행 시간을 측정했는데, GSM이 비슷한 성능의 VRT, IART에 비해 적은 파라미터와 FLOPs로 더 짧은 추론 시간을 달성함을 보고한다. 이는 Mamba의 선형 시간 복잡도와 window 기반 설계 덕분에 긴 시퀀스를 다루면서도 연산량을 일정 수준 이하로 유지할 수 있음을 보여준다.</p>
<p>Ablation 실험에서는 세 가지 포인트를 확인한다. 첫째, Mamba를 쓸 때 temporal-first scanning이 spatial-first나 3D Hilbert 스캔보다 VSR에서 더 잘 작동한다는 것을 보인다. 단, 이 경우 반드시 Gather로 정렬을 먼저 해줘야 Mamba가 오동작하지 않는다. 둘째, Scatter를 끄고 anchor 프레임만 업데이트하는 설정과 비교했을 때, Scatter를 켜면 PSNR, SSIM이 추가로 올라가며, 윈도우 안 모든 프레임을 같이 업데이트하는 것이 temporal consistency에 도움이 된다는 점이 확인된다. 셋째, 앵커를 forward(미래 끝 프레임) 대신 center에 놓는 것이 occlusion 감소와 워핑 오차 감소 측면에서 유리하며, 실제로 center-anchored 설정이 항상 더 높은 성능을 낸다는 것도 실험으로 보여준다.
<img src="https://velog.velcdn.com/images/bbang_jun/post/3537fbbc-1ab8-4363-9663-4b2c74b632c9/image.png" alt=""></p>
<h3 id="결론-및-코멘트">결론 및 코멘트</h3>
<p>이 논문은 “비디오 초해상도에서 RNN 대신 Mamba를 쓰면 어떻게 설계해야 하는가”라는 질문에 대해 꽤 명확한 답안을 제시한다고 볼 수 있다. 단순히 SSM 블록을 하나 끼워 넣는 것이 아니라, </p>
<p>1) 공간 정보는 shifted window self-attention으로 맡기고, 
2) 시간 정보는 Mamba를 중심으로 한 Gather-Scatter 구조로 설계하며, 
3) 앵커 위치와 윈도우 설계를 세심하게 튜닝함으로써 기존 Transformer 기반 VSR과 경쟁 가능한 수준의 성능과 효율을 동시에 달성한다.</p>
<p>학부생 입장에서 이 논문을 읽으면서 느끼는 포인트는 두 가지 정도로 정리된다. </p>
<p>첫째, Mamba 같은 SSM 계열 모델을 비전 문제에 쓸 때는 “어디에 붙일 것인가”보다 “어떤 순서로 토큰을 스캔하고, 어떤 정렬 정보를 제공할 것인가”가 훨씬 중요하다는 점이다. 
둘째, 비디오 복원 문제에서는 한 프레임만 잘 복원하는 것보다, 여러 프레임을 창(window) 단위로 함께 업데이트하고, 계산한 피처를 최대한 재사용하는 설계가 성능과 효율 모두에서 유리하다는 점이다.</p>
<p>나중에 Mamba 계열 모델을 다른 시퀀스 비전 문제(예: 비디오 디노이징, 3DGS 시간 전파, 영상 기반 3D 재구성 등)에 적용해 보고 싶다면, 이 논문에서 제안하는 Gather-Scatter + center-anchored 윈도우 + temporal-first 스캔 패턴을 기본 템플릿으로 삼고, 도메인에 맞게 alignment 모듈이나 윈도우 크기만 조절해보는 접근이 꽤 실용적인 출발점이 될 것이라 생각한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[A Ka-Band Beam-Steering Radar Transmitter
Using Active Multiplier and Coupled
Delay Line Phase Shifter]]></title>
            <link>https://velog.io/@bbang_jun/A-Ka-Band-Beam-Steering-Radar-TransmitterUsing-Active-Multiplier-and-CoupledDelay-Line-Phase-Shifter</link>
            <guid>https://velog.io/@bbang_jun/A-Ka-Band-Beam-Steering-Radar-TransmitterUsing-Active-Multiplier-and-CoupledDelay-Line-Phase-Shifter</guid>
            <pubDate>Sun, 12 Oct 2025 00:55:23 GMT</pubDate>
            <description><![CDATA[<h2 id="i-abstract">I. Abstract</h2>
<p>본 논문은 결합형 바랙터 부하 전송선(VLTL, Varactor-Loaded Transmission Line) 위상천이기와 <strong>주파수 배수기(frequency multiplier)</strong>가 통합된 CMOS 송신 칩을 활용한 Ka-대역 빔 조향(beam-steering) 송신기를 제안한다.</p>
<p>단일 VLTL을 따라 배치된 단결합(short-coupled) 라인 커플러들은 다중 위상 출력을 제공하면서, 전송선 전체에서의 임피던스 불일치 및 전력 불균형 문제를 최소화한다.
VLTL은 전송선 길이에 따라 누적되는 위상 변화 특성을 지니므로, 각 채널마다 개별 위상천이기를 사용하는 기존 구조에서 요구되던 넓은 위상 제어 범위의 부담을 줄일 수 있다.</p>
<p>또한, <strong>8배 주파수 배수기(×8 multiplier)</strong>를 통해 기준 주파수(reference frequency)에서 필요한 위상 변화량을 줄임으로써, 바랙터의 조정 범위가 감소하고, 결과적으로 <strong>전송선의 특성 임피던스 변화가 최소화되어 임피던스 정합(impedance matching)</strong>이 유지된다.</p>
<p>이를 바탕으로 약 4 GHz의 낮은 기준 주파수에서 동작하는 단일 VLTL 위상천이기를 사용해, 32 GHz 위상 배열(phased-array) 송신기를 구현하였다.</p>
<p>제작된 1×4 위상 배열 송신기는 단일 제어 전압(single control voltage)만으로 E-평면에서 ±20°의 연속 빔 조향 범위를 달성하였다.
모든 조향 각도에서 <strong>사이드로브 레벨(sidelobe level)</strong>은 -10 dB 이하,
<strong>유효 등방성 복사 전력(EIRP)</strong>은 31.6 GHz에서 38.1 dBm,
3 dB 대역폭은 2.4 GHz로 측정되었다.</p>
<p>주요 용어: 위상 배열(phased-array), VLTL, 빔 스티어링, 커플러, 위상천이기, 송신기, 빔포밍, 부하 전송선, 유효 등방성 복사 전력(EIRP)</p>
<h2 id="주요-용어-이론-정리">주요 용어 이론 정리</h2>
<h3 id="1-위상-배열-phased-array">1. 위상 배열 (Phased-Array)</h3>
<p>여러 개의 안테나를 일렬 또는 평면 배열로 배치하고,
각 안테나에 서로 다른 위상(phase)을 주입하여
한쪽 방향으로 신호가 보강 간섭(constructive interference) 되도록 만든 시스템.
$\Delta \phi = \frac{2\pi}{\lambda} , d , \sin{\theta}$
    •    $\Delta \phi$: 인접 안테나 간 위상차
    •    $\lambda$: 파장
    •    d: 안테나 간 거리</p>
<p>예시:
d = $0.5\lambda, ; \theta = 30° →
\Delta\phi = 90°$</p>
<h3 id="2-빔포밍-beamforming">2. 빔포밍 (Beamforming)</h3>
<p>신호의 위상과 <strong>세기(Amplitude)</strong>를 조절하여
원하는 방향의 신호는 강화하고,
불필요한 방향의 신호는 억제하는 기술입니다.</p>
<p>$
y(t) = \sum_{n=1}^{N} w_n , x_n(t)
$
    •    $y(t)$ : 빔포밍 결과 신호
    •    $x_n(t)$ : $n$번째 안테나의 입력
    •    $w_n = a_n e^{j\phi_n}$ : 세기 $a_n$, 위상 $\phi_n$을 갖는 복소 가중치</p>
<p>→ $w_n$의 위상을 바꾸면 빔의 방향이 전자적으로 이동합니다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/72a9c4ca-e93c-4d42-9391-547f1909ded0/image.png" alt=""></p>
<h3 id="3-빔-스티어링-beam-steering">3. 빔 스티어링 (Beam Steering)</h3>
<p>위상 배열의 핵심 기능으로,
각 안테나에 주는 위상차를 바꿔 빔 방향을 전자적으로 이동시키는 동작입니다.</p>
<p>$$
\theta = \sin^{-1}!\left( \frac{\lambda , \Delta\phi}{2\pi d} \right)
$$</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/e7b8ef66-975a-4a61-aa11-c1834081e54c/image.png" alt=""></p>
<h3 id="4-위상천이기-phase-shifter">4. 위상천이기 (Phase Shifter)</h3>
<p>RF 신호의 위상만 변경하는 회로입니다.
보통 아래 세 가지 방식으로 구현합니다.
    •    바랙터 다이오드 (정전용량 가변)
    •    PIN 다이오드 (스위칭)
    •    FET 기반 가변 소자 (아날로그 제어)</p>
<pre><code>*자세한 공부 내용 
([위상천이기 기본](http://www.ktword.co.kr/test/view/view.php?no=3123)</code></pre><h3 id="5-vltl-varactor-loaded-transmission-line">5. VLTL (Varactor-Loaded Transmission Line)</h3>
<p>전송선(Transmission line)에 바랙터 다이오드를 주기적으로 연결해
전압에 따라 유효 위상 지연량을 조절하는 구조입니다.</p>
<p>$
\beta_{\text{eff}} = \beta_0 + k , \Delta C(V_c)
$
    •    $\beta_{\text{eff}}$: 유효 위상 상수
    •    $\beta_0$: 기준 위상 상수
    •    $\Delta C(V_c)$: 제어 전압에 따른 정전용량 변화
    •    $k$: 구조 상수</p>
<p>즉, 전압을 바꾸면 선로의 위상이 변하고 빔이 이동합니다.</p>
<p><img src="https://velog.velcdn.com/images/bbang_jun/post/f9cd6f0f-f91f-4306-a2f6-1ceb29f06e78/image.png" alt=""></p>
<h3 id="6-커플러-directional-coupler">6. 커플러 (Directional Coupler)</h3>
<p>입력 신호의 일부를 원하는 포트로 결합(couple)해 주는 4포트 회로입니다.
전력 분배·측정·다중 위상 생성에 사용됩니다.</p>
<p>$
S_{31} = \sqrt{C}, \quad S_{21} = \sqrt{1 - C}
$
    •    $C$: 결합 계수 (예: 3 dB 커플러 → 절반 전력 분배)</p>
<h3 id="7-부하-전송선-loaded-transmission-line">7. 부하 전송선 (Loaded Transmission Line)</h3>
<p>전송선에 L, C 소자를 주기적으로 부착해
임피던스와 위상 속도를 제어하는 구조입니다.</p>
<p>$
Z_{\text{eq}} = \sqrt{\frac{L_{\text{eq}}}{C_{\text{eq}}}}, \qquad
\beta_{\text{eq}} = \omega \sqrt{L_{\text{eq}} C_{\text{eq}}}
$
    •    $L_{\text{eq}}, C_{\text{eq}}$: 부하 후 등가 인덕턴스/정전용량
    •    $\beta_{\text{eq}}$: 위상 상수 (이 값이 바뀌면 위상이 변함)</p>
<h3 id="8-eirp-effective-isotropic-radiated-power">8. EIRP (Effective Isotropic Radiated Power)</h3>
<p>송신기의 출력 전력과 안테나 이득을 합친 실질 방사 세기입니다.
즉, “이 송신기가 등방성 안테나라면 몇 dBm을 내야 같은 세기가 될까?”를 뜻합니다.</p>
<p>$
\text{EIRP(dBm)} = P_{\text{out(dBm)}} + G_{\text{ant(dBi)}} - L_{\text{loss(dB)}}
$</p>
<p>예시:</p>
<p>$
P_{\text{out}} = 20,\text{dBm}, \quad
G_{\text{ant}} = 18,\text{dBi}, \quad
L = 1,\text{dB}
$</p>
<p>$
\Rightarrow \text{EIRP} = 20 + 18 - 1 = 37,\text{dBm}
$</p>
<h2 id="ii-electrically-steerable-ka-band-phased-array-transmitter">II. ELECTRICALLY STEERABLE KA-BAND PHASED ARRAY TRANSMITTER</h2>
<h3 id="설계과정">설계과정</h3>
<h3 id="1-시스템-개요-저주파-위상-제어--×8-배수기--vltl">1) 시스템 개요: “저주파 위상 제어 + ×8 배수기 + VLTL”</h3>
<p>4 GHz 기준 입력 → VLTL(바랙터 부하 전송선) 위상천이기에서 4개의 누적 위상 출력을 ‘결합’ 방식으로 추출 → 각 채널이 CMOS 송신칩(내부에 ×8 주파수 배수기 + Ka-대역 PA 탑재)을 구동 → 최종 32 GHz 방사. 이로써 낮은 기준 주파수에서 위상 제어를 하고, 배수기가 최종 Ka-대역을 만들어냅니다.  </p>
<p>왜 배수기(×8)? 위상 배열에서 목표 조향각 $\theta$ 를 만들려면 인접 안테나 간 위상차 $\phi_\text{ant}$가 필요합니다
(식 (1)). 이 위상차를 <strong>기준 주파수(4 GHz)</strong>에서 만들어두면, 배수비 m 만큼 <strong>필요 제어량이 $\tfrac{1}{m}$</strong>로 줄어듭니다(식 (2)). 즉, 바랙터 정전용량 변화폭을 줄이고, 선로 불연속과 정합 악화를 완화합니다.  </p>
<p>$\displaystyle \phi_\text{ant}=2n\pi+\frac{2\pi}{\lambda},d\sin\theta$ (식 (1)) — 인접 요소 간 필요 위상차
$\displaystyle \phi_\text{ps}=\frac{1}{m}\left[,2n\pi+\frac{2\pi}{\lambda},d\sin\theta,\right]$ (식 (2)) — 기준 주파수에서 필요한 VLTL의 위상 변화량</p>
<h3 id="2-핵심-부품-결합형-vltl-위상천이기의-설계-논리">2) 핵심 부품: “결합형 VLTL 위상천이기”의 설계 논리</h3>
<h4 id="2-1-단위-구간unit-section과-결합coupling">2-1. 단위 구간(unit section)과 결합(coupling)</h4>
<p>하나의 VLTL로부터 여러 위상을 뽑아야 하기에, 약결합(short-coupled) 라인 커플러로 각 구간에서 위상을 <strong>“샘플링”</strong>합니다.
기준 주파수에서 <strong>주기 180°의 부하(바랙터)</strong>를 주면 균등 전력 분배가 체계적으로 담보되어 입력 정합/분배 문제를 줄일 수 있습니다. 그래서 VLTL의 단위 구간 길이를 기준 주파수에서 λ/2로 잡고, 이 단위 구간은 <strong>두 개의 T-section(각 90° 등가 전기길이)</strong>을 캐스케이드로 구현합니다.  </p>
<h4 id="2-2-바랙터-옵셋-c_0-와-물리-길이-보정">2-2. 바랙터 옵셋 C_0 와 물리 길이 보정</h4>
<p>바랙터는 $C_0$를 중심으로 $C_0\pm\Delta C$로 가변됩니다. 보어사이트(정면) 지향 시 $C_0$로 인해 T-section의 물리 길이는 $\lambda/4-\Delta\ell$로 줄여야 등가 전기길이 90°가 맞춰집니다(식 (4)). 이후 ABCD 매트릭스 비교로 $\Delta\ell·선로 임피던스 Z_e·유효 위상변화 \Delta\theta_e$를 구합니다(식 (5)–(10)).  </p>
<h4 id="2-3-수치-선택설계-치과-의미">2-3. 수치 선택(설계 치)과 의미</h4>
<p>상용 바랙터 MACOM MAVR-000120(≈140–920 fF)을 사용. 반복 계산 후 $C_0$=280 fF로 채택. 이때 단위 T-section 감소각 $\Delta\theta=9.98°$
목표 조향각 ±20°, 요소 간격 $d=0.7\lambda$ 조건에서, 기준 주파수에서 단위 구간의 총 위상은 169°–191°가 되어야 함(식 (3) 해석). 이를 달성하려면 단위 T-section 유효 위상 변화 \Delta\theta_e=5.5°, 해당에 필요한 정전용량 변화 $\Delta C=141.3 fF$
이때 계산된 선로 임피던스 $Z_e≈ 45.8 Ω(138.7 fF)$, $38.5 Ω(421.3 fF)$ → 반사손실 17 dB 이상 확보. 해석과 EM 시뮬이 잘 맞음(169°/191° 포인트 재현).  ￼</p>
<h3 id="3-프로토타입-vltl-측정-필요-위상·정합·주파수-의존성">3) 프로토타입 VLTL 측정: “필요 위상·정합·주파수 의존성”</h3>
<p>위상 조절 범위(Fig. 4(a)): V_c=2\to12 V에서 단위 섹션 평균 위상 변화 37.7°, 조향에 필요한 169°–191° 차이를 V_c≈3.4\to12 V에서 달성. 바랙터 추정치는 ≈175–430 fF, 해석치와 근접. 칩 로딩 무시 가정이 타당함을 시사.
S-파라미터(Fig. 4(b)): 입력 반사손실 11.5–22.3 dB, 삽입손실 19.4–22.5 dB(4 포트 전체 경로 기준). 채널 간 삽입 손실 불일치는 유한한 반사손실/선로 감쇠에서 기인 → 커플러 결합비 최적화로 개선 여지. 본 모듈에서는 칩 내 인버터 버퍼의 충분한 이득이 ×8 배수기 입력 레일-투-레일 스윙을 보장해, 채널 간 구동 편차를 보정.
주파수 의존성(Fig. 4(c)): 기준 4 GHz 주변에서 주파수가 올라갈수록 위상 제어 범위 증가. 예) 3.75 GHz→평균 33.8°, 4.25 GHz→44.5°. (기준선로의 위상상수 증가로 자연스러운 결과)</p>
<h3 id="4-cmos-송신-칩-아키텍처-4상-생성-→-×8-→-pa">4) CMOS 송신 칩 아키텍처: “4상 생성 → ×8 → PA”</h3>
<p>공정/구성: 28-nm CMOS SOI, 블록은 4상(Quadrature) 발생기 + ×8 배수기 + Ka-대역 PA. 32 GHz 출력을 위해 입력은 약 4 GHz 단일종단. 트랜스포머 발룬 + RC 폴리페이즈로 4상을 만들고, 인버터 버퍼 체인으로 손실을 보상·레일-투-레일 스윙 확보 → 저주파에서 매칭망 면적 부담 없이 ×8을 구동.
×8 배수기: 1단 <strong>쿼드러플러(4상 전류 결합 + 푸시-푸시)</strong>로 4고조파를 단일 트랜스포머 부하에서 전압으로 변환 → 2단 푸시-푸시 더블러로 ×8 완성. 인버터-트랜스포머 공진으로 고조파 추출을 돕고, 매칭 없이 다음 단계 구동(대역폭 제한으로 고차 고조파 억제). 
PA: 2단(드라이버 차동 CS + 파워 차동 캐스코드), 전단/후단 모두 트랜스포머 매칭, 모든 스테이지에 크로스-커플드 중화 커패시턴스로 안정도/이득 개선. 다이 1.26 mm × 0.44 mm. 칩 측정: 입력 3 dBm 기준, 32–32.8 GHz에서 17.5–18.2 dBm 출력, 28.8–35.2 GHz에서 편차 1.5 dB(광대역).</p>
<p>고조파 억제: 시뮬 최소 29.6 dBc, 실측 최소 23.2 dBc(입력 주파수 스윕 전체), 4 GHz 지점에서 36 dBc. (배수기 누설·스퓨리어스를 충분히 억제)  ￼</p>
<p>⸻</p>
<h3 id="5-안테나모듈-통합-rtduroid--fr-4-적층-d07λ-간격">5) 안테나/모듈 통합: “RT/Duroid + FR-4 적층, d=0.7λ 간격”</h3>
<p>적층 구조: 위에는 RT/Duroid 패치 배열, 아래 4-레이어 FR-4에 VLTL/드라이버/전압증폭/DC 바이어서 구현. 에폭시로 접합, FR-4에 에어 캐비티를 파서 칩을 노출 GND면 위에 탑재. GCPW 50 Ω 라인으로 VLTL→칩 입력을 와이어 본딩으로 연결. 요소 간 간격 d=0.7\lambda. 
패치 배열(1×4 수직): 각 요소는 90°로 꺾인 마이크로스트립 급전, 임피던스 매칭용 오픈 스터브는 상호 결합 저감을 위해 45°로 꺾음. 칩→안테나 전송은 와이어 본딩→비아→마이크로스트립으로 이어지는 Ka-대역 전이 네트워크를 설계. </p>
<h2 id="iii-phased-array-transmitter-module-measurement-results">III. PHASED ARRAY TRANSMITTER MODULE MEASUREMENT RESULTS</h2>
<h3 id="1-측정-셋업과-모듈-개요">1) 측정 셋업과 모듈 개요</h3>
<p>모듈은 <strong>FR-4(하부: 위상천이기/구동/바이어스)</strong>와 <strong>RT/Duroid(상부: 패치 안테나)</strong>를 적층해 제작했으며, 사진은 Fig. 14에 제시됩니다. 빔 패턴 측정 셋업은 Fig. 15로, 4 m 거리에서 23 dBi 혼(horn) 안테나를 사용했습니다.</p>
<h3 id="2-방사-패턴32-ghz-측정-결과">2) 방사 패턴(32 GHz) 측정 결과</h3>
<p>정규화 빔 패턴(E/H-plane): 32 GHz에서 E-plane 3 dB 빔폭 17°, H-plane 56°를 달성했습니다. 모든 스캔 각도에서 사이드로브 ≤ −13.5 dB, <strong>E-plane의 peak-to-null ≥ 22 dB(0°에서)</strong>로 보고됩니다. (Fig. 16a)  ￼
해석:
E-plane 17°는 1×4 직렬 배열의 이론적 지향성과 합치되는 합리적 수치로, 수직(배열 방향) 분해능이 준수합니다.
사이드로브 −13.5 dB는 전형적인 소형 선형 배열 수준에서 무난하며, 0°에서 22 dB의 peak-to-null은 주엽 대비 억제가 충분함을 시사합니다.</p>
<h3 id="3-eirp-및-대역폭">3) EIRP 및 대역폭</h3>
<p>EIRP(f) 측정: 칩 출력이 포화 상태일 때, 31.6 GHz에서 피크 EIRP 38.1 dBm을 달성했고, <strong>3 dB EIRP 대역폭은 30–32.4 GHz(= 2.4 GHz)</strong>입니다. (Fig. 16b)
해석:
38.1 dBm(약 6.5 W EIRP)은 1×4 소형 모듈로서 실용적인 송신 등가 방사 전력을 보인다는 의미입니다.
2.4 GHz의 광대역 EIRP 평탄도는 칩 단계(×8 배수기+PA)와 안테나/급전 통합품질이 균형 있게 설계되었음을 뒷받침합니다.</p>
<h3 id="4-전기적-빔-스티어링조향-성능">4) 전기적 빔 스티어링(조향) 성능</h3>
<p>E-plane 조향(32 GHz): <strong>VDAC 0.65 V(Vc≈3.71 V)</strong>에서 −20°, <strong>VDAC 2.5 V(Vc≈14.3 V)</strong>에서 +20° 조향을 달성해, 연속 조향 범위 ±20°를 입증했습니다. (Fig. 16c)<br>해석(설계와의 연결):
-앞서 VLTL-커플러 구조와 ×8 배수기를 결합해 기준 주파수에서의 요구 위상 제어량을 축소(식 (2) 효과)했고, 그 결과 단일 제어 전압으로도 4채널에 필요한 다위상을 안정적으로 제공할 수 있음을 실측이 확인합니다.
-II장에서 보였던 <strong>채널 간 삽입손실 불일치(최대 2.1 dB)</strong>가 사이드로브에 유의미한 악영향을 주지 않는다는 시뮬레이션 결과도 있었습니다(보정 불필요 수준).  ￼</p>
<h3 id="5-성능-맥락화타-연구와-비교되는-포지셔닝">5) 성능 맥락화(타 연구와 비교되는 포지셔닝)</h3>
<p>본 논문은 별도의 표(Table 1)로 동향을 정리하며, 더 넓은 조향각을 보인 사례들도 있지만 채널별 개별 위상천이기 구성으로 제어 복잡도가 커지는 경향을 짚습니다. 제안 구조는 단일 VLTL의 누적 위상과 온칩 ×8 배수기를 활용해 필요 제어 범위를 대폭 축소(±20° 구현에 기준주파수에서 ≈21.5°급)했고, 이 접근을 ±60°까지 일반화할 때도 VLTL 단위 위상 제어 범위가 ≈54.5°면 충분하다는 점을 강조합니다. </p>
<p>해석:
대규모 배열로 확장할수록 제어 선로 수/보정 복잡도가 병목이 되는데, 이 구조는 “제어 단순성 ↔ 조향 성능”의 좋은 트레이드오프를 제시합니다.
특히 저주파 제어 → 고주파 방사라는 아키텍처는 바랙터 용량 변화에 따른 임피던스/손실 변동을 억제하고, 제조·집적 난이도를 낮춘다는 공학적 이점이 있습니다.</p>
<h2 id="iv-conclusion">IV. CONCLUSION</h2>
<h3 id="1저주파에서-단일-vltl을-제어하고-커플러로-다위상을-추출해-칩×8-배수기pa을-구동함으로써-제어를-단순화하면서도-ka-대역-빔-스티어링을-성능-손상-없이-구현했다">1.저주파에서 단일 VLTL을 제어하고, 커플러로 다위상을 추출해 칩(×8 배수기+PA)을 구동함으로써, 제어를 단순화하면서도 Ka-대역 빔 스티어링을 성능 손상 없이 구현했다</h3>
<h3 id="2대규모-배열에서-채널별-위상천이기--복잡한-분배망이-야기하는-면적·전력·제어-복잡도를-줄일-실마리를-제공-저주파-제어-→-고주파-방사-아키텍처는-제어선-수-캘리브레이션-노력을-함께-낮추는-장점이-있습니다">2.대규모 배열에서 <strong>“채널별 위상천이기 + 복잡한 분배망”</strong>이 야기하는 면적·전력·제어 복잡도를 줄일 실마리를 제공. “저주파 제어 → 고주파 방사” 아키텍처는 제어선 수, 캘리브레이션 노력을 함께 낮추는 장점이 있습니다.</h3>
<h2 id="v-what-can-i-do">V. WHAT CAN I DO</h2>
]]></description>
        </item>
    </channel>
</rss>