대학원 준비

Facial Feature Model for a Portrait Video Stylization(인물 영상 스타일화를 위한 얼굴 특징 모델)

steezer 2025. 7. 8. 21:01

논문 정보

 

Symmetry (MDPI), 2018
저자: Dongxue Liang, Kyoungju Park, Przemyslaw Krompiec
키워드: 얼굴 특징 모델, 인물 영상, 비사실적 렌더링, Mask R-CNN


결과

주요 성과
확장된 Mask R-CNN을 통해 36개 얼굴 윤곽 랜드마크와 얼굴 특징 마스크를 동시에 검출
영상을 3개 영역으로 분할하여 각각 다른 렌더링 방법 적용
작은 얼굴의 세부 특징을 유지하면서 시간적으로 일관된 애니메이션 생성
기존 방법 대비 작은 얼굴에서 눈, 코, 입 등의 표정 디테일을 더 잘 보존

성능 지표
확장된 Mask R-CNN의 RMSE 오차: 0.08 미만
최소 검출 가능한 얼굴 크기: 1080p 이미지에서 80×80 픽셀
처리 속도: 1080p 이미지 기준 4fps

한계

기술적 한계
측면 얼굴 검출 성능 저하: 머리가 30° 이상 회전할 때 성능이 90% 미만으로 떨어짐
깊이 학습 방법의 일반적 한계: 세부 텍스처와 얇은 경계선 정보 손실 가능성
작은 얼굴에 특화: 인터뷰나 뉴스 프로그램 같은 특정 유형의 영상에 최적화

향후 과제

구체적 개선 방향
측면 얼굴 검출 정확도 향상
데이터셋의 다양성 증대를 통한 개선
경계 처리 개선
얼굴과 특징의 경계를 더 자연스럽게 렌더링
이미지의 다양한 레이어를 더 잘 분리
더 다양한 스트로크 모델 사용
개인화된 스타일링
나이, 성별, 인종 인식 기술과의 결합
다양한 NPR 스타일과의 통합


연구 배경 및 목적

연구 배경

기술적 배경


비사실적 렌더링(NPR)의 발전
딥러닝 방법의 등장으로 인물 영상 스타일화가 더욱 대중화
1990년대부터 다양한 영상 스타일화 기술들이 개발되어 왔음
기존 방법들은 점 기반 렌더링과 스트로크 기반 렌더링으로 구분

기존 방법들의 문제점
점 기반 방법: 스트로크 모델이 없어 객체 움직임에 둔감
스트로크 기반 방법: 스트로크 변형이 부족하여 일관된 움직임 추적에 한계
딥러닝 방법: 세부 텍스처와 얇은 경계선 손실, 특히 작은 얼굴에서 심각

 


응용 분야의 필요성


인물 화상의 중요성
인물화는 예술 작품에서 중요한 역할
인터뷰 프로그램, 뉴스, 강의 등에서 작은 얼굴이 포함된 영상이 많음
이러한 영상에서 정확한 감정 표현 유지가 중요한 과제

 

연구 목적

핵심 목적
작은 얼굴의 세부 특징 보존: 눈, 코, 입 등의 뚜렷한 얼굴 특징을 유지
시간적 일관성 확보: 프레임 간 일관된 애니메이션 생성
움직임 추적: 기본 객체의 움직임을 일관되게 따라가는 렌더링
자동화: 수동 개입 없이 자동으로 일관된 스타일화된 인물 영상 생성

 

구체적 도전 과제
작은 얼굴에서 감정 표현의 정확한 보존
조명과 노이즈의 영향 최소화
시간적으로 일관된 애니메이션 달성
얼굴 특징의 세부 정보 손실 방지


연구 대상 및 방법

연구 대상

데이터셋
300-VW 데이터셋: 야생 환경에서의 얼굴 랜드마크 추적 알고리즘 평가를 위한 벤치마크
선택된 비디오: 작은 얼굴이 포함된 20개 비디오 (폴더 인덱스: 001-004, 009-011, 013, 015, 016, 018, 019, 022, 025, 028, 031, 041, 047, 053, 405)
주석 작업: 비디오당 100프레임, 5명의 주석자가 LabelMe 도구 사용
주석 내용: 6개 클래스의 얼굴 특징(browl, browr, eyel, eyer, nose, mouth)과 36개 얼굴 경계 랜드마크

대상 영상 특성
작은 얼굴이 포함된 인물 영상 (인터뷰, 뉴스, 강의 등)
최소 검출 가능 얼굴 크기: 1080p 이미지에서 80×80 픽셀
감정 표현이 중요한 영상 콘텐츠

 

연구 방법

확장된 Mask R-CNN 설계
네트워크 구조:
기존 Mask R-CNN에 CNN 회귀 브랜치 추가
ResNet 백본 + FCN 마스크 예측 모듈 유지
ROIAlign 레이어로 특징 정렬
48×48 크기의 정렬된 특징 맵에서 72차원 출력 (36개 점의 좌표)

손실 함수:
L = L_cls + L_box + L_mask + L_landmarks
L_landmarks: 일반적인 최소제곱 손실 함수 사용

 

영역 기반 렌더링 전략
3개 영역 분할:
서브영역 1 (36개 윤곽 랜드마크로 둘러싸인 내부 얼굴): 4개 파티클의 작은 스트로크 모델
서브영역 2 (눈썹, 눈, 코, 입 특징): 원본 픽셀 색상 유지 (Alpha 블렌딩)
서브영역 3 (외부 얼굴): 6개 파티클, 9개 스프링의 큰 스트로크 모델

비디오 시퀀스 처리
첫 프레임 렌더링:
현저성 맵(saliency map)과 접선 흐름(tangent flow) 기반 스트로크 배치
영역별 차별화된 렌더링 전략 적용

후속 프레임 애니메이션:
물리 기반 프레임워크와 광학 흐름 추정 사용
외부 힘(광학 흐름)과 내부 스프링 힘 계산
오일러 방법으로 파티클 위치 계산
스트로크 삭제/추가를 통한 메모리 관리

 

분석 방법

성능 평가 지표
정량적 평가:
RMSE (Root Mean Square Error): 예측값과 실제값 간의 오차 측정
검출 정확도: 얼굴 특징 모델 생성 성능
처리 속도: 1080p 기준 fps 측정

정성적 평가:
얼굴 특징 보존 정도
시간적 일관성 (temporal coherence)
움직임 추적 정확도
시각적 품질

비교 분석 방법
기존 방법과의 비교:
Krompiec et al. 기반 방법과 비교
Gatys et al. 스타일 전이 방법과 비교
68개 얼굴 랜드마크 검출 방법 [42]와 비교

평가 기준:
작은 얼굴에서의 세부 특징 보존
시간적 일관성 및 깜빡임 현상
자연스러운 애니메이션 품질

실험 설정
훈련 환경:
데이터 분할: 90% 훈련, 10% 테스트
Adam 옵티마이저, 학습률 0.0001 (50 에포크마다 절반 감소)
배치 크기: 16
훈련 시간: GTX1080에서 약 14시간

성능 결과:
RMSE 오차: 0.08 미만
처리 속도: 4fps (1080p)
추가 CNN 브랜치 처리 시간: 20ms


변수 유형

1. 네트워크 관련 변수
1.1 손실 함수 변수
L_cls: 분류 손실 (classification loss)
L_box: 바운딩 박스 회귀 손실 (bounding box regression loss)
L_mask: 마스크 예측 손실 (mask prediction loss)
L_landmarks: 랜드마크 회귀 손실 (landmark regression loss)

1.2 랜드마크 관련 변수
n: 랜드마크 개수 (n = 36)
ŷlandmarki: i번째 랜드마크의 예측값
ylandmarki: i번째 랜드마크의 실제값 (ground truth)

2. 물리 시뮬레이션 변수
2.1 위치 및 운동 변수
x_t^(p): 시간 t에서 파티클 p의 위치
ẍ_t^(p): x_t^(p)의 2차 시간 미분 (가속도)
f_t^(p): 참조 프레임으로부터의 외부 힘
f_t^(s): 스프링 힘 (내부 힘)

3. 네트워크 구조 변수
3.1 특징 맵 크기
48×48: ROIAlign에서 출력되는 정렬된 특징 맵 크기
72: 최종 출력 차원 (36개 점 × 2 좌표)

3.2 CNN 브랜치 구조
컨볼루션 레이어: 3×3 커널 (마지막 레이어는 2×2)
완전 연결 레이어: 256 → 72 차원

4. 렌더링 관련 변수
4.1 영역 분할
서브영역 1: 36개 윤곽 랜드마크로 둘러싸인 내부 얼굴 영역
서브영역 2: 얼굴 특징 영역 (눈썹, 눈, 코, 입)
서브영역 3: 외부 얼굴 영역

4.2 스트로크 모델 변수
6개 파티클 + 9개 스프링: 서브영역 3용 큰 스트로크 모델
4개 파티클: 서브영역 1용 작은 스트로크 모델
두께 상수: 3 (작은 얼굴용 스트로크 두께)

5. 성능 평가 변수
5.1 정량적 지표
RMSE: 0.08 미만 (Root Mean Square Error)
fps: 4fps (1080p 이미지 기준 처리 속도)
처리 시간: 20ms (추가 CNN 브랜치)

5.2 이미지 크기 변수
최소 얼굴 크기: 80×80 픽셀 (1080p 이미지 기준)
각도 임계값: 30° (측면 얼굴 성능 한계)

6. 훈련 관련 하이퍼파라미터
6.1 최적화 변수
학습률: 0.0001 (초기값, 50 에포크마다 절반 감소)
배치 크기: 16
훈련 시간: 14시간 (GTX1080 기준)
데이터 분할: 90% 훈련, 10% 테스트

6.2 각도 및 거리 임계값
흐름 차이 임계값: 30° (스트로크 생성 시)
픽셀 거리 임계값: 5픽셀 (파티클 간 최대 거리)


요약

이 논문은 작은 얼굴이 포함된 인물 영상을 스타일화하는 방법에 대한 연구이다.

주요 내용은 Mask R-CNN을 확장하여 얼굴 윤곽 랜드마크와 얼굴 특징 영역을 동시에 감지하고, 이를 바탕으로 영상을 세 영역(얼굴 특징, 내부 얼굴, 외부 얼굴)으로 나누어 각각 다른 렌더링 방법을 적용하는 기법을 제안한다.

특히 작은 얼굴의 특징을 유지하면서도 시간적으로 일관된 애니메이션을 생성하는데 초점을 맞추고 있다.


번역

초록

딥러닝 방법의 발전으로 인물 영상 스타일화가 더욱 인기를 얻고 있다.

본 논문에서는 작은 인물 얼굴이 포함된 영상을 자동으로 스타일화하는 견고한 방법을 제안한다.

얼굴 윤곽 랜드마크를 감지하는 CNN 분기를 Mask R-CNN에 확장하여, 입력 프레임을 세 영역으로 나누었다: 얼굴 특징 영역, 36개 얼굴 윤곽 랜드마크로 둘러싸인 내부 얼굴 영역, 그리고 외부 얼굴 영역이다.

얼굴 특징 영역은 그대로 유지하면서 다른 두 영역에는 서로 다른 스트로크 모델을 사용하여 렌더링했다.

비사실적 렌더링(NPR) 애니메이션 영상에서는 변형 가능한 스트로크와 인접 프레임 간의 광학 흐름 추정을 결합하여 기본 움직임을 일관되게 따르도록 했다.

실험 결과는 우리의 방법이 작고 뚜렷한 얼굴 특징을 효과적으로 보존할 뿐만 아니라 기본 움직임을 일관되게 따를 수 있음을 보여주었다.

 

키워드: 얼굴 특징 모델, 인물 영상, 비사실적 렌더링, Mask R-CNN

1. 서론

인물화는 예술 작품에서 중요한 역할을 한다. 비사실적 렌더링(NPR)의 등장 이후, 이미지 스타일화를 위한 더 많은 기술들이 제안되어 왔다[1-3].

또한 많은 연구자들이 일반 이미지에서 인물화로 기술을 확장하는 데 집중해 왔다[4-6].

그러나 인물 영상 스타일화에 있어서는 영상에서 일관되고 시간적으로 연속적인 애니메이션을 달성하는 데 여전히 몇 가지 도전 과제가 존재한다.

인물화에서 가장 중요한 것 중 하나는 일관된 애니메이션을 따르면서 뚜렷한 얼굴 특징의 렌더링을 유지하는 것이다.

특히 인터뷰 프로그램, 뉴스, 강의 등과 같이 작은 얼굴이 포함된 영상에서 더욱 그렇다.

이러한 종류의 영상에서 중요한 작업은 사람의 정확한 감정 표현을 유지하는 것이다.

영상에서 시간적으로 일관된 애니메이션을 생성하기 위해 1990년대부터 많은 종류의 영상 스타일화 기술[1,7-13]이 구현되어 왔다.

이 목표를 달성하는 과정에서 소스 이미지의 조명과 노이즈 효과를 피하는 것이 매우 중요하다.

최근에는 연구자들이 두 가지 주요 기술에 더 많은 관심을 기울이고 있다: 스타일화된 영상을 얻기 위해 픽셀 단위로 작동하는 점 기반 렌더링 방법[14-20]과 기본 렌더링 단위로 스트로크를 사용하여 렌더링 결과를 달성하는 스트로크 기반 렌더링 방법[7-10]이다.

그러나 점 기반 방법은 스트로크 모델이 없고 스트로크 기반 방법은 스트로크의 변형이 부족하여, 이들의 애니메이션 결과는 기본 움직임을 일관되게 따르는 데 중요한 객체의 움직임에 둔감한 경향이 있다.

딥러닝 방법이 더 인기를 얻으면서 인물 이미지나 영상 스타일화를 위한 더 많은 기술[6,21]이 제안되었다.

Gatys, L.A.[6]는 Visual Geometry Group(VGG)[22] 컨볼루션 신경망[23]을 사용하여 소스 이미지에서 페인팅 텍스처를 전송할 수 있는 방법을 제시했다.

이 방법은 두 부분의 혼합으로 페인팅을 렌더링한다: 첫 번째는 소스 이미지의 정체성을 유지한 다음 페인팅 텍스처를 전송하고, 두 번째는 페인팅 텍스처의 불량 캡처로 이어지며, 이러한 변형은 얼굴에 대한 인물 렌더링에서 문제가 된다.

Zili Yi[24]는 또한 단일 예제를 기반으로 얼굴 이미지에 대한 스타일화를 생성할 수 있는 방법을 제시했다.

그러나 딥러닝 방법의 한계는 결과가 일부 상세한 텍스처와 얇은 가장자리를 잃을 수 있다는 것이며, 이는 인터뷰 프로그램과 같은 일부 형태의 영상에서 작은 얼굴에 대해 더 심각하다.

따라서 일관된 스타일화된 인물 영상을 자동으로 생성하고, 뚜렷한 얼굴 특징을 유지하며, 동시에 기본 움직임을 일관되게 따를 수 있는 방법을 개발하는 것이 필요하다.

이를 해결하기 위해 우리는 NPR과 스트로크 변형 및 얼굴 특징 모델 추출을 결합한 방법을 제시한다.

먼저 얼굴의 36개 윤곽 랜드마크와 얼굴 특징 모델(즉, 코, 입, 눈)로 구성된 얼굴 특징 모델을 정의하고 생성했다.

Mask R-CNN[25]의 끝에 특징점 감지 컨볼루션 신경망(CNN)을 추가함으로써 36개 윤곽 랜드마크의 좌표와 얼굴 특징 모델을 나타내는 마스크 이미지를 얻을 수 있었다.

그런 다음 이러한 출력을 기반으로 입력 프레임을 세 영역으로 나누었다: 36개 윤곽 랜드마크로 둘러싸인 내부 얼굴 영역, 얼굴 특징 영역, 그리고 외부 얼굴 영역이다.

다음으로 다른 영역에 대해 스트로크를 배치하거나 원래 픽셀 색상을 사용하여 이미지 렌더링을 시작하고 질량-스프링 모델을 사용하여 스트로크를 모델링했다.

그런 다음 스트로크 내부의 픽셀에 힘을 적용하는 물리 기반 알고리즘을 사용하여 모델 역학에 따라 스트로크를 변형했다.

변형 후, 나타나고 사라지는 객체에 대해 스트로크와 픽셀을 삭제하고 추가한 다음, 영상이 끝날 때까지 다음 프레임으로 진행했다.

실험 결과는 인물 영상 스타일화에 있어서 우리의 방법이 일관된 스타일화된 인물 영상을 자동으로 생성하고, 뚜렷한 얼굴 특징을 유지하며, 기본 움직임을 일관되게 따를 수 있음을 보여주었다.

우리 작업의 주요 기여는 다음과 같다:
1. 얼굴 윤곽 랜드마크와 얼굴 특징 마스크를 동시에 감지하고 이를 단일 얼굴 랜드마크가 아닌 모델로 취급하는 확장된 딥러닝 방법의 구현.
2. 작은 얼굴을 인식 가능하게 유지하는 인물 영상을 위한 새로운 스타일화 방법 제안.
3. 확장된 Mask R-CNN을 사용한 얼굴 특징 모델과 영상 NPR을 위한 변형 가능한 스트로크를 결합한 새로운 접근 방식 제시.

논문의 나머지 부분은 다음과 같이 구성되어 있다.

2장에서는 일부 관련 작업을 검토하고, 3장에서는 우리의 방법을 제시한다.

4장에서는 실험 결과를 보여주고, 5장에서는 결론과 향후 작업 범위를 제시한다.

2. 관련 연구

최근에는 인물의 비사실적 렌더링(NPR)을 위한 다양한 방법이 제안되었으며, 그 중 일부는 알고리즘적 방법[26,27]을 포함한다.

이러한 종류의 기술은 스타일화를 위해 원본 이미지에서 추출된 가우시안 차이(DOG), 접선 흐름, 에지 감지와 같은 정보를 사용한다.

딥러닝의 발전으로 일부 작업은 CNN을 사용하여 이 목표를 달성하기 시작했다.

예를 들어 [28]에서는 컨볼루션 신경망을 사용하여 예제 이미지의 특징을 추출한 다음 소스 이미지를 예제 이미지의 스타일로 전송했다.

그러나 알고리즘적 방법이나 딥러닝 방법 모두 작은 에지의 정보를 잃거나 작은 얼굴에 관해서는 특징 세부 사항을 유지하는 데 실패했다.작은 얼굴의 특징을 유지하기 위해 우리는 얼굴 특징 감지를 위해 딥러닝 방법을 사용하기로 선택했다.

인물 영상의 NPR에서 얼굴의 정확한 특징 랜드마크 세트를 찾는 작업은 매우 중요하다.

이전 방법의 대부분은 소스 이미지에서 특징점 세트[29,30]나 몇 개의 윤곽선[31,32]을 제공함으로써 이를 수행한다.

그러나 얼굴 랜드마크의 경우, 특히 영상에서 작은 얼굴 특징에 대해 예를 들어 눈 모서리를 설명할 때 얼마나 많은 특징점이 필요한지 불분명하며, 윤곽선 기반 방법을 사용하면 치아와 같은 일부 중요한 부분은 윤곽선으로 모델링하기 어렵다.

인물 영상에서 애니메이션을 생성하기 위해 많은 스트로크 기반 방법이 만들어졌다.

[9]의 방법은 영상 페인팅을 위한 초기 개발로, 그들은 한계 내에서 스트로크를 이동하고 회전시켜 영상 애니메이션을 수행했다. [15]의 방법은 스트로크를 점으로 취급하고 애니메이션을 위해 광학 흐름을 사용했으며, Krompiec, P.[33]는 기본 객체와 함께 스트로크를 애니메이션화할 수 있는 좋은 방법을 제시했다.

그러나 영상에서 작은 얼굴을 렌더링하는 경우, 얼굴의 뚜렷한 특징을 유지하기 위해 다양한 크기의 스트로크를 유지하는 것만으로는 충분하지 않다.

또한 우리의 방법은 뚜렷한 얼굴 특징을 유지할 뿐만 아니라 기본 움직임을 일관되게 따르는 일관된 스타일화된 인물 영상을 자동으로 생성할 수 있다.

 

3. 방법

그림 1은 제안된 방법의 개요를 보여준다. 이 방법은 이미지 시퀀스를 입력으로 사용하고 영역 기반 렌더링 전략으로 렌더링된 버전을 출력한다. 제안된 접근 방식의 단계는 다음과 같다.

첫째, 우리의 목표에 따라 확장된 Mask R-CNN을 사용하여 소스 영상 시퀀스에서 얼굴 특징 모델을 생성하고, 이 모델을 기반으로 각 프레임을 두 카테고리로 분리했다: 얼굴 특징 모델 영역과 비얼굴 영역이다.

또한 얼굴 특징 모델 영역은 두 영역으로 더 세분화되었다: 얼굴의 36개 윤곽 랜드마크로 둘러싸인 영역과 눈썹-눈-코-입 영역이다.

결과는 그림 1에 나와 있으며, 세 가지 다른 영역이 얻어졌다: 서브영역 1(36개 윤곽 랜드마크로 둘러싸인 얼굴 영역), 서브영역 2(눈썹, 눈, 코, 입의 얼굴 특징 영역) 및 서브영역 3(외부 얼굴 영역)이다.

둘째, 시퀀스에서 추출된 현저성 맵과 접선 흐름을 기반으로, 렌더링은 서브영역에 대한 다른 렌더링 방법을 통해 소스 영상의 첫 번째 프레임으로 시작한다.

서브영역 3의 경우, [33]의 방법을 따라 현저성 맵과 접선 흐름을 기반으로 스트로크를 배치하고 방향을 지정한 다음 텍스처 매핑을 수행했다.

그러나 서브영역 1의 경우, [33]과의 차이점은 접선 흐름만을 기반으로 가장 작은 모델링된 스트로크를 배치했다는 것이다.

서브영역 2에서는 소스 이미지의 영역과 동일한 픽셀 색상으로 렌더링된 이미지의 얼굴 특징 영역을 색칠했다.

마지막으로, 첫 번째 프레임을 렌더링한 후, 프레임 간의 광학 흐름에 의해 계산된 힘으로 인한 변형된 스트로크를 시뮬레이션했으며, 시뮬레이션 중에 모든 영상 시퀀스가 처리될 때까지 결과를 참조 프레임과 비교하여 스트로크를 삭제하고 추가했다.

3.1. 얼굴 특징 모델을 위한 확장된 Mask R-CNN
그림 2에서 볼 수 있듯이, 얼굴 특징 모델은 서브영역 1과 서브영역 2의 조합을 의미한다.

가장 효과적인 인스턴스 분할 방법 중 하나인 Mask R-CNN[25]은 입력에 대한 픽셀 수준 분할을 제공할 수 있다.

따라서 서브영역 2의 마스크 표현을 생성하는 데 사용할 수 있다.

서브영역 1의 36개 윤곽 랜드마크에 대해서는 더 정확한 방식으로 좌표를 얻기 위해 원형 Mask R-CNN을 기반으로 CNN 회귀기를 설계했다.

Mask R-CNN은 He, K.-M.[25]에 의해 이미지 분할을 위해 제안되었으며 좋은 성능을 제공한다.

입력으로 이미지가 주어지면, 각 인스턴스에 대한 고품질 분할 마스크를 동시에 생성하면서 이미지의 객체를 효율적으로 감지할 수 있다.

또한 Mask R-CNN 자체는 분류 또는 회귀를 위한 특징 맵을 자동으로 추출하는 CNN 프레임워크를 가지고 있다.

전체 얼굴의 경계에 있는 점 집합을 더 정확하게 회귀하기 위해 CNN 분기를 추가하는 것은 쉽다.

따라서 Mask R-CNN에 의해 추출된 특징 맵으로 회귀기를 설계하고 충분히 좋은 모델을 얻기 위해 네트워크를 훈련하는 것이 중요하다.

확장된 Mask R-CNN을 사용하면 얼굴 특징(눈썹, 눈, 코, 입)의 가장자리가 더 부드럽게 맞춰질 수 있다.

확장된 Mask R-CNN에서 얼굴 특징 모델을 생성하는 전체 과정의 아키텍처는 그림 3과 4에 나와 있다.

보고된 바와 같이, Mask R-CNN은 특징 맵을 추출하기 위한 백본으로 Resnet을 사용하고 마스크 예측을 위한 FCN(Fully Convolutional Network)을 사용한다.

또한 추출된 특징을 입력과 적절하게 정렬하기 위해 ROIAlign 레이어가 제안되었다.

우리의 확장된 Mask R-CNN에서는 얼굴 모델의 마스크를 얻기 위해 위의 모듈을 유지하고 36개의 얼굴 랜드마크를 회귀하기 위해 다른 CNN 분기를 추가했다.

Mask R-CNN에 대한 자세한 설명은 [25]에서 볼 수 있다.

그림 4는 확장된 CNN 분기의 자세한 아키텍처를 보여준다.

구체적으로, CNN은 ROIAlign에서 48 × 48 크기의 정렬된 특징 맵을 가져와 총 36개 점의 좌표를 출력했다(즉, 출력 차원은 72이다).

또한 CNN은 네 개의 컨볼루션 레이어와 두 개의 완전 연결 레이어로 구성되었다.

각 컨볼루션 레이어 뒤에는 Relu 활성화와 샘플링을 위한 최대 풀링이 따랐다.

또한 컨볼루션 레이어의 커널 크기는 마지막 2 × 2를 제외하고 3 × 3이었다.

훈련 중, 확장된 Mask R-CNN의 손실 함수는 다음과 같다:


L = Lcls + Lbox + Lmask + Llandmarks


여기서 Lcls, Lbox, Lmask는 Mask R-CNN과 동일하며, Llandmarks는 일반적인 최소 제곱 손실 함수이다.


Llandmarks = ∑(ŷlandmark - ylandmark)2


여기서 n = 36; ŷlandmark는 이 CNN에 의해 예측된 i번째 랜드마크의 값이고; ylandmark는 i번째 실제 랜드마크의 값이다.

따라서 우리는 Llandmarks를 최소화하여 최종적으로 36개의 얼굴 윤곽 랜드마크를 가진 출력을 얻었으며, 여기서 y는 72개의 튜플에 속한다.

훈련 단계에 대한 실험은 4장에 나와 있다.

3.2. 첫 번째 프레임 NPR
비사실적 결과를 생성하기 위해 우리의 방법에 스트로크 기반 렌더링 방법이 적용되었다.

스트로크는 영상의 시작 부분에서 초기화된 다음 인접 프레임 간의 상대적 움직임에 따라 변형되었다.

따라서 첫 번째 프레임에서 스트로크를 적절하게 설계하고 초기화하는 것이 매우 중요하다.

[33]을 따라, 우리는 영상 시퀀스 동안 기본 움직임을 일관되게 따르고 최소한의 스트로크를 유지하기 위해 비얼굴 영역에 대해 그림 5a에 나와 있는 스트로크 모델을 사용했다.

이 모델은 프레임 간의 변형과 움직임을 위해 여섯 개의 입자와 아홉 개의 스프링으로 구성되어 있다.

또한 우리의 목표는 영상에서 작은 얼굴이었기 때문에, 내부 얼굴 영역의 뚜렷한 특징을 유지하기 위해 그림 5b에 나와 있는 다른 더 적합한 스트로크 모델을 채택했다.

서브영역 3의 얼굴 특징 세부 사항을 유지하기 위해, 우리는 서브영역 3에 대한 마스크를 기반으로 특징 이미지와 렌더링된 이미지를 블렌딩했다.

일반적으로, 영역 기반 렌더링 절차는 두 단계로 나눌 수 있다: 외부 얼굴 영역 렌더링과 내부 얼굴 영역 렌더링이다.

3.2.1. 외부 얼굴 영역 렌더링
서브영역 3의 경우, 우리는 렌더링을 위해 그림 5a에 나와 있는 입자와 스프링으로 구성된 스트로크 모델을 사용했다.

렌더링은 서브영역 3에서 처리되지 않은 픽셀을 무작위로 선택한 다음, 현저성 맵과 접선 흐름에 의해 발견된 픽셀을 커버하는 스트로크 모델을 생성하는 것으로 시작했으며, 이 절차는 모든 픽셀이 처리될 때까지 반복되었다.

그런 다음, 브러시 텍스처는 위치, 길이, 두께, 방향, 색상과 같은 매개변수로 스트로크 모델에 매핑되었다.

현저성 맵을 기반으로 하고 흐름 방향을 따라 경계를 유지하면서, 스트로크는 이 서브영역의 다른 영역에 대해 적응적으로 생성되었다.

위에서 언급한 바와 같이, 우리는 서브영역 1과 서브영역 3에 대해 다른 모델로 적응형 스트로크를 채택했으며, 동시에 서브영역 2의 얼굴 특징 마스크를 기반으로 작은 얼굴의 뚜렷한 특징을 유지했다.

첫 번째 프레임 렌더링에 대한 렌더링된 실험 결과는 그림 6과 같다.

4장에서는 결과에 대한 자세한 비교를 제시한다.

3.2.2. 내부 얼굴 영역 렌더링
내부 얼굴 영역에는 두 가지 구성 요소가 포함되어 있다: 서브영역 1과 서브영역 2이다.

서브영역 1의 경우, 우리는 두 가지 이유로 인해 그림 5b에 나와 있는 더 간단한 스트로크 모델을 사용했다.

첫째, 영상의 작은 얼굴은 더 적은 픽셀을 차지하므로 스트로크가 얼굴보다 크지 않도록 하기 위해 더 작아야 한다.

두 번째 이유는 충분히 작은 스트로크가 얼굴의 더 많은 세부 사항을 유지할 수도 있다는 것이다.

예를 들어, 얼굴 특징 영역을 제외한 다른 영역은 조명이나 메이크업으로 인해 다른 색상으로 렌더링되어야 한다.

더 큰 스트로크는 고유한 색상 텍스처로만 매핑되므로 얼굴의 이러한 작은 차이를 유지할 수 없다.

따라서 우리는 스트로크 모델에 네 개의 입자를 사용했으며, 서브영역 1의 경우 입자의 위치와 방향 계산 방법에 몇 가지 수정이 있었다.

한편, 현저성 맵을 사용하는 대신, 우리는 서브영역 1에서 무작위 픽셀 a를 선택하고, a와 b의 흐름 차이가 30° 이상이거나 a와 b 사이의 픽셀 수가 5개 이상일 때까지 접선 흐름 방향을 따라 하나씩 b를 선택한 다음, b를 모델의 두 번째 입자로 선택했다.

얼굴 영역이 작기 때문에, 우리는 스트로크 모델의 두께를 상수 값 3으로 설정했으며, 방향은 그라디언트 방향이었다.

이 단계는 그림 5c에 나와 있다.

서브영역 2를 렌더링하기 위해, 참조 소스 프레임의 픽셀의 원래 색상을 얻기 위해 얼굴 특징 마스크 이미지가 사용되었다.

그림 7에서 볼 수 있듯이, 알파 블렌딩 방법[34]을 사용하여 얼굴 특징 마스크 이미지(그림 7b)를 기반으로 픽셀을 렌더링된 이미지(그림 7a)와 블렌딩하여 블렌딩된 결과(그림 7c)를 얻었다.

이에 대한 이유는 작은 얼굴에 스트로크를 렌더링할 때, 접선 흐름 계산 방법을 사용하면 방향 정보의 많은 부분이 손실되고, 고유한 색상의 스트로크는 인터뷰나 토크쇼 프로그램에 중요한 사람의 감정적 표현에 영향을 미칠 것이기 때문이다.

따라서 우리는 뚜렷한 얼굴 특징을 유지하기 위해 확장된 Mask R-CNN으로 원본 이미지에서 얼굴 특징 마스크 이미지를 추출했다.

3.3. 영상 시퀀스 NPR
첫 번째 프레임을 렌더링한 후, 우리는 영상 시퀀스를 애니메이션화하기 시작했다.

움직이는 스트로크의 이동이나 방향에만 초점을 맞춘 대부분의 영상 스타일화 방법과 달리, 우리는 이전 작업[33]을 기반으로 스트로크에 대한 변형도 수행했다.

다음 프레임에서 각 스트로크의 위치와 변형의 정확한 계산은 물리 기반 프레임워크[35]와 모션 추정 방법[36]을 기반으로 했다.

또한 전체 영상의 애니메이션 동안, 예를 들어 누군가가 영상에서 사라지거나 나타날 때와 같은 일부 특별한 현상이 존재하는 경우 많은 양의 스트로크를 렌더링할 때 과도한 메모리 사용을 피하기 위해, 일부 스트로크는 해당 영역에서 삭제되고 추가되어야 했다.

따라서 [33]에서와 같이, 영상 시퀀스 NPR에는 두 단계가 있었다: (1) 스트로크의 위치 계산, 그리고 (2) 스트로크의 삭제 및 추가.

3.3.1. 스트로크 위치 계산
프레임 시퀀스의 애니메이션 동안, 우리는 두 종류의 힘으로 스트로크 모델의 각 입자의 위치를 계산했다: 참조 프레임에서의 외부 힘과 내부 스프링 힘이다.

외부 힘은 프레임 간의 모션 추정을 기반으로 계산되었으며, 여기서 우리는 부드러운 광학 흐름을 계산하기 위해 정확한 방법[36]을 사용하여 이를 외부 힘으로 취급했다.

내부 스프링 힘은 훅의 법칙에 기반하여 계산되었다.

스트로크의 위치를 얻을 때, [33]과 다른 유일한 단계는 얼굴 영역 모델에 대해 다른 스트로크 모델을 가지고 있었기 때문에 재료 점을 선택하는 것이었다.

우리는 그림 5b에 빨간색 점으로 표시된 입자의 중심점과 같이 더 간단하게 재료 점을 등록했으며, 그 이유는 얼굴 영역의 스트로크 모델이 작아서 애니메이션을 수행할 때 계산을 최소화할 것이기 때문이다.

마지막으로, 스트로크의 위치는 다음과 같이 계산되었다:

ẍ(p) = ft(p) + ft(s)

여기서 ẍ(p)는 xt(p)의 2차 시간 미분이며, xt(p)는 프레임 t에서 입자 p의 위치를 나타내고, ft(p)는 참조 프레임에서의 외부 힘이며, ft(s)는 스프링 힘을 나타낸다.

우리는 간단한 오일러 방법을 사용하여 이 방정식을 풀어 모든 입자의 위치를 최종적으로 얻었으며, 그런 다음 이 결과를 포인트 등록에 사용했다.

다음으로, 스트로크의 재료 점의 목표 위치는 참조 재료 점과 추정된 광학 흐름을 기반으로 계산되었다.

3.3.2. 스트로크 삭제 및 추가
위에서 언급한 바와 같이, 우리는 원본 프레임의 픽셀을 사용하여 서브영역 2를 직접 렌더링했다.

애니메이션을 수행할 때, 이 영역의 렌더링은 수정할 필요가 없었다.

그러나 서브영역 1과 서브영역 3의 렌더링은 이웃 프레임 간의 상대적 움직임을 통해, 사람이 영상에서 움직이거나, 사라지거나, 나타날 때 고려해야 했으므로, 메모리 문제를 피하기 위해 해당 스트로크에 대한 일부 삭제 및 추가 작업을 고려해야 했다.

첫 번째 프레임에 대한 렌더링 단계를 따라, 우리는 스트로크의 위치와 색상 차이를 기반으로 스트로크를 삭제하고, 색상, 접선 흐름, 위치, 모델 스타일 등과 같은 새로운 렌더링 매개변수를 기반으로 삭제된 스트로크 영역에 새로운 스트로크를 추가했다.

4. 결과 및 논의

이 섹션에서는 자동 인물 영상 페인팅 작업에 대한 제안된 방법의 성능을 평가한다.

먼저 4.1절에서 실험에 사용된 영상과 데이터셋을 소개한다.

그런 다음 4.2절에서 확장된 Mask R-CNN의 효과성과 성능을 설명한다.

4.3절에서는 기존 얼굴 랜드마크 감지 방법과 실험 결과를 기반으로 제안된 방법의 한계를 논의한다.

마지막으로 4.4절에서는 인물 영상의 NPR에 대한 일련의 실험과 비교를 제시한다.

 

4.1. 데이터셋 및 소스 영상
우리는 자체 주석을 준비하고 확장된 Mask R-CNN을 훈련하기 위해 오픈 소스 데이터셋 300-VW[37-39]를 선택했다.

300-VW는 야생에서 얼굴 랜드마크 추적 알고리즘을 평가하기 위한 포괄적인 벤치마크로 개발되었으며 많은 긴 얼굴 영상, 특히 작은 얼굴이 포함된 영상을 포함하고 있다.

따라서 우리는 이 데이터셋에서 작은 얼굴이 포함된 20개의 영상을 선택했으며, 영상에 대한 폴더 인덱스 목록은 표 1에 나와 있다.

우리 연구실의 다섯 명의 주석자가 LabelMe[40]라는 오픈 주석 도구를 사용하여 프레임(영상당 100 프레임)에 주석을 달도록 도왔다.

이미지당 주석에는 얼굴 특징 마스크를 위한 여섯 가지 클래스의 얼굴 특징(왼쪽 눈썹, 오른쪽 눈썹, 왼쪽 눈, 오른쪽 눈, 코, 입)과 얼굴 경계를 위한 36개의 랜드마크가 포함되었다.

[38]을 기반으로, 우리는 얼굴 윤곽 주석을 위해 36개 랜드마크에 대한 주석의 일부를 사용했으며, [38]의 동일한 알고리즘을 사용하여 주석 정확도를 평가했다.

인물 영상 스타일화 결과를 생성하기 위해, 일부 영상은 300-VW에서 선택되었고 다른 영상은 인터뷰와 토크쇼 프로그램을 모방하기 위해 우리가 실생활에서 캡처했다.

4.2. 확장된 Mask R-CNN 방법에 대한 실험 및 성능
이전 섹션에서 언급한 300-VW 주석 데이터셋으로, 우리는 샘플을 두 그룹으로 나누었다: 90%는 훈련용이고 나머지는 테스트용이다.

훈련 중, 우리는 0.0001에서 시작하여 50 에폭마다 절반으로 감소하는 학습률로 최적화를 위해 Adam 옵티마이저[41]를 사용했다.

배치 크기는 16으로 설정되었다.

훈련 코드는 Keras와 TensorFlow로 구현되었으며 전체 절차는 GTX 1080에서 약 14시간이 소요되었다.

다음으로, 우리는 네트워크 성능을 분석했다.

먼저, 우리는 예측값과 실제값의 오차를 평가하기 위해 RMSE(root mean square error)를 사용했다.

그림 8a에서 볼 수 있듯이, 우리의 확장된 Mask R-CNN의 오차는 0.08 미만이었다.

그림 8b는 테스트 결과를 보여준다.

테스트 결과에서 볼 수 있듯이, 우리의 확장된 Mask R-CNN은 NPR 과정에서 필요한 얼굴 특징 모델을 효과적으로 생성할 수 있었다.

또한, 특징으로 감지할 수 있는 얼굴의 최소 크기는 1080p 이미지에서 약 80 × 80이었다.

Mask R-CNN을 기반으로 간단한 CNN 분기를 추가했기 때문에, 1080p 이미지에 대한 테스트 시간은 4fps가 될 수 있으며, 분기는 별도로 약 20ms가 소요되었다.

4.3. 확장된 Mask R-CNN 방법의 비교 및 논의
최근의 얼굴 랜드마크 감지 방법과의 추가 비교를 위해, 기존 방법의 대부분은 얼굴 랜드마크[42]의 유한 수만 감지한다.

68개의 얼굴 랜드마크를 감지한 결과는 그림 9a에 나와 있으며, 여기서 우리는 랜드마크의 위치가 매우 정확했지만, 작은 얼굴의 상세한 정보를 유지하는 우리의 목표에 대해서는 정확한 위치만으로는 충분하지 않다는 것을 볼 수 있다.

그러나 우리의 마스크 결과(그림 9b)와 비교할 때, [42]의 결과에서는 코 영역이 잘 정의되지 않았으며, 여섯 개의 랜드마크로 둘러싸일 수 있는 눈 영역은 눈의 가장자리의 세부 사항을 유지하기에는 너무 작았다.

따라서 확장된 Mask R-CNN은 기존 얼굴 랜드마크 감지 방법보다 더 나았다.

그러나 우리 방법의 한 가지 단점은 측면 얼굴의 경우, 머리가 30° 이상 회전했을 때 우리가 촬영한 영상에 대한 성능이 90% 이상이 아니었기 때문에 향후 작업에서 개선될 필요가 있다는 것이다.

4.4. 인물 영상 NPR 실험 및 비교
위에서 언급한 바와 같이, 우리는 얼굴 특징 모델, 접선 흐름, 현저성 맵을 사용하여 첫 번째 프레임 렌더링을 시작했으며, 동시에 다른 영역에 대해 다른 렌더링 전략을 사용했다.

동시에, 제안된 방법의 성능을 입증하기 위해 최첨단 기술과의 비교도 수행되었다.

그림 10은 우리의 결과와 [33]의 결과를 비교한 것을 보여준다.

우리는 애니메이션 동안 스트로크의 변형에 대해 유사한 방법을 사용했으며, 차이점은 우리가 현저성 맵 대신 얼굴 특징 모델을 생성하여 프레임을 세 영역으로 나누고, 이 방법이 작은 얼굴의 특징을 유지할 수 있기 때문에 얼굴 영역을 렌더링하기 위해 새로운 스트로크 모델을 사용했다는 것이다.

그림 11a에서 볼 수 있듯이, [33]에서는 작은 뚜렷한 특징이 잘 표현되지 않았다.

그림 11의 첫 번째 행은 [33]과의 자세한 비교를 보여준다.

눈은 단지 몇 개의 스트로크로만 렌더링되어 세부적인 표현을 보기 어려웠다.

그러나 얼굴 특징 모델을 사용한 우리의 결과(그림 11c)는 얼굴 특징을 명확하게 유지했다.

그림 11c,d는 프레임 움직임 동안 이 방법이 스트로크 변형으로 기본 객체 움직임을 따를 수 있음을 보여주며, 이 샘플에서는 수염에 대한 작은 변형이었다.

그림 12는 서브영역 1, 즉 내부 얼굴 영역에 사용된 작은 스트로크 모델의 자세한 비교를 보여준다.

여기서 우리는 작은 스트로크 모델을 사용함으로써 얼굴의 가장자리와 안경이 우리의 결과에서 잘 유지되었음을 볼 수 있다.

그러나 이전 방법[33]에서는 큰 스트로크 모델이 잘 작동하지 않았다.

그림 13은 다른 딥러닝 방법[6]과의 영상 시퀀스 결과 비교를 보여주며, 여기서 Gatys, L.A.[6]는 소스 이미지를 예제 이미지의 스타일로 전송했다.

따라서 결과는 우리의 것과 크게 달랐지만, 우리의 관심 영역은 얼굴 특징 세부 사항과 시간적 렌더링이었다.

그림 14에서 볼 수 있듯이, 그들의 결과는 눈과 치아의 세부 사항을 명확하게 구분하지 않았으며 배경 스트로크는 각 프레임의 스타일 전송에 대해 매우 달랐다.

전체 영상에는 많은 깜박임이 있었다.

또한 몸체의 윤곽 주변에는 추가된 것처럼 보이는 후광이 있었는데, 이는 매우 부자연스러웠다.

우리의 방법에서는 결과가 애니메이션 동안 얼굴 특징을 효과적으로 유지할 뿐만 아니라 부자연스러운 스트로크 렌더링 없이 더 적은 시간적 아티팩트를 생성했다.

위의 내용에서 알 수 있듯이, 우리의 방법은 뚜렷한 얼굴 특징을 유지할 수 있었고 기본 객체의 움직임도 따를 수 있었다.

이러한 좋은 성능은 얼굴 특징 모델을 생성하기 위한 확장된 Mask R-CNN의 도입과 변형 스트로크 덕분이다.

또한 우리 방법의 스트로크는 프레임 동안 적응적으로 삭제되고 추가되었으며, 이는 시간적으로 일관된 애니메이션을 생성하는 데 도움이 되었다.

 

5. 결론

본 논문에서는 작은 얼굴이 포함된 인물 영상을 스타일화하기 위한 견고한 방법을 제안했다.

이전 방법과 비교하여, 이 방법에서 개선된 점은 우리의 렌더링 방법이 먼저 확장된 Mask R-CNN 방법을 사용하여 얼굴 윤곽 랜드마크와 얼굴 특징 영역을 동시에 감지하고 이를 단일 얼굴 특징 대신 모델로 취급했다는 것이다.

또한 우리는 이 얼굴 특징 모델을 영상 NPR을 위한 변형 가능한 스트로크와 결합했다.

실험 결과는 제안된 방법이 작은 얼굴의 뚜렷한 특징을 유지할 수 있음을 보여주었다.

향후 작업은 다음 측면에 초점을 맞출 것이다:

첫째, 데이터셋의 다양성을 증가시켜 측면 얼굴 감지의 정확도를 향상시키는 것이다.

둘째, 이미지의 다른 레이어를 더 잘 분리하고 더 다양한 스트로크 모델을 사용하여 얼굴과 특징의 경계에 대한 자연스러운 렌더링 결과를 달성하는 것이다.

또 다른 측면인 나이, 성별, 인종 인식이 더 인기를 얻고 있다.

나이, 성별, 인종 인식 정보와 다양한 스타일의 NPR 방법의 조합은 도전적이고 흥미로운 향후 작업을 나타낸다.


개념

Mask R-CNN: 객체 감지와 인스턴스 분할을 동시에 수행하는 딥러닝 모델로, 이미지에서 객체의 위치를 찾고 픽셀 단위로 정확한 마스크를 생성함

 

CNN: 이미지 처리와 컴퓨터 비전 분야에서 가장 널리 사용되는 딥러닝 모델, 컨볼루션, 풀링, 완전연결 층으로 구성, // 이미지 분류, 객체 감지, 얼굴 인식, 의료 영상 분석 등 다양한 분야에서 활용되며, 특히 이미지의 공간적 구조를 잘 파악할 수 있어 전통적인 신경망보다 이미지 처리에서 뛰어난 성능을 보임


얼굴 랜드마크 감지 CNN 분기: 얼굴의 주요 특징점(눈, 코, 입 등)을 자동으로 찾아내는 컨볼루션 신경망의 특화된 부분

비사실적 렌더링(NPR): 사진처럼 현실적이지 않고 예술적이거나 만화 같은 스타일로 이미지를 표현하는 컴퓨터 그래픽 기법

점 기반 렌더링 방법: 작은 점들을 이용해 이미지나 3D 모델을 표현하는 렌더링 기법

스트로크 기반 렌더링 방법: 붓질이나 펜 스트로크를 모방하여 회화적 효과를 만드는 렌더링 기법

Visual Geometry Group(VGG): 옥스포드 대학의 연구 그룹으로, VGG 네트워크라는 유명한 딥러닝 모델을 개발함

컨볼루션 신경망: 이미지 처리에 특화된 딥러닝 모델로, 필터를 사용해 이미지의 특징을 추출함

페인팅 텍스처: 그림의 질감이나 붓터치 같은 시각적 특성을 나타내는 요소

가우시안 차이(DOG): 두 개의 가우시안 필터 차이를 이용해 이미지의 경계선을 검출하는 방법

 

가우시안 필터: 이미지 처리에서 노이즈를 제거하고 이미지를 부드럽게 만드는 데 사용되는 필터

특징 랜드마크 세트: 얼굴에서 중요한 특징점들(눈꼬리, 코끝, 입꼬리 등)의 집합

시퀀스: 연속된 프레임들로 구성된 비디오나 이미지 순서

ResNet: 잔차 연결을 사용해 매우 깊은 신경망을 효과적으로 훈련할 수 있게 한 딥러닝 모델

백본: 딥러닝 모델에서 기본적인 특징 추출을 담당하는 핵심 네트워크 구조

FCN: Fully Convolutional Network의 약자로, 완전히 컨볼루션 층으로만 구성된 네트워크

ROIAlign: 관심 영역의 특징을 정확하게 추출하기 위한 풀링 방법

그라디언트 방향: 이미지에서 밝기 변화가 가장 큰 방향을 나타냄

알파 블렌딩 방법: 두 이미지를 투명도를 조절하여 자연스럽게 합성하는 기법

오일러 방법: 미분방정식의 수치해를 구하는 기본적인 방법으로, 작은 단계로 나누어 근사해를 계산

300-VW: 얼굴 랜드마크 검출을 위한 대규모 비디오 데이터셋으로, 다양한 환경에서 촬영된 얼굴 영상들을 포함

LabelMe: 이미지 주석 작업을 위한 온라인 도구로, 객체 분할과 라벨링에 사용

Adam 옵티마이저: 딥러닝에서 가장 널리 사용되는 최적화 알고리즘 중 하나로, 적응적 학습률을 사용하여 효율적으로 모델을 훈련시킴

Keras: 파이썬으로 작성된 고수준 딥러닝 API로, 신경망을 쉽게 구축하고 훈련할 수 있게 해줌

TensorFlow: 구글에서 개발한 오픈소스 머신러닝 프레임워크로, 대규모 딥러닝 모델 개발에 사용

RMSE: Root Mean Square Error의 약자로, 예측값과 실제값 사이의 차이를 측정하는 평가 지표. 값이 작을수록 모델의 성능이 좋다는 의미