Azure Kinect 개발자 키트 작업

Microsoft는 2019 년 초에 HoloLens 2와 함께 Azure Kinect 카메라 모듈을 발표했습니다. 두 장치 모두 동일한 혼합 현실 카메라 모듈을 사용하며 비행 시간 깊이 센서를 사용하여 카메라 주변의 개체를 매핑합니다. 그러나 HoloLens가 웨어러블 혼합 현실 장치 인 경우 Azure Kinect 모듈은 Azure에서 호스팅되는 기계 학습 애플리케이션에 작업 영역의 어느 곳에 나 탑재 할 수있는 연결된 센서를 제공하기위한 것입니다.

Azure Kinect는 Xbox One과 함께 제공되는 2 세대 Kinect 모듈의 직계 자손이지만 게임을위한 실제 입력을 제공하는 대신 엔터프라이즈 사용자 및 애플리케이션을 대상으로합니다. Azure의 Cognitive Services와 함께 작동하도록 고안된 첫 번째 Azure Kinect 개발자 키트는 2019 년 말에 미국에서 배송되기 시작했으며 2020 년 초에 다른 여러 국가가 추가되었습니다.

상자 열기

399 달러짜리 Azure Kinect 개발자 키트는 두 개의 카메라 렌즈, 하나는 광각 RGB 카메라 용, 다른 하나는 Kinect 깊이 센서 용 및 마이크 배열이 포함 된 작은 흰색 장치입니다. 방향 센서가있어 카메라를 사용하여 혼합 현실에서 사용할 준비가 된 복잡한 3D 환경 이미지를 구축 할 수 있습니다. 장치 위치를 이해하는 데 도움이되는 방향 센서를 사용하여 빠른 3D 스캔을 위해 여러 장치를 함께 연결하거나 방 전체를 커버 할 수 있습니다.

카메라 장치와 함께 전원 공급 장치, 연결 포트 덮개를 제거하는 Allen 키, 개발 PC에 연결할 USB 케이블이 제공됩니다. 번들로 제공되는 플라스틱 스탠드는 다소 작고 대부분의 책상이나 모니터에서 작동하지 않기 때문에 데스크탑 삼각대 또는 다른 유형의 마운트를 구입하는 것이 좋습니다. 상자에는 소프트웨어가 없으며 장치 SDK를 다운로드 할 수있는 온라인 문서에 대한 링크 만 있습니다.

시작하기 전에 장치 펌웨어를 업데이트해야합니다. 이는 SDK와 함께 제공되며 명령 줄 설치 도구를 포함합니다. 업데이터를 실행하면 카메라 및 장치 펌웨어를 설치하기 전에 먼저 현재 펌웨어 상태를 확인한 다음 재부팅합니다. 카메라가 재부팅되면 동일한 도구를 사용하여 업데이트가 성공적으로 설치되었는지 확인합니다. 설치에 문제가있는 경우 카메라의 하드웨어 재설정 (삼각대 마운트 아래에 숨겨 짐)을 사용하여 원래 공장 이미지를 복원 할 수 있습니다.

세상을 감지

SDK를 설치하면 코드에서 장치 센서에 액세스 할 수 있습니다. 세 가지 SDK가 있습니다. 하나는 모든 카메라 센서에 대한 낮은 수준의 액세스를위한 것이고, 다른 하나는 익숙한 Kinect 신체 추적 기능을 사용하기위한 것이고, 다른 하나는 카메라의 마이크 배열을 Azure의 음성 서비스에 연결하기위한 것입니다. 사전 제작 된 Kinect 뷰어 앱은 사용 가능한 카메라보기를 표시하고 장치의 센서에서 데이터를 스트리밍합니다. 광각 RGB 카메라, 깊이 카메라 뷰 및 깊이 센서의 적외선 카메라의 이미지에 액세스 할 수 있습니다. SDK는 Windows 및 Linux, 특히 Canonical의 Ubuntu 18.04 LTS 릴리스에서 모두 사용할 수 있으며 Microsoft 또는 GitHub에서 직접 다운로드 할 수 있습니다.

Kinect 뷰어를 사용하여 시간을 보내는 것이 좋습니다. 다양한 깊이 카메라 모드가 작동하는 방식을 볼 수 있으므로 좁거나 넓은 시야를 선택할 수 있습니다. 위치 센서, 가속도계와 자이로 스코프, 마이크 어레이의 데이터를 볼 수 있습니다. Azure Kinect 개발자 키트를 개발 PC에 연결하고 작동하면 코드 작성을 시작할 수 있습니다. 명령 줄 레코더 앱을 사용하여 뷰어에서 재생할 데이터를 캡처하고 MKV (Matroska Video) 형식 파일에 깊이 정보를 저장할 수 있습니다.

첫 번째 심도 감지 애플리케이션 구축

Microsoft는 Azure Kinect 개발 키트와 함께 작동하는 간단한 C 애플리케이션을 빌드하기위한 샘플 코드를 제공합니다. 필요한 라이브러리는 하나 뿐이며 카메라 작업에 필요한 개체와 메서드를 제공합니다. 모든 애플리케이션은 장치 데이터 스트림을 구성하기 전에 먼저 호스트 PC에 연결된 카메라 수를 확인해야합니다. 장치는 일련 번호로 식별되므로 동일한 PC에 여러 대가 연결되어 있거나 함께 연결되어있는 경우이를 사용하여 특정 카메라의 주소를 지정할 수 있습니다.

Azure Kinect 개발자 키트는 스트리밍 데이터 만 제공하므로 애플리케이션은 이미지 색상 형식 및 해상도와 함께 초당 프레임 단위로 데이터 속도를 구성해야합니다. 구성 개체를 만든 후에는 데이터 스트리밍 준비가 된 구성 개체를 사용하여 연결을 열 수 있습니다. 데이터 스트림 읽기가 끝나면 장치를 중지하고 닫습니다.

이미지는 장치의 스트림에서 가져온 깊이 이미지, IR 이미지 및 각 개별 이미지에 대한 컬러 이미지와 함께 캡처 개체에 캡처됩니다. 캡처가 완료되면 애플리케이션에서 사용할 준비가 된 개별 이미지를 추출 할 수 있습니다. 이미지 개체는 개체 인식 또는 이상 감지를 위해 준비된 Azure Machine Vision API에 제공 될 수 있습니다. Microsoft가 데모에서 사용한 한 가지 예는 캡처 된 비디오를 사용하여 공장 현장의 작업자가 작동하는 기계에 너무 가까이 다가가는 것을 감지하는 응용 프로그램입니다. 다른 하나는 가스 펌프 근처에서 흡연하는 사람을 감지합니다.

유사한 프로세스가 위치 및 모션 센서에서 데이터를 제공합니다. 모션 데이터는 이미지 데이터보다 더 빠른 속도로 캡처되므로 데이터 손실을 방지하기 위해 코드에서 특정 형태의 동기화를 구현해야합니다. 오디오 데이터는 Azure의 음성 서비스에서 사용되는 API를 포함하여 표준 Windows API를 사용하여 캡처됩니다.

Azure Kinect 하드웨어는 많은 데이터를 캡처하지만 SDK 기능은 데이터를 사용 가능한 형식으로 변환하는 데 도움이됩니다. 예를 들어, RGB 이미지에 깊이 데이터를 추가하여 RGB 카메라의 시점으로 변환되는 RGB-D 이미지를 생성합니다 (반대의 경우도 마찬가지). 두 센서가 오프셋되어 있으므로 PC의 GPU를 사용하여 두 카메라의 시점을 병합하기 위해 이미지 메시를 뒤틀어 야합니다. 또 다른 변환은 포인트 클라우드를 생성하여 캡처의 각 픽셀에 대한 깊이 데이터를 가져올 수 있습니다. SDK의 유용한 옵션 중 하나는 Matroska 형식 파일에서 비디오 및 데이터 스트림을 캡처하는 기능입니다. 이 접근 방식을 사용하면 대역폭이 제한된 장치에서 데이터를 일괄 처리하고 일괄 처리를 위해 Cognitive Services 컨테이너가있는 Azure Stack Edge 장치에 전달할 수 있습니다.

디지털 골격을 추적하는 신체

원래 Kinect 하드웨어는 자세와 제스처를 빠르게 평가하는 데 사용할 수있는 골격 모델과 함께 신체 추적을 도입했습니다. Nvidia의 CUDA GPU 병렬 처리 기술을 사용하여 장치의 깊이 센서에서 3D 이미지 데이터로 작업하는 Azure Kinect Body Tracking SDK에서도 동일한 접근 방식이 계속됩니다. 번들로 제공되는 샘플 앱은 한 번에 둘 이상의 사람을 추적하는 기능을 포함하여 SDK의 일부 기능을 보여줍니다. 

Body Tracking SDK는 Azure Kinect SDK를 기반으로 빌드되며이를 사용하여 장치를 구성하고 연결합니다. 캡처 된 이미지 데이터는 추적기에 의해 처리되어 바디 프레임 데이터 구조에 데이터가 저장됩니다. 여기에는 식별 된 신체에 대한 골격 구조 모음, 데이터 시각화에 도움이되는 2D 인덱스 맵, 추적 데이터를 구성하는 데 사용 된 기본 2D 및 3D 이미지가 포함됩니다. 각 프레임을 사용하여 애니메이션을 구성하거나 룸 맵 또는 이상적인 위치와 관련하여 추적 된 위치를 처리하는 데 도움이되는 기계 학습 도구에 정보를 제공 할 수 있습니다.

Azure의 Cognitive Services는 데이터 처리를위한 강력한 도구이며 Azure Kinect를 추가하면 광범위한 산업 및 엔터프라이즈 시나리오에서이를 사용할 수 있습니다. 직장 3D 이미지 인식에 초점을 맞춘 Microsoft는 이미지 인식을 사용하여 위험을 줄이고 안전을 개선하는 방법을 보여주고 있습니다. 혼합 현실 환경을 구축하고 CAD 및 기타 설계 도구에 대한 소스 데이터를 제공하는 데 도움이되는 빠른 볼륨 캡처 시스템으로 일련의 장치를 사용하는 옵션도 있습니다. 그 결과 약간의 코드만으로 매우 강력한 감지 장치가되는 유연한 장치가 탄생했습니다.