https://learnopengl.com/OpenGL은 platform이 아닌 Graphics API으로, 이것을 동작시킬 language가 필요하다. 교재에서는 C++을 선택.OpenGL은 주로 graphics/images를 조작하는 여러 함수들을 제공하는
Homography를 이용해서 camera A의 point에서 camera B의 point로의 변환을 아래와 같이 표현할 수 있다. $\\begin{bmatrix} x2\\y_2\\z_2 \\end{bmatrix}=\\begin{bmatrix}H{11}&H{12}&H{
0\. 원본 코드result : 24.8 us1\. += 연산자 사용.기존의 코드는 매번 임시 문자열 객체를 생성함.result : 1.62 us2\. reserve() 사용result : 1.47 us3\. call by reference result : 1.60 u
GCC(GNU Compiler Collection) : C, C++, Java 등의 컴파일 언어를 컴파일하는 컴파일러의 일종이다. 여기서는 C언어를 대상으로 이야기한다. 출처컴파일 : C언어로 작성된 각각의 소스코드를 어셈블리어로 변환. 결과로 오브젝트 파일이 생성됨.
참고자료 : Quaternion kinematics for the error-state Kalman filter쿼터니언은 $a+bi$의 형태로 나타나내는 복소수를 확장한 것으로 볼 수 있다.$q = q_w + q_xi + q_yj + q_zk \\in H$$where
1. vector 코드 사용 2. doubly linked list 코드 사용
cmake를 이용해서 빌드할 때 main.cpp에서 cuda를 이용한 행렬곱 함수를 호출해 사용하는 예제이다.결론부터 말하면 main.cpp는 matmul.cuh를 include하고 실제 쿠다를 사용하는 함수들은 모두 matmul.cu에 선언, 정의되어있다.matmul
Rule of Five : 클래스에서 동적 할당 메모리를 사용하고 있다면 소멸자, 복제 생성자, 이동 생성자, 복제 대입 연산자, 이동 대입 연산자를 반드시 구현한다.Rule of Zero : 모던 C++로 작성할 경우 raw pointer 대신 STL의 std::ve
경쟁 상태 : 여러 스레드가 공유 리소스를 동시에 접근.x86 프로세서에서 제공하는 INC는 아토믹하지 않으므로, 두 스레드의 작업이 겹치게 되면 예상치 못한 결과를 얻을 수 있다.테어링읽기 테어링 : 1번 스레드가 메모리에 데이터의 일부분만 쓰고 나머지 부분을 다 쓰
OS : Ubuntu 20.04carla : 0.9.13https://github.com/carla-simulator/carla/releases/tag/0.9.13source code(zip) 다운로드 후 unzipsudo apt install clang-8U
Object들은 Local space 기준으로 기술.Local space -> World space -> View space -> Canonical space로 변환.OpenGL의 그림은 -1, 1 사이로 normalized된 Canonical space에 그려진다.3
참고한 강의STL 컨테이너 중 std::map을 구현해보는 실습을 진행하였다.std::map의 경우 각 노드마다 std::pair를 저장하고 있다. pair의 first가 key, second가 value이다.Pair에 key, value값을 저장하고 {부모노드, 왼쪽
현재 state에서 cost function의 derivate(jacobian)를 구하고, 해당 방향의 반대 방향으로 step size를 곱한 만큼 state를 변화시킨다.값이 수렴할 때까지 반복한다.$x{k+1}=x{k}-\\alpha \\nabla f(x_i)$lo
객체지향 언어의 특징캡슐화(은닉성)상속다형성추상화protected자식 클래스에서는 접근이 가능하지만 이외에는 불가능함.이니셜라이저 부분에서 부모 클래스의 멤버변수를 초기화할 수 없음.자식 클래스 객체를 생성하면 Child 클래스 생성자가 먼저 생성된다.Child 클래스
k-d tree(k-dimensional tree)는 컴퓨터 비전 분야에서 "space-partitioning data structure for organizing points in a k-dimensional space"을 의미한다.
Ceres-Solver를 이용하면 아래와 같은 bounds constrained robustified non-linear least squares problem을 풀 수 있다.ResidualBlock : $\\rhoi(||f_i(x{i1},...,x{ik})||^2)$
Fast and Robust Iterative Closest Point Abstract ICP algorithm은 두 점군의 정합하는 중요한 테크닉이다. 로보틱스부터 3D reconstruction등 넓은 분야에 적용된다. ICP의 가장 큰 문제점은 outlier에