HumanDiffusion: a Coarse-to-Fine Alignment Diffusion Framework for Controllable Text-Driven Person Image Generation
0. Summary
기본 정보 : ArXiv,2022.11.11, HumanDiffusion: a Coarse-to-Fine Alignment Diffusion Framework for Controllable Text-Driven Person Image Generation
연구 배경
텍스트로 사람 이미지를 생성하는 과제는 디지털 휴먼, 가상 피팅 같은 응용의 기반이지만, 기존 방법은 제어 방식이 제한적이었다. 자세 전이 계열은 자세라는 단일 모달리티만 조건으로 쓰고, Text2Human 같은 텍스트 기반 방법은 미리 정의된 단어 집합(옷 종류·질감의 고정 어휘)만 받아들여 자유 문장을 처리하지 못했다. 한편 범용 텍스트-이미지 확산 모델(GLIDE 등)은 자유 문장을 받지만 사람의 자세를 정밀하게 제어하지 못하고, 옷의 세부 속성(데님 질감, 상·하의 색 분리)을 자주 틀린다. 근본 원인은 텍스트와 이미지의 정렬이 전역 수준에서만 이루어져, “어느 신체 부위에 어떤 속성을 그릴지”라는 부위 단위의 세밀한 대응이 없다는 데 있었다.
제안 방법
HumanDiffusion은 자유 문장과 편집 가능한 의미 자세 맵(semantic pose map) 을 입력받는 조건부 확산 모델로, 텍스트-이미지 정렬을 이미지 수준 → 특징 수준, 저해상도 → 고해상도의 coarse-to-fine으로 수행한다. 두 모듈이 핵심이다. (1) Stylized Memory Retrieval(SMR) 은 데이터 처리 단계에서 CLIP 이미지 특징을 신체 부위별 메모리 뱅크로 정제해 세밀한 부위 특징을 추출한다. CLIP의 텍스트-이미지 정렬 덕분에 학습은 텍스트 없이 이미지와 의미 맵만으로 진행되고, 추론 시 문장을 부위별로 쪼개 CLIP 텍스트 특징으로 바꿔 같은 메모리를 통과시킨다. (2) Multi-scale Cross-modality Alignment(MCA) 는 U-Net 내부 $8\times8$ 에서 $32\times32$ 해상도에서 자기 주의로 강조한 부위 특징을 키·값으로, U-Net 특징을 질의로 하는 교차 주의를 수행해 특징 수준 정렬을 한다. 의미 자세 맵은 SPADE 잔차 블록으로 주입되고, 전역 조건 $t’$ 은 시간 단계와 SMR 출력의 결합이다. DeepFashion-MultiModal(12,701장)에서 $128\times256$ 으로 학습한 뒤 초해상 모델로 $256\times512$ 를 얻는다.
발견 사실
텍스트 기반 생성에서 HumanDiffusion은 FID 30.42, LPIPS 0.2095, MS-SSIM 0.7453으로 Text2Human(29.53 / 0.2154 / 0.7358)과 FID는 비슷하고 LPIPS·MS-SSIM은 앞섰으며, GLIDE(56.53 / 0.3215 / 0.5658)를 크게 앞섰다. 의미 맵 기반 생성에서도 FID 31.28, LPIPS 0.2001, MS-SSIM 0.7736으로 Pix2Pix, SPADE, Latent Diffusion, Text2Human 대비 LPIPS·MS-SSIM 1위였다(FID는 Text2Human 30.89가 근소하게 앞섬). Ablation에서 SMR을 빼면 FID 38.43, MCA를 빼면 34.86으로 악화되었고, 정성적으로는 데님 같은 질감이 틀리거나 셔츠와 바지 색이 섞이는 오류가 나타났다. 50명 사용자 평가에서 사실성과 문장 일치도 모두 Text2Human·GLIDE보다 높았다. 한계로 얼굴·신발 같은 작은 부위의 흐림과 일부 만화풍 결과가 보고되었다.
핵심 기여
- 텍스트 없는 학습으로 열린 어휘 생성 : CLIP 정렬을 이용해 이미지-의미 맵만으로 학습하고 추론 시 자유 문장을 받는 설계로, 고정 어휘 제약을 없앴다(Sec. 2.1–2.2).
- SMR + MCA의 coarse-to-fine 정렬 : 부위별 메모리 검색으로 이미지 수준 특징을 정제하고, 다중 스케일 교차 주의로 특징 수준에서 정렬해 부위-속성 대응을 명시적으로 모델링했다(Eq. 1–5, 10–12).
- 의미 자세 맵에 의한 제어 : 24클래스 파싱 중 10개 부위 레이블로 구성된 편집 가능한 맵을 SPADE로 주입해, 텍스트와 자세를 독립적으로 제어하는 열린 어휘 사람 생성을 실현했다(Sec. 2.3, Eq. 8–9, 13).
관련 개념
텍스트 기반 사람 이미지 생성과 제어 문제
텍스트 기반 사람 생성은 “파란 데님 재킷에 흰 바지를 입은 사람”이라는 문장과 자세 정보로 그 사람을 그리는 과제입니다. 가상 피팅과의 관계는 직접적입니다. 옷 이미지 대신 옷에 대한 서술로 피팅 결과를 만들 수 있고, 같은 조건 구조(자세 + 옷 속성)를 공유하기 때문입니다.
🗂️ 1. 기존 접근의 제어 축
| 접근 | 조건 | 한계 |
|---|---|---|
| 자세 전이 (PATN, ADGAN 등) | 원본 이미지 + 대상 자세 | 텍스트 입력 없음. 옷 속성을 말로 바꿀 수 없음 |
| Text2Human | 자세 + 고정 어휘 속성 | 미리 정의된 옷 종류·질감 단어만 가능 |
| 범용 T2I 확산 (GLIDE 등) | 자유 문장 | 자세 제어 불가, 옷 세부 속성 오류 빈번 |
| HumanDiffusion | 자유 문장 + 편집 가능한 의미 자세 맵 | 작은 부위 흐림(후술) |
🧩 2. 입력의 정의 (Sec. 2.1)
- 텍스트 : 문장을 신체 부위별로 나누고 각 부분을 CLIP 텍스트 인코더로 인코딩해 부분 텍스트 특징 $F_{p3}$ 를 얻습니다. “상의는 ~, 하의는 ~” 식의 부위 분해가 부위-속성 대응의 출발점입니다.
- 의미 자세 맵 : 데이터셋의 24개 파싱 클래스 중 배경, 상의, 아우터, 치마, 원피스, 바지, 머리카락, 얼굴, 신발, 피부의 10개 부위를 사용합니다. 사용자가 맵을 편집하면 자세와 옷의 영역이 바뀝니다.
🔑 3. 왜 정렬이 핵심인가
사람 이미지는 부위마다 다른 속성을 가집니다. 전역 텍스트 임베딩 하나로 조건을 주면 “데님”이 재킷이 아니라 바지에 가거나, 두 색이 섞이는 속성 누출이 생깁니다. 논문은 이를 두 축에서 해결합니다. 이미지 수준에서는 부위별 메모리로 특징을 분리하고, 특징 수준에서는 교차 주의로 U-Net의 공간 위치와 부위 특징을 연결합니다.
💡 Key Takeaway 문제의 본질은 “생성”이 아니라 “어느 부위에 어떤 말이 붙는가“의 정렬입니다. HumanDiffusion은 입력(부위별 텍스트), 전처리(부위별 메모리), 네트워크(교차 주의) 세 층위에서 모두 부위 단위로 정렬합니다.
Stylized Memory Retrieval(SMR)
SMR 은 CLIP 이미지 특징 $F_{p1}$ 을 부위별 메모리 뱅크를 통해 더 세밀하고 이미지에 특화된 특징 $F_{p2}$ 로 정제하는 모듈입니다. 학습 시에는 이미지 특징을, 추론 시에는 텍스트 특징을 같은 메모리에 통과시킵니다.
🧠 1. 메모리 뱅크 구조 (Sec. 2.2)
| 항목 | 내용 |
|---|---|
| 형태 | $M\in\mathbb{R}^{n\times(m\times c)}$: 부위 $n$ 개, 부위당 슬롯 $m$ 개, 특징 차원 $c=512$ (CLIP) |
| 초기화 | In-shop Clothes Retrieval 데이터베이스에서 범주당 500장의 CLIP 특징 |
| 분리 | 부위별로 독립된 블록이므로 상의 메모리와 바지 메모리가 섞이지 않음 |
🧮 2. 검색과 갱신 (Eq. 1–5)
부위 $i$ 의 입력 특징 $F_i$ 와 슬롯 $e_{ij}$ 사이의 코사인 유사도로 가장 가까운 슬롯을 찾고, 지수 이동 평균으로 갱신합니다.
\(s_{ij} = \frac{e_{ij}F_i^{T}}{\|e_{ij}\|\,\|F_i\|} \tag{1}\) \(k = \operatorname*{arg\,max}_j s_{ij} \tag{2}\) \(\hat{e}_{ik} \leftarrow \beta\,e_{ik} + (1-\beta)F_i,\qquad \beta = 0.995 \tag{3}\)
읽기는 소프트 가중합입니다.
\(a_{ij} = \frac{\exp(\gamma_{ij})}{\sum_j\exp(\gamma_{ij})} \tag{4}\) \(\hat{F}_i = \sum_j a_{ij}\,\hat{e}_{ij} \tag{5}\)
$\hat{F}i$ 가 부위 $i$ 의 정제된 특징 $F{p2}$ 이며, 시간 단계 $t$ 와 결합되어 전역 조건 $t’$ 을 이룹니다. 슬롯 수 $m$ 은 논문에 명시되지 않았습니다.
🔄 3. 왜 텍스트 없이 학습할 수 있는가
CLIP은 이미지와 텍스트를 같은 임베딩 공간에 정렬합니다. 따라서 학습 시 이미지의 CLIP 특징으로 메모리를 채우고 조건을 주면, 추론 시 같은 의미의 텍스트 CLIP 특징이 같은 슬롯 근처로 떨어집니다. 메모리는 이산적인 “스타일 사전” 역할을 해 텍스트와 이미지 임베딩 사이의 모달리티 간극을 완충합니다. 텍스트 주석이 전혀 필요 없으므로 이미지-파싱 쌍만 있는 데이터셋으로 학습할 수 있습니다.
💡 Key Takeaway SMR은 “CLIP 특징을 부위별 사전으로 양자화해 정제한다”는 아이디어입니다. 이미지로 사전을 채우고 텍스트로 꺼내 쓰는 비대칭이 텍스트 없는 학습과 열린 어휘 추론을 동시에 가능하게 합니다.
Multi-scale Cross-modality Alignment(MCA)
MCA 는 확산 U-Net 내부에서 부위 특징과 공간 특징을 교차 주의로 정렬하는 모듈입니다. SMR이 이미지 수준 정렬이라면 MCA는 특징 수준 정렬이며, 여러 해상도에 걸쳐 적용되어 저해상도의 거친 배치에서 고해상도의 세부까지 단계적으로 정렬합니다.
👁️ 1. 자기 주의 정렬(SAA) 전처리
CLIP 부위 특징 $F_{p1}$ 을 자기 주의 모듈(Self-Attentive Alignment)에 통과시켜 중요한 부위를 강조한 $F_{ps}$ 를 만듭니다. 문장에서 언급된 속성이 강한 부위에 가중치가 실리도록 하는 단계입니다.
🔗 2. 교차 주의 정렬(CAA) (Eq. 10–12)
U-Net 중간 특징 $f_i$ 를 질의로, $F_{ps}$ 를 키·값으로 씁니다.
\(Q_i = f_iW_Q,\qquad K = F_{ps}W_K,\qquad V = F_{ps}W_V \tag{10}\) \(f_{align} = \mathrm{Softmax}\!\left(\frac{QK^{T}}{\sqrt{C}}\right)V \tag{11}\) \(f'_i = f_i + f_{align} \tag{12}\)
| 설계 | 의미 |
|---|---|
| 질의 = 공간 특징 | 각 공간 위치가 “나는 어느 부위 속성을 받아야 하는가”를 묻는 구조 |
| 키·값 = 부위 특징 | 답은 부위별 스타일 특징에서 옴 |
| 잔차 연결 | 정렬 특징을 더하므로 원래 특징의 구조 정보가 보존됨 |
| 적용 해상도 | $8\times8$ 에서 $32\times32$ 까지, 각 출력은 다음 SRES 블록으로 |
🎚️ 3. SRES 블록: 자세 맵과 전역 조건의 주입 (Eq. 8–9)
SPADE 잔차 블록(SRES)이 의미 자세 맵 $seg$ 를 공간 적응 정규화로 주입하고, 전역 조건 $t’$ 을 완전연결층으로 변환한 변조 $\omega, b$ 로 섞습니다.
\[f_{t'} = \mathrm{CONV}\big(\mathrm{ReLU}(f_{spade})\big)\times(1+\omega) + b\]역과정은 세 조건에 의존하는 가우시안으로 쓰입니다.
\[p_\theta(x_{t-1}\mid x_t) = \mathcal{N}\big(\mu_\theta(x_t,(t',seg,F_p)),\ \Sigma_\theta(\cdot)\big) \tag{13}\]즉 자세는 SPADE로(공간), 스타일은 교차 주의로(부위), 전역 분위기와 시간은 변조로 들어갑니다.
🧱 4. SPADE 정규화가 자세 맵에 적합한 이유
SPADE(Spatially-Adaptive Denormalization)는 의미 분할 맵에서 위치별 스케일 $\gamma_{y,x}$ 와 시프트 $\beta_{y,x}$ 를 합성곱으로 뽑아, 정규화된 특징에 적용하는 조건화 방식입니다.
\[h'_{z,y,x} = \gamma_{z,y,x}(seg)\,\frac{h_{z,y,x}-\mu_z}{\sigma_z} + \beta_{z,y,x}(seg)\]| 대안 | 문제 |
|---|---|
| 의미 맵을 입력에 채널 결합 | 깊은 층을 지나며 정규화 과정에서 평탄한 영역의 레이블 정보가 씻겨 나감(SPADE 논문의 관찰) |
| 전역 벡터로 압축해 변조 | 공간 배치 정보 손실. “왼쪽 팔은 피부, 몸통은 상의”를 표현할 수 없음 |
| SPADE | 매 블록에서 레이블 맵을 다시 주입하므로 넓은 단색 영역(피부, 상의)에서도 레이블이 유지됨 |
사람 이미지의 의미 맵은 상의·바지·피부처럼 넓고 균일한 영역으로 이루어져 있어 정확히 SPADE가 겨냥한 상황입니다. HumanDiffusion의 SRES 블록은 여기에 전역 조건 $t’$ 의 변조 $(1+\omega), b$ 를 곱하고 더하는 층을 겹쳐, 공간 레이아웃(SPADE)과 전역 스타일·시간(변조) 을 한 블록에서 처리합니다. PASTA-GAN 계열이 왜곡 옷 특징으로 SPADE식 변조를 하는 것과 구조적으로 같은 선택이며, 조건의 출처만 다릅니다.
💡 Key Takeaway MCA는 “어디에(U-Net 위치) 무엇을(부위 특징)”을 교차 주의로 묻고 답하는 구조입니다. 여러 해상도에 걸쳐 적용되므로 거친 배치와 세밀한 질감이 모두 텍스트와 정렬됩니다.
확산 모델 틀과 학습 설정
생성 백본은 조건부 DDPM 계열의 U-Net입니다. 논문은 손실 함수를 명시적으로 쓰지 않고 Eq. 13의 조건부 역과정으로 모델을 기술하므로, 표준 잡음 예측 목적을 따른다고 이해하면 됩니다.
⚙️ 1. 학습 설정 (Sec. 3)
| 항목 | 값 |
|---|---|
| 데이터 | DeepFashion-MultiModal, 전신 12,701장, Text2Human과 같은 분할 |
| 하드웨어 | NVIDIA A6000 4대, PyTorch |
| 배치 | 24 |
| 최적화 | Adam, 학습률 $10^{-4}$ |
| 반복 | 240,000 (100,000 이후 학습률 $10^{-5}$ 로 미세조정) |
| 해상도 | $128\times256$ 생성 → 별도 초해상 모델로 $256\times512$ |
| 샘플링 스텝·가이던스 | 명시되지 않음 |
🔁 2. 학습과 추론의 비대칭
| 단계 | 조건 경로 |
|---|---|
| 학습 | 이미지 → CLIP 이미지 특징 $F_{p1}$ → SMR → $F_{p2}$; 의미 맵 → SPADE |
| 추론 | 문장 → 부위별 분해 → CLIP 텍스트 특징 $F_{p3}$ → SMR → 조건; 사용자 의미 맵 → SPADE |
학습 데이터에 텍스트가 없다는 점이 중요합니다. 모델이 배우는 것은 “CLIP 특징 → 이미지”이고, 텍스트는 CLIP을 통해 그 입력 공간으로 번역될 뿐입니다.
🧮 3. 초해상 단계
$128\times256$ 에서 생성한 뒤 초해상 모델로 $256\times512$ 를 만듭니다. 초해상 모델의 세부는 논문에 없습니다. 정렬 모듈이 $32\times32$ 까지만 작동하므로, 그 이상의 세부는 확산 U-Net의 고해상도 블록과 초해상 모델이 채웁니다. 얼굴·신발 같은 작은 부위의 흐림은 이 구조와 무관하지 않을 수 있습니다.
💡 Key Takeaway HumanDiffusion의 확산 백본 자체는 표준적입니다. 기여는 백본이 아니라 조건을 어떻게 만들고(SMR) 어디에 넣는가(MCA, SRES) 에 있습니다.
실험 결과
평가는 DeepFashion에서 텍스트 기반과 의미 맵 기반 두 설정으로, FID·LPIPS·MS-SSIM과 사용자 평가로 이루어집니다.
📊 1. 텍스트 기반 생성 (Table 1)
| 방법 | FID ↓ | LPIPS ↓ | MS-SSIM ↑ |
|---|---|---|---|
| Text2Human | 29.53 | 0.2154 | 0.7358 |
| GLIDE | 56.53 | 0.3215 | 0.5658 |
| HumanDiffusion | 30.42 | 0.2095 | 0.7453 |
Text2Human은 고정 어휘 조건을 받는 강한 기준선이고, HumanDiffusion은 자유 문장을 받으면서 FID는 대등, 지각 유사도와 구조 유사도는 앞섭니다. GLIDE는 자세 제어가 없어 모든 지표에서 크게 뒤처집니다.
📊 2. 의미 맵 기반 생성 (Table 2)
| 방법 | FID ↓ | LPIPS ↓ | MS-SSIM ↑ |
|---|---|---|---|
| Pix2Pix | 38.46 | 0.2164 | 0.7293 |
| SPADE | 40.53 | 0.2327 | 0.7668 |
| Latent Diffusion | 36.58 | 0.2143 | 0.7436 |
| Text2Human | 30.89 | 0.2045 | 0.7414 |
| HumanDiffusion | 31.28 | 0.2001 | 0.7736 |
텍스트 없이 의미 맵만으로 생성해도 같은 모델이 경쟁력을 유지합니다. 두 표 모두에서 FID는 Text2Human이 근소하게 앞서는데, 논문은 FID보다 LPIPS·MS-SSIM 개선과 사용자 평가를 강조합니다.
🧪 3. Ablation과 사용자 평가
| 변형 | FID ↓ | LPIPS ↓ | MS-SSIM ↑ |
|---|---|---|---|
| w/o SMR | 38.43 | 0.2224 | 0.7326 |
| w/o MCA | 34.86 | 0.2382 | 0.7022 |
| 전체 | 30.42 | 0.2095 | 0.7453 |
- SMR 제거는 FID를 가장 크게 악화시키고(+8.0), MCA 제거는 LPIPS·MS-SSIM을 가장 크게 악화시킵니다. 이미지 수준 정렬은 분포 품질에, 특징 수준 정렬은 구조·지각 일치에 각각 더 기여한다고 읽을 수 있습니다.
- 정성적으로 두 변형 모두 데님 같은 질감을 틀리거나 셔츠와 바지 색을 섞는 속성 누출을 보입니다.
- 사용자 평가 : 50명이 Text2Human·GLIDE·HumanDiffusion 결과 20그룹을 사실성과 문장 일치도로 평가했고, HumanDiffusion이 둘 다 높았습니다(수치는 Fig. 8에만 수록).
🆚 4. Text2Human과의 구조 비교
가장 강한 기준선인 Text2Human과의 차이를 정리하면 HumanDiffusion의 위치가 분명해집니다.
| 항목 | Text2Human | HumanDiffusion |
|---|---|---|
| 생성 백본 | 계층적 VQ-VAE + 트랜스포머 샘플러 | 조건부 확산 U-Net |
| 텍스트 조건 | 옷 종류·질감의 고정 속성 어휘를 분류 토큰으로 변환 | 자유 문장을 부위별 CLIP 특징으로 변환 |
| 자세 조건 | 사람 파싱 맵(2단계: 자세 → 파싱 → 이미지) | 편집 가능한 의미 자세 맵을 SPADE로 직접 주입 |
| 학습 데이터 | 이미지 + 파싱 + 속성 주석 | 이미지 + 파싱 (텍스트 없음) |
| 텍스처 표현 | 질감별 코드북(혼합 전문가) | 부위별 메모리 뱅크(SMR) |
| 열린 어휘 | × | ○ |
Text2Human은 질감별 코드북으로 고품질 텍스처를 얻지만 어휘가 닫혀 있고, HumanDiffusion은 어휘를 열되 FID에서 근소하게 뒤집니다. 두 모델의 LPIPS·MS-SSIM 차이는 HumanDiffusion이 의미 맵의 구조를 더 충실히 따른다는 뜻이고, FID 차이는 질감 세부와 다양성의 균형에서 비롯된 것으로 추정할 수 있으나 논문은 이를 분석하지 않습니다.
💡 Key Takeaway 수치의 핵심은 자유 문장을 받으면서 고정 어휘 모델과 대등하거나 더 낫다는 점입니다. Ablation은 두 정렬 모듈이 서로 다른 축(분포 vs 구조)을 담당함을 보여 줍니다.
한계와 가상 피팅 관점의 의의
한계는 작은 부위의 품질과 스타일 편향에 집중되고, 의의는 가상 피팅을 “옷 이미지 없이 말로” 수행할 가능성에 있습니다.
⚠️ 1. 저자가 밝힌 한계
- 작은 부위의 흐림 : 얼굴과 신발이 흐리게 나옵니다. SMR이 모든 영역에 전용 메모리 블록을 두지 않기 때문이라고 설명합니다.
- 만화풍 결과 : 일부 출력이 만화 같은 스타일을 띠며, 논문은 이를 흐림의 한 형태로 보고 확산 학습에서 비롯된 것으로 추정합니다.
- 해상도 : $128\times256$ 생성 후 초해상이므로 정렬 모듈이 고해상도 세부에 직접 관여하지 못합니다.
🧭 2. 설계상 열린 질문
- 슬롯 수 $m$, 샘플링 스텝, 가이던스 유무가 명시되지 않아 재현에 불확실성이 있습니다.
- 문장을 부위별로 나누는 전처리가 규칙 기반인지 학습 기반인지에 따라 열린 어휘의 실제 범위가 달라집니다.
- CLIP 임베딩 공간의 모달리티 간극을 메모리가 얼마나 완충하는지에 대한 정량 분석이 없습니다.
- FID에서 Text2Human을 넘지 못한 이유(초해상 단계, 확산 샘플링의 다양성 등)가 분석되지 않았습니다.
👕 3. 가상 피팅으로의 연결
| 가상 피팅의 요소 | HumanDiffusion의 대응 |
|---|---|
| 옷 이미지 조건 | 옷에 대한 텍스트 서술 |
| 자세·체형 조건 | 편집 가능한 의미 자세 맵 |
| 옷 영역 레이아웃 | 의미 맵의 상의·하의·치마 레이블 |
| 세부 보존(복사) | 없음. 전부 생성 |
PASTA-GAN 계열이 “옷 이미지의 텍스처를 패치로 옮기는” 접근이라면, HumanDiffusion은 “옷을 말로 지정해 생성하는” 접근입니다. 특정 상품의 정확한 재현에는 부적합하지만, 상품 이미지가 없는 단계의 디자인 탐색이나 속성 편집(“소매를 데님으로”)에는 적합합니다. 이후 PIDM(Person Image Diffusion Model) 같은 연구는 같은 확산 틀에서 이미지 조건의 텍스처 보존을 다루며, 두 흐름이 합쳐지는 지점에 텍스트+이미지 조건 피팅이 있습니다.
💡 Key Takeaway HumanDiffusion은 사람 생성의 조건을 고정 어휘에서 자유 문장으로 넓힌 첫 확산 기반 틀 중 하나입니다. 가상 피팅 관점에서는 “옷 이미지가 없어도 입혀 볼 수 있다”는 새 축을 열었지만, 특정 옷의 정확한 재현은 이미지 조건 모델의 몫으로 남습니다.