Knowledge/Vision 17

Spherical gaussian 직관적으로 이해하기

논문을 읽다가 Spherical harmonic과 더불어 spherical gaussian이라는 개념이 있다는 것을 처음 알았다. 특히 specular light를 표현할 때 많이들 쓴다고 하는데 무슨 내용인지 간단히 나마 적어두고자 한다. Spherical gaussian이란? 한 마디로 표현하면 구면 좌표계에서 gaussian distribution을 표현하는 방법이다. 천천히 흔히 알고 있는 gaussian distribution에서부터 확장하면서 설명해보겠다. 먼저 1D 2Dgaussian은 알다시피 엄청 쉽다. 아래 그림처럼 line 혹은 plane 위에 그려진다. 3차원도, 4차원도 시각화할 수 없을 뿐이지 위와 같이 간단히 정리할 수 있고 각각 volume, tensor 상에 그려질 것이다...

Knowledge/Vision 2023.12.21

3D transformation(R, t) matrix usage

이전 글 3D transformation(R, t) matrix notation 에서 SE3 4x4 matrix가 주어졌을 때 notation을 어떻게 표기하고, 그 notation을 해석하는 방법을 적은 바 있다. 해당하는 부분만 발췌해보면 다음과 같이 표기했을 때, 1) 우측 좌표계에서 좌측 좌표계로 변환하는 transformation matrix라고 해석한다. - 예) 3D point들을 camera 좌표계(c)에서 world 좌표계(w)로 변환한다. 결과적으로 world coord. 3D point가 나옴. 2) 왼쪽 좌표계에서 바라본, 우측 좌표계의 축, 원점 이라고 해석한다. - 예) world 좌표계(w)에서 바라본 camera 좌표계의 원점, 축들의 rotation, translation이..

Knowledge/Vision 2023.12.06

Spherical harmonic 직관적으로 이해하기

Spherical harmonic이라는 용어가 NeRF를 비롯한 논문들에 자주 등장하는데 정작 의미는 몰라 조금 정리를 해보고자 한다. 개념 자체의 출처가 수학과 물리학이다보니 모든 내용을 파고 들어 이해하는 것은 과한 것 같아, computer graphics에서 활용하는 이유를 받아들일 수 있을 정도로만 얕은 이해를 해보기로 했다. 일단, Spherical hormonic (이하 SH)를 이해하기 위해서 필요한 최소한의 수학과 직관으로부터 시작해보자! STEP 0 : 라플라스 방정식 개념 SH의 시작은 라플라스 방정식을 구면 좌표계에 적용해보는 것이다. 왜 굳이 구면 좌표계에 적용했냐? 라고 그 이유와 의미를 묻는다면...원래 수학이라는게 의미부여 이전에 개념을 정의하는 레벨이기 때문에 그냥 이렇게 ..

Knowledge/Vision 2023.11.23

Static library와 dynamic library 차이

C++를 다시 보며 공부하던 와중, CMakeLists.txt 내부에서 궁금증이 드는 부분이 생겼다. add_library(LIB_NAME [STATIC|SHARED|MODULE] ... ) add_library 사용 시에 들어가는 저 STATIC, SHARED 태그가 뭔지 궁금해졌다. static library, dynamic library 많이 들어봤지만 정작 어떤 차이인지 모르는 것을 보고 한 번 찾아봤는데 이 글에서 얕게 나마 정리해보고자 한다. Library란? library란 익히 들어알고 있겠지만 프로젝트를 구현할 때 공통적으로 쓰는 기능들을 매번 재구현하기 어려우니 미리 구현해서 불러오기 가능한 형태로 저장한 코드 집합을 말한다. python에서는 볼 일이 없지만 c++에서는 .lib, ...

Knowledge/Vision 2023.09.14

Positional embedding (직관적 이해)

Transformer 구조가 트렌드인 만큼 transformer 구조 내 핵심 기능 중 하나인 positional embedding에 대한 연구도 많이 진행되고 있다. 초창기 token에 position 정보를 넣어주기 위해서 sinusoidal function을 이용한 positional encoding을 사용했었는데 이제는 learnable 형태로 넣는 positional embedding이 더 효과적이라는 것이 밝혀져 embedding을 알아야 한다. 따라서 이 글에서는 positional embedding의 예시를 몇가지 짚어보면서 흐름을 잡을 수 있도록 정리한다. 이전 글 : 2023.03.10 - [Knowledge] - Positional encoding Prerequisites positi..

Knowledge/Vision 2023.09.13

Image flickering

카메라로 실내에서 이미지를 찍었는데 위와 같이 이미지에 검은색 줄무늬가 생기는 현상이 생길 때가 있다. 결론부터 말하면 이러한 image flickering 현상은 조명 때문이다. 조명의 Hz가 카메라의 셔터 스피드보다 빠르기 때문에 촬영하는 찰나에 빛이 꺼졌다 켜졌다하는 것이 이미지에 그대로 잡히는 것이다. 우리 나라 교류 전원은 60hz로 초당 60회 진동한다. 따라서 카메라 셔터 스피드가 이보다 느릴 시 위와 같은 현상이 나타날 수 있다. 다른 말로 카메라가 60FPS가 안 나오는 카메라라면 위 현상이 나타날 수 있다는 말이다. 카메라가 60FPS보다 낮은 FPS를 갖고 있음에도 관찰되지 않는 이유는 실내 조명이 LED와 같이 직류 전원을 이용하는 전원일 것이다. 어떻게 없앨 수 있을까? 이론 상 ..

Knowledge/Vision 2023.08.17

Trifocal tensor 이해하기

Trifocal tensor는 epipolar geometry에 등장하는 fundamental matrix의 카메라 3대 버전이라고 이해하면 된다. 즉, trifocal tensor를 이해한다는 것은 반대로 카메라 3대 간의 geometry를 이해하는 것과 같다. epipolar geometry와 같이 trifocal tensor가 다루는 것은 여전히 point와 line 간의 관계다. epipolar geometry에서 한 카메라 이미지에 찍힌 점은 다른 카메라 이미지 상에 선으로 나타난다는 것이 핵심이듯이 trifocal tensor가 다루는 geometry에서는 한 카메라 이미지의 점이 다른 카메라에서 어떻게 등장하는지가 핵심이다. 다만 그 경우의 수가 point-line-line, point-li..

Knowledge/Vision 2023.03.30

Swish activation function

Activation function은 sigmoide부터 ReLU, Leaky ReLU, ELU, SELU 등 많이 있지만 구글에서 새로 디자인한 activation function이 눈에 띄었다. 구글 찬양론자 같지만 출처가 구글이다보니 그래도 조금은 신뢰가 갔기 때문에 사용해보기로 했다. Swish activation function 일단 Swish가 타겟으로 하고 있는 activation function은 ReLU다. 가장 널리 쓰이고 있는 activation function인만큼 ReLU와의 비교를 확실히 해서 그 강점을 강조하려고 한 것 같다. ReLU는 익히 알다시피 음수 영역에서 0 처리를 해버림으로써 음수에서는 gradient가 발생하지 않는다. 그러므로 한 번 음수가 발생하면 연관된 뉴런..

Knowledge/Vision 2023.03.10

Positional encoding

Transformer나 NeRF 중 하나라도 다루어본 적이 있다면 Positional encoding, PE를 본 적이 있을텐데 나는 이것을 도대체 왜 쓰는지 궁금했다. 단순하게는 위치 정보를 표기하는 특별한 형태 중 하나라고 볼 수 있는데 안 바꾸고 그대로 쓰면 안되는지, 안 바꾸면 성능 차이가 그렇게 큰 지 궁금해졌고 그 이유에 대해서 공부하게 되었다. *먼저, 내가 공부할 때 참고했던 글은 https://towardsdatascience.com/master-positional-encoding-part-i-63c05d90a0c3 이다. Positional encoding step-by-step Postional encoding을 왜 쓰느냐? 정답은 "네트워크 편하라고"다. 사람의 입장에서 Positi..

Knowledge/Vision 2023.03.10

Spectral bias of Neural network

딥러닝을 공부하다가 inductive bias라는 개념은 CNN을 다룰 때나 transformer를 다룰 때 자주 들어보았지만, 최근 spectral bias라는 개념을 처음 접했다. 특정 task에서만 발생하는 bias라면 그냥 지나갔겠지만 짧게 알아본 바로는 모든 neural network 학습 과정에서 전반적으로 나타나는 bias여서 알아두어야 할 것 같았다. 그래서 이 글은 간략하게 나마 spectral bias가 뭔지 설명하고 그 파훼법을 정리하기 위해 적는다. Spectral bias On the Spectral Bias of Neural Networks 라는 제목의 논문에서 저자들이 처음 주장했다. By using tools from Fourier analysis, we highlight a..

Knowledge/Vision 2023.03.10