2020.06.18

블로그ㅣ키넥트가 돌아왔다!··· ‘애저 키넥트 DK’ 활용법

Simon Bisson | InfoWorld
마이크로소프트가 2019년 초 애저 키넥트(Azure Kinect) 카메라 모듈과 홀로렌즈 2(HoloLens 2)를 발표했다. 두 디바이스 모두 ToF(Time of Flight) 깊이 센서로 카메라 주변 오브젝트를 매핑하는 혼합현실 카메라 모듈을 사용한다. 

하지만 홀로렌즈와 애저 키넥트 모듈은 다르다. 홀로렌즈는 웨어러블 혼합현실 기기다. 반면에 애저 키넥트 모듈은 어느 곳이든 장착할 수 있는 커넥티드 센서와 애저가 호스팅하는 머신러닝 애플리케이션을 제공하고자 한다. 또한 애저 키넥트는 엑스박스 원(Xbox One)과 함께 출시된 키넥트 2세대 모듈의 후속작이지만 기존 키넥트와도 완전히 다르다. 게임용 입력장치가 아니라 기업 사용자와 애플리케이션을 겨냥한 제품이기 때문이다. 

한편 애저 코그니티브 서비스(Cognitive Services)와 결합된 애저 키넥트 개발자 키트는 2019년 말 미국에서 처음 출시됐으며, 2020년 초부터 다른 국가에서도 순차적으로 출시됐다. 
 
ⓒMicrosoft

‘애저 키넥트 개발자 키트’ 개봉하기
미화 399달러에 판매되는 애저 키넥트 개발자 키트는 카메라 렌즈 2개와 마이크 7개로 구성됐다. 렌즈 하나는 광각 RGB 카메라용이고, 나머지는 키넥트 깊이 센서용다. 또한 방향 센서도 탑재됐다. 

이를 통해 주변 환경을 3D 이미지로 만들어 혼합현실에서 사용할 수 있다. 즉 여러 기기를 연결해 빠르게 3D 스캔을 하거나 방 전체를 스캔한다. 방향 센서를 사용해 오브젝트의 위치도 쉽게 파악할 수도 있다. 

이 밖에 전원 공급 장치, 앨런 키(Allen key), USB 케이블 등이 함께 제공된다. 추가적으로 데스크톱 삼각대나 다른 마운트를 권하고 싶다. 번들로 제공되는 플라스틱 스탠드가 다소 작고 대부분의 책상이나 모니터에서 잘 고정되지 않기 때문이다. 제품 박스에는 별도의 소프트웨어 CD가 들어있지 않고 애저 키넥트 개발자 키트 SDK를 다운로드 받거나 온라인 설명서를 볼 수 있는 링크가 적혀 있다. 

시작하기에 앞서 기기 펌웨어를 업데이트해야 한다. 이는 SDK와 함께 제공되며 명령줄 설치 도구가 포함돼 있다. 업데이트를 실행하고 나서 카메라와 기기 펌웨어를 설치하기 전에 먼저 현재 펌웨어 상태를 확인한 다음 재부팅한다. 카메라가 재부팅되면 업데이트가 성공적으로 됐는지 확인해야 한다. 문제가 있는 경우 카메라의 하드웨어 리셋(삼각형 마운트 아래에 감춰져 있음)을 사용해 공장 출하 상태로 초기화할 수 있다. 

세상을 센싱하라
SDK를 설치한 후 코드에서 기기 센서에 접근할 수 있다. SDK는 3가지가 있다. 첫째, 모든 카메라 센서에 대한 낮은 수준의 접근을 위한 것이다. 둘째, 이미 익숙한 키넥트의 바디 트래킹 기능을 사용하기 위한 것이다. 마지막은 카메라의 여러 마이크를 애저의 음성 서비스와 연결하기 위한 것이다. 

키넥트 뷰어 앱(Kinect Viewer app)은 사용할 수 있는 카메라 뷰어를 보여주고, 기기의 센서에서 데이터를 스트리밍한다. 이를 통해 광각 RGB 카메라, 깊이 카메라 뷰, 깊이 센서의 적외선 카메라에서 얻은 이미지에 접근할 수 있다. SDK는 윈도우와 리눅스, 특히 우분투 18.04 LTS 릴리즈에서 모두 사용할 수 있으며 마이크로소프트 또는 깃허브에서 직접 다운로드 받을 수 있다.

키넥트 뷰어를 사용하는 것은 좋은 생각이다. 다양한 깊이 카메라 모드가 어떻게 작동하는지 볼 수 있어 좁거나 넓은 시야 영역을 파악하는 데 도움이 된다. 또한 위치 센서, 가속도계 및 자이로스코프, 여러 마이크에서 수집된 데이터를 확인할 수 있다. 

애저 키넥트 개발자 키트를 개발용 PC와 연결하면 코드를 작성할 수 있다. 명령줄 레코더 앱을 사용하면 깊이(depth) 정보를 MKV 형식 파일에 저장함으로써 뷰어에서 재생하기 위한 데이터를 캡처할 수 있다.

첫 번째 깊이 감지 애플리케이션 만들기
마이크로소프트는 간단한 C 애플리케이션(C application)을 개발할 수 있는 샘플 코드를 제공한다. 애저 키넥트 개발 키트와 함께 사용할 수 있다. 필요한 것은 오로지 라이브러리 하나다. 카메라로 작업하는 데 필요한 오브젝트와 방법이 지원된다. 

기기 데이터 스트림을 구성하기 전에 모든 애플리케이션에서 얼마나 많은 카메라가 호스트 PC에 연결됐는지 확인해야 한다. 기기는 일련번호로 식별되므로 동일한 PC에 연결된 여러 대의 기기로 작업하는 경우 이를 사용하여 특정 카메라의 주소를 지정할 수 있다.

애저 키넥트 개발자 키트는 스트리밍 데이터만 제공하므로 애플리케이션은 이미지 색상 포맷 및 해상도와 함께 초당 프레임으로 데이터 속도를 구성해야 한다. 구성 오브젝트를 만들었으면 이를 사용해 연결을 열어서 데이터 스트리밍 준비를 한다. 데이터 스트림을 다 읽었으면 기기를 중지하고 닫는다. 

이미지는 기기 스트림에서 가져온 개별 이미지에 대한 깊이, IR, 색상 이미지와 함께 캡처된다. 캡처한 후에는 애플리케이션에서 사용할 수 있도록 준비된 개별 이미지를 추출할 수 있다. 이미지 오브젝트는 애저 머신 비전 API(Azure machine vision APIs)로 전달돼 오브젝트를 인식하거나 이상 징후를 감지하는 데 활용할 수 있다. 

마이크로소프트는 캡처된 영상을 활용해 공장 직원이 작동 중인 기계에 너무 가까이 다가가는 경우를 감지하는 애플리케이션을 시연한 바 있다. 또 다른 예로 가스 펌프 근처에서 담배 피우는 사람을 감지하는 애플리케이션도 있다.
 
이미지는 개별 이미지에 대한 깊이, IR, 색상 이미지와 함께 캡처된다 ⓒIDG

이와 유사한 프로세스가 위치 및 동작 센서의 데이터를 제공한다. 모션 데이터는 이미지 데이터보다 더 높은 속도로 캡처되므로 데이터가 손실되지 않도록 코드에서 동기화를 구현해야 한다. 오디오 데이터는 애저 음성 서비스에서 사용되는 API를 포함하여 표준 윈도우 API를 사용하여 캡처된다.

애저 키넥트 하드웨어는 많은 데이터를 캡처하지만 SDK 기능은 이를 사용할 수 있는 상태로 변환하는 데 도움이 된다. 이를테면 깊이 데이터를 RGB 이미지에 추가하여 RGB 카메라의 관점에서 변환되는 RGB-D 이미지를 생성하는 것이다(그리고 그 반대 경우도 마찬가지다). 두 센서가 상쇄되기 때문에 PC GPU를 사용하여 두 카메라의 관점을 병합하기 위해 이미지 메시를 변형시켜야 한다. 

또 다른 변환은 포인트 클라우드를 생성해 캡처 시 각 픽셀의 깊이 데이터를 얻는 것이다. SDK의 유용한 옵션 중 하나는 마트로시카(Matroska) 형식 파일에서 비디오 및 데이터 스트림을 캡처하는 기능이다. 이 방식은 대역폭이 제한된 기기로 데이터를 배치하고, 이를 코그니티브 서비스가 있는 애저 스택 엣지(Azure Stack Edge) 기기에 전달해 처리할 수 있도록 한다. 

디지털 스켈레톤(digital skeleton) 바디 트래킹하기
기존 키넥트 하드웨어는 자세와 제스처를 빠르게 추출할 수 있는 스켈레톤 모델과 바디 트래킹을 지원했다. 

애저 키넥트 바디 트래킹 SDK(Azure Kinect Body Tracking SDK)는 엔비디아의 CUDA GPU 병렬 처리 기술을 사용하여 기기의 깊이 센서에서 3D 이미지 데이터를 생성해내는 것으로, 여기에서도 기존 키넥트와 동일한 방식이 계속된다. 번들로 제공되는 샘플 앱은 한 번에 두 명을 추적하는 기능을 포함한 해당 SDK의 몇 가지 기능을 보여준다.
 
애저 키네틱 바디 트래킹 뷰어로 3D 포인트 클라우드와 트래킹된 바디를 볼 수 있다 ⓒIDG

애저 키넥트 SDK를 기반으로 하는 바디 트래킹 SDK를 사용해 기기를 구성하고 연결할 수 있다. 캡처된 이미지 데이터는 추적 시스템으로 처리돼 본체 프레임 데이터 구조에 데이터를 저장한다. 

여기에는 트래킹 데이터를 구성하는 데 사용된 기본 2D 및 3D 이미지와 함께 식별된 바디에 대한 스켈레톤 구조 모음, 데이터를 시각화하는 데 도움이 되는 2D 인덱스 맵 등이 포함돼 있다. 각 프레임은 애니메이션을 구성하거나 머신러닝 툴에 정보를 제공하는 데 사용될 수 있다.

데이터를 처리하는 강력한 도구인 애저의 코그니티브 서비스에 애저 키넥트를 추가하면 광범위한 산업군이나 기업에서 사용할 수 있다. 마이크로소프트는 특히 작업 환경을 3D 이미지화하는데 중점을 두고 이미지 인식이 작업 환경에서의 위험 요소를 줄이고 안전을 개선하는 데 사용될 수 있다고 밝혔다. 

회사에 따르면 다양한 장치를 빠른 볼륨 메트릭 캡처 시스템으로 사용하는 옵션도 있다. 이는 혼합현실 환경을 구축하고 CAD 및 기타 설계 도구의 소스 데이터를 제공하는 데 도움이 될 수 있다. 그 결과 약간의 코드만 있으면 매우 유용한 감지 기기가 될 수 있다.

* Simon Bisson은 인포월드의 마이크로소프트 블로그 전문 컬럼니스트다. ciokr@idg.co.kr



2020.06.18

블로그ㅣ키넥트가 돌아왔다!··· ‘애저 키넥트 DK’ 활용법

Simon Bisson | InfoWorld
마이크로소프트가 2019년 초 애저 키넥트(Azure Kinect) 카메라 모듈과 홀로렌즈 2(HoloLens 2)를 발표했다. 두 디바이스 모두 ToF(Time of Flight) 깊이 센서로 카메라 주변 오브젝트를 매핑하는 혼합현실 카메라 모듈을 사용한다. 

하지만 홀로렌즈와 애저 키넥트 모듈은 다르다. 홀로렌즈는 웨어러블 혼합현실 기기다. 반면에 애저 키넥트 모듈은 어느 곳이든 장착할 수 있는 커넥티드 센서와 애저가 호스팅하는 머신러닝 애플리케이션을 제공하고자 한다. 또한 애저 키넥트는 엑스박스 원(Xbox One)과 함께 출시된 키넥트 2세대 모듈의 후속작이지만 기존 키넥트와도 완전히 다르다. 게임용 입력장치가 아니라 기업 사용자와 애플리케이션을 겨냥한 제품이기 때문이다. 

한편 애저 코그니티브 서비스(Cognitive Services)와 결합된 애저 키넥트 개발자 키트는 2019년 말 미국에서 처음 출시됐으며, 2020년 초부터 다른 국가에서도 순차적으로 출시됐다. 
 
ⓒMicrosoft

‘애저 키넥트 개발자 키트’ 개봉하기
미화 399달러에 판매되는 애저 키넥트 개발자 키트는 카메라 렌즈 2개와 마이크 7개로 구성됐다. 렌즈 하나는 광각 RGB 카메라용이고, 나머지는 키넥트 깊이 센서용다. 또한 방향 센서도 탑재됐다. 

이를 통해 주변 환경을 3D 이미지로 만들어 혼합현실에서 사용할 수 있다. 즉 여러 기기를 연결해 빠르게 3D 스캔을 하거나 방 전체를 스캔한다. 방향 센서를 사용해 오브젝트의 위치도 쉽게 파악할 수도 있다. 

이 밖에 전원 공급 장치, 앨런 키(Allen key), USB 케이블 등이 함께 제공된다. 추가적으로 데스크톱 삼각대나 다른 마운트를 권하고 싶다. 번들로 제공되는 플라스틱 스탠드가 다소 작고 대부분의 책상이나 모니터에서 잘 고정되지 않기 때문이다. 제품 박스에는 별도의 소프트웨어 CD가 들어있지 않고 애저 키넥트 개발자 키트 SDK를 다운로드 받거나 온라인 설명서를 볼 수 있는 링크가 적혀 있다. 

시작하기에 앞서 기기 펌웨어를 업데이트해야 한다. 이는 SDK와 함께 제공되며 명령줄 설치 도구가 포함돼 있다. 업데이트를 실행하고 나서 카메라와 기기 펌웨어를 설치하기 전에 먼저 현재 펌웨어 상태를 확인한 다음 재부팅한다. 카메라가 재부팅되면 업데이트가 성공적으로 됐는지 확인해야 한다. 문제가 있는 경우 카메라의 하드웨어 리셋(삼각형 마운트 아래에 감춰져 있음)을 사용해 공장 출하 상태로 초기화할 수 있다. 

세상을 센싱하라
SDK를 설치한 후 코드에서 기기 센서에 접근할 수 있다. SDK는 3가지가 있다. 첫째, 모든 카메라 센서에 대한 낮은 수준의 접근을 위한 것이다. 둘째, 이미 익숙한 키넥트의 바디 트래킹 기능을 사용하기 위한 것이다. 마지막은 카메라의 여러 마이크를 애저의 음성 서비스와 연결하기 위한 것이다. 

키넥트 뷰어 앱(Kinect Viewer app)은 사용할 수 있는 카메라 뷰어를 보여주고, 기기의 센서에서 데이터를 스트리밍한다. 이를 통해 광각 RGB 카메라, 깊이 카메라 뷰, 깊이 센서의 적외선 카메라에서 얻은 이미지에 접근할 수 있다. SDK는 윈도우와 리눅스, 특히 우분투 18.04 LTS 릴리즈에서 모두 사용할 수 있으며 마이크로소프트 또는 깃허브에서 직접 다운로드 받을 수 있다.

키넥트 뷰어를 사용하는 것은 좋은 생각이다. 다양한 깊이 카메라 모드가 어떻게 작동하는지 볼 수 있어 좁거나 넓은 시야 영역을 파악하는 데 도움이 된다. 또한 위치 센서, 가속도계 및 자이로스코프, 여러 마이크에서 수집된 데이터를 확인할 수 있다. 

애저 키넥트 개발자 키트를 개발용 PC와 연결하면 코드를 작성할 수 있다. 명령줄 레코더 앱을 사용하면 깊이(depth) 정보를 MKV 형식 파일에 저장함으로써 뷰어에서 재생하기 위한 데이터를 캡처할 수 있다.

첫 번째 깊이 감지 애플리케이션 만들기
마이크로소프트는 간단한 C 애플리케이션(C application)을 개발할 수 있는 샘플 코드를 제공한다. 애저 키넥트 개발 키트와 함께 사용할 수 있다. 필요한 것은 오로지 라이브러리 하나다. 카메라로 작업하는 데 필요한 오브젝트와 방법이 지원된다. 

기기 데이터 스트림을 구성하기 전에 모든 애플리케이션에서 얼마나 많은 카메라가 호스트 PC에 연결됐는지 확인해야 한다. 기기는 일련번호로 식별되므로 동일한 PC에 연결된 여러 대의 기기로 작업하는 경우 이를 사용하여 특정 카메라의 주소를 지정할 수 있다.

애저 키넥트 개발자 키트는 스트리밍 데이터만 제공하므로 애플리케이션은 이미지 색상 포맷 및 해상도와 함께 초당 프레임으로 데이터 속도를 구성해야 한다. 구성 오브젝트를 만들었으면 이를 사용해 연결을 열어서 데이터 스트리밍 준비를 한다. 데이터 스트림을 다 읽었으면 기기를 중지하고 닫는다. 

이미지는 기기 스트림에서 가져온 개별 이미지에 대한 깊이, IR, 색상 이미지와 함께 캡처된다. 캡처한 후에는 애플리케이션에서 사용할 수 있도록 준비된 개별 이미지를 추출할 수 있다. 이미지 오브젝트는 애저 머신 비전 API(Azure machine vision APIs)로 전달돼 오브젝트를 인식하거나 이상 징후를 감지하는 데 활용할 수 있다. 

마이크로소프트는 캡처된 영상을 활용해 공장 직원이 작동 중인 기계에 너무 가까이 다가가는 경우를 감지하는 애플리케이션을 시연한 바 있다. 또 다른 예로 가스 펌프 근처에서 담배 피우는 사람을 감지하는 애플리케이션도 있다.
 
이미지는 개별 이미지에 대한 깊이, IR, 색상 이미지와 함께 캡처된다 ⓒIDG

이와 유사한 프로세스가 위치 및 동작 센서의 데이터를 제공한다. 모션 데이터는 이미지 데이터보다 더 높은 속도로 캡처되므로 데이터가 손실되지 않도록 코드에서 동기화를 구현해야 한다. 오디오 데이터는 애저 음성 서비스에서 사용되는 API를 포함하여 표준 윈도우 API를 사용하여 캡처된다.

애저 키넥트 하드웨어는 많은 데이터를 캡처하지만 SDK 기능은 이를 사용할 수 있는 상태로 변환하는 데 도움이 된다. 이를테면 깊이 데이터를 RGB 이미지에 추가하여 RGB 카메라의 관점에서 변환되는 RGB-D 이미지를 생성하는 것이다(그리고 그 반대 경우도 마찬가지다). 두 센서가 상쇄되기 때문에 PC GPU를 사용하여 두 카메라의 관점을 병합하기 위해 이미지 메시를 변형시켜야 한다. 

또 다른 변환은 포인트 클라우드를 생성해 캡처 시 각 픽셀의 깊이 데이터를 얻는 것이다. SDK의 유용한 옵션 중 하나는 마트로시카(Matroska) 형식 파일에서 비디오 및 데이터 스트림을 캡처하는 기능이다. 이 방식은 대역폭이 제한된 기기로 데이터를 배치하고, 이를 코그니티브 서비스가 있는 애저 스택 엣지(Azure Stack Edge) 기기에 전달해 처리할 수 있도록 한다. 

디지털 스켈레톤(digital skeleton) 바디 트래킹하기
기존 키넥트 하드웨어는 자세와 제스처를 빠르게 추출할 수 있는 스켈레톤 모델과 바디 트래킹을 지원했다. 

애저 키넥트 바디 트래킹 SDK(Azure Kinect Body Tracking SDK)는 엔비디아의 CUDA GPU 병렬 처리 기술을 사용하여 기기의 깊이 센서에서 3D 이미지 데이터를 생성해내는 것으로, 여기에서도 기존 키넥트와 동일한 방식이 계속된다. 번들로 제공되는 샘플 앱은 한 번에 두 명을 추적하는 기능을 포함한 해당 SDK의 몇 가지 기능을 보여준다.
 
애저 키네틱 바디 트래킹 뷰어로 3D 포인트 클라우드와 트래킹된 바디를 볼 수 있다 ⓒIDG

애저 키넥트 SDK를 기반으로 하는 바디 트래킹 SDK를 사용해 기기를 구성하고 연결할 수 있다. 캡처된 이미지 데이터는 추적 시스템으로 처리돼 본체 프레임 데이터 구조에 데이터를 저장한다. 

여기에는 트래킹 데이터를 구성하는 데 사용된 기본 2D 및 3D 이미지와 함께 식별된 바디에 대한 스켈레톤 구조 모음, 데이터를 시각화하는 데 도움이 되는 2D 인덱스 맵 등이 포함돼 있다. 각 프레임은 애니메이션을 구성하거나 머신러닝 툴에 정보를 제공하는 데 사용될 수 있다.

데이터를 처리하는 강력한 도구인 애저의 코그니티브 서비스에 애저 키넥트를 추가하면 광범위한 산업군이나 기업에서 사용할 수 있다. 마이크로소프트는 특히 작업 환경을 3D 이미지화하는데 중점을 두고 이미지 인식이 작업 환경에서의 위험 요소를 줄이고 안전을 개선하는 데 사용될 수 있다고 밝혔다. 

회사에 따르면 다양한 장치를 빠른 볼륨 메트릭 캡처 시스템으로 사용하는 옵션도 있다. 이는 혼합현실 환경을 구축하고 CAD 및 기타 설계 도구의 소스 데이터를 제공하는 데 도움이 될 수 있다. 그 결과 약간의 코드만 있으면 매우 유용한 감지 기기가 될 수 있다.

* Simon Bisson은 인포월드의 마이크로소프트 블로그 전문 컬럼니스트다. ciokr@idg.co.kr

X