본문 바로가기

전체 글

[C#] 선형 자료구조 (Array, Dynamic Array, Linked List) 취준을 위해 다시 정리해본다. 대학교 1학년 때 잘 이해도 안되는 연결리스트를 c로 직접 구현하느라 애를 많이 썼던 기억이 아직도 생생하다...  선형 구조는 자료를 순차적으로 나열한 형태이다.배열, 동적 배열연결 리스트스택 / 큐 배열 (Array)배열은 고정된 크기의 연속적인 메모리 블록에 데이터를 저장한다. 모든 요소가 동일한 데이터 타입을 가지며, 인덱스를 사용하여 요소에 접근할 수 있다. 장점빠른 인덱스 접근: 특정 인덱스의 요소에 O(1) 시간 복잡도로 접근할 수 있다.메모리 효율성: 요소들이 연속적으로 저장되므로 메모리 오버헤드가 적다.단점고정 크기: 배열의 크기를 초기화할 때 정해야 하며, 이후에는 크기를 변경할 수 없다.비효율적인 삽입 및 삭제: 요소를 삽입하거나 삭제할 때, 특히 배열의.. 더보기
[Unity] Meta Quest :: Passthrough 설정법 시작 전 개발환경 세팅 https://cagongman.tistory.com/94 Passthrough 설정 OVRCameraRig 오브젝트에 OVR Passthrough Layer 컴포넌트를 추가한다. Prejection Surface 요소를 Reconstructed로 변경 Placement 요소를 underlay로 변경 OVRCameraRig 오브젝트의 Inspector 창에서 Passthrough support : Supported로 설정 Insight Passthrough Enable Passthrough 체크 스카이박스 제거 OVRCameraRig TrackingSpace CenterEyeAnchor CenterEyeAnchor 오브젝트의 Inspector 창에서 Clear Flags를 Soli.. 더보기
[Unity] Meta Quest :: Controllers 및 Hands 설정 [Unity] Meta Quest :: 개발 환경 설정 이 완료되어 있는 상태라 가정함. Controller 설정 Project 창에서 OVRControllerPrefab을 찾아 LeftControllerAnchor, RightControllerAnchor 오브젝트의 자식으로 각각 추가한다. 추가로 OVRControllerPrefab의 Inspector 창에서 Controller 프로퍼티를 각각 왼쪽은 L Touch, R Touch에 맞게 설정해줌 Hand Prefab 추가하는법 Project 창에서 OVRHandPrefab을 찾고 LeftHandAnchor, rightHandAnchor 오브젝트의 자식으로 각각 추가한다. (Controller 설정 때와는 다른 위치임) OVRHandPrefab insp.. 더보기
[Unity] Meta Quest :: 개발 환경 설정 우선 3D Core로 새로운 프로젝트를 하나 생성. Build Settings으로 이동하여 Android platform으로 변환한다. Player Settings에서 XR Plugin Management를 설치해준다. 설치 완료 후 아래와 같은 창이 뜰텐데 PC와 Android에 모두 오큘러스를 체크한다. Unity Package Manger에서 oculus Integration Asset을 임포트한다. 에셋을 import 할때 이런 창들이 뜰텐데 모두 파란색 권장 사항들을 클릭해 준다. (upgrade 및 재부팅 까지 모두 수행) 설치하고 나면 이제 프로젝트 상단에 Oculus 탭이 생성되어 있을 것이다. Oculus -> Tools -> Project Setup Tool 클릭 안드로이드와 PC의 모.. 더보기
C++ :: 코테를 위한 STL 정리 STL 이란Standard Template Library(STL)는 C++ 프로그래밍 언어의 표준 라이브러리로, 데이터 구조와 알고리즘을 제공하는 템플릿 클래스 및 함수들의 집합이다. 1. STL의 주요 구성 요소이터레이터 (iterator)컨테이너 (container)알고리즘 (algorithm) 1.1 반복자 (Iterator)이터레이터는 컨테이너의 요소들에 접근하고 순회하는 데 사용되는 객체입니다. 이터레이터는 포인터와 유사하게 동작하며, 특정 컨테이너와 함께 사용됩니다. 순방향 반복자 (Forward Iterator): 원소를 순차적으로 순회할 수 있습니다.역방향 반복자 (Reverse Iterator): 원소를 역방향으로 순회할 수 있습니다. 순방향 반복자  .begin( )  컨테이너의 첫 워.. 더보기
[Vision Geometry] 카메라 모델 (Camera model) 이미지는 기본적으로 외부의 빛을 렌즈를 통해 모으고 이미지 센서에 모여든 빛을 디지털화하여 생성합니다. 다르게 말하면 어느 3차원 좌표에서 반사된 빛을 2D 이미지 평면에 사영시키는 것이라 볼 수 있습니다. 이번 포스팅에는 multi view geometry에 가장 기본이 되는 카메라 모델에 대해 정리해 보려 합니다. 카메라 모델이란 real world와 image사이의 관계를 수식으로 근사해 놓은 것입니다. 처음에 언급했듯이 image는 3D real world에서의 좌표를 2D camera 좌표로 변환하는 것인데요. 이러한 변환 관계를 몇 가지 물리적 파라미터를 통해 정의할 수 있습니다. 우선 크게 내부 파라미터와 외부 파라미터로 나눌 수 있는데요. 내부 파라미터 (Intrinsic parameter.. 더보기
[Vision Geometry] 5가지 2D Transformations 정리 2D에서의 변환 (Tranformation) 2D에서 두 이미지 사이의 매칭 관계를 모델링할 때 변환 행렬이 사용됩니다. 2D에서의 변환 모델은 Translation, Euclidean, Similarity, Affine, Projective 변환 이렇게 5가지가 있습니다. 주어진 과제에 따라 변환에 어떤 제약을 줄 수 있을지 고려하여 변환모델을 잘 선택해야 합니다. 이어서 5가지의 변환 모델에 대해서 알아보겠습니다. 본 글에서의 $\overline{\boldsymbol{x}}$는 Homogeneous Coordinate를 따릅니다. Homogeneous Coordinate에 대해서는 여기를 먼저 참고 하시고 글을 읽으시면 이해에 도움이 될 겁니다. Translation 변환 $$ \overline{\b.. 더보기
[ML-Agent] Error (protoc >= 3.19.0.) 해결법 윈도우에서 강화학습 환경을 세팅하기 위해 ML-Agent를 설치한 후 설치가 잘 되었는지 확인하는 과정에서 다음과 같은 에러가 발생했다. TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. S.. 더보기

728x90