[Azure Kinect] Azure Kinect를 사용한 Body Tracking with Unity 개발 Setting하기

정은·2023년 5월 2일
post-thumbnail

1. 시작하기 전 🎈

💡 프로젝트 개요

동작 기반 AER (Autonomous emotion recognition) System을 위해 Azure Kinect 1대를 사용하여 Unity에서 Body Tracking하여 5초간 움직임의 좌표 데이터를 .csv 파일로 Export 하려고 한다.

해당 데이터를 어떻게 처리하는 가에 대해서는 논문이 publish 된 이후 논문 이름을 공개하겠다. 🎃

2. Microsoft SDK 설치

💡 Azure Kinect Sensor SDK 설치

1) Azure Kinect SDK 설치

2) Azure Kinect Body Tracking SDK 설치

3. Microsoft의 Azure Kinect 프로젝트

💡 Microsoft (공식) Azure Kinect Samples 프로젝트 다운

1) Azure Kinect Samples 프로젝트 다운

2) Azure Kinect Samples 중 Body Tracking Sample 열기

  • 다운받은 Azure-Kinect-Samples 폴더 ▶ body-tracking-samplessample_unity_bodytracking 폴더 찾기

  • 해당 파일 Unity로 Open

  • 원활하게 열리는지 확인

4. Azure Kinect Samples 프로젝트 Setting

💡 주의사항

프로젝트를 원활하게 진행하기 위해서는 아래와 같이 3가지 사항을 모두 만족해야 한다.

  1. Windows Azure Kinect SDK, Azure Kinect Body Tracking SDK 모두 설치 되어야 한다.
  2. Windows Azure Kinect SDK1.4.1 버전 설치
  3. Windows Azure Kinect Body Tracking SDK1.1.2 버전 설치

💡 Azure Kinect Body Tracking SDK 라이브러리 인식 오류

1) 라이브러리 인식 오류 확인

Samples 프로젝트를 열어보니 에러가 가득한 것을 볼 수 있다.

2) 해결 방법 🎈

2-1) Script 한개를 더블 클릭하여 Visual Studio의 Nuget 패키지 업데이트

Assets/Scripts/TrackerHandler Script를 더블 클릭하여 Visual Studio를 열어서
도구 ▶ NuGet 패키지 관리자 ▶ 패키자 관리자 콘솔을 클릭한다.

$ Update-Package -reinstall

위와 같은 명령어를 콘솔에 입력한다.

2-2) MoveLibraryFiles.bat 파일 실행

2-3) 설치한 Body Tracking SDK에서 필요한 파일 복사

파일의 경로는 C:\Program Files\Azure Kinect Body Tracking SDK\tools 이다.
필요한 파일은 총 세 파일이며 아래와 같다.

cudnn_cnn_infer64_8.dll
cudnn_ops_infer64_8.dll
cufft64_10.dll

해당 파일을 유니티 프로젝트 Root (Assets 폴더와 같은 위치) 에 복사한다.

또한, 해당 파일을 Assets/Plugins 에 복사한다.

3) SkeltonTrackingProvider 코드 수정 (Gpu > Cuda)

SkeltonTrackingProvider.cs 파일 46번째 줄

ProcessingMode = TrackerProcessingMode.Gpu -> ProcessingMode = TrackerProcessingMode.Cuda

5. Azure Kinect 인식 오류

💡 Console 창에서 "K4A_RESULT_FAILED" 뜨고 Kinect 인식이 되지 않는 경우

1) "K4A_RESULT_FAILED" 오류

해당 오류는 원활하게 라이브러리 설치했음에도 불구하고 Kinect가 인식되지 않는다.
✌ K4A_RESULT_FAILED 오류 발견 내용 보러가기

2) 해결 방법 👩🏻‍💻

Azure Kinect Body Tracking SDK 폴더 내의 tools 폴더에 있는 모든 것을 Unity 프로젝트의 Root (Assets 폴더와 같은 위치)에 복사해야 한다.

💡 새로운 프로젝트에서 개발을 하고 싶을 경우

1) 새로운 프로젝트 생성 후 Samples 프로젝트에서 ProjectSetting을 제외한 나머지를 복사한 후 개발

이렇게 하는 이유는 Azure Kinect가 인식 오류가 많이 나는데.. 다른 방법 보다 해당 방법이 제일 문제 없고 빠르게 해결할 수 있다.. 😂😥
수많은 오류를 해결해보니 해당 방법이 제일 문제 없음을 확인하였다.. 😊

6. Azure Kinect Samples 테스트

문제없이 잘 작동 되는 것을 확인할 수 있다. 👏🙌

[References]
https://www.youtube.com/watch?v=PGsxP6Yoq9I
https://mgtul.tistory.com/114

profile
정니의 이런거 저런거 기록 일지 😛

0개의 댓글