AI 공부 도전기

[논문 Summary] Animated Drawings (2023 SIGGRAPH) "A Method for Animating Children's Drawings of the human Figure"

 

     

 

논문 정보

Citation : 

저자

Harrison Jesse Smith, Qingyuan Zheng, Yifei Li, Somya Jain, Jessica K. Hodgins

Meta, Tencent, MIT CSAIL, Carnegie Mellon University

 

논문 링크

Official

https://dl.acm.org/doi/10.1145/3592788

 

Arxiv

https://arxiv.org/abs/2303.12741

 

A Method for Animating Children's Drawings of the Human Figure

Children's drawings have a wonderful inventiveness, creativity, and variety to them. We present a system that automatically animates children's drawings of the human figure, is robust to the variance inherent in these depictions, and is simple and straight

arxiv.org

 

Demo

 

https://sketch.metademolab.com/

 

Animated Drawings

 

sketch.metademolab.com

 

나름 재미있음. 추천.

 

논문 Summary

Abstract

 

We present a system that automatically animates children’s drawings of the human figure, is robust to the variance inherent in these depictions, and is simple and straightforward enough for anyone to use.

 

appeal of a novel twisted perspective retargeting technique.

 

Finally, we introduce the Amateur Drawings Dataset, a first-of-its-kind annotated dataset, 178,000 amateur drawings and corresponding user-accepted character bounding boxes, segmentation masks, and joint location annotations.

 

0. 설명 시작 전 Overview

 

4단계에 걸친 방법을 통해 아이들의 이미지를 실제로 움직일 수 있게하는 방안을 고려하였음.

이에 대한 Demo 또한 제공. (맨 아래 링크)

 

이때 Animation에 대하여 Twisted perspective retargeting으로 통한 Mixed perceptive 방법을 제안(상체 : frontal plane, 하체 : segattal plane에 projection)

 

기존 데이터와 데모를 통해 얻은 데이터를 정제하여 Amateur Drawings Dataset을 제공

 

1. Introduction

 

사람 모습에 대한 아이들의 묘사는 풍부한 감성으로 인하여 매우 다양하다. 

아이들이 그린 그림이 실제로 움직일 수 있다면 얼마나 좋을까만은 많은 노고가 들어간다.

이에 주어진 아이 그림에 대하여 자동으로 animate할 수 있는 system 설치를 디자인.

빠르고, 직관적이며 강건하다.

 

구성 시스템 4단계 

  • figure detection, segmentation masking, pose estimation/rigging, and animation

For object detection and pose estimation : detect human figures and joints. fine-tune these models for use with children’s drawings

 

For segmentation : image processing-based method

the animation step : twisted perspective commonly seen in children’s drawings to retarget motion capture data onto the character in a novel and appealing way.

 

3가지 실험 진행

1, 2) a set of experiments exploring the relationship between fine-tuning training set size and success rates. 

3) a perceptual study validating viewer preference for incorporating twisted perspective into the motion retargeting step.

 

publicly releasing a version of it as the Animated Drawings Demo [Meta 2022]. Launched in December 2021


Amateur Drawings Dataset: 178,166 drawings and user-accepted annotations collected, with consent, through the demo.

 

2. Background

 

2.1 Analysis of Children's Drawing

 

아이들의 그림이 가지는 특징들이 존재.

부자연스러움. 비율과 색이 다름

non-human parts와 같은 다양한 변주가 존재

 

이것들의 자동화된 character animation을 만들어야 함.

 

twisted perspective

 

 

2.2 2D Image to Animation

 

Live Sketch [Su et al. 2018]

Photo Wake-Up: 3D Character Animation from a Single Photo (CVPR 2019)

 

차이 2가지 

1) Photo Wake Up은 3D 모델로의 MR을 생성하지만, 본 방법은 2차원의 animating figure를 만듬

2) 아이들의 그림은 좀 더 추상적이고 비율적으로 정확하지 않아 사람같지 않는다.

이에 최소한의 segmentation cleaning이후 성공적인 animate를 진행.

 

모두 좋은 tool이지만 본 방법과는 맞지 않음.

 

2.3 Detection, Segmentation and Pose Estimation on Non-Photorealistic Images

 

non-photorealistic 이미지들에 대한 가능한 데이터 세트의 부족이 있었지만 최근 많은 데이터 세트를 제공하고 있다.

 

3. Method

 

목표 : 단일 인간 모습 그림으로부터 animation을 생성하는 시스템 구축

tablet 기반의 drawing interface는 피로하고 어려운 측면이 있어 팬, 크레용, 그림 등 다른 미술 물건을 통해 그린 그림으로 사용하는 것을 권함.

 

다음과 같은 sub-task가 존재

human figure detection, segmentation, pose estimation, and animation

 

 

 

  1. Bounding box를 통해 그림 속 human figure를 식별
  2. Bounding box 내 내용물의 segmentation mask를 구함.
  3. Bounding box 내 내용물의 pose estimation을 수행하고 skeletal joint를 식별
  4. motion capture data에 retargeting하여 character rig animation 수행
  5.  

3.1 Figure Detection

 

Mask R-CNN [He et al. 2017], with a ResNet-50+FPN backbone를 사용

MS-COCO dataset으로 훈련되었지만 이는 실제 물체로 구성되어 artistic renderings에 대한 목적에 부합하지 않음

-> fine-tuning

 

The model’s backbone weights are frozen and attached to a head, which predicts a single class, human figure.

optimized using cross-entropy loss and stochastic gradient descent with an initial learning rate of 0.02, momentum of 0.9, weight decay of 1e-4, and minibatches of size 8.

 

OpenMMLab Detection Toolbox 

https://github.com/open-mmlab/mmdetection

 

사용 GPU : 8Tesla V100-SXM2 GPUs.

 

 

실제로 COCO로 훈련시킨 pretrained Mask R-CNN을 활용하는 것보다 다시 fine-tune한 것이 더 bounding box 탐지를 잘 함. 

 

 

3.2 Figure Segmentation

 

다음 단계 a segmentation mask 획득 -> 매우 어려움

 

figure appearance의 많은 변주, texture, color 역시 제한적

Mask R-CNN은 부적절함.

 

figure의 2D texture mesh를 생성해야하기 때문에 모든 몸의 부위들은 포함하고 관련없는 배경요소들은 제거한 single polygon이 필요하다.

 

이를 위해 고전적인 이미지 처리 방법 사용

 

 

First, we resize the bounding box-cropped image to a width of 400 pixels while preserving the aspect ratio. 

 

Next, we convert the image to grayscale and perform adaptive thresholding, where the threshold value is a Gaussian-weighted sum of the neighborhood pixel values minus a constant C [Gonzalez and Woods 2008]. 

 

Here, we use a distance of 8 pixels to define the neighborhood and a value of 115 for C. 

 

To remove noise and connect foreground pixels, we next perform morphological closing, followed by dilating, using 3x3 rectangular kernels.

 

We then flood fill from the edges of the image, ensuring that any closed groups of foreground pixels are solid and do not contain holes. 

 

Finally, we calculate the area of each distinct foreground polygon and retain only the one with the largest area.

 

 

 

3행 : shows the masks predicted by the fine-tuned Mask R-CNN model

-> segmentation에 대해 잘 작동하지 않음.

 

제안한 고전적인 image-processing 방법이 더 나음.

 

Mask R-CNN model excludes or detaches body parts (a, b, g, h), improperly attaches limbs to the body or head (c, d, e, f,) or includes non-figure elements (f, h).

 

 

3.3 Pose Estimation

 

character의 복잡한 움직임을 위해서는 proportion과 pose에 대한 이해가 필요하다

그러나 sparse하고 abstract하기 때문에 이를 표현하는데 어려움이 있다.

animation step동안 joints 사용을 위한 keypoint의 작은 집합을 식별함.

 

 

17개의 keypoint의 존재를 토대로 그 위치를 예측할 수 있는 pose estimation 사용

대다수의 pose estimation model은 사람에 대해서 적합하기 때문에 본 방법에 바로 적용 불가.

 

ImageNet으로 pretrain한 ResNet-50을 backbone으로 하고, 각 joint location에 대한 개별 heatmap을 예측하는 a top-down heat map keypoint head를 활용하는 custom pose estimation 훈련.

resized to 192x256 

fed into the model

the highest-valued pixel in each heatmap is taken as the predicted joint location. 

Mean squared error is used for joint loss, 

optimization is performed using Adaptive Momentum Estimation with learning rate of 5e-4 

minibatches of size 512. 

 

OpenMMLab Pose Toolbox를 사용하여 훈련 수행.

https://github.com/open-mmlab/mmpose

 

GitHub - open-mmlab/mmpose: OpenMMLab Pose Estimation Toolbox and Benchmark.

OpenMMLab Pose Estimation Toolbox and Benchmark. Contribute to open-mmlab/mmpose development by creating an account on GitHub.

github.com

 

다른 모든 hyperparameter들은 toolbox가 제공하는 기본값 사용

GPU : 8 Tesla V100-SXM2 GPUs until convergence.

 

 cf)

아래 Figure와 gif 파일은 본 논문에서 활용하는 pose estimation 중 2023 CVPR에 제출한 RTMPose의 자료를 가져온 것이다.

보이는 바와 같이 각 관절에 대한 heatmap activation 부분에 대한 coordinate를 선정하여 이에 대한 keypoint를 추출하는 것으로 예상된다.(논문 안 읽음...)

 

cf)

rigging

리깅은 모델링 파일을 움직이기 위해 필요한 뼈대를 심는 작업이다.

사실 리깅과 스키닝 작업으로 나뉘는데, 대부분은 리깅과 스키닝 작업을 통틀어 리깅이라고 한다.여기서도 리깅작업은 사실상 리깅+스키닝 작업이라고 생각하면 된다.

 

https://helpx.adobe.com/kr/animate/using/character-rigging-in-animate.html

https://namu.wiki/w/%EB%A6%AC%EA%B9%85

 

 

 

 

3.4. Animation

 

create a rigged character, suitable for animation, from the mask and joint predictions. 

From the segmentation mask, we use Delaunay triangulation to generate a 2D mesh and texture it with the original drawing. 

 

cf 1)

Delaunay triangulation - https://darkpgmr.tistory.com/96

"들로네 삼각분할 : 평면위의 점들을 삼각형으로 연결하여 공간을 분할할 때, 삼각형들의 내각의 최솟ㄱ값이 최대가 되도록 분할하는 것. "

 

Using the joint locations, we construct a character skeleton

 

Finally, we assign each mesh triangle to one of nine different body part groups (left upper leg, left lower leg, right upper leg, right lower leg, left upper arm, left lower arm, right upper arm, right lower arm, and trunk) by finding the closest bone to each triangle’s centroid.

 

animate the character rig by translating the joints and using as-rigid-as-possible (ARAP) shape manipulation [Igarashi et al. 2005] to repose the character mesh.

 

cf 2)

as-rigid-as-possible (ARAP) shape manipulation - https://erkaman.github.io/posts/sorkine2007.html

  

 

오래된 애니매이션 테크닉으로 보임. 특정 위치에 대하여 길게 늘리거나 줄이는 방식으로 캐릭터의 animation을 진행.

 

[원문]

the X and Z position of the root joint from the motion caption actor’s skeleton, such that the skeleton’s root joint is always located above the origin. We also rotate the skeleton about the vertical axis such that its forward vector (defined as the vector perpendicular to the average of the vector connecting the shoulder joints and the vector connecting the hip joints) is facing along the positive X axis. We then project the skeleton’s joint locations onto a 2D plane (shortly, we will describe how to select the 2D plane).

 

Next, for the bones of the upper arms, lower arms, upper legs, lower legs, neck, and spine, we compute the global orientation of each bone within the 2D projection plane. We then rotate the corresponding bones of the character rig so as to match these global orientations. Using the new joint positions as ARAP handles, we repose the mesh. When the character rig is reposed this way, the lengths of the character’s bones are never foreshortened. This is an intentional design decision; foreshortening is quite rare in children’s drawings [Willats 2006], and we therefore opted for a method of animation that does not introduce it.



To apply root motion, we compute the per-frame root offset of the human actor and scale it by the constant ratio of the actor’s average leg length to the character’s average leg length. 

 

3D joint location을 2D 평면에 projecting할 때, 많은 평면을 선택할 수 있다.

상황 1) jumping jack할 때는 frontal plane에 project

상황 2) hip hop dance running man은 sagittal plane에 project할 때 recognizable하다.

따라서. projection place 또한 joint position variance만큼이나 보존되어야 한다.

 

 

cf 3)

root motion

https://docs.unrealengine.com/4.27/ko/AnimatingObjects/SkeletalMeshAnimation/RootMotion/

루트 모션(Root Motion)은 오브젝트의 위치와 회전을 애니메이션이 제어할 수 있도록 허용하는 것

 

스켈레톤 Root 본의 애니메이션을 기준으로 하는 캐릭터의 동작

 

 

저자들은 motion function에 따라 plane을 자동적으로 계산.

joint position을 전체 motion clip으로 plot -> PCA

첫 2개의 principal components는 joint position을 최대화할 수 있는 2D plane 정의

3번째 principal component는 vector normal 정의

a normal vector는 3번째 PC와 cosine similarity가 높은 것에 의존하여 frontal plane 또는 sagittal plane에 해당하는 2D projection place 선택.

 

 

 

이 projection 기법은 source 3D motion을 단일 plane으로 발생할 때 잘 작동.

그러나 어려울 때도 존재.

recognizable하게 motion을 잘 작동시키기 위해서는 동일 2D plane으로 제약하지 않아야함.

joint point clouds 생성 후 PCA 수행, upper limbs와 lower limbs에 대한 projection plane 선택

 

perspective를 섞는 방법으로 비현실적인 motion 가능.

twisted persective

mixing perspectives는 retargeting할 때, motion style로 움직일 수 있고 appealing 가능함.

 

3.5 User Interface

 

 

The purpose of the system is to empower users to create appealing animations from their children’s drawings.

  1. For the detection step
  2. In the segmentation step
  3. In the pose detection step
  4. a gallery of preselected motions 

Amazon Web Service에 적용. 수정이 없다면 10초 내외로 실행가능.

 

4. Evaluation and Analysis

 

4.1 Public Reception

대중적 관심을 받음.

평균 통계 설명

 

4.2 Effect of Training Sample Size

 

 

 

4.3 Twisted Perspective Animation Retargeting

 

evaluate our use of twisted perspective retargeting … 66 subjects.

평가자들은 20개의 video 시청

4개의 figure 각 5개의 motion

 

each video were two side-by-side animations: 

  • one animation had been created with a twisted perspective, by projecting … different planes
  • while the other animation used only a single plane of projection

 

시청하는 사람들은 어떤 motion이 더 설득력이 있는지 선택해야함.

Table 3는 twisted perspective motion retargeting을 더 선호하는 %를 나타냄

20개 중 16개는 상당한 선호도를 보임.

Wave Hello에 해당하는 부분에 있어서 비슷한 결과를 내기때문에 차이가 적음

결론 : This observation suggests that twisted perspective retargeting may not be necessary in all situations; rather it is more useful when both the arms and the legs have substantial motion in different planes.

 

cf)

 

What is image retargeting?

Image retargeting is the task of making images capable of being displayed on screens with different sizes. This work should be done so that high-level visual information and low-level features such as texture remain as intact as possible to the human visual system.

https://link.springer.com/article/10.1007/s11042-020-10185-0

 

What is retargeting in 3d?

Animation Retargeting is a feature that allows animations to be reused between characters that use the same Skeleton asset but may have vastly different proportions.

https://docs.unrealengine.com/4.26/en-US/AnimatingObjects/SkeletalMeshAnimation/AnimationRetargeting/

  

 

5. Amature Drawing Dataset

 

 

5.1 Refinement

 

Demo 이용시 데이터 활용에 대해 물어봄. 선택사항.

아마추어 그림이 아닌 경우에 대한 filter가 필요

2단계

  1. self-supervised clustering approach 사용
  2. 수동으로 확인

 

5.1.1 Cluster-based Filtering

 

 

MoCo v2 (2020)를 토대로 ResNet-50 feature extractor를 재훈련하여 2048차원의 embedding space를 project함. kmeans로 100개의 개별 cluster를 사용하여 68개의 cluster는 삭제. 나머지 32개 cluster는 보존

 

 

32 clusters내에서도 비슷한 이미지들이 존재.

embedding space간의 Euclidean distance를 구해 거리가 0.5보다 작으면 이미지 삭제.

471,405 images 남음.

 

 

5.1.2 Manual Reveiw

 

여러 기준과 조건에 의해 손수 검토.

(저작권 이미지, 외설적인 것들, 아이들 그림이 아닌 것 등 기준에 부합하지 않은 것들 모두 손수 제외)

 

5.2 Release

 

While the dataset includes the user-accepted character bounding boxes, segmentation masks, and joint positions, we have not attempted to guarantee the accuracy of these annotations

 

수정이 많았고 수정하면 성능 향상

 

6. Conclusion

 

길게 contribution 설명
+

2가지 한계

two broad limitations

1) First, only certain motions can be appealingly retargeted in this manner. Not all limb motions can be well represented on a 2D plane

2) Second, our animation method is also limited by the style of the drawing. If the figure is drawn with foreshortening and proper perspective, the character-motion stylistic mismatch may be undesirable

  • 이 경우 3D 모델이 더 적합

 

 

 

Reference

공식 Github

https://github.com/facebookresearch/AnimatedDrawings

 

GitHub - facebookresearch/AnimatedDrawings: Code to accompany "A Method for Animating Children's Drawings of the Human Figure"

Code to accompany "A Method for Animating Children's Drawings of the Human Figure" - GitHub - facebookresearch/AnimatedDrawings: Code to accompany "A Method for Animating Childre...

github.com

 

https://about.fb.com/news/2021/12/using-ai-to-animate-childrens-drawings/

 

Using AI to Animate Children’s Drawings | Meta

We’ve built a first-of-its-kind method for using AI to automatically animate children’s drawings of people.

about.fb.com

 

Project Website

https://fairanimateddrawings.com/site/home

 

FAIR Animated Drawings

 

fairanimateddrawings.com

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading