분류 전체보기 45

CS580 lecture 12

lecture 11에서는 novel view synthesis 특히 NeRF에 관한 부분에 대해서 다뤘다. 이번 강의에서는 NeRF가 발전한 방향에 대해서 간단하게 다루고, 3dgs를 렌더링 관점에서 설명한다. 9강 10강의 path tracing과 BRDF 모델링 부분은 정확히 이해하지 못했다. 지금 나에게는 필요하지 않아서 미래의 나에게 맡긴다. NeRF는 3d 공간좌표와 보는 방향을 입력으로 받아 색깔과 density를 구해내는 방식이였다. InstantNGP는 NeRF를 발전시켜 모든 3d 포인트들에 대해서 고려하려면 시간이 오래 걸린다는 문제를 해결하려는 기법이다. 3d 공간을 hashing을 통해 lookup feature table로 변환하여 저장한다. 즉 메모리 사용을 높혀서 미리 ..

딥러닝/3D 2025.05.06

CS580 lecture 11

성민혁 교수님의 컴퓨터 그래픽스 강의 11강을 듣고 내용을 정리하려고 한다.설명을 위한 글을 쓰기보다는 듣고 이해한것을 바탕으로 남긴다. Novel View Synthesis여러 각도에서 촬영한 이미지를 최적화 시켜서 3d volume으로 만들고, 이전에 보지 못한 각도에서 봤을때도 잘 렌더링 되게 만드는 것이 목표 이때 우리는 기존 딥러닝 방식처럼 이해할수 없는 black box decoder를 만드는것이 목표가 아니라, 이해할 수 있는 이미지 decoder를 만드는것이 목표이다. 이를 위해 그래픽스 기법중 하나인 렌더링 방정식을 사용한다. View Synthesis를 위한 neural network의 Input은 입력 사진들에 structure from motion(colmap) 을 돌려 뽑아낸 ..

딥러닝/3D 2025.04.30

cuda, 환경변수

1. 네이버 부스트 캠프때 오류났던 nvcc 오류 cudatoolkit은 두종류가 있다.A. runtime용도의 cudatoolkitB. nvcc를 포함한 개발자용의 cudatoolkit 우리가 활용했던 서버는 도커 컨테이너 위에서 구성된 서버이다. 컨테이너 내부에 설치된 cuda 버전이 A 였기에 nvcc를 활용하려는 패키지가 계속 오류가 났던것이다. 애초에 도커가 특정 쿠다버전 이미지를 구어왔는데 거기에 추가적으로 변형시키려고 해서 오류가 난건가? 여전히 잘 모르겠다. 그런데 전역적으로 말고 지역적으로 링크를 따와서 실행시에는 오류가 안났던것 같다. pip로 새로운 torch를 깔아도 nvcc는 깔리지 않았는데, pip로 torch를 깔때 같이 연결되는 cuda는 nvcc를 담고있지 않았기 때문이다...

코테

5430_AC_골드5: 1. reverse() 매번하는것은 시간 복잡도 너무 큼.2. lst = [1,2,3] 일때 ','.join(map(str, lst)) 하면 리스트를 문자열로 쉽게 바꿀수 있다. 보통은 lst 안에 문자들만 있을때만 join이 가능한데 숫자들도 map(str, lst)해줘서 map 앞에 있는 형태로 매칭시켜준다.   7569_토마토_골드5: 1. 어떻게 횟수 계산? 거리로 생각하고 노드 사이 거리가 전부 1이므로 bfs로 해결 가능2. 큐의 pop을 어디서 부터 어떻게 시작? -> 처음 1인것들 전부 큐에 넣고 시작 3. 어떻게 익지 않은 토마토를 판별? -> 다 마친후 0이 있는지를 판별... 괜히 어렵게 생각했네   1927_최소힙_실버2: 1. 힙 사용법에 대해서 맨날 까먹는..

20주차 회고

한 주간 있었던 일colmap을 통한 sfm을 돌려보고 그 결과를 이용하여 nerfstudio를 돌려봤다생성과 관련된 공부를 하고 과제를 통해 controlnet을 돌려볼 수 있었다.   공부한것 colmap은 strucfrom motion을 구현해놓은 라이브러리이다. 영상이 주어지면 거기서 프레임별로 이미지를 추출하고, 각 이미지 사이의 feature mapping을 통해 camera world에서의 camera pose를 추출해내고 images.bin에 저장한다. 그 외에도 camera parameter, points cloud들의 정보들을 얻어내고 .bin 저장한다.nerfstudio API에는 colmap이 자체 내장되어있어서 nerfstudio 하나만으로 카메라 파라미터 추출을 하고 nerf 까..

Score-Based Generative Modeling Through Stochastic Diffrential Equations

Diffusion 을 조금 더 이해하기 위해서 적어보는 글 2탄.    Introduction새롭게 score 기반 생성모델이 정의된 후 diffusion 기반의 Denoising Diffusion Probablistic Model 이라는 논문이 나왔습니다. Score 기반 생성모델의 저자인 yang song은 이후 score 모델과 diffusion 기반 모델이 어떤 관계를 가지고 있는지 연구하였고 결론적으로는 같은 방식의 SDE(stochastic diffrential equation) 기반 방식이라는것을 발견하게 됩니다.    Preliminary \begin{align} \frac{\mathrm{d}x} {\mathrm{d}t}  = t, \end{align} \begin{align} x = \..

딥러닝/생성 2025.01.04

19주차 회고

한 주간 있었던 일경량화와 관련된 내용들을 배울 수 있었다.관련된 과제를 통해 직접 구현해보는 시간을 가졌다. ( peft를 이용하여 파라미터 수 없애보기, kd를 구현해보기, lora를 간단하게 구현하여 적용해보기)여유가 생겨 궁금했던 내용들에 대해서 공부해보고 있다.   공부한것경량화가 무엇이냐 질문을 받으면 prunning, quantization 이러한 키워드들밖에 안 떠올랐었는데, 이번주 강의를 들으면서 좀더 무엇인지 알아볼 수 있었다. structured prunning, unstructured prunning, knowledge distilation (logit based, feature based), quantization, peft, lora 등등의 키워드가 떠오른다. Lora와 관련된 ..

Generative Modeling by Estimating Gradients of the Data Distribution

Diffusion 을 조금 더 이해하기 위해서 적어보는 글입니다. 논리성이 부족하고, 틀린 부분이 있을 수 있습니다.   Introduction 19년도 이전에는 VAE와 GAN 등의 생성모델이 많이 쓰였습니다. VAE는 likelihood-based model로서 distribution의 pdf(probability density function)를 pΘ(x) 의 꼴로 explicit 하게 둬서 푸는 방법론이고, GAN은 implicit한 model로서 pdf가 samplig process과정중에서 간접적으로 구해지는 방법론입니다. 그러나 두가지 방법론은 각각 큰 한계점이 존재하였습니다. VAE와 같은 방식은 pΘ(x)를 normalizing 하기 위하여 계산 비용이 크고, 근사화하기 위하여 ELBO와..

딥러닝/생성 2024.12.26

13-15 주차 회고

segment와 관련된 프로젝트를 할 수 있었다. bounding box만 잡는 detection을 넘어서 픽셀별로 어떤 클래스에 속하는지까지 예측하는 task다. model의 output이 logit으로 나오고, 그것이 sigmoid를 통과하여 thr에 따라 0또는 1로 나오는것을 볼 수 있었다. 또한 dice_loss와 focal_loss같은 다양한 loss들에 대해서 알 수 있었다. 마지막으로 unet, 2+, 3+, hrnet같은 모델들을 보면서 skip connection이 원래 input image의 spatial한 특성들을 살리고, 그것을 통하여 각 픽셀이 어떤 클래스에 속하는지 알 수 있게된다는점을 배웠다. 매 프로젝트마다 배워가는것이 다른것 같다. 간단한 라이브러리에서 모델을 불러와서 ..

8-10 주차 회고

object detection 과 관련된 프로젝트를 할 수 있었다. mmdetection 라이브러리를 뜯어보는 좋은 경험이 되었다. faster r-cnn과 같은 two stage모델이 무엇인지, 어떤 방식으로 loss를 사용하는지, 어떻게 anchor box를 만드는지, 어떤 metric을 사용하여 어떻게 평가를 하는지 확실히 알 수 있었다.pip install을 하는것은 python의 모듈 경로 site-packages 디렉터리에 추가하는것과 같다. 따라서 import가 되지 않는 모듈은 pip intall -v -e 를 해서 아예 패키지를 깔아주거나, sys.path를 해주면 된다.    이번 프로젝트는 mmdetection 라이브러리를 이해하는데 시간과 노력을 너무 사용하였다. benchmark를..