반응형

다음은 Apple의 Vision OS 사용에 대한 칼럼으로, 최근에 소개된 장치인 Vision Pro와 MR(Mixed Reality) 헤드셋과의 호환성에 대한 정보를 포함합니다


끊임없이 진화하는 기술 환경에서 애플은 개발자와 사용자에게 몰입형 경험을 만들 수 있는 획기적인 도구를 제공하면서 혁신의 경계를 계속해서 밀어붙이고 있습니다. 그러한 도구 중 하나는 개발자들이 컴퓨터 비전과 기계 학습의 힘을 활용할 수 있도록 지원하는 강력한 플랫폼인 애플의 비전 OS이다. 오늘은 비전 OS의 세계와 그 놀라운 잠재력을 탐구하는 동시에 애플이 최근 선보인 기기인 비전 프로와 MR(Mixed Reality) 헤드셋과의 원활한 통합에 대해 자세히 알아본다.

Vision Pro: 증강현실의 미래를 재정의합니다
Apple의 Vision Pro는 증강 현실 기능의 상당한 도약을 나타냅니다. 이 최첨단 장치는 최첨단 하드웨어와 고급 비전 OS를 결합하여 비길 데 없는 증강 현실 경험을 제공합니다. 날렵하고 가벼운 디자인의 Vision Pro는 디지털 세계와 상호 작용할 수 있는 편안하고 몰입적인 방법을 사용자에게 제공합니다. 강력한 센서, 카메라 및 고해상도 디스플레이를 갖춘 Vision Pro는 개발자들이 가상 콘텐츠를 실제 세계와 원활하게 혼합하는 놀라운 AR 애플리케이션을 만들 수 있도록 지원합니다.

MR 헤드셋으로 새로운 영역 잠금 해제
비전 프로의 뛰어난 기능을 보완하기 위해 애플은 MR 헤드셋의 잠재력을 수용했다. 이러한 헤드셋은 사용자에게 가상 세계와 물리적 세계 사이의 선을 흐리게 하면서 진정으로 몰입할 수 있는 혼합 현실 경험을 제공한다. 개발자는 Vision OS SDK와 강력한 컴퓨터 비전 알고리즘을 활용하여 사용자 환경에 실시간으로 대응하는 MR 애플리케이션을 만들 수 있습니다. 생산성 향상, 게임 경험 혁신, 커뮤니케이션 혁신 등 다양한 분야에서 Vision Pro와 MR 헤드셋의 결합은 다양한 가능성을 열어줍니다.

개념에서 현실로: Vision OS SDK 활용
이러한 발견과 혁신의 여정을 시작하기 위해 개발자는 컴퓨터 비전 기능을 애플리케이션에 완벽하게 통합할 수 있는 포괄적인 툴킷인 Vision OS SDK에 뛰어들 수 있습니다. 개발자는 강력한 API, 사전 교육된 모델 및 광범위한 설명서에 액세스하여 Vision OS의 강력한 기능을 활용하는 애플리케이션을 신속하게 프로토타입화하고 구축할 수 있습니다. Vision OS SDK는 객체 인식 및 추적에서 얼굴 분석 및 제스처 감지에 이르기까지 개발자에게 매력적이고 몰입적인 경험을 제공하는 도구를 제공합니다.

결론:
애플이 기술의 경계를 계속 밀어붙이면서 비전 OS 플랫폼은 우리가 디지털 세계와 상호 작용하는 방식에 혁명을 일으키는 최전선에 서 있다. 비전 프로의 도입과 MR 헤드셋과의 호환성으로 몰입적이고 혁신적인 경험을 만들 수 있는 가능성은 무한하다. Vision OS의 힘과 그것이 제공하는 도구를 활용함으로써, 개발자들은 증강 현실의 진정한 잠재력을 열 수 있으며, 일상적인 작업을 더 직관적이고, 재미있고, 특별하게 만들 수 있다.

이번 소개에서는 비전 프로 기기의 중요성과 MR 헤드셋과의 통합을 강조하며 애플 비전 OS의 기능을 탐구하는 무대를 마련한다. 필기 스타일 및 특정 초점 영역에 맞게 자유롭게 수정하고 조정할 수 있습니다.

반응형
반응형

다음은 Apple에서 제공하는 Vision OS SDK 다운로드 및 설정에 대한 단계별 가이드입니다:

1단계: Apple Developer 웹 사이트를 방문합니다
공식 Apple Developer 웹 사이트(developer.apple.com )를 방문하십시오. 여기서 소프트웨어 개발 키트(SDK)를 비롯한 다양한 개발 리소스에 액세스할 수 있습니다.

2단계: Apple Developer 계정에 로그인 또는 생성
Apple Developer 계정이 이미 있는 경우 자격 증명을 사용하여 로그인합니다. 그렇지 않으면, 웹사이트의 등록 절차에 따라 새 계정을 만드십시오.

3단계: Vision OS SDK 액세스
로그인한 후 "다운로드" 섹션으로 이동하거나 검색란에서 "Vision OS SDK"를 검색합니다. Vision OS SDK를 찾아 클릭하여 다운로드 페이지에 액세스합니다.

4단계: 시스템 요구 사항 확인
SDK를 다운로드하기 전에 시스템이 Apple에서 지정한 필수 요구 사항을 충족하는지 확인하십시오. 여기에는 특정 버전의 macOS 또는 Xcode가 컴퓨터에 설치되어 있을 수 있습니다.

5단계: Vision OS SDK 다운로드
다운로드 버튼을 클릭하여 다운로드 프로세스를 시작합니다. SDK는 압축 파일(예: ZIP 파일)로 로컬 컴퓨터에 다운로드됩니다.

6단계: SDK 파일 추출
다운로드가 완료되면 다운로드한 파일을 찾아 내용을 추출합니다. 이 작업에는 일반적으로 파일을 마우스 오른쪽 단추로 클릭하고 "추출" 또는 "압축 해제" 옵션을 선택하는 작업이 포함됩니다. 추출된 파일을 저장할 적절한 위치를 컴퓨터에서 선택하십시오.

7단계: Xcode 열기
비전 OS SDK로 작업하려면 맥OS와 iOS 앱 개발을 위한 애플의 통합개발환경(IDE)인 Xcode가 필요하다. Xcode가 설치되어 있지 않으면 Mac App Store에서 다운로드할 수 있습니다.

8단계: 새 Xcode 프로젝트 생성
Xcode를 열고 시작 화면 또는 "File" 메뉴에서 "Create a new Xcode project"를 선택하여 새 프로젝트를 만듭니다. "Single View App" 또는 "Augmented Reality App"과 같은 요구 사항에 따라 적절한 프로젝트 템플릿을 선택합니다

9단계: 프로젝트에 Vision OS SDK 추가
프로젝트가 생성되면 프로젝트 탐색기에서 프로젝트 이름을 선택하여 프로젝트 설정으로 이동합니다. 프로젝트 설정에서 "일반" 탭을 찾은 후 "프레임워크, 라이브러리 및 포함된 콘텐츠" 섹션으로 스크롤합니다. "+" 버튼을 클릭하여 새 프레임워크를 추가한 다음 사용 가능한 프레임워크 목록에서 Vision OS SDK를 선택합니다.

10단계: Vision OS SDK 사용 시작
이제 Vision OS SDK를 프로젝트에 추가하여 해당 기능을 활용할 수 있습니다. 필요한 Vision OS 모듈 또는 클래스를 소스 코드 파일로 가져오고 SDK에서 제공하는 원하는 기능 구현을 시작합니다.

Vision OS SDK 및 기능에 대한 자세한 내용은 Apple에서 제공하는 공식 문서 및 리소스를 참조하십시오. 이를 통해 잠재력을 최대한 활용하고 앱 개발 경험을 최대한 활용할 수 있습니다.


반응형
반응형

 

 

1. D2-Net (https://arxiv.org/pdf/1905.03561.pdf)

: CNN 기반

 

 

2. LF-Net (https://papers.nips.cc/paper/7861-lf-net-learning-local-features-from-images.pdf)

Local feature를 학습

3. Feature matching CNN 기반 (https://ieeexplore.ieee.org/abstract/document/8780936)

 

 

4. Deep Grapthical feature learning for feature matching (https://openaccess.thecvf.com/content_ICCV_2019/papers/Zhang_Deep_Graphical_Feature_Learning_for_the_Feature_Matching_Problem_ICCV_2019_paper.pdf)

GNN 기반 feature point를 local feature 로 변환. 이로 인해 feature matching 시에 inference 알고리즘이 단순화됨.

 

 

 

 

출처 : https://towardsdatascience.com/image-feature-extraction-traditional-and-deep-learning-techniques-ccc059195d04

반응형

'Programming > SLAM' 카테고리의 다른 글

iMap : Implicit Mapping and Positioning in Real-Time 논문 리뷰  (0) 2023.05.21
DROID SLAM 논문 리뷰  (0) 2023.05.20
SLAM 비선형 최적화 기법  (0) 2023.05.01
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
반응형

 

 

https://arxiv.org/pdf/2103.12352.pdf

 

0. Title

iMap : Implicit Mapping and Positioning in Real-Time

-> Real-Time 환경에서 사용 가능한, 절대적인 mapping과 positioning 방법이다.

 

1. Introduction

2. Structure

1) System Overview

-> Tracker에서 포즈를 뽑고, 만약 키프레임이라면 Mapper에서 네트워크를 통해 최적화하여 tracker로 다시 정보를 보내주는 것 같다.

 

2) Implicit Scene Neural Network

NeRF와 유사하게, 4개의 히든 레이어를 가진 MLP와 

2개의 아웃풋 헤드를 이용한다. 이는 3D 좌표를 color와 volume density value인 F(p)=(c,r)으로 매핑한다. (volume density value란 depth를 말하는 듯 싶다.)

NeRF와 다른 점은, 보는 방향은 고려하지 않는다는 것이다. 우리에게 반사성은 중요하지 않기 때문이다.

 

3) Depth and color Rendering

4) Joint Optimization

 

 

 

 

 

반응형

'Programming > SLAM' 카테고리의 다른 글

Deep Learning based Feature extraction 기법  (0) 2023.05.24
DROID SLAM 논문 리뷰  (0) 2023.05.20
SLAM 비선형 최적화 기법  (0) 2023.05.01
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
반응형

 

0. Title

DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras

-> 이미지를 딥러닝으로 학습시켜 만든 SLAM 시스템인가보다,, 단안, 스테레오, RGB-D 카메라환경에서 쓰일 수 있나보다.

 

1. Introduction

 

2. Structure

: 단안, 스테레오, 혹은 RGB-D 데이터를 넣어주면 End-to-End로 SLAM pose와 depth를 구하는 것으로 보인다.

 

: LSTM의 구조를 단순화시킨 GRU를 이용한다. 프레임 그래프에서 엣지를 대상으로 작동하며, 플로우 변화를 예측하여 DBA(Dense Bundle Adjustment) layer를 통해 depth와 pose를 업데이트한다.

 

3. Approach

1) Feature Extraction and Correlation

RAFT 와 비슷한 방법으로 모든 새로운 이미지에서 feature를 추출한다.

- Feature Extraction

: feature extraction network에 의해 피쳐가 뽑아진다. 네트워크는 6개의 residual block과 3개의 downsampling layer로 구성되어 있다. 이는, 1/8 이미지 resolution에서 촘촘한 피쳐맵을 만든다.

RAFT와 유사하게, 두개의 네트워크를 사용한다. : 피쳐 네트워크와 컨텍스트 네트워크이다.

피쳐 네트워크는 correlation volume을 구하고, 컨텍스트 네트워크는 각 어플리케이션의 update operator에 주입된다.

- correlation pyramid

: 프레임 그래프에 있는 모든 엣지에 대하여, 모든 피쳐 페어에 대하여 dot product를 수행함으로써 4d correlation volume을 계산한다.

(한 피쳐 당 x,y 한 묶음이므로 2x2 = 4d)

즉, structure의 인풋 데이터 중 하나인, Cij 는 모든 피쳐에 대한 dot product 결과이다.

 

2) Update Operator

반응형
반응형

출처 : https://darkpgmr.tistory.com/142

 

함수최적화 기법 정리 (Levenberg–Marquardt 방법 등)

※ 참고로, 아래 글 보다는 최근에 올린 [기계학습] - 최적화 기법의 직관적 이해를 먼저 읽어볼 것을 추천합니다. 그 이후에 아래 글을 읽어보시면 좋을 것 같습니다. ---------- 원래는 Levenberg-Marqu

darkpgmr.tistory.com

 

1. 최소자승법

관측값을 x, 모델 파라미터를 p, 모델을 y=f(x,p), 관측값과 모델의 오차를 r이라고 할 때,

오차 제곱합이 최소화 되도록 모델 파라미터 p를 정하는 방법을 최소자승법(least square method)이라 한다.

 

2. Gradient Descent

Gradient Descent 방법은 아래 식과 같이 어떤 초기값 x0으로부터 시작하여 

그레디언트의 반대 방향으로 계속 내려가다 보면 함수의 최소값을 찾을 수 있다는 방법이다.

 

* 어떤 다변수 함수의 그레디언트는

로 정의되며, 함수값이 가장 가파르게 증가하는 방향을 나타낸다

 

[ 최소자승 문제에의 적용 ]

r(x,p) = y-f(xp) 라하면 최소화시키고자 하는 목적함수는 다음과 같다.

따라서, 비선형 최소자승 문제에 대한 gradient descent의 해는 모델 파라미터 p에 대한 초기 추정값 p0에서 시작하여

p를 다음 수식에 의해 반복적으로 갱신함으로써 얻어진다. (람다는 step size이다.)

 

아래의 참고 글에서 일차미분을 이용한 최적화에 해당한다.

https://darkpgmr.tistory.com/149

 

최적화 기법의 직관적 이해

일전에 최적화 기법에 대해 정리하는 글(기계학습 - 함수 최적화 기법 정리)을 썼었는데, 지금에 와서 보니 너무 수식만 가득한 글이었던 것 같습니다. 그래서 수식보다는 좀더 직관적으로 이해

darkpgmr.tistory.com

 

3. 뉴턴법 

어떤 함수 E(x)=0의 해를 찾기 위해

임의의 초기값 x0으로부터 시작하여 다음 수식에 따라 x를 반복적으로 갱신함으로써 해를 찾아가는 방법니다.

 

그 원리는 미분이 접선의 기울기임을 이용하여 

현재의 x에서 E(x)의 부호와 기울기 E'(x)의 부호에 따라 x를  증가시킬지 감소시킬지를 결정하고

그 기울기의 크기에 따라서 x를 얼마나 많이 증가(감소)시킬지를 결정하는 방식이다.

 

만일 뉴턴법을 함수 E(x)의 최소(최대)값을 찾는 최적화 문제에 적용할 경우에는

다음과 같이 E'(x)=0의 해를 찾는 문제로 식을 변형하여 적용할 수 있다.

 

또한, 뉴턴법을 다변수 함수의 최적화 문제로 확장하면 식을 아래와 같이 수정하여 적용할 수 있다.

(단, H는 E''(x)로써 헤시안 값을 나타낸다.)

 

[최소자승 문제에의 적용]

뉴턴법의 식을 적용하면 비선형 최소자승 문제에 직접 적용하는 것도 가능은 하다.

하지만, E(p)에 두 번 미분해야 하는 부담이 존재한다.

따라서, 비선형 최소자승 문제의 경우에는 뉴턴법 대신에 일차 미분만으로 해의 계산이 가능한 가우스-뉴턴법이 사용된다.

 

아래의 참고 글에서 이차미분을 이용한 최적화에 해당한다.

https://darkpgmr.tistory.com/149

 

최적화 기법의 직관적 이해

일전에 최적화 기법에 대해 정리하는 글(기계학습 - 함수 최적화 기법 정리)을 썼었는데, 지금에 와서 보니 너무 수식만 가득한 글이었던 것 같습니다. 그래서 수식보다는 좀더 직관적으로 이해

darkpgmr.tistory.com

 

 

 

4. 가우스-뉴턴법

뉴턴법의 변형된 형태로서 비선형 최소자승 문제에 대한 대표적인 최적화 방법 중 하나이다.

앞서 뉴턴법을 최적화 문제에 적용할 경우에는 2차 미분이 필요하지만,

가우스-뉴턴법을 이용하면 1차 미분만으로 해를 찾을 수 있다.

 

비선형 최소자승 문제에서의 E(p)의 정의이다.

 

이 때, E(p)를 최소화시키는 즉, E'(p)=0으로 만드는 가우스-뉴턴 해는 모델 파라미터 p에 대해

초기 추정값 p0에서 시작하여 p를 다음 수식에 의해 반복적으로 갱신함으로써 얻어진다.

(JrTJr)-1JrT는 사실 Jr의 pseudo inverse이다. 따라서 식을 좀 더 간략히 표현하면 다음과 같다.

 

 

 

5. Levenberg-Marquardt 방법

LM 방법은 가우스-뉴턴과 gradient descent 방법이 결합된 형태로서

해로부터 멀리 떨어져 있을 떄는 gradient descent 방식으로 동작하고,

해 근처에서는 가우스-뉴턴 방식으로 해를 찾는다. 

 

빠른 비교 및 참조를 위해 지금까지 배운 방식들을 함께 적어보면 다음과 같다.

 

가우스-뉴턴법을 살펴보면 계산 과정에 (JrT Jr)의 역행렬 계산을 필요로 한다.

따라서 (JrT Jr)가 singular 행렬(역행렬이 존재하지 않는 행렬)에 근접한 경우에는 계산된 역행렬이 수치적으로 불안정하여 해가 발산할 수 있는 문제점이 있다.

 

Levenberg 방법은 가우스-뉴턴법을 개선하여 JrTJr에 항등행렬의 상수배 ml을 더함으로써 발산의 위험을 낮추고 보다 안정적으로 해를 찾을 수 있도록 한 방법이다.

상수 m(m>0)을 damping factor라 부르는데, m값이 작으면 Levenberg 방법은 가우스-뉴턴법과 유사해지고, m값이 크면 gradient descent 방법과 유사해진다. 

그런데, damping factor m은 고정된 값이 아니라 매 iteration마다 바뀌는 값으로서 현재 안정적으로 해에 수렴하고 있을 경우에는

작은 값을 주고 해를 잘 찾지 못하고 있을 경우에는 큰 값을 주는 방법을 사용한다.

 

Levenberg-Marquardt 방법은 기존의 Levenberg의 방법을 Marquadt가 좀 더 개선시킨 방법을 말한다.

원래의 Levenberg 방법은 m이 큰 경우에 step size가 1/m인 gradient descent 방법과 유사해짐은 앞서 설명한 바 있다.

하지만, 이 경우 수렴 속도가 느린 문제점이 있다. Marquardt는 이러한 문제를 보완하기 위해 항등행렬 I 대신에 diag(JrTJr)을 더해주는 방식을 제안하였다. (diag(A)는 A의 대각원소는 유지하고, 나머지 원소들의 값을 0으로 만든 대각행렬을 나타냄)

JrTJr은 원래 헤시안에 대한 근사행렬의 의미를 갖기 때문에 JrTJr의 대각 원소들은 각 파라미터 성분(pi)에 대한 곡률을 나타낸다.

즉, Levenberg-Marquardt 방법은 가우스-뉴턴법의 singular 문제를 피하면서도 m이 큰 경우에도 곡률을 반영하여 효과적으로 해를 찾을 수 있도록 한 방법이다.

반응형

'Programming > SLAM' 카테고리의 다른 글

iMap : Implicit Mapping and Positioning in Real-Time 논문 리뷰  (0) 2023.05.21
DROID SLAM 논문 리뷰  (0) 2023.05.20
NICE-SLAM 논문리뷰  (0) 2023.03.28
Optical Flow란?  (0) 2023.02.19
Bag of Visual word 알고리즘이란?  (0) 2023.02.19

+ Recent posts