본문 바로가기

심화

Nerf란 1. 개요 - NeRF는 2020년 NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis라는 논문에 의해 소개되었다. - 쉽게 말해 2D 이미지를 3D로 변환해 준다 - 엄밀하게는 여러장의 이미지를 입력 받아, 새로운 시점에서의 물체 이미지를 만들어내는 View Synthesis 모델이다. - n개의 시점에서 불연속적인 2D 이미지를 입력 받아, 이미지가 연속적으로 구성될 수 있도록 임의 시점에서의 새로운 이미지를 만들어 낸다. Nerf는 이미지 데이터에서 직접 학습하지만 CNN 레이어나 Transformer 레이어(적어도 원본은 사용하지 않음)를 사용하지 않는다. Nerf의 이점은 압축이다. 5–10MB에서 Nerf 모델의 가중치.. 더보기
Eight Points algorithm(Normalized) - 과제 해결 Part 1: Normalized 8-Point Algorithm In eight_point_fw, implement the function find_fundamental_matrix. This function takes 2 sets of corresponding key points from the 2 images and computes the fundamental matrix. For stability of the algorithm, we would want to first normalize the points. For this we follow the following steps: Find the centroid of the points (find the mean x and mean y values).. 더보기
Epipolar Geometry OpenCV: Epipolar Geometry OpenCV: Epipolar Geometry Goal In this section, We will learn about the basics of multiview geometry We will see what is epipole, epipolar lines, epipolar constraint etc. Basic Concepts When we take an image using pin-hole camera, we loose an important information, ie depth of the docs.opencv.org 그림에서 보다 시피 단안만을 이용하면 X의 투영되는 점이 OX 선중 어떤 3D 상의 점인지 알기 어렵다. 하지만, 다른 각도의 이미지.. 더보기
OpenCV는 Row-Major, Matlab은 Column-Major 출처: https://stackoverflow.com/questions/8184053/accessing-elements-of-a-cvmat-with-atfloati-j-is-it-x-y-or-row-col Accessing elements of a cv::Mat with at(i, j). Is it (x,y) or (row,col)? When we access specific elements of a cv::Mat structure, we can use mat.at(i,j) to access the element at position i,j. What is not immediately clear, however, whether (i,j) refers to the x,y coord... stackoverf.. 더보기
PCL RGB 1. RGBA 1.1 Packing int rgb = ((int)r) 16) & 0x0000ff; std::uint8_t g = (rgb >> 8) & 0x0000ff; std::uint8_t b = (rgb) & 0x0000ff; 5가지 입력 더보기 (1) 인자를 안 받는 경우(RGBL의 경우는 라벨만 입력을 받는 경우) constexpr pcl::RGB::RGB( ) constexpr pcl::PointXYZRGBA::PointXYZRGBA() constexpr pcl::PointXYZRGBL::PointXYZRGBL(std::uint32_t_label = 0) (2) 포인트 한 점을 입력으로 받는 경우 constexpr pcl::RGB::RGB(const _RGB &p) constexpr pcl::.. 더보기
erode & dilate 참고 자료: https://docs.opencv.org/4.x/d9/d61/tutorial_py_morphological_ops.html OpenCV: Morphological Transformations Goal In this chapter, Theory Morphological transformations are some simple operations based on the image shape. It is normally performed on binary images. It needs two inputs, one is our original image, second one is called structuring element or kernel wh docs.opencv.org C++ 버전 문서:.. 더보기
PCL Window Install 1. PCL 다운(Link) - PCL_XXX_MVSC.exe를 다운 받는다. 2. CMake 및 Visual Studio Cmake 패키지 설치 - 윈도우 상에서 PCL를 CMake로 빌드하기 위해서는 'Visual Studio Cmake 패키지'가 설치되어 있어야 한다. 본인의 경우 Visual Studio를 업그레이드 시켜줘야 했는데, Win10SDK_10.0.17134 가 설치 에러가 났다. https://developercommunity.visualstudio.com/t/vs-community-2017-update-stuck-at-win10sdk-1001713/259243 위의 링크를 참고하여, Visual Studio Installer에서 설치 파일을 내려 받은 후 직접 설치 파일을 클릭하여 .. 더보기
쿼터니언(Quaternion) 설명 쿼터니언은 복수 개념으로 확장 시킨 대수적 구조이다. (오일러 각에서 나오는) 각도와 회전 개념에 비해 덜 직관적이지만, 훨씬 효율적으로 계산할 수 있다. 1843년 수학자 윌리엄 해밀턴은 3차원 회전은 쿼터니언으로 부를 수 있는 복소수로 표현 가능함을 발견하였다 1. 쿼터니언 대수 쿼터니안은 4-튜플로 적을 수 있고, $q_i$는 실수, i, j, k는 허수 이다. $$ q_0 + q_1i + q_2j + q_3k $$ 또한, 허수 i, j, k는 아래 식을 만족한다. 아래 식과 같이 i, j, k는 교환 법칙이 성립하지 않는다. 쉽게 기억하기 위해서 아래와 같이 그림을 만들고 시계 방향은 +, 반 시계 방향은 -로 기억한다. \begin{aligned} &i^{2}=j^{2}=k^{2}=-1 \\ &.. 더보기