전체 글 501

MoSAR: Monocular Semi-Supervised Model for Avatar Reconstruction using Differentiable Shading

내 맘대로 Introduction 더하기 더하기 더하기 논문. 3d reconstruction 더하기 + texturemap inpainting 더하기 + lighting condition estimation 더하기. 결과적으로 이미지가 들어갔을 때 해당하는 3D MESH + diffuse, specular, albedo, lighting 등등 렌더링에 필요한 모든 파라미터가 추정된다. 듣기만 해도 어마어마하게 데이터가 필요해 보이는데 역시 890명의 light stage dataset를 자체구축해서 사용했다.  더불어서 렌더링에 필요한 모든 요소가 결과물로 나오기 때문에 differentiable rendering을 통해 photometric loss를 걸어줄 수 있기 때문에 in-the-wild 이미..

Paper/Human 2024.10.15

Face Editing Using Part-Based Optimization of the Latent Space

내 맘대로 Introduction 오랜만에 읽고 마음에 쏙 든 논문. 3D Mesh VAE를 학습한 논문인데 아이디어는 별 것 아닌 것처럼 보이지만 고개를 끄덕이게 되는 simple yet effective 내용. 3D mesh (topology는 정해져있음)를 VAE latent로 encoding하는 과정에서 part 별로 latent를 따로 뽑고, part latent끼리를 영향을 주지 않도록 (다른 part vertex 위치 변화에 간섭하지 않도록) 학습을 해두는 것이 핵심이다. 이렇게 학습을 하면 나중에 vertex를 손으로 수정함 -> 해당 파트 latent만 inverse optimization으로 찾아냄 -> decoding -> 수정된 vertex 위치를 갖는 mesh가 나오는 활용이 가능..

Paper/Human 2024.10.15

Generalizable and Animatable Gaussian Head Avatar (a.k.a GAGAvatar)

내 맘대로 Introduction 단일 이미지로 부터 Gaussian head를 만드는 논문. 3DMM prior를 사용하기 때문에 driving image에서 뽑아낸 3DMM을 사용할 경우, animatable해진다. 학습은 video 데이터셋을 이용해서 자기 자신의 3DMM prior를 사용하지만 inference 시에는 다른 사람 이미지의 3DMM prior를 사용하는 방식이다.  결과가 인상 깊고 될까? 싶은게 돼서 신기하다.  핵심 아이디어는 freezed DinoV2를 encoder로 써서 generality를 출발부터 챙긴 점. feature plane으로부터 front, back side GS 값을 예측하도록 한 점이다. 전면만 예측하면 front view에 치중되는 문제가 있는데 back..

Paper/Human 2024.10.14

Arc2Face: A Foundation Model for ID-ConsistentHuman Faces

내 맘대로 Introduction arcface 논문을 낸 그룹에서 후속 연구 느낌으로 낸 논문. arcface가 Face ID embedding을 훌륭하게 해주는 네트워크인 점을 이용해서 arcface embedding을 condition으로 사용하는 face 전용 diffusion model을 만들었다.  diffusion model을 학습시킬만큼의 높은 자유도 ID embedding이 확보되어야 하므로 Webface42M + FFHQ + CelebHQ를 섞어서 arcface부터 large scale로 다시 학습시키고, 그것을 다시 diffusion model 학습에 활용했다. SD의 새로운 버전이라고 볼 수도 있어서 기존 controlnet 같은 trick이 다 가능하다는 점도 눈에 띈다. 메모앞서..

Paper/Generation 2024.10.08

ArcFace: Additive Angular Margin Loss for DeepFace Recognition

내 맘대로 Introduction 논문에 face가 들어가서 face recognition이 본체인 것 같지만 사실 additive angular margin loss가 본체다. triplet loss와 같이 positive 대상과는 가깝게, negative 대상과는 멀게 embedding해야 하는 상황에서 쓸 수 있는 loss다. 조금 오래 된 논문이기도 한데 뒤늦게 읽었다. 엄청 유명한 방식. log-softmax와 비슷한데, 단순히 값을 input으로 넣는 것이 아니라, learnable embedding N개를 만들어두고, 가까운 embedding과의 "각도"의 cosine 값을 사용한다. 직관적으로 보면 feature 간의 각도를 벌리도록 설계하는 것. 여기다 마진을 조금 더 더해주면 분별력이 ..

Paper/Others 2024.10.07

pytorch3d.io.IO 느린 로딩 속도 개선 방법

pytorch3d.io.IO를 이용해 obj 파일을 읽어서 사용한다. from pytorhc3d.io import IOmesh = IO().load_mesh(MESH_PATH).cuda() # () essential 근데 이상하게도 pytorch3d 내장 함수로 파일을 읽으면 현저히 느리다. 약 10MB 정도 크기의 파일을 기준으로 했을 때 대략 trimesh 읽는 속도보다 2배 느리다.  내부적으로 뭘 더 읽는지는 모르겠으나, 대부분은 vertex, face, color 3개만 있으면 되기 때문에 굳이 필요없는 연산일 것 같다.  개선법 from pytorch3d.structures import Meshes from pytorch3d.renderer import TexturesVertex mesh =..

Pytorch3d CUDA 12 이상에서 설치하기

https://github.com/facebookresearch/pytorch3d/blob/main/INSTALL.md pytorch3d/INSTALL.md at main · facebookresearch/pytorch3dPyTorch3D is FAIR's library of reusable components for deep learning with 3D data - facebookresearch/pytorch3dgithub.comMesh를 데이터로 활용한 학습을 구현할 때 diferrentiable rasterizer를 제공하기 때문에 유용한 것을 분명하나, 인기가 없어서 인지 버전 맞추는 것이 상당히 까다로운 pytorch3d다.  위 링크를 따라가 설치 가이드라인을 따라 해보면 웬만해서 한 번에 ..

ubuntu .cache, /var/log에 쌓인 파일 삭제하기 (pip, conda, jetbrains, etc)

아침에 출근하니까 갑자기 디스크 용량 부족 경고가 떴다. 디스크 잔여 공간이 0이 돼버리면 부팅도 안되는 운영체제가 우분투이다 보니까 디스크 관리를 미리미리 해야하는데 게을러서 안했더니 그 직전까지 왔더라. 확인해보니 대부분 코드나 가상환경 파일이어서 지울건 딱히 없고, 눈에 띄는 건 .cache 안에 가득찬 쓰레기들과.... 가상환경에 설치하기 위해 받아둔 패키지들이 차지하는 쓰레기가 많더라. 함부로 지우기엔 무서우니 일일이 삭제 방법을 찾아봤는데 유용한 건 다음과 같다. pip, condapip cache purge conda clean -all 일단 이 두 개를 치면 최소 pip, conda에서 지금 사용되지 않는 것들은 싹 지워진다. JetBrains나 같은 경우 pycharm cache가 잔뜩 ..

Knowhow/Linux 2024.09.12

Improving 2D Feature Representations by 3D-Aware Fine-Tuning

내 맘대로 Introduction요즘 foundation model이 온갖 feature extraction을 대체하고도 남을 정도로 잘 되다보니까 foundation model에서 나온 feature 갖고 노는 법, 업그레이드하는 법 같은 논문이 자주 보이는 것 같다. 이 논문은 DiNOv2를 예시로 썼지만 foundation model에서 나온 2D feature를 3D-aware형태로 튜닝하는 방법론을 설명한다. 2D 이미지를 어마어마하게 먹어서 어느 정도 3D-aware라고 "할 수도" 있겠지만 명시적으로 3D를 보고 배운 것이 아니기 때문에 아쉬운 점이 있다.  3D feature gaussian을 2D feature + camera pose로 학습시킨 뒤, 이를 이용해 다시 각 view의 2D..

Paper/Others 2024.09.11

pymeshlab decimation 안되는 버그

데이터 처리하다가 우연히 발견한 버그인데, pymeshlab의 decimation 기능이 제대로 동작 안할 때가 있다. import pymeshlab as mlms = ml.MeshSet()ms.load_new_mesh(ply_path)m = ms.current_mesh()num_verts = m.vertex_number()num_faces = m.face_number()simp_ratio = 0.1ms.meshing_decimation_quadric_edge_collapse_with_texture(targetperc=simp_ratio)ms.save_current_mesh(obj_path, save_textures=True, save_vertex_normal=False) 뭐 이런 식으로 pymeshla..

Trouble/Vision 2024.09.11