Byn's Research Note

AI based Mixed Reality, Human-Computer Interaction

↓ My Web CV & Portfolio 자세히보기

2024/10 15

Programming Principles [7] : 탐색 (Search)

1. 백트레킹 (Back Tracking) 백트래킹(backtracking) 알고리즘은 탐색 문제를 해결하는 기법으로, 상태공간트리를 깊이우선탐색(DFS) 방식으로 탐색하면서 유망하지 않은 노드(non-promising node)를 가지치기(pruning) 하여 탐색 범위를 줄인다. 이 알고리즘은 탐색 중간에 해답이 나올 가능성이 없는 경로를 제거해 효율성을 극대화한다. 더보기깊이 우선 탐색 (Depth-First Search, DFS)  깊이우선탐색(Depth-First Search; DFS)은 트리나 그래프 구조에서 루트 노드(또는 시작 노드)부터 시작하여, 자식 노드를 깊게 탐색한 후 더 이상 자식 노드가 없을 때 부모 노드로 되돌아오는 방식으로 진행하는 탐색 알고리즘이다. 이는 주로 재귀적으로 구..

Deep Learning [1] : 딥러닝 모델 개론과 정보 이론과 수학 (작성중)

1. 딥러닝 모델 딥러닝(Deep Learning, DL)은 머신 러닝(Machine Learning, ML)의 한 분야로, 머신 러닝은 인공지능(AI)의 하위 개념이다. AI는 사람의 지능이나 행동을 모방하는 기술을 의미하며, 머신 러닝은 데이터를 통해 컴퓨터가 스스로 학습하도록 하는 기술이다. 딥러닝은 인간의 뇌, 특히 뉴런의 구조를 모방한 신경망을 이용해 복잡한 학습을 수행하는 기법이다. 현재에는 사람의 고유한 능력으로 컴퓨터가 절대 할 수 없었던 것처럼 여겨졌던 상상을 하고 그것을 그려내는 모델 등이 나오면서 주목을 받고 있다.     불확실성을 직관적으로 이해하자면, 예측하기 어려운 상황을 떠올리면 좋다. 예를 들어 주사위를 던질 때 결과가 어떤 숫자가 나올지 알 수 없어서 불확실성이 큰 상태인..

Vision Theory [4] : 이미지 매핑

2D 이미지 한 장으로는 3D를 예측하기에 정보가 부족하므로, 두 장 이상의 이미지를 사용해 데이터 간 관계를 파악하는 것이 중요하다. 예를 들어, disparity 이미지를 통해 좌우 시점 기준의 두 개 depth를 얻어 서로 다른 시점 간 관계를 이해할 수 있다. 만약 다른 사람이 촬영한 두 장의 사진을 이용해 스테레오 시스템을 적용하고자 한다면 두 카메라 사이의 상호 관계를 알아야 한다. 이번 장에서는 주어진 두 이미지 간 변환 관계를 찾아내는 과정에 집중하여 기존 스테레오 시스템에서의 밀집한 대응점 찾기(dense correspondence)가 아닌, 확실한 희소 대응점(sparse correspondence)을 기반으로 두 카메라 간 이동 관계를 역으로 추정하고자 한다. 1. Image Mapp..

Unity Development [3] : 컴포넌트 기반 아키텍처

프리팹 (Prefab) 태그와 레이어 (Tag and Layer)유니티에서 사용하는 게임 오브젝트는 각각의 이름이 존재하고, 이를 분류하기 위해 Tag, Layer라는 두 가지 요소를 사용한다. 두 요소가 정확히 무슨 차이이고, 어떻게 사용되는지 알아보자. 아무 게임 오브젝트나 선택한 후 인스펙터 창에서 Tag나 Layer를 클릭하고 하단 [Add Tag] 또는 [Add Layer]를 클릭하면 Tag & Layers 창으로 이동되며, 이곳에서 태그와 레이어를 관리할 수 있다.Tag유니티에서 태그 (Tags)는 게임 오브젝트를 구분하고 분류하는 데 사용되는 간단한 문자열 레이블이다. 주요 기능은 다음과 같다. 오브젝트 분류: 태그를 사용하여 오브젝트를 그룹화할 수 있다. 예를 들어, 모든 적 캐릭터에 "E..

Vision Theory[3] : 카메라 모델과 스테레오 비젼

컴퓨터 비전에서 3D 정보 추출과 영상 처리를 위해서는 카메라 모델과 스테레오 비전을 이해할 필요가 있다. 카메라 모델은 실제 세계의 3D 정보를 2D 이미지로 투영하는 과정을 수학적으로 설명하는데, 이를 통해 이미지 내 객체의 위치나 크기를 추정할 수 있다. 스테레오 비전은 두 개의 카메라를 사용해 두 이미지 간의 차이를 비교하여 깊이 정보를 계산하며, 이를 통해 3D 재구성, 물체 탐지, 로봇 비전, 자율 주행 등 다양한 응용에 사용된다. 따라서 카메라 모델과 스테레오 비전의 원리를 이해하면 3D 공간에 대한 정확한 정보를 추출하고 다양한 응용에 활용할 수 있다. Camera Model카메라 모델은 컴퓨터 그래픽스를 배울 때 거의 다루었던 내용지만 컴퓨터 비전에서는 다르게 활용이 된다. 컴퓨터 그래픽..

Unity Programming [0] : 유니티 C# 프로그래밍 (OOP, DOD 등)

유니티에서 C# 객체지향 프로그래밍(OOP)은 복잡한 게임 시스템을 관리하고 유지보수성을 높이는 데 필수적이다. 객체 지향 프로그래밍을 이용하면 클래스와 상속, 다형성 등을 통해 코드를 모듈화하여 재사용성을 극대화하고, 확장성을 높여 새로운 기능을 쉽게 추가할 수 있다. 또한, 코드의 구조를 명확히 나눔으로써 협업 시에도 개발자 간의 작업 충돌을 최소화하고, 수정할 때 특정 부분만 수정하면 되므로 오류 발생 가능성을 줄일 수 있다. 이를 통해 효율적인 개발과 코드 관리가 가능해진다. 유니티 C#에서는 네임 스페이스, 클래스, 구조체, 제네릭 타입 등을 통해 이를 구현할 수있다. 코드를 간소화하려면 반복되는 부분을 별도의 메서드로 추출해 공통적인 기능을 모듈화하는 것이 좋습니다. 예를 들어, 각 손의 진행..

Linear Algebra [1] : 행렬 분해 기법 : 특이값과 고유값 분해

특이값 분해 (SVD) 특이값 분해(Singular Value Decomposition, SVD)는 선형대수학에서 매우 중요한 행렬 분해 기법이다. 이는 주로 데이터 압축, 차원 축소, 노이즈 제거, 추천 시스템 등 다양한 응용 분야에서 활용된다. SVD는 임의의 m×nm \times nm×n 크기의 행렬 AAA를 세 개의 행렬로 분해하며, 이를 수학적으로 A=UΣVTA = U \Sigma V^TA=UΣVT로 표현한다. 여기서 UUU는 m×mm \times mm×m 크기의 직교행렬로 AATA A^TAAT의 고유벡터를 열 벡터로 가지며, VTV^TVT는 n×nn \times nn×n 크기의 직교행렬로 ATAA^T AATA의 고유벡터를 행 벡터로 가진다. Σ\SigmaΣ는 m×nm \times nm×n 크기..

Rendering Pipelines [0] : 렌더링 파이프라인 개론

렌더링 파이프라인은 3D 객체의 기하학적 형태를 정의하고 조명 효과를 계산한 후 최종적으로 2D 이미지로 변환해 시각적으로 표현하는 컴퓨터 그래픽스의 핵심 과정이다. 일반적으로 모델링, 변환, 조명, 클리핑, 래스터화, 텍스처 매핑, 그리고 최종적으로 픽셀 색상을 결정하는 단계로 구성된다. 파이프라인은 그래픽스의 이론을 토대로 전산에 불과한 정점의 배열들이 3D 객체로 2D 이미지에 변환되는 핵심 원리를 이해하는 데 중요하며 각 단계가 최종 이미지의 품질과 성능에 직접적인 영향을 미치기 때문에  이를 이해하는 것은 효율적인 그래픽 처리 기술을 개발하는 데 필수적이다. 본 카테고리에서는 대표적인 그래픽 API인 DirectX를 토대로 렌더링 파이프라인의 각 단계에 대해 다룰 것이다. 컴퓨터 그래픽을 생성하..