전체 글 513

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

Open3D Normal map rendering, Normal 이미지 얻는 방법

Open3D에서 주어진 mesh의 normal을 얻어내는 방법은 쉽다. Document에서도 이 기능만 설명한다.import open3d as o3dmesh = o3d.io.read_triangle_mesh(MESH_PATH)mesh.compute_vertex_normals() # vertex normals are filled inmesh.compute_triangle_normals() # face normals are filled in 그런데 normal map 즉 2D 형태로 얻는 방법은 명확히 없다. normal rendering을 하는 방법이 뚜렷하지 않다.  vis = o3d.visualization.Visualizer() vis.create_window(visible=True) opt =..

Knowhow/Vision 2024.11.05

MonST3R: A Simple Approach for EstimatingGeometry in the Presence of Motion

내 맘대로 Introduction DUST3R의 dynamic scene용 fine tuning 버전이다. 논문보다 테크니컬 리포트에 가깝고 내용도 굉장히 짧다. 컨셉만 설명하고 마무리함. DUST3R의 아이디어 자체가 굉장히 좋고 성능도 압도적인 탓에 많은 관심을 받는 중인데, 이 논문은 UC Berkeley, Google deepmind, stability AI, UC Merced 등 네임드에 있는 사람들이 모여 프로젝트성으로 진행한 것 같다.  기존 DUST3R가 static scene에 대해 학습된 네트워크이다 보니 dynamic object가 등장했을 때 이 dynamic object 영역을 틀어 맞추려고 하다 망가지는 경우가 있다. 이 문제를 짚으면서 데이터셋을 dynamic object를 커..

Paper/3D vision 2024.10.31

3D Face Tracking from 2D Video through Iterative Dense UV to Image Flow

내 맘대로 Introduction 내용을 보면 densepose의 face 버전 논문이다. 컨셉 자체는 당연히 있을 법한데 face 추세가 3DMM을 활용하는 방식으로 흘러가다보니 그동안 나오지 않아나 보다. 내가 해볼까 했는데... 2024년에 딱 나와버려 아쉽기도 하다. 이미지가 들어갔을 대 face uv map가 출력이다. 근데 방식을 unwrap uv map 에서 image로 가는 flow를 계산하는 방식이다. face unwrap map도 정면 얼굴 구조를 잃지 않을 것이고, 이미지들은 정면 얼굴 위주일 것이기 때문에 optical flow가 심하게 뒤집히는 경우가 적어 합리적인 방식 같다.  Segformer, RAFT 같은 검증된 구조를 차용한 것도 안정적인 성능에 한 몫 한 것 같다. su..

Paper/Human 2024.10.30

Opencv camera index 찾기, device index 찾기

2022.06.13 - [Knowhow/Vision] - Opencv multi webcam 사용 시 인식 확인 Opencv multi webcam 사용 시 인식 확인opencv에서 라이브 웹캠을 2개 이상 사용하고자 할 때, 보통 아래와 같이 접근한다. import cv2 cam0 = cv2.VideoCapture(0) cam1 = cv2.VideoCapture(1) ... camN = cv2.VideoCapture(N) #N is a camera index 이 때, 분명 카메라 N대jseobyun.tistory.com 이전 글에서 cv2.VideoCapture()를 사용할 때 필요한 camera index를 어떻게 찾는지 정리한 바 있는데, 글 말미에서는 USB 포트를 바꿀 때마다 혹은 USB 포트가..

Knowhow/Vision 2024.10.29

Monocular Identity-Conditioned Facial Reflectance Reconstruction

내 맘대로 Introduction 이 논문은 image to reflectance를 풀고자 한 논문이다. UV domain의 결과값을 내뱉는 기타 논문들과 달리 입력 이미지의 pixel마다 어떤 reflectance property를 갖고 있는지 추정한다. 위 그림의 swapping까지가 논문의 결과물이고 이후 mesh로 만드는 과정은 Deep3D와 같은 image to mesh lifting 알고리즘을 붙여야 한다.  핵심 아이디어는 light 데이터가 스튜디오에서 찍을 수 밖에 없어서 부족하니, 일반 이미지에 녹아있는 prior를 가져오겠다는 컨셉이다. 그래서 입력을 받는 encoder가 multi-modal encoder여서 normal 이미지도 받고 diffuse 이미지도 받고 다 받는다.  그리..

Paper/Human 2024.10.25

Self-Supervised Learning from Images with a Joint-Embedding Predictive Architecture (a.k.a I-JEPA) + (V-JEPA)

내 맘대로 Introduction이 논문은 MAE의 많은 후속 연구와 같이 어떻게 하면 self-supervised learning을 효과적으로 이미지에 적용할 수 있을지 고민한 논문이다. 여느 논문들과 달리 MAE를 연구한 그룹에서 낸 후속 연구격이라 신뢰도가 높다. 저자에 LeCun이 들어있는 것도 한 몫한다.  많은 데이터를 사용하는 학습이고 모델이 transformer다 보니 연산량도 작지 않기 때문에, 성능 뿐만 아니라 학습에 걸리는 시간도 문제인데 이 두 가지 문제를 해결하고자 한 듯하다. 핵심 아이디어는 어찌 보면 간단하다. 1) random masking 대신 patch masking을 하고 patch 단위로 비교 2) 비교할 때 복원한 이미지 상의 pixel loss가 아닌 feature..

Paper/Others 2024.10.22

VideoMAE: Masked Autoencoders are Data-EfficientLearners for Self-Supervised Video Pre-Training (+VideoMAE2)

내 맘대로 Introduction SSL 방법의 인기가 올라가는 시기에 video 데이터에 적용 가능한 masked auto encoding 기법을 고민한 내용이다. 사실 특별하다기 보다 직관적으로 떠올렸을 때 이렇게 하면 될 것 같다... 싶은 방식대로 한 방식이라서 누구보다 빠르게 선점한게 눈에 띈다.  핵심 아이디어는 t frames을 쌓은 뒤, 같은 위치의 이미지 patch를 masking 하고, token화 할 때도 같은 위치 이미지 patch끼리 쌓아서 사용한 점이다. 인접 프레임의 다른 patch를 보고 복붙하듯이 학습될 여지가 더 많으므로 masking ratio를 90%까지 올리는 것이 효과가 좋았다고 발견한 것도 약간의 포인트다. 메모비디오 인접 프레임을 쌓는 방식은 masking한다 ..

Paper/Others 2024.10.21

Learning Implicit Functions for Dense 3D Shape Correspondence of Generic Objects

내 맘대로 Introduction 주제는 관심에서 벗어나도 한참 벗어났지만, 3D dense correspondence라는 관점에서 참고할 만할까 해서 읽은 22년도 논문. 어떻게 하면 효과적으로 semantic embedding을 할 수 있을지 고민한 논문으로 embedding space 상의 거리로 correspondence를 찾아낸다.  뭔가 이것저것 들어가있지만 결국 이것도 VAE와 95% 동일하다. 입력으로 들어간 N point와 별개로 중간에 query point가 따로 들어간다는게 차이일 뿐 거의 동일하다. 서로 다른 shape의 object를 대상으로 하다보니 mutual correspondence가 애초에 불가능하고, 그렇기 때문에 query point로 지정해서 correspondenc..

Paper/Others 2024.10.18

3D Face Modeling via Weakly-supervised Disentanglement Network joint Identity-consistency Prior

내 맘대로 Introduction 찾아보니 linear face model에서 더 나아가기 위해서 Auto encoding 컨셉으로 nonlinear face model을 만들고자 하는 시도가 굉장히 많았던 것 같다. 크고 작은 차이가 있지만 결국 shape latent, expression latent를 어떻게 잘 구하느냐, 어떻게 잘 decoding하느냐, 어떻게 데이터를 구성하느냐 틀을 벗어나지 않는 형태다. 이 논문 역시 똑같이 VAE로 shape/expression latent space를 만들고 decoding하는 논문인데, id가 같은 SCAN들이 그룹핑되어 있는 데이터를 활용해서 shape, expression을 어떻게 decoupling할지를 고민한 내용이 들어갔을 뿐 전체 틀은 같다. ..

Paper/Human 2024.10.18