Nuget패키지 관리자->솔루션용 NuGet 패키지 관리자->찾아보기->AzureKKinct 검색 후 Microsoft.Azure.Kinect.Sensor 와 Microsoft.Azure.Kinect.BodyTracking 선택->프로젝트 선택 후 SDK 버전 확인 뒤 설치
3. 바디 트래킹
바디는 32개의 joint들로 이루어져 있다.
각 관절의 정보는 index, joint name, parent joint로 구성되어 있다.
4. 동작 확인
1. SDK 추가
2. Console에 "body tracking start"라고 출력한 뒤, 연결된 키넥트 수를 확인. 만약 연결된 device가 없다면 "no device connected" 출력
3. 키넥트 변수 생성 후 0번째 디바이스와 연결. 만약 실패 시 오류 메시지 출력
4. 키넥트 모드 설정, 시작
Depth 모드가 off 이거나 적외선을 설정할 시, 신체 추적 기능이 정상적으로 장동하지 않음
설정된 값을 기반으로 키넥트를 동작하는데, 동작에 실패할 시, 오류를 출력
5. 추적기 생성
추적기는 사람의 신체를 추적할 때 사용한다.
일반적으로 GPU, CPU 모드가 존재한다.
GPU 모드는 Nvidia GTX 1070 이상일 때 정상적으로 작동된다.
CPU 모드는 일반적으로 작동이 매끄럽지 못하여 대개 GPU 모드를 권장
이번 실험의 경우 GPU 모드를 설정하고, 센서의 방향을 Default로 설정하여 추적기를 생성
데이터를 계속 가져올 수 있게 Bool 변수를 생성하여 무한 loop
추적기를 비동기적으로 효율적으로 사용하기 위해 EnqueueCapture 메소드 사용하여 입력 및 송신 queue를 내부적으로 유지한다.
출력된 queue에서 결과를 pop하기 위해 PopResult 메소드 사용
pop 데이터에서 골격 데이터 frame을 가져올 수 있음. 이때 우리는 머리에 해당하는 정보를 getJoint 메소드를 통해 가져온다.