Byn's Research Note

AI based Mixed Reality, Human-Computer Interaction

↓ My Web CV & Portfolio 자세히보기

전체 글 53

Computer Vision Programming [1] : Panoramic Stitching

컴퓨터 비젼 수업의 기말 과제로 Panorama 이미지 생성 프로젝트를 진행했다. 수업 시간에 배운 수학적 원리와 이론을 활용하여 여러 이미지를 하나로 병합하는 과제이다. 코너 포인트 검출, 포인트 매칭, Homography 계산, 그리고 이미지 병합을 필수적으로 진행하고 선택적으로 이미지 전처리 및 노이즈 제거, RANSAC, 그룹 조정, 톤 매핑을 구현하면 추가 점수를 받는 방식이다. 모든 기능은 직접 구현했으며 코드는 로컬 이미지 데이터를 읽어 Panorama 이미지를 생성하고 결과를 화면에 출력하거나 저장했다. 0. 이미지 불러오기import cv2import os# 이미지가 저장된 폴더 경로를 지정하세요folder_path = 'your_folder_path_here' # 실제 폴더 경로로 변..

XR Programming [2] : 모션 패럴랙스와 핸드 인터랙션을 활용한 혼합 현실 TV 구현 (Applying Motion Parallax for Enhanced Viewing and ControlExperiences on Consumer TVs)

1. Motion Parallax(1) TV 화면 크기 계산 모션 패럴랙스 효과를 구현하려면 실제 TV 화면의 물리적 크기를 계산해야 한다. 화면 크기는 다음 공식을 통해 계산된다. 여기서 RD_m​은 화면 크기(미터), RD_i​는 화면 크기(인치)이다. 1인치 = 0.0254미터의 변환 계수를 사용한다. 이후 TV 화면의 폭과 높이는 종횡비(ar)를 고려해 계산된다. 예를 들어, 55인치 TV(16:9 비율)의 경우RDi​=55ar=16/9이 값을 대입하면, RSw≈1.21미터와 RSh≈0.68미터가 된다. 이는 이후 가상 카메라 투영 평면을 TV 화면과 정확히 일치시키는 데 사용된다.  (2) 사용자 좌표 정규화 Kinect는 사용자 머리 위치(E_tracked​)를 Kinect 센서 좌표계에서 추..

카테고리 없음 2024.12.09

XR Device [1] : Leap Motion 2 핸드트레킹 (Handtracking)

리프모션(Leap Motion) 컨트롤러를 유니티(Unity)와 연동하여 손 추적 기능을 구현하려면 다음 단계를 따르면 된다. 더보기1. 리프모션 윈도우 SDK 설치 및 설정Ultraleap의 핸드 트래킹 소프트웨어 다운로드 페이지에서 최신 윈도우용 SDK를 다운로드하여 설치설치 후 시스템 트레이에 리프모션 아이콘이 나타나며, 트래킹 상태를 확인할 수 있다.2. 유니티 프로젝트 설정Ultraleap의 유니티 플러그인 페이지에서 'Tracking.unitypackage'와 'Tracking Examples.unitypackage'를 다운로드유니티 에디터에서 'Tracking.unitypackage'를 먼저 임포트한 후, 'Tracking Examples.unitypackage'를 임포트3. 예제 씬 실행 ..

카테고리 없음 2024.12.09

Deep Learning [5] : 생성형 모델 (Generative Model)

생성형 모델은 데이터 생성 과정에 중점을 둔 모델로, 주어진 데이터셋과 유사한 새로운 데이터를 생성하기 위해 학습된다. 이 모델은 데이터의 잠재 확률 분포 p(x)를 학습하고, 이를 활용해 새로운 샘플을 생성하거나 기존 데이터의 특성을 이해하는 데 사용된다. 이 과정은 확률적이며, 데이터 생성이 랜덤 샘플링에 기반하기 때문에 같은 입력 데이터라도 결과가 달라질 수 있다. 생성 모델은 쉽게 말해 학습한 데이터를 흉내 내는 모델이라고 생각하면 쉽다. 예를 들어, 빵집에서 맛있는 빵을 만드는 비법을 배운다고 해보자. 이 모델은 빵집에서 맛있다고 평가받는 빵의 특징을 배우고 나서, 그 비슷한 빵을 만들어낸다. 완전히 똑같진 않지만, 빵집에서 만든 것과 유사한 느낌의 빵을 만들어낼 수 있는 것이다. 여기서 중요한..

카테고리 없음 2024.12.03

Programming Principles [8] : 정렬 (Sortion)

계산 복잡도 분석은 문제를 해결할 수 있는 모든 알고리즘의 효율성을 평가하고, 해당 문제의 하한(Ω)을 결정하는 과정이다. 예를 들어, 행렬 곱셈 문제의 일반 알고리즘은 Θ(n3)의 시간복잡도를 가지며, 개선된 알고리즘으로는 쉬트라쎈 알고리즘 (Θ(n2.81))과 위노그라드 알고리즘 (Θ(n2.38))이 존재한다. 하지만, 이 문제의 계산 복잡도 하한은 Θ(n2)로 알려져 있으나, 이만큼 효율적인 알고리즘은 아직 발견되지 않았다. 이는 하한보다 효율적인 알고리즘을 만드는 것이 불가능함을 의미하며, 예를 들어 3×3 행렬 곱셈에서는 기존 방식으로는 27번의 연산이 필요하지만, 개선된 알고리즘은 이를 줄일 수 있음을 보여준다. 계산 복잡도에서 문제의 복잡도 하한이 Ω(f(n))인 경우, 시간 복잡도가 Θ(f..

XR Programming [1] : 미세 중력 상황에서의 손 - 오브젝트 상호작용 시뮬레이션 (Microgravity Hand-Object Interaciton)

해당 논문은 Leap Motion의 핸드 트레킹과 Unity의 물리 엔진을 결합하여 사용자가 미세 중력의 가상 환경에서 손으로 객체를 조작하는 몰입감 있는 상호작용을 제공하는 연구이다. Leap Motion은 손의 위치, 속도, 회전 데이터를 실시간으로 추적하며, Unity의 물리 엔진은 충돌 감지, 접촉 지점 계산, 임펄스와 마찰력 적용을 통해 현실감 있는 물리적 반응을 시뮬레이션한다. 또한, 노이즈 필터링 기법을 적용해 손의 움직임을 안정적으로 처리하며, 사용자가 가상 객체를 잡고, 이동하며, 놓는 등의 섬세한 상호작용을 수행할 수 있도록 설계되었다.  God Object 접근법을 사용하여 손이 가상 객체를 뚫고 지나가는 문제를 해결하고, 손과 객체 간의 접촉을 유지하며 자연스러운 시각적 피드백을 제..

카테고리 없음 2024.12.03

AI Programming [3] : IMU 센서 + VR 핸드트레킹 LSTM 퓨전 모델 (IMU Sensor and VR Handtracking LSTM Fusion Model)

경희대학교 수업 프로젝트로 진행했던  전체 코드는 다음과 같다. 1. 필요한 라이브러리 불러오기import numpy as npimport pandas as pdfrom sklearn.model_selection import train_test_splitimport torchimport torch.nn as nnfrom torch.utils.data import DataLoader, TensorDataset, ConcatDatasetimport globfrom tqdm import tqdmfrom LSTMModel import LSTMModel 코드의 첫 번째 단계는 데이터 처리와 모델 학습에 필요한 라이브러리를 불러오는 것이다. numpy와 pandas는 데이터를 다루고 전처리하는 데 사용되며 skle..

카테고리 없음 2024.12.02

AI Programming [1] : 하버드 트랜스포머 (Harvard Transformer)

Transformer는 문장이나 텍스트를 처리하는 데 사용되는 모델로, 주로 Encoder와 Decoder라는 두 큰 구성 요소로 나뉜다. Encoder는 입력된 문장을 이해하고 중요한 정보를 추출하는 역할을 하며, Decoder는 그 정보를 바탕으로 새로운 문장을 생성한다. 각 Encoder와 Decoder는 여러 층으로 이루어져 있고, 각 층은 Multi-Head Attention으로 입력의 중요 부분을 분석하고, Normalization으로 데이터의 변동성을 줄이며, Residual Connection으로 각 층의 출력을 더 원활하게 연결하며, Feed Forward network로 데이터를 처리한다. 입력된 단어는 Embedding이라는 과정을 통해 숫자 벡터로 변환되어 컴퓨터가 이해할 수 있도록..

카테고리 없음 2024.11.29