Artoke

애니 논문: AnimeInterp: 2D 애니메이션 중간 프레임 보간의 특수성

실사 영상에서 잘 돌아가던 프레임 보간 모델을 2D 애니메이션에 그대로 물리면, 결과가 눈에 띄게 무너진다. 사람 얼굴이 뭉개지고, 손이 두 개로 번지고, 배경은 멀쩡한데 캐릭터만 유령처럼 흐른다. Siyao 등이 CVPR 2021에서 발표한 AnimeInterp는 이 붕괴가 모델 성능 부족이 아니라 애니메이션이라는 매체의 구조적 특성에서 온다고 본다. 그리고 그 특성에 맞춘 파이프라인을 새로 짠다.

왜 실사용 보간기가 애니에서 깨지는가

대부분의 프레임 보간은 두 프레임 사이의 광류(optical flow)를 구하는 데서 시작한다. 광류 은 프레임 의 각 픽셀이 에서 어디로 갔는지를 알려주는 2차원 벡터장이다. 좌표 에 대해 는 그 픽셀의 이동량이다.

광류 추정의 뿌리에는 밝기 불변 가정이 있다.

즉 같은 물체 점은 움직여도 밝기가 같다는 것. 여기에 1차 테일러 전개를 붙이면 익숙한 광류 제약식이 나온다.

는 이미지의 공간 기울기, 는 구하려는 속도 벡터, 는 시간 방향 밝기 변화율이다. 이 식 하나로는 의 두 성분을 못 정하므로(조리개 문제), 실제 알고리즘은 주변 픽셀의 텍스처 변화를 끌어와 방정식을 늘린다.

애니메이션은 바로 이 지점에서 조건을 위반한다.

  • 평평한 색면. 셀 채색된 영역 안에서는 이다. 기울기가 0이면 제약식이 으로 퇴화해 에 대한 정보를 전혀 주지 못한다. 캐릭터의 뺨 한복판, 머리카락 덩어리 내부는 광류가 사실상 미결정 상태다.
  • 텍스처 부재. 실사 영상은 미세 노이즈와 질감이 매칭의 단서가 되지만, 애니는 그 단서 자체를 지워둔 그림이다.
  • 크고 비선형인 움직임. 애니는 보통 2~3프레임에 한 장씩 그린다(리미티드 애니메이션). 그래서 인접 원화 사이의 변위가 실사보다 훨씬 크고, 등속 직선 운동과도 거리가 멀다.

정리하면, 매칭 단서는 적은데 찾아야 할 이동량은 크다. 지역적 기울기에 의존하는 방식이 여기서 버틸 이유가 없다.

발상의 전환: 픽셀이 아니라 색 조각을 맞춘다

AnimeInterp의 핵심 관찰은 뒤집어 읽으면 기회가 된다. 평평한 색면은 광류에는 재앙이지만, 영역 분할에는 축복이다. 경계가 선명하고 내부가 균일하니 조각으로 자르기가 쉽다.

그래서 픽셀 단위 매칭 대신 색 조각(color piece) 단위 매칭을 한다. 각 프레임을 색이 균일한 조각들의 집합으로 분해한다.

는 앞 프레임의 번째 색 조각, 는 뒤 프레임의 번째 조각이다. 문제는 "픽셀 가 어디로 갔나"에서 "조각 가 어느 가 되었나"로 바뀐다. 미지수의 개수가 수십만에서 수백으로 줄고, 각 미지수는 훨씬 풍부한 증거(면적, 평균색, 모양, 이웃 관계)를 갖는다.

애니 논문: 논문 — AnimeInterp: 2D 애니메이션 중간 프레임 보간의 특수성 도식

매칭 비용을 어떻게 정의하나

조각 가 같은 대상인지 판단하려면 둘 사이의 거리를 정의해야 한다. 하나의 단서만으로는 부족하다. 색만 보면 같은 머리색 조각들이 뒤섞이고, 위치만 보면 큰 움직임에서 틀린다. 그래서 여러 단서를 가중합한다.

각 항의 뜻은 이렇다.

  • 색 거리. 조각의 대표 색(평균 RGB 또는 Lab 값) 차이다. , 여기서 내부 픽셀 색의 평균. 셀 채색 특성상 같은 부위는 색이 거의 그대로 유지되므로 이 항이 강력하다.
  • 위치·형태 거리. 조각 중심 사이의 거리 와 면적 비율 차이를 함께 본다. 프레임 간 움직임이 무한정 크지는 않다는 사전 지식을 넣는 항이다.
  • 문맥 특징 거리. 사전학습된 CNN에서 뽑은 특징맵을 조각 영역 위에서 평균 풀링한 벡터 를 쓴다. 같은 코사인 형태. 색과 위치가 헷갈릴 때 "이건 눈이고 저건 단추다" 수준의 의미 정보를 보태준다.

는 세 단서의 상대적 신뢰도를 조절하는 가중치다. 최종 대응은 이 비용 행렬 위에서 전체 합을 최소화하는 조합으로 찾는다.

는 앞 프레임 조각을 뒤 프레임 조각에 대응시키는 배정이고, 가 총비용이 가장 작은 배정이다. 개별로 가장 닮은 짝을 탐욕적으로 고르는 대신 전역 최적을 보는 이유는, 여러 조각이 한 조각에 몰리는 붕괴를 막기 위해서다.

대응이 정해지면 조각 단위 변위를 광류의 초기값으로 뿌린다. 에 속한 모든 픽셀 에 대해

이것이 기울기 없는 영역에도 광류를 채워 넣는 방법이다. 픽셀이 스스로 말하지 못하니, 자기가 속한 덩어리의 이동을 물려받는다.

거친 흐름을 다듬기

조각 중심의 차이는 평행이동만 담는다. 회전·변형·조각 내부의 비균일한 움직임은 표현하지 못한다. 그래서 이 초기값을 신경망에 넣고 반복적으로 보정한다.

번째 반복에서의 광류 추정, 는 파라미터 를 가진 갱신 네트워크, 는 이번 회차의 수정량이다. 반복 구조는 큰 변위를 한 번에 맞히려 애쓰는 대신 조금씩 좁혀 들어간다. 출발점이 이미 조각 매칭으로 대략 맞춰져 있기 때문에, 이 반복이 엉뚱한 극소점으로 빠질 위험이 크게 줄어든다. 순서가 중요하다 — 거친 전역 대응이 먼저, 미세 보정이 나중이다.

중간 프레임 만들기

양방향 광류 가 준비되면, 시각 의 중간 프레임에서 양 끝으로 향하는 흐름을 근사한다. 등속 가정 아래 흔히 쓰는 형태는

는 두 원본 프레임 사이의 상대 시각이다. 면 정확히 가운데. 는 만들려는 프레임의 픽셀이 의 어느 좌표에서 색을 가져와야 하는지를 가리킨다.

이 흐름으로 양쪽을 역워핑한 뒤 섞는다.

는 이미지 를 흐름 에 따라 워핑하는 연산이고, 은 가시성 맵이다. 어떤 픽셀이 에서는 가려져 있고 에서만 보인다면 가 그 자리에서 작아져 쪽 기여를 키운다. 는 원소별 곱, 분모는 가중치 정규화다. 팔이 몸통을 지나갈 때 생기는 가림/드러남을 이 항이 처리한다.

측정할 데이터가 없었다는 문제

이런 연구가 늦어진 이유 중 하나는 벤치마크의 부재다. 저자들은 ATD-12K라는 데이터셋을 함께 내놓았다. 실제 애니메이션 작품에서 뽑은 약 12,000개의 삼중항(앞·중간·뒤 프레임)으로, 움직임 크기와 난이도에 대한 주석이 붙어 있다. 데이터셋이 있어야 "쉬운 구간에서만 잘하는 모델"과 "큰 움직임을 견디는 모델"을 구분할 수 있다. 논문이 남긴 실질적 기여 중 이 부분의 비중이 작지 않다.

자동화가 끝내 닿지 못하는 곳

여기서 이 논문이 조용히 드러내는 더 큰 이야기가 있다. AnimeInterp가 푸는 문제는 "A와 B 사이를 기하학적으로 잇는 일"이다. 그런데 인비트윈 작업의 핵심은 거기에 있지 않다.

애니메이션에는 타이밍스페이싱이라는 두 축이 있다. 타이밍은 A에서 B까지 몇 장을 쓸 것인가, 스페이싱은 그 장들을 A와 B 사이 어디에 배치할 것인가다. 위 식의 를 보자. 를 넣으면 물리적 한가운데가 나온다. 하지만 원화가는 종종 중간 장을 A 쪽에 바짝 붙인다. 그러면 동작이 천천히 시작해 끝에서 확 터지는 느낌이 생긴다. 반대로 붙이면 반대의 인상이 된다. 같은 두 장 사이에서도 를 어디에 두느냐로 무게감, 관성, 심지어 캐릭터의 성격이 달라진다.

보간 모델은 를 입력으로 받을 뿐, 스스로 정하지 않는다. 정할 근거도 없다 — 그 판단은 두 프레임 안이 아니라 장면의 감정, 컷의 리듬, 연출 의도에 들어 있다. 를 아무리 정확히 구해도 가 연출 의도와 어긋나면 결과는 기술적으로 옳고 감각적으로 틀린 그림이 된다.

스페이싱은 한 걸음 더 나간다. 실제 원화 사이에는 물리적으로 존재할 수 없는 형태가 자주 들어간다. 임팩트 순간의 과장된 늘어남, 예비 동작에서의 눌림, 한 프레임만 스치는 스매어. 이들은 의 보간이 아니라 그 밖으로 나가는 그림이다. 두 끝점 사이를 잇는 것으로 정의된 모델의 탐색 공간에는 애초에 포함되지 않는다.

그래서 AnimeInterp를 읽는 정직한 방식은 이렇다. 이 연구는 인비트윈을 자동화하지 않는다. 인비트윈이라는 작업에서 기하학적 대응 찾기라는 하위 문제를 떼어내 잘 푼다. 그리고 그 과정에서, 남은 부분 — 무엇을 언제 얼마만큼 —이 얼마나 다른 종류의 문제인지를 선명하게 만든다.

출처

광고

리깅 파이프라인 자동화 도구

반복 작업은 스크립트에게. 현업에서 쓰는 리깅 툴 모음.

리깅 도구 보기