분류 전체보기 536

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

ubuntu 구글 드라이브 압축 없이 파일 올리기/다운받기

google drive로 공유된 파일들은 자동으로 다운받을 때 압축 과정을 거친다. 파일 사이즈가 클 때 시간이 오래 걸릴 뿐더러 압축이 실패하는 경우도 빈번하고, 더욱 짜증나는 부분은 제멋대로 분할 압축한다는 것이다.  사진 보관 정도의 사용자라면 별 문제 없겠지만 데이터 공유용으로 쓸 경우, 속도나 이름/구조 따위가 중요하기 때문에 구글 드라이브가 답답한 부분이 많다. 다행히도 위 언급한 자동압축/속도/분할압축 문제 중에 속도만 해결할 수 없고 압축 관련된 건 구글 드라이브를 직접 mount하는 방식으로 피할 수 있다. (매 파일 클릭해서 다운로드하는 수고를 덜어주는 것 만해도 감사하다.) 해결법https://99rdp.com/how-to-connect-google-drive-in-ubuntu/ Ho..

Knowhow/Linux 2024.09.10

docker 사용 시 /var/run/docker.sock permission denied 문제

docker container 띄워서 작업을 하려고 하는데 다음과 같이 권한 문제가 나왔다. permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: 접근 권한 문제인데 보통 local에서 아무 세팅하지 않으면 root만 docker에 접근 가능하다. 매번 sudo docker ~~~라고 쳐야되는 것 보면 알 수 있음. 위와 같은 경우는 십중팔구 docker container를 띄우는 shell script 같은 걸 실행했을 때 마주하는 문제일텐데, shell script 안에서 sudo를 남발할 수 없기 때문에 script를 수정하는 방법은 지양하는게 좋다.  해결 방법은 도커 ..

Trouble/Docker 2024.09.04

conda 먹통문제. Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory)

Error while loading conda entry point: conda-libmamba-solver (libarchive.so.19: cannot open shared object file: No such file or directory)CondaValueError: You have chosen a non-default solver backend (libmamba) but it was not recognized. Choose one of: classic 잘 쓰던 conda가 어느날 위와 같이 에러를 뱉기 시작했다. conda env list 정도의 출력 커맨드를 제외하곤 앵무새처럼 계속 위와 같이 에러를 계속 뱉는다. 원인은 모르겠다... 해결법conda install --solver=class..

Trouble/Others 2024.09.04

Trimesh load_mesh, export 시 texture 제대로 안 읽히고 저장 안될 때

Trimesh를 이용해 obj 파일을 읽고, 편집 후 다시 export하는 과정에서 texture가 제대로 읽히고 저장되지 않는 문제가 있다. obj file을 열어보면 vt 값도 제대로 있고 mtllib 또한 제대로 적혀있는데 texture가 안 읽어지거나 export 했을 때 texture map이 2x2 크기로 아무 쓰레기 값이 저장되는 상황이다.  mesh.export(..., file_type="obj", include_texture=True) 와 같이 argument를 True로 추가해도 해결되지 않는다.  Meshlab에 띄워보면 제대로 텍스처가 보이지만, trimesh로 볼 때만 안 나온다. 원인이건 obj 파일 내부에 usemtl가 안 적혀있어서 그렇다!  trimesh가 texture ..

Trouble/Vision 2024.09.02

Michelangelo: Conditional 3D Shape Generation based on Shape-Image-Text Aligned Latent Representation

내 맘대로 Introduction MeshAnything 코드를 뜯어보다가 이 논문의 encoder를 사용하는 것을 보고 읽어보았는데 아이디어가 좋은 것 같다. 다루는 문제는 image to mesh 혹은 text to mesh 문제인데 image/text latent에서 바로 mesh로 가는 방식 대신 중간 매개체로 3D shape latent를 구해놓는 것이 핵심이다. 또한 3D shape latent가 image/text latent와의 유사성을 유지하도록 강제함으로써 기존 방대한 양으로 구해둔 image/text prior도 취할 수 있도록 했다.  image/text보다 mesh에 더 가까운 차원인 3D shape latent로부터 diffusion해서 mesh를 만들기 때문에 divide-an..

Paper/Generation 2024.08.30