전체 글 538

iHuman: Instant Animatable Digital Humans From Monocular Videos

내 맘대로 Introduction ExAvatar와 같은 문제, 다른 접근법. 하지만 mesh는 조금 더 빠르고 mesh 품질이 조금 더 좋은 느낌. rigging은 조금 더 부자연스러운 느낌.  video to animatable 문제를 풀기 위해 SMPL에 3DGS를 할당하고 video sequence를 이용해서 3DGS property를 업데이트하는 방식. 수렴이 되면 3DGS가 그럴듯한 렌더링을, SMPL이 다양한 자세를 제공한다.  이 논문의 전제 조건도 ExAvatar와 같이 SMPLX이 fitting되어있다는 것을 깔고 간다. SMPL face마다 할당된 3DGS가 skinning weight를 갖고 있다는 점이 차이점. skinning weight를 추가로 업데이트하기 때문에 보다 자연스러..

Paper/Human 2024.08.20

삼체 1 : 삼체 문제

끄적끄적오랜만에 책 하나 읽었다. 거의 2달 간 회사 옮기고 책에 흥미를 못 느껴가던 중 형의 추천으로 중국 SF 삼체를 읽어보기로 했다. 넷플릭스 영화로 만들어졌다는 점, 중국 소설을 읽어본 적 없던 점, 복잡한 책보다 머리 식힐 책이 필요했던 점 때문에 골랐다. 짧은 평800 페이지가 조금 넘는 많다면 많은 분량의 책이지만 전체의 1/3 밖에 안되는 내용이라 아직은 전체 큰 그림이 그리 잘 그려지진 않는다. 주제 자체가 단순히 쉬욱 펑펑펑 하는 식의 공상이라면 읽기 쉬웠겠지만, 우주를 배경으로 하고 기초과학을 기반으로 상상한 내용들이어서 집중하지 않으면 읽기가 쉽진 않다. 중성자, 양성자, 행성 간의 인력, 전파 증폭 등 키워드들만 들어도 배경 지식이 있을 사람이 몇이나 있을까 싶은 내용들 위에 쌓은..

Book/Fun 2024.08.18

The Wave Kernel Signature:A Quantum Mechanical Approach to Shape Analysis (a.k.a WKS)

내 맘대로 Introduction 2010년 전후로 3D point descriptor를 만드는 연구가 인기가 꽤 있었나보다. 이 논문 역시 HKS와 마찬가지로 mesh vertex descriptor를 어떻게 하면 locality, globality 다 만족시켜서 만든 수 있을지 고민한 논문이다. 맨 처음 봤을 때 컨셉을 이번엔 열역학을 넘어서 양자역학에서 가져왔다길래 뇌절 논문인 줄 알았는데 아니었다.  핵심 아이디어는 mesh 형상에 따라 열이 퍼지는 양상을 descriptor로 썼던 HKS와 비슷하게, mesh vertex를 입자 1개로 보고 입자 하나에 집중되는 파동 에너지를 descriptor로 쓰는 것이다. 자세히는 이해를 못했다만 컨셉만 보면, 입자 1개는 주변 입자들과 인력/척력을 주고 ..

Paper/3D vision 2024.08.16

A Concise and Provably Informative Multi-Scale Signature Based on Heat Diffusion (a.k.a HKS)

내 맘대로 Introduction *요즘은 최신 논문을 이해하는 것보다 과거 논문을 이해하는게 더 어려운 것 같다. 기념비적인 논문들은 특히 수학적으로 탄탄하기 때문에 내 부족한 수학 밑천으로는 이해하기가 벅차다. 이 논문도 마찬가지인 논문이고, 사실 상 10% 정도 컨셉 이해에 그쳤다. 정리 수준이 부끄럽지만 그래도 10%라도 잘 기억해보려고 기록해본다.  이 논문은 간단히 말하면, Mesh vertex를 xyz, normal 외에 어떤 property로 표현할 수 있을지 고민한 느낌이다. 다시 말하면 mesh vertex descriptor를 만드는 방법을 설명한다. 3D correspondence나 segmentation에 응용할 수 있는 기본기다. 핵심 아이디어는 열역학에서 나왔다. 열이 어떤 형..

Paper/3D vision 2024.08.16

Neural Jacobian Fields: Learning Intrinsic Mappings of Arbitrary Meshes

내 맘대로 Introduction 앞선 논문들의 핵심 래퍼런스 논문으로 언급된 NJF. 짱도비에서 쓴 논문답게 완성도가 대단하다. 역작 논문.  mesh to mesh deformation을 학습하는건데, face의 R|t를 직접 다 찾아내는게 아니라. R만 찾아내도록 하고 뒤에 Poisson solver를 붙여 최적화로 나머지 위치를 찾아낸다. 네트워크는 오로지 주어진 point feature와 global feature (optional)로부터 각 face가 어떻게 회전될지 그 gradient만 예측하도록 하면 된다. 자유도를 확 낮추고 뒤에서 최적화가 도는 방식이다보니까 효율적이고 성능도 높아 보인다. 수학이 묻어나는 논문이라 이것 역시 정확한 이해는 어려웠지만, 컨셉이 좋아서 기록해둔다. 메모목적..

Paper/3D vision 2024.08.09

Neural Face Rigging for Animating and Retargeting Facial Meshes in the Wild

내 맘대로 Introduction 이 논문은 임의의 Face mesh가 들어왔을 때, 3DMM expression mesh를 driving signal로 이용해서 표정을 변화시키는 논문이다. expression feature와 id feature를 뽑아내는 두 개의 encoder, deformation field를 뱉어내는 한개의 decoder로 구성되어 있다. 목적 분명, 구조 깔끔, 방식 깔끔. 되게 좋은 논문이라고 생각한다. 학습을 위해선 3DMM이 fitting된 다양한 표정의 Face mesh가 필요하다.  그림도 잘 그려서 보면 바로 이해된다. 메모1) id encoder  : diffusion net 구조입력 : 무표정 임의의 mesh출력 : id latent2) exp encoder : d..

Paper/Human 2024.08.09

DiffusionNet: Discretization Agnostic Learning on Surfaces

내 맘대로 Introduction이 논문은 내 머리로는 한 방에 이해할 수가 도저히 없다. 수학, 수학, 수학한 논문이어서 수학 베이스가 약한 나로서는 이해할 방법이 없다. 이를 이해하기 위해서 파고들기엔 뭐를 봐야할 지도 잘 모르는 수준이어서 그냥 컨셉만 익히고 넘어간다.  이 논문의 핵심은 임의의 mesh가 주어졌을 때, vertex들을 어떻게 encoding해야 효과적으로 feature를 뽑아낼 수 있을지 그 방법을 설명하는 것이다. 예시가 사람이라서 human mesh 국한인 것으로 오해할 수 있으나, topology에 오류가 없는 mesh라면 어느 mesh든 적용 가능하다. 핵심 컨셉은 각 vertex를 동일한 가중치로 다루고 여기서 뽑은 feature도 동일하게 쓸 것이 아니라, 사전에 mes..

Paper/3D vision 2024.08.09

LeGO: Leveraging a Surface Deformation Network for Animatable Stylized Face Generation with One Example

내 맘대로 Introduction 이 논문은 임의의 face mesh를 특정 스타일의 mesh로 바꾸고 (e.g. 고블린) 3DMM 파라미터 갖고 변형이 가능하도록 한 논문. general to general 은 아니고 general input to fine-tuned unique styled output 형태다.  핵심 아이디어는 3DMM 갖고 일반적으로 사람 얼굴 형상 변형에 특화된 backbone을 하나 만들어두고, 대상이 정해지면 그 스타일의 mesh만 갖고 input to styled mesh fine tuning하는 방식. 이 때 데이터가 충분하지 않으니 self-supervised + CLIP을 활용한 점. 3DMM을 강하게 사용하는 방법론이다보니, styled mesh 역시 3DMM을 변형..

Paper/Human 2024.08.09

ONNX 모델 GPU inference 안 될 때, onnxruntime-gpu 에러 날 때

ONNX 모델 변환 완료한 뒤, python이든 c#이든 inference할 때 CPU로 도는 현상이 있다.  nvidia-smi 찍어보면 메모리 사용량 뿐만 아니라 사용률 또한 0%로 계속 찍힌다. 이유는 onnxruntime과 CUDA, cuDNN 버전이 안맞아서다. 높은 확률로 현재 CUDA12 사용할 때일 것. https://onnxruntime.ai/docs/install/ Install ONNX RuntimeInstructions to install ONNX Runtime on your target platform in your environmentonnxruntime.ai 홈페이지 안내사항을 읽어보면 코딱지만하게 기본 CUDA 설정이 11.X라고 적혀있다.  즉, 설치된 onnxruntime..

Trouble/Others 2024.08.07

Open3d mesh wrong vertex count, face order (Open3d mesh 제멋대로 읽혀질 때)

open3d로 mesh를 읽으면 가끔 vertex 개수가 잘못되어 있거나, face를 구성하는 vertex index가 다른 것을 볼 수 있다. 보통 후자는 앞의 vertex 개수가 바뀌면서 꼬인 것으로 연쇄적인 현상이다.  이유를 찾아보니 정말 버그였는데, read_triangle_mesh를 사용할 때 내부적으로 enable_post_processing=False가 동작을 안하도록 하드 코딩되어 있어서 파일을 자체적으로 한 번 수정하기 때문이었다.  (enable_post_processing=True로 하면 또 다르게 바뀌는 걸로 봐서 단순히 True/False 전환 문제라기 보다 어딘가에 하드코딩된게 있나보다. open3d를 직접 고칠 수는 없으니 기다리는 수 밖에) https://github.com..

Trouble/Vision 2024.08.07