분류 전체보기 538

Meshlab Ubuntu 22.04 에서 사용 안될 때

sudo apt install meshlab 이렇게만 치면 잘 깔리는 meshlab. obj 파일을 열어보면 ubuntu 22.04에서는 아무 오류없이 바로 꺼진다.  이슈를 검색해보면 비슷한 일을 겪은 사람들이 꽤 있는 것 같은데 명확하게 어떻게 해결하라는지 방법이 크게 없다.  snap을 이용한 방식은 ubuntu 18.04 이후로 안 되는 것 같다. apt를 이용해 meshlab을 설치하는 것처럼 시스템에 설치해버리는 방법은 없더라. https://www.meshlab.net/#download MeshLab the open source system for processing and editing 3D triangular meshes. It provides a set of tools for editi..

Trouble/Others 2024.07.24

Production-Ready Face Re-Aging for Visual Effects

내 맘대로 Introduction 이 디즈니 논문 이해하려고, StyleFlow, SAM 도 읽었다...  SAM 논문에서 image to styleGAN latent w + condition 주는 방법을 제안하고 준수한 성능을 보였지만, 조금 네트워크가 복잡하고 (pretrained network가 덕지덕지) 약간의 artifact(배경이 달라지거나, 헤어스타일이 바뀌는 것 등)가 생기는 문제가 있다.  이는 latent만 찾아주고 이미지를 생성하는 것은 전적으로 pretrained styleGAN2 generator에게 맡겨버리기 때문이다.  이 논문에서는 다 떼고 앞선 SAM으로 데이터를 만들고, generator를 따로 학습하는 한다. 이 때 generator가 얼굴에만 집중할 수 있도록 얼굴 마..

Paper/Generation 2024.07.24

Only a Matter of Style: Age Transformation Using a Style-Based Regression Model

내 맘대로 Introduction 2020년 StyleFlow 에서 styleGAN latent space를 잘만 컨트롤하면 원하는 condition을 넣어 원하는 이미지를 생성할 수 있다는 가능성을 보여준 이후, 2021년 이 가능성을 aging condition으로 특화한 논문이다.  StyleFlow는 z->w 과정에서 condition을 주어 이미지를 생성하는 것이므로, 시작이 random gaussian noise다. 따라서 condition만 만족하고 나머지는 랜덤이다. 얼굴이나 스타일 안경, 이런건 랜덤 생성이다. 이 SAM 이라는 논문은 image->w로 가는 네트워크를 학습한다. 따라서 image + condition -> w를 학습해서 image 특성은 유지하되 condition이 추가..

Paper/Generation 2024.07.24

StyleFlow: Attribute-conditioned Exploration of StyleGAN-Generated Images using Conditional Continuous Normalizing Flows

내 맘대로 Introduction 디즈니에서 만든 aging 네트워크 논문을 읽다가, 핵심 참조 논문이어서 여기까지 내려왔다. 이 논문은 2020년 논문으로 StyleGAN2가 폭발적인 인기를 얻던 시절, StyleGAN2 latent space를 해석하는 논문이다. 다른 말로, styleGAN2의 latent space에서 원하는 조건을 만족하는 latent를 찾아내고 결과적으로 원하는 이미지를 생성하도록 유도하는 방법을 설명한다. 마치 요즘 diffusion model에 IPAdapter나 controlnet을 붙여서 conditioned image generation을 하는 것과 같다. StyleGAN2 버전 condition 주는 방법이다. 핵심 아이디어는 pre-trained styleGAN의 ..

Paper/Generation 2024.07.24

FLAME head model, chumpy dependency 없는 파일 만들기

https://flame.is.tue.mpg.de/ FLAME flame.is.tue.mpg.de 위 head model은 얼굴 다루면 반드시 만나는 FLAME 모델. 2017년 논문이다 보니 모델 구축이나 파라미터 최적화 같은 작업들에 필요한 auto-diff 기능들이 필요했을 때 torch보단 chumpy 라는 라이브러리를 사용했다.  이 chumpy는 python 2.0에서 만들어진 것으로 비교적 옛 버전들의 3rd party들과 dependency를 갖고 있고, 요즘 python3에서도 사용 가능하더라도 FLAME 모델 외에는 사용할 일이 pytorch 때문에 전혀 없으므로 굳이 사용할 필요가 없다.  설치조차 이제는 굳이 할 필요가 없는 옛 라이브러리가 되어버렸다.  근데 FLAME 모델 제공되..

Knowhow/Vision 2024.07.24

High-Quality Passive Facial Performance Capture using Anchor Frames

내 맘대로 Introduction High-Quality Single-Shot Capture of Facial Geometry 2010년 논문을 그대로 multiview video 입력으로 어떻게 확장할 수 있는지 고민해서 나온 2011년 디즈니 논문. 핵심 방법론은 2010년 논문이랑 똑같은데, 여기서 다루는 contribution은 각 reconstruction마다 tracking을 해서 하나의 topology로 엮는 것이다.  optical flow를 또 disparity만큼이나 고도로 계산해서 모든 픽셀이 tracking이 되도록 설계했고, 이를 바탕으로 3D point가 모든 frame에 대해서 공통으로 사용되게 했다.  완성도가 너무 높다. 2011년인데. 메모1) 기존 알고리즘으로 매 프레임..

Paper/Human 2024.07.19

High-Quality Single-Shot Capture of Facial Geometry

내 맘대로 Introduction 압도적인 썸네일...이게 2010년 수준인게 말이되나 싶을 정도로 압도적이다. 지금 기술력으로도 터무니없을 정도로 고수준의 복원 알고리즘. 디즈니에서 만들었고 코드 공개는 없다. 따라서 그냥 마스터 피스처럼 구경만 할 수 있는 논문. 핵심 아이디어는 1) 엄청 정확한 캘리브레이션 2) 스테레오 pair로 묶어서 엄청 정확한 disparity 계산 이다. 특히 2)에서 coarse-to-fine을 넘어서 coarse-to-fine-fine-fine으로 될때까지 0.01mm 움직이면서 튜닝하는게 압도적.  물론 DSLR로 대충 찍은 12M 픽셀 정도가 아니라 초초고해상도 이미지가 받쳐주어야겠지만, NCC 만으로 이정도로 disparity 계산해낸 것이 대단하다.  메모카메라..

Paper/Human 2024.07.19

As-Rigid-As-Possible Surface Modeling

내 맘대로 Introductionregistration에서 무조건 사용하는 non-rigid ICP의 핵심 원리가 나와있는 논문. ARAP이라고 불리기도 하는데, 2007년 논문이다. 이젠 15년도 더 된 논문인데 아직까지 사용되고, 이것만 한게 없다고 하는 논문. 임팩트가 참 좋은 것 같다. 논문도 깔끔함. mesh deformation 시에 mesh가 stretching, shear같은 non-linear deformation을 당연히 겪게 되는데 이를 그냥 열린 문제로 최적화하면 형상이 일그러진다. 핵심 아이디어는 stretching, shear가 발생하더라도 국소적으로 face와 그 주변 face들만 보면 rigid하게 움직인다는 것이다. 마치 자전거 체인이 각 분절은 쇠라서 고정되어 있지만 전체..

Paper/Others 2024.07.16

Open3d ray casting 쉽게 하기, 2d point to mesh intersection 찾기

camera pose, intrinsic parameter, 2d keypoint를 알고 있을 때 이를 3D mesh으로 back projection하려면 ray casting을 해야 한다. 직접 구현하려면 연산량 문제로 속도가 어마어마하게 느리기 때문에 최적화가 잘 된 기능을 가져와서 사용하는게 무조건 낫다.  우회법으로 3d mesh vertex를 projection한 뒤, 2d keypoint와 가장 가까운 vertex를 찾아내는 식으로 할 수 있겠지만, 이 방법은 vertex가 충분히 많아야 하고, mesh가 1겹일 때만 가능하다.  얼굴을 예로 들면, face keypoint와 head mesh 간의 비교 시 우회법으로 구현하면, 눈 keypoint가 뒤통수에서 나오는 경우가 있다. 당연하게도,..

Knowhow/Vision 2024.07.16