분류 전체보기 536

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

Expressive Whole-Body 3D Gaussian Avatar

내 맘대로 Introduction 이 논문은 video -> SMPLX(+offset) + LBS. 비디오에서 해당 사람의 animatalbe avatar를 얻어내는 것이 목적.  핵심 아이디어는 1) HybrIK-X + DECA + mmpose를 다 활용한 강한 초기화 (registration) 2) triplane으로 per-vertex offset, isotropic 3DGS 값 찾기 이다. 알고리즘적 진일보보다 기존 알고리즘들 잘 활용하고, 섬세하게 최적화해서 완성도를 높이는데 기여한 논문이라고 생각한다. 논문에 기재된 전처리, 후처리, 최적화 노하우 밑에 한 스텝 한 스텝 보다 높은 완성도를 위해 구른 내용이 있어 보인다.  HybrIK-X, DECA에서 발생하는 noise 뿐만 아니라 mmpo..

Paper/Human 2024.08.06

XCiT: Cross-Covariance Image Transformers

내 맘대로 Introduction2021년 나온 논문이긴 한데 Facebook에서 낸 논문으로 아직까지도 잘 인용되는 논문. transformer 구조의 연산량 문제를 해결하는 구조 제안 논문이다.  핵심 아이디어는 NxN self-attention이 겪는 quadratic complexity 문제를 Nxd 수준의 linear complexity 문제로 바꾸는 방법이다. 토큰 개수가 늘어날수록 연산량이 제곱배로 증가하기 때문에 보통 transformer는 이미지 해상도를 제한할 수 밖에 없는데 이 논문은 high resolution 이미지도 transformer로 처리할 수 있도록 self-attention을 변형했다.  아이디어가 간단하지만 굉장히 좋다고 생각한다.  메모기본적으로 self-attent..

Paper/Others 2024.08.06

Unit cube vertices, faces index (pytorch3d cube 만들기)

open3d는 다음과 같은 method가 주어져서 cube를 만드는게 뚝딱이다. cube = o3d.geometry.TriangleMesh.create_box() 아쉽게도 pytorch3d에는 이게 없어서 직접 cube의 8개 vertex와 face를 지정해준 뒤 직접 만들어야 하는데, 이게 매번 할 때마다 엄청 귀찮다. 정육면체니까 6개 face만 만들면 될 것 같지만 triangle face기 때문에 12개의 face를 만들어야 하고, 구성하는 vertex indexing 순서에 따라 normal이 뒤집힐 수도 있기 때문에 렌더링까지 잘되게 하려면 face 방향도 매번 신경써야 한다. 엄청 귀찮다... 반복 노동을 줄이기 위해 복사 붙여넣기 용으로 기록해둔다. from pytorch3d.structu..

Knowhow/Vision 2024.08.05

Torch model to ONNX model 변환 시 유의사항 (pytorch model과 ONNX 모델 결과가 다를 때)

pytorch model을 ONNX로 변환해서 사용하고자 할 때 onnx를 직접 쓸 수도 있지만 가장 편하게 쓰는 방법은 torch.onnx.export를 쓰는 방법이다.  https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html (optional) Exporting a Model from PyTorch to ONNX and Running it using ONNX Runtime — PyTorch Tutorials 2.4.0+cu121 documentatNote Click here to download the full example code (optional) Exporting a Model from PyTorch to ON..

ImportError: ../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found

pytorch 쓸 때도 위와 같은 오류가 발견되곤 한다고 하는데, 나는 Instant-ngp를 사용하는 과정에서 위 오류를 만났다.  pyngp_path = '/home/jseob/Desktop/yjs/codes/instant-ngp/build'sys.path.append(pyngp_path)import pyngp as ngp 위와 같이 instant-ngp build가 완료되면 pyngp.cpython-38-x86_64-linux-gnu.so 와 같은 파일이 생긴 build 폴더가 생기고, 그 경로를 환경 변수에 넣어준다면 ngp가 정상적으로 import 되어야 한다. (No module named pyngp 오류가 난다면 그건 build가 잘못된 것. 아마 build할 때 환경과 사용하는 환경의 py..

High-Quality Facial Geometry and Appearance Capture at Home

내 맘대로 Introduction SDF + BRDF NeRF. 디테일이 추가된 차이가 있지 큰 그림에서는 기존 NeRF를 활용한 논문. 하지만 데이터 취득을 플래쉬를 켠 휴대폰으로 독특하게 설정한 점이 돋보인다. 조명을 다루는 것은 세팅이 워낙 필요해서 일반 사용자가 하는 것은 거의 무리라고 여겨졌는데, 핸드폰 조명을 이용했다는 점이 인정받은 것 같다. 내가 생각해도 좋은 시도인 것 같다. 휴대폰으로 25초 정도, 어두운 공간에서 플래쉬를 켠 채 영상을 촬영하는 식이다. 이 때 25초 정도 같은 표정을 최대로 유지해야 한다. 이부분이 좀 맹점이기 때문에 전체 성능이 조금 낮아졌을 듯 하다. 메모어두운 공간에서 플래쉬 켠 채 25초 정도 자기 얼굴을 최대한 같은 표정을 유지한 상태로 촬영한다. 크기만 적..

Paper/Human 2024.07.31