전체 글 600

pytorch lightning 사용 시 RuntimeError: Trying to resize storage that is not resizable 문제

제목 그대로 pytorch lightning을 사용하다 보면 갑자기 듣도 보도 못한 에러를 만날 때가 있다. RuntimeError: Trying to resize storage that is not resizable 에러의 기본적인 의미는 사용하는 torch tensor가 numpy array랑 메모리를 공유하도록 되어있어서 tensor를 함부로 resize할 수 없다는 뜻인데 일반적인 상황에서 torch.from_numpy() 같은 걸 썼다면 단순히 끝에 .clone()을 붙여주면 해결되는 문제다. (아니면 numpy array를 깊은 복사해서 사용하거나) 근데 pytorch lightning이랑 사용할 때는 문제가 감추어져 있더라. pytroch lightning은 데이터셋만 정의하면 나머지 로딩은..

Cameras as Relative Positional Encoding

내 맘대로 Introductiontransformer가 텍스트에서 이미지로 넘어오고, 이미지에서 3D로 넘어가고 있는 시점에서 positional embedding에 대한 관심도 자연스레 늘고 있다. absolute-relative-rotary 등등 절대적 정보와 상대적 정보를 동시에 담는 방식이 효과가 좋다는 것이 밝혀져 있는데 이 논문은 3D 공간에서 어떻게 담을 것인지 절대+상대 정보를 고민한 논문이다. 대표적으로 raymap, 즉 이미지의 각 픽셀을 intrinsic,extrinsic으로 back-projection했을 때 생성할 수 있는 ray vector를 encoding값으로 쓰는 것이 있는데 너무 naive하기도 하고 scale, translation, rotation에 취약하기 때문에 ..

Paper/Others 2025.07.18

Rectified Point Flow: Generic Point Cloud Pose Estimation

내 맘대로 Introduction 이 논문은 여러개의 object part pointcloud가 주어졌을 때, 하나를 기준으로 나머지 pcd들이 조립되듯이 정렬되는 걸 목표로 한다. 구현을 이렇게 했지만 풀고자 했던 문제를 point cloud generative model이 형상과 구조, 의미를 파악할 수 있음을 보이는데 있다. 어떻게 보면 입력을 pointcloud로 바꾼 diffusion model로 볼 수 있지만 내 생각엔 좋은 insight를 주는 컨셉 논문인 것 같다. ICP나 여느 registration 논문은 overlapped region에 의존해서 정렬을 하기 때문에 완전 떨어진 pointcloud끼리는 의미론적으로 정렬할 수 밖에 없다. 이 부분을 파고 들어서 minimal over..

Paper/Others 2025.07.14

Parallel Sequence Modeling via Generalized Spatial Propagation Network (a.k.a GSPN)

내 맘대로 Introduction드디어 나왔나?! 쓰기도 쉽고 이해하기도 간단한 transformer 대체재? trasnformer의 핵심 attention meschanism은 효과적이지만 그 연산량이 O(N^2) 이기 때문에 높은 해상도로 학습하는건 기업의 전유물이 된지 오래다. 내로라 할 backbone들 중 개인이 공개한 경우는 거의 없다. 전기랑 GPU 값을 견딜 수 없기 때문이다. 기업에서도 하긴 한다만 부담이 있는 것도 팩트. 그래서 mamba를 비롯한 attention layer를 대체하는 연구에 관심이 많이 쏠리는데, 이번에 NVIDIA에서 깔끔한 논문을 하나 냈다. 개인적으로 mamba는 몇 번 읽어봤지만 아직도 완벽하게 이해가 안간 반면 이 논문은 그냥 바로 이해가 가능해서 좋았다. ..

Paper/Others 2025.07.08

BlenderNeRF로 3DGS 에셋 만들기 (.blend to 3DGS .ply)

3DGS가 explicit representation이다 보니 여러 3DGS를 좌표계만 통일한다면 한 공간에 모아서 렌더링할 수 있다. ply를 위치만 맞춰서 합쳐주면 그대로 합쳐진 scene이 된다. 이전 글 참고. 생각보다 재밌는 것들을 많이 해볼 수 있는데 이 때 맘에 드는 scene이나 object를 3DGS로 만들기 좋은 툴을 소개한다. 직접 찍어서 COLMAP + nerfstudio (or gsplat)을 태워서 복원할 수도 있지만 이게 해보면 COLMAP이 안 깨지게 맞추는 것도 어렵고 real scene이기 때문에 퀄리티 높게 복원하기가 쉽지 않다. 추천하는 대안은 블렌더에서 가상 렌더링 이미지 + 카메라 포즈로 복원해내는 것이다. BlenderNeRFhttps://github.com/..

Knowhow/Vision 2025.07.04

Raspberry Pi SSD로 부팅할 때 삐~ 소리 + 멈춤 (전압 강하 문제)

라즈베리파이 쓸 때 저장 장치를 micro SD 카드를 쓰는게 거의 기본인데, 깨지는 일이 너무 빈번해서 SSD로 부팅하도록 세팅을 바꿨다. USB-to-SATA 케이블만 있으면 그냥 연결할 수 있고 라즈비안을 이용해 OS 굽는 것도 그대로다. 참고글에 의하면 아무런 문제 없이 부팅까지 되는 줄 알았으나... 근데 실제로 전원을 인가하면 삐~ 소리가 계속 나면서 멈췄다. 원인원인은 결국 전력 문제였다. SSD가 전력을 SD 대비 훨씬 많이 먹기 때문에 라즈베리파이로는 정상 동작 못 시킬 수 있었다. 알아본 바, 라즈베리파이는 5V 최대 3A (15W)까지 공급할 수 있고 보드 자체 회로와 USB 포트에 이게 분배된다. 그중 USB3.0 포트 1개당 최대 약 1.2A 정도 쓸 수 있도록 분배되어 있..

Trouble/Others 2025.07.03

[Raspberry Pi 4] Arducam 16MP IMX519 카메라 설정

https://www.youtube.com/watch?v=8-yf_tId62o 위 영상을 보면 공식 지원되는 라즈베리 파이 카메라 모듈 V2/V3/HQ 보다 가격, 화각, distortion, color tone, white balance 등 여러 측면에서 낫다고 판단할 만한 모델이 arducam이다. 개인적으로 화각이 80도에 12MP 해상도를 얻을 수 있는 것도 감지덕지인 것 같은데 왜곡이나 색상 같은 부분도 잘 챙겨서 만든 모델이라 쓰기 좋은 것 같다. 가격도 라즈베리파이 카메라 모듈3와 거의 비슷한 수준. 하나 귀찮은 점은 라즈베리파이의 공식 카메라가 아니다 보니 libcamera 명령어가 바로 가능한 상태는 아니라는 것. 따로 추가 설정을 해두어야 한다. 설정 방법https://docs.ard..

Knowhow/Others 2025.07.03

3D Gaussian splat PLY 파일 합치기/압축하기 (How to merge/compress 3DGS PLYs)

3D gaussian splatting으로 만든 결과물, ply 파일 여러개를 갖고 동시에 편집하는 일이 종종 있다. 예를 들어, scene ply와 object ply를 합쳐서 공간 안에 물체를 넣은 듯한 결과물을 만들고 싶을 때다. GUI 로는 아주 쉽게 할 수 있다. https://superspl.at/editor/ 여기에 모든 파일을 drag and drop으로 던진 뒤, 원하는 편집을 마친 뒤 내보내기를 하면 하나로 합쳐져서 저장된다. 문제는 이걸 코드로 작성해서 자동으로 하고 싶을 때였다. 이게 javascript 코드다 보니까 코드를 봐선 뭔지 모르겠고 그래서 직접 python으로 만들어봤는데 사소하지만 꽤 귀찮은 작업이었기에 메모해둔다. import torchimport numpy as..

Knowhow/Vision 2025.07.03

삼체 3 : 사신의 영생

짧은 후기삼체 2가 지구에서 우주로 주 세계관을 옮겼다면, 삼체 3는 우주에서 차원 그리고 시공간으로 세계관으로 한 번 더 넓혔다고 할 수 있을 것 같다. 1~2편에서 내내 빌드업하며 다루었던 삼체 세계에 대한 비밀이 결국엔 또 엄청 사소한 사실처럼 느껴지도록 세계관을 확장한다. 상상으로 따라가기 힘들 정도의 속도로 넓어지는 세계관에 종종 책장을 뒤로 다시 넘겨봐야 하는 일이 있을 정도로 빠르게 확장된다. 새로이 등장하는 요소들도 이해하기가 좀 더 어려웠다. 태양계 우주까지는 지금 우리가 살고 있는 세상에서도 어느 정도 진보된 기술이 있기 때문에 어느 정도 현실 기반의 상상으로 가득차 있었는데 3권에서 다루는 세계로 넘어간 순간 겪어보지도, 추측할 수도 있는 시공간과 차원이기 때문에 철저히 자유로운 상상..

Book/Fun 2025.06.29

nvdiffrast 사용 시 렌더링 깨지는 문제

textured mesh를 렌더링하는 툴로 요즘 nvdiffrast를 애용하고 있는데, 약간의 버그 아닌 버그를 발견해서 기록해둔다. 일단 nvdiffrast를 굳이 쓰는 이유는 pytorch3d에 수십만 vertex/face mesh를 올린 뒤 렌더링해보면 오류가 난다. face per pixel 즉 rasterize 과정에서 pixel 당 face를 배정하는 과정에서 face가 너무 많기 때문에 터져버리는 문제가 있다. 이걸 heuristic하게 손으로 틀어 맞춰야 하는데 mesh 데이터를 많이 처리하는 입장에서 이게 너무 번거로웠다. 뚜렷하게 몇개의 vertex/face에서 터지는지도 발견 못하기 때문에 pytorch3d는 오로지 저해상도 textured mesh에서만 유용했다. nvdiffras..

Trouble/Vision 2025.06.24