NeRF training pipeline
2022. 9. 14. 17:15
🖼 Computer Vision/3D Reconstruction
NeRF training pipeline NeRF의 학습 과정에 대해서 알아보자. 논문에서 소개하는 method와 철학을 이해하는 것과 실제로 코드를 돌려보는 것과 학습 과정을 아는 것은 정말 차이가 크게 느껴져서 따로 정리하게 되었다. 각각의 Ray 상의 Radiance로부터 weighted sum된 RGB와 density 값을 가지고 Volume Rendering을 거쳐서 얻은 각각의 pixel 값을 구해야 한다. 그리고 그 pixel값과 Ground Truth의 RGB와의 MSE Loss를 Backpropagation 함으로써 Loss를 줄여가는 방향으로 MLP를 학습한다. Create Ray origin, direction input = (height, width, focal, pose), out..
Paper Review - Plenoxels (Radiance Fields without Neural Network)
2022. 8. 30. 16:06
🖼 Computer Vision/Paper Review
Introduction Plenoxels는 NeRF와 다르게 Neural Network를 이용하지 않는, view-dependent한 sparse voxel grid를 기반으로 하는 explicit한 volumetric representation이다. optimization 시간은 bounded scene에서 NeRF가 하루가 걸린다면, Plenoxels은 100배 빠르게 11분, unbounded scene에 대해서는 NeRF가 4일 걸린다면 Plenoxels는 27분 걸렸다. 다만 렌더링은 최적화 되지 않았다고 한다. Plenoxels는 opacity(불투명도)와 Spherical Harmonic coefficients를 저장하는 sparse voxel grid를 이용한다. SH coefficient..
Paper Review - PlenOctrees
2022. 8. 27. 15:02
🖼 Computer Vision/Paper Review
Background Voxel : Volume과 Pixel의 합성어이며 직역하면 부피를 가진 픽셀이다. 즉, 픽셀을 3차원 공간으로 나타낸 것이다. 마인크래프트의 모든 물체가 Voxel로 이루어져 있다고 생각하면 된다. Voxel 자체는 명시적으로 인코딩된 위치를 갖지 않지만, 랜더링 할 때는 다른 Voxel의 위치에 대해서 해당 Voxel의 위치를 나타낸다. 큰 물체나 해상도가 올라갈수록 Voxel로 표현하기엔 연산량이 매우 많아진다는 단점이 있다. Octree : 3D를 만드는데에 사용되는 tree 구조이다. 아래 그림처럼 각 노드는 8개(Octopus)의 자식노드가 있거나 아무것도 없거나 둘 중 하나이다. 각 자식 노드는 RGB 색상 정보를 가질 수 있다. 이런 구조는 트리 크기를 제한하기 때문에 ..
Paper Review - NSVF (Neural Sparse Voxel Fields)
2022. 8. 26. 14:56
🖼 Computer Vision/Paper Review
Introduction 최근 Neural Rendering에 쓰이는 방법들은 NeRF 처럼 implicit field를 이용한 방법을 많이 적용 되고 있는데, Spatial location과 Ray direction을 input으로 넣어주고 어떤 implicit한 function(MLP)를 지나고 나면 그것에 해당하는 Color와 Probability density 값을 구해주는 function을 구하는 방식이 많이 이용되고 있다. 허나 이는 제한된 네트워크 용량이나 Ray와 scene geometry의 정확한 교차점을 찾는 어려움으로 인해 흐릿한 렌더링을 종종 보여준다. 이 논문에서는 Sparse Voxel Field를 사용해서 NeRF보다 더 좋은 성능으로 View synthesis를 할 수 있다고 ..
Paper Review - NeRF (Representing Scenes as Neural Radiance Fields for View Synthesis)
2022. 8. 23. 12:58
🖼 Computer Vision/Paper Review
NeRF 논문 리뷰 포스팅입니다. 3D Vision 공부를 시작한 이후 첫 논문 리뷰 및 정리인 만큼 잘못된 부분이 많을 수 있으니, 잘못된 부분은 언제든 코멘트 해주시기 바랍니다. Introduction NeRF는 어떤 물체를 찍은 여러장의 사진을 입력 받아, 새로운 view에서 바라본 객체의 모습을 알아내는 view synthesis에 대한 새로운 방식에 대한 논문이다. 즉, N개의 시점에서 찍은 2D image를 받으면, N개의 시점으로 보여주는 것이 아니라 continuous하게 임의의 시점에서 2D image를 만들어내는 것이 이 논문의 핵심이다. 예를 들어, 100개의 시점이 있다면 80개를 input으로 쓰고 Rendering을 거친 다음에 나머지 20개 시점을 만들고, 실제 20개의 시점의..
Multi-View Geometry
2022. 8. 13. 13:44
🖼 Computer Vision/3D Reconstruction
Multi-View Geometry의 개념을 정리한 포스팅이다. 다크 프로그래머 님의 포스팅을 요약하였다. 목차 좌표계 (Coordinate System) 동차 좌표계 (Homogeneous Coordinates) 변환 (Transformation) 이미지 투영 (Image Geography) Epipolar Geometry 좌표계 (Coordinate System) MVG에서는 크게 4가지 좌표계가 존재한다. 월드 좌표계 (World Coordinate System) 카메라 좌표계 (Camera Coordinate System) 픽셀 좌표계 (Pixel Image Coordinate System) 정규 좌표계 (Normalized Image Coordinate System) 월드 좌표계 (World C..
SFM(Structure from Motion) 구현 (with Python)
2022. 8. 12. 18:09
🖼 Computer Vision/3D Reconstruction
Structure from Motion Structure from Motion (SFM) Structure from Motion Structure from Motion은 2차원 영상으로부터 3차원 정보를 추출하여 3D로 재구성하는(structure = 3D structure, motion=Camera pose) 것을 Structure from Motion(SFM)이라고 부릅니다.. woochan-autobiography.tistory.com SfM 개념에 이어, Python 구현에 관한 포스팅입니다. 2 view만 구현하였고, 내용상 잘못된 부분이 있을 수 있으니 참고만 하시고 틀린 부분은 댓글로 지적해주시면 감사하겠습니다. GitHub - SunWooChan/sfm Contribute to SunWoo..
RANSAC (RANdom SAmple Consensus)
2022. 7. 28. 14:27
🖼 Computer Vision/3D Reconstruction
RANSAC은 1981년에 Fischler와 Bolles가 제안한 Model fitting 방법론이다. RANSAC의 이름은 RANdom SAmple Consensus를 줄여서 만들어졌다. 논문이 처음 제안했던 방법도 컴퓨터 비전 분야에서의 사용 방법을 제안하였지만, 크게 주목을 받지 못하다가 2004년 Nister가 제안하는 이미지 프레임간 relative motion을 robust하게 찾아내는 5-point algorithm + RANSAC 프레임워크를 통해 주목을 받게 되었다. 그 후, 많은 양의 데이터로부터 outlier를 거르고 model fitting을 하는 방식으로 RANSAC이 많이 사용되고 있다. Fundamental matrix, Essential matrix, Homography, P..
SIFT (Scale Invariant Feature Transform)
2022. 7. 28. 11:06
🖼 Computer Vision/3D Reconstruction
SIFT란? (Scale Invariant Feature Transform) 크기, 회전, 조도, affine의 변화 및 noise에 불변하는 특징을 추출하는 알고리즘이다. 이는 다음과 같은 절차로 이루어 진다. Find Scale-Space Extrema 우선 크기에 불변하는 특징을 추출하기 위해서, 각 원본 이미지를 1/2 배씩 다운 샘플링 하면서 이미지를 나열한다. 이처럼 같은 이미지에 대해 scale space를 다양하게 하는 이유는 스케일에 따라 세부적인 내용에 집중할수도, 전체적인 구조에 집중할 수도 있기 때문이다. 그렇기 때문에 크기에 불변하는 특징을 모두 추출하기 위해서는 다양한 scale space로 부터 feature를 추출해야 한다. 또한 사진이 멀리서 찍혔다거나, 포커스가 맞지 않거..
Structure from Motion (SFM)
2022. 7. 26. 18:18
🖼 Computer Vision/3D Reconstruction
Structure from Motion Structure from Motion은 2차원 영상으로부터 3차원 정보를 추출하여 3D로 재구성하는(structure = 3D structure, motion=Camera pose) 것을 Structure from Motion(SFM)이라고 부릅니다. Structure from Motion은 순차적인 이미지 세트로부터 그림에서 보이는 바와 같이 Structure의 3D 재구성을 진행합니다. 3D scene structure를 어떻게 정확하게 찾아 낼 것인지, cameara pose(사진이 어디서 찍혔는지), camera intrinsic, extrinsic parameter를 어떻게 찾아낼 것인지를 알아보는 것입니다. 목차 Camera Calibration (In..
논문 읽기와 ML/DL 커리어 경력에 대한 조언 by 앤드류 응
2022. 6. 16. 15:01
🖼 Computer Vision/Paper Review
본 포스팅은 medium-ai 블로그에 있는 포스팅을 가져온 글입니다. 우리 모두의 ML/DL 선생님이신 앤드류응 교수님께서 스탠포트 CS 230 강의에서 ML/DL 커리어와 논문 읽기에 대한 강의를 하신 것을 정리한 포스팅이 있어서 같이 나누고자 정리했습니다. 애초의 수십분 강의를 요약한 내용이기 때문에 더 세줄요약 할 수는 없으니 이번에는 천천히 정독해주세요~ 그래도 긴 긁이 보기 부담스러우신 분들은 하단 핵심 정리란으로 가주세요! 오역이 있을 수 있으니 본 링크로 직접 보시면 더욱 정확합니다! 원 강의는 CS 230 강의(https://youtu.be/733m6qBH-jI)이며 내용 정리가 된 영어 포스팅은 다음 링크를 참조하세요! (https://blog.usejournal.com/advice-o..
CV - Mask RCNN
2022. 6. 11. 00:41
🖼 Computer Vision/Object Detection
📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다. Image Segmentation Image Segmentation은 영상/이미지에서 의미있는 부분들을 구별해내는 기술이다. 이미지를 영역별로 나눠준 후, 각 개체에 맞게 합쳐주는 task이다. Object Detection, Classfication 과 비교해봤을 때, 정확하게 개체들의 경계선까지 추출해 의미있는 영역들로 나누어져야하므로 더 어려운 작업이다. Image Segmentation는 Semantic과 Instance로 나뉜다. Semantic Segmentation Semantic Segementation은 동일한 객체들끼리는 한 번에 Masking을 수행하는 방법이다. 위의 사진과 같이 segment..
CV - EfficientDet
2022. 6. 2. 18:55
🖼 Computer Vision/Object Detection
📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다. 목차 EfficientNet EfficientNet Architecture 개요 EfficientNet 개별 Scaling 요소에 따른 성능 향상 테스트 EfficientNet Compound Scaling EfficientDet EfficientDet 성능 EfficientDet = BiFPN + Compound Scaling BiFPN (Bi directional FPN) Cross-Scale Connection Weighted Feature Fusion Compound Scaling Backbone network BiFPN network Box/class prediction network Input image..
CV - Focal loss
2022. 6. 2. 15:29
🖼 Computer Vision/Object Detection
목차 Focal Loss의 필요성 Focal Loss Cross Entropy Loss를 안쓰고 Focal Loss를 쓰는 이유 Balanced Cross Entropy Loss를 안쓰고 Focal Loss를 쓰는 이유 Focal Loss 적용 RetinaNet = Focal Loss + FPN FPN(Feature Pyramid Network) Object Detection : 여러 object들을 Bounding Box를 통해 Localization(위치를 찾고) 하고, Classification(어떤 물체인지 분류) 하는 작업 Object Detection의 2가지 종류의 알고리즘 R-CNN 계열의 two-stage detector YOLO, SSD 계열의 one-stage detector two-..
CV - Ultralytics YOLO v3 (Oxford Pet Dataset)
2022. 5. 27. 17:15
🖼 Computer Vision/Object Detection
📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다. 목차 Ultalytics YOLO Custom Dataset 만들기 Oxford Pet Dataset Download Ultralytics YOLO 포멧 디렉토리 구조 만들기 Oxford Pet Train / Valid 메타데이터 만들기 Oxford Pet annotation을 Ultralytics YOLO 포멧으로 만들기 전체 xml 파일들을 YOLO 포멧으로 변환 후 Ultralytics 디렉토리 구조로 입력하기 Oxford Pet Dataset yaml 파일 만들기 Oxford Pet Dataset 학습 수행 학습된 모델 파일을 이용하여 Inference 수행 test.py를 이용하여 Test 데이터를 Eva..
CV - Ultralytics YOLO v3 (coco128 Dataset)
2022. 5. 26. 19:45
🖼 Computer Vision/Object Detection
📌 이 글은 권철민님의 딥러닝 컴퓨터 비전 완벽 가이드 강의를 바탕으로 정리한 내용입니다. 목차 Ultralytics YOLO v3 설치하기 wandb(weight and bias) 모듈 설치 Ultralytics YOLO Train 개요 - coco128 Dataset Ultralytics YOLO Dataset 개요 Ultralytics YOLO Annotation 포맷 Config 개요 Dataset config와 Pretrained model을 사용할 때 weight 파일의 상대 경로, 절대 경로 Ultralytics YOLO v3 설치하기 colab 환경에서 진행하였다. !git clone https://github.com/ultralytics/yolov3 !cd yolov3;pip instal..