전체 글 538

docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. 문제

도커 이미지 잘 구해서 실행시키는데 위 오류가 났다.docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. 심상치 않아 보이는 오류명 대비 해결법이 간단했다. 해결법 sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker nvidia 컨테이너 툴킷 설치하고 재시작하면 끝

Trouble/Docker 2024.12.09

Pixel Codec Avatars

내 맘대로 Introduction Telecommunication을 목표로 하는 메타 연구 중 하나. 사람 1명에 대한 realistic avatar를 만드는 것을 주목적으로 하되, 실제 위 예시처럼 telecommunication 상황에서 real time으로 사용 가능하도록 하는 것도 염두했다. 여러 사람이 있는 장면을 렌더링한다고 하면 실제 머리에 해당하는 pixel은 적은 영역이므로 적은 pixel만 실시간 렌더링해서 연산량을 줄일 수 있도록 NeRF 컨셉을 적용했다고 한다.  핵심 아이디어는 latent to position map(xyz) + feature -> MLP 붙여서 neural rendering 이다. multiface dataset 세팅에서 취득한 초고품질 데이터로 학습을 시켜서 ..

Paper/Human 2024.12.03

SMPLX uv mapping/coordinate 사용 시 유의점

SMPLX 모델 사용한 연구들이 요새 UV domain도 많이 염두하기 때문에 각 vertex의 uv coordinate 정보도 다루기 시작한 것 같다. 근데 내가 직접 다뤄보니 생각보다 잡고생해야 될 숨은 오류들이 많은데, 미리 적어두려고 한다.  1. SMPLX_NEUTRAL.pkl / SMPLX_MALE.pkl  /SMPLX_FEMALE.pkl 모델 안에 있는 "vt" 사용 금지pkl 모델 자체를 열어보면 안에 vt라는 변수로 총 11313개 uv coordinate가 저장되어 있다. 먼저 왜 모델 vertex 개수인 10475랑 다르냐고 궁금할 수 있는데 3차원 모델을 2차원 uv map으로 쪼개는 과정에서 어쩔 수 없이 여러 번 mapping 해야 되는 경계 vertex들이 있기 때문이다. 예를..

Knowhow/Vision 2024.11.22

BFM 모델 vertex index / uv unwrap coordinates

Face template 모델 중에 FLAEM 다음으로 유명한게 BFM 모델인데 제작된 건 53490 vertex로 구성되어 있다. 하지만 3DDFA에서 inner mouth vertex를 제거해서 295개를 제거해서 53215개로 만들었고, Deep3DFaceReconstruction (Microsoft)에서는 목과 귀를 추가 제거해서 35709개로 만들었다.  후속 연구 각각에서 vertex 개수도 줄이고, UV unwrapped coordinates는 또 53215개 vertex에 대해서만 계산해뒀고 헷갈리는 점이 많아서 따로 정리했다.  Vertex index 위 파일은 초기 full BFM face vertex 53490개 중 inner mouth를 제거한 vertex 53215개로 축소하고 싶..

Knowhow/Vision 2024.11.19

MoGe: Unlocking Accurate Monocular Geometry Estimation for Open-Domain Images with Optimal Training Supervision

내 맘대로 Introduction DUSt3R이 쏘아올린 작은 공 후속편. monocular point map estimation이다. monodepth 추세가 DUSt3R로 인해 mono pointmap으로 넘어온 듯 하다. 단일 입력을 받고, intrinsic에 상관없이 normalized scale의 point cloud가 나오는 방식 DUSt3R과 구조적으로 single input을 받는다는 차이점 외에 focal length ambiguity를 해결하기 위해 scale 에 더불어 translation까지 고려한다는 차이점이 있다. 직관적으로 focal length가 다르면 물체가 다르게 보이기 때문에 같은 위치의 point cloud를 예측하기 힘드니까, translation을 같이 풀어주는 느..

Paper/3D vision 2024.11.19

Cross-view and Cross-pose Completion for 3D Human Understanding

내 맘대로 Introduction CVPR 2024에 나온 Croco human data 버전이다. 드래프트가 arxiv에 공개되었을 때 읽어봤었는데 CVPR2024에 나왔다. Croco라는 논문이 geometry를 타겟으로 하긴 했지만 워낙 좋은 컨셉이다 보니 도메인을 사람으로 한정한 내용이다. 사실 알고리즘적으로 더 뛰어난 내용이 있다기 보다 사람 데이터로 하면 어떤지 실험해본 테크니컬 리포트에 가깝다. 기존 Croco와 달리 human은 non-static object이기 때문에 view point가 달라지는 것 뿐만 아니라 pose가 달라지는 것도 포함되기에 이름에 cross-pose가 추가되었을 뿐 구조와 방식은 동일하다. 데이터가 바뀐 것. 결과적으로 MAE에 때려넣은 것보다 좋은 성능을 보이..

Paper/Human 2024.11.14

argparse 사용 시 list를 argument로 넘겨주기

python 코딩할 때 무조건 쓰게 되는게 argparse인데 argument로 list를 전달해야 될 때 귀찮은 일이 많다. 예를 들어, 아래와 같이 쓰면 될 것이라고 쓰면 된다고 생각하는데parser = argparse.ArgumentParser()parser.add_argument("--something", type=list)args= parser.parse_args() 이렇게 하면 python run.py --something a b c 와 같이 썼을 때 오류 난다. 의도와 다르게 된다. 정석이 대신 아래와 같이 쓰는게 좋다.parser = argparse.ArgumentParser()parser.add_argument("--something", nargs="+")args= parser.parse..

Ubuntu 설치할 때 재부팅 화면에서 멈출 경우

일반적으로 ubuntu는 Ubuntu booting USB를 꽂고, boot priority를 USB로 변경한 뒤에 설치/재부팅하는 과정으로 설치한다. 근데 최근에 USB로 부팅해서 설치까지 하는 것은 순탄하게 됐는데, 재부팅 중 부팅 로고가 보이는 화면에서 멈추는 문제를 겪었다.  진행 중 표시가 뱅글뱅글 돌아가지 않고 계속 freeze되어 있는 버그. 원인그래픽 드라이버가 꼬이는 문제가 대표적이다. 이 상황은 GPU가 달려있는 PC일 때 발생한다.  해결법Recovery mode로 부팅 (GRUB 화면/부팅 로고 화면이 보일 때, ESC나 shift를 누른다.)-> BIOS 진입할 때처럼 연타해버리면 화면이 지나가니까 타이밍 맞춰 1번만 눌러야 한다.선택지가 뜨는데 root를 선택 (터미널로 연결됨)..

Trouble/Linux 2024.11.11

Same as ever

책 소개이 책은 모건 하우절의 새로운 책인데, 이전 돈의 심리학과 같이 지혜를 던지는 책이다. 돈의 심리학에서 자산을 바라보고 대하는 태도에 초점을 맞췄지만 본질은 삶을 대할 때 갖춰야 할 마음가짐이라는 생각이 들었는데, 이 책은 초점 자체를 본질에 맞추어 다시 쓴 책이라는 생각이다.  짧은 평개인적으로 이 책을 통해 모건 하우절의 팬이 된 것 같다. 돈의 심리학을 읽었을 때도 돈,돈,돈 거리지 않고 그보다 중요한 태도를 설명하는 내용에 매료되었는데 이 책은 그 장점이 더 드러나는 책이었다. 마치 인류학자가 인간을 오랜 시간 동안 관찰하고 공통적이라고 볼 수 있는 특질들을 모아 인생의 지혜처럼 적은 책인데, 글의 80%가 역사 상 있었던 많은 사람들의 실제 이야기여서 전혀 지루함 없이 읽을 수 있다. 이..

Book/Mind 2024.11.10

Open3D rendering 시 이미지 중심/principal point 안 맞는 문제

Open3D의 visualizer를 활용해서 렌더링을 하고자 할 때 겪는 대표적 문제가 intrinsic parameter가 맘대로 설정이 안된다는 점이다. 이전 글의 말미에서 적어두긴 했지만 또 다른 원인이 있기도 하고 더 정확히 하기 위해 기록을 해둔다.  1. Open3D는 Visualizer 윈도우 크기의 영향을 받는다.  - 정확한 원인까지는 모르겠다. - Open3D visualizer를 이용해서 capture_screen_float_buffer 혹은 capture_depth_float_buffer로 렌더링을 한다고 했을 때, visualizer를 띄워두는 윈도우가 생각보다 중요하다. - 윈도우의 사이즈가 기본값이 1920x1080으로 설정되어 있는데, 이보다 높이고자 할 때 제대로 렌더링이 ..

Trouble/Vision 2024.11.05