UX Design on KINECT

2011. 1. 16. 15:48
지난 몇 개월간 키넥트 플랫폼을 이용한 게임개발 프로젝트에 참여하면서 UI 설계를 담당했다. 인터넷 상의 리뷰를 보면 사용자들은 비교적 긍정적인 인상을 많이 받고 있는 것 같지만, 새로운 UI를 설계하려는 입장에서 마이크로소프트의 담당자들과 이메일을 주고받다보면 역시 새로 상용화된 기술답게 나름의 제약점이 많다.

홍보되는 것처럼 "사용자의 동작을 입체적으로 인식"한다고 하기에는 조금 기술적인 어폐가 있고, 일반적인 동작 UI 디자인 가이드라인 외에도 적외선 거리인식 센서의 입력값과 카메라를 통한 영상처리 결과가 키넥트 시스템을 통해서 어떻게 조합되는지를 이해하고 그에 맞춰 동작입력을 선택하는 게 중요하다고 하겠다. ... 쓰고보니 당연한 소리를. ;ㅁ; Kinect 센서의 구성이나 특성에 대해서는 예전의 블로그 글이나 인터넷 검색, 혹은 의외로 잘 퍼지지 않은 동영상 자료지만 유용한 정보가 상당히 많은 <Inside Xbox> 인터뷰들을 참고하시면 좋을 듯.

가장 중요한 점은, 사실 이 시스템에서 거리센서는 사용자의 몸 "영역"을 배경과 바닥으로부터 분리시키는 데에만 사용되고, 정작 팔다리를 인식하는 건 주로 카메라로부터의 영상처리에 의존하는 것 같더라는 것이다. 그러니 팔을 앞으로 뻗어 몸통을 시각적으로 가린다든가 하면 바로 자세인식에 문제가 생기고, 그러니 별도의 신호처리 없이 시스템에서 입력받을 수 있는 자세정보(각 부위의 위치와 각도)라는 것은, 카메라에서 봤을 때 큰대(大)자 자세에서 팔다리를 위아래로 휘젓는 정도다. (이보다 복잡한 동작이 아예 인식되지 않는 건 아니지만, UI는 고사하고 게임용으로 쓰기에도 오인식률이 높다.) 결국 제대로 3차원 인식이 아닌 2.5차원 인식방식이다보니 생기는 이상과 현실의 괴리랄까.

그렇다보니 그 멋져보이는 자세인식은 직접적으로 UI에 쓰이지 않고, 실제로는 인식된 특정부위(예: 손)의 위치를 커서위치에 대응시킨다든가, 특정부위까지의 거리변화를 입력으로 삼는다든가(예: 팔 휘둘러 내밀기) 하는 식으로만 매핑이 되고 있다. 사실 그것만으로도 기존에 없던 제법 재미있는 UI를 만들 수는 있지만, 실제로 브레인스토밍 중에 나왔던 수많은 멋진 동작 UI 아이디어들을 추려내다 보면 아쉬움이 이만저만이 아니다.

Gesture Command by SwipeGesture Command by Hand-Cursor

참여했던 프로젝트에서는 이런저런 제약점들을 피해서 나름대로 Wii Remote로 프로토타입도 만들어가며 최선의 UX 설계를 하려고 애썼는데, 실제로 제품이 출시되는 올 하반기가 되어야 이런저런 이야기를 풀어놓을 수 있을 듯. 그때쯤 되면 죄다 당연한 소리가 될지도 모르지만.

얼마 전 Jacob Nielsen도 <Kinect Gestural UI: First Impressions>라는 컬럼을 게재했는데, 키넥트 플랫폼에서 사용성을 고민하고 있다면 대체로 유용한 관점이라고 생각한다. 보아하니 나중에 유료 컨텐츠/세미나로 팔아먹기 위해서 말을 아낀 것 같기는 한데, 그렇다고 해도 게임 UX의 큰 목적(개인적으로, 재미와 탐사는 게임 뿐만 아니라 그 UI를 사용하면서도 느낄 수 있어야 한다고 생각하기에)이라든가 동작입력의 특성(중력장 안에서 상하움로 움직인다는 건 평면 상에서 마우스를 굴리는 것과는 또 다르다)을 고려하지 않은 지나치게 전통적인 (그리고 '웹'스러운) 발언들은 좀 아쉽다. 또한 현재 출시되어 있는 키넥트 기반 게임들 중에서 가장 나은 사용성을 보이고 있는 <Dance Central>의 경우는 상당한 시행착오와 고민 끝에 나온 나름의 최적안이라고 볼 수 있는데, 그 부분이 약간 평가절하되어 있는 부분은 너무 평가자의 시점에서만 이야기하고 있다고 느껴졌다. 그런 건 UI에 관심만 있고 실제로 책임지고 디자인하지는 않는 사람이 쉽게 취하는 입장인데.



어쨌든 사람들이 이 KINECT 플랫폼에 대해서 갖고있는 질문은 "키넥트 게임이 재미있나?" 라는 것과 "키넥트 기반의 동작 UI는 쓸만한가?"로 정리된다.

(1) 게임은 재미있나: 재미있다. 그런데 '어떤' 게임이 재미있는가에 대해서는 아직 장르를 많이 타고, 그 장르에서 어떤 방식으로 KINECT 플랫폼을 활용하는지는 현재 시행착오가 진행 중이다. 관련 리뷰들을 보면 알겠지만 마이크로소프트에서 번들로 주는 게임들보다 오히려 <Dance Central>의 리뷰점수가 높고, 더 재미있다. 하지만 그 게임은 아직 KINECT를 100% 활용하지 않고 있다. KINECT 센서를 보면 이런저런 가능성은 높은데, 단가를 낮추기 위해서 프로세서를 빼는 바람에 쓸 수 있는 입력값은 정말 단순한 내용 밖에 없다. 그런 입력값을 처리하는 엔진이 탑재된 게임이 나오면 (혹은 MS에서 API를 업데이트해주면) 그 잠재력이 최대한 발휘되리라 생각한다.

(2) UI로 쓸만한가: 한계가 뚜렷하다. 기술 자체라기보다는 플랫폼에 의한 한계가 많은데, 이를테면 320x240의 해상도로 전신을 잡으면 손/발/머리의 움직임은 사실 거의 잡지 못하고, 중첩이나 회전을 감지하는 건 상상도 못한다. 결국 앞에서 말했듯이 UI에 사용되는 동작명령도 팔다리를 허우적거리는 수준으로 큼직큼직하게 만들어야 하고, 팔다리가 신체의 다른 부위를 가리지 않아야 하기 때문에 흔히 비교되곤 하는 영화 <Minority Report>의 동작 UI와는 상당한 거리가 있다. MS에서도 이 문제를 해결하려고 해상도를 두 배(640x480)로 늘리겠다고 했지만, 그래도 손동작을 UI에서 쓸 수 있는 수준으로 인식하는 건 어렵다고 본다.

Body Tracking on KINECT
(한 가지 첨언하자면, 위의 해상도는 소프트웨어적으로 조정이 가능한 각해상도 angular resolution 이다. 따라서 이론적으로는 일시적으로 특정부위 - 얼굴이나 손 - 에 해상도를 집중해서 더 자세한 자세정보를 얻는 것도 가능하지만, 현재 API에서는 지원하지 않는다.)

결국 이런 방식의 동작인식 시스템이 주요 UI 장치로 쓰일 수 있는 경우는 무척 좁을테고, 여기에 관심을 보이는 실무 디자이너들에게 돌아올 궁극의 질문은 이번에도 꽤나 신랄할 것이다: 그 센서로 인한 단가상승만큼 중요하고 필요한 조작인가? ... 여기에 확실히 그렇다고 할만한 물건은 아니다. 단지 과거 터치스크린이 그랬고 전자나침반도 그랬듯이, 제한된 용도일지라도 그 유용함이 확실하다면 남들보다 앞서서 고려해야 하는 세상이라는 점을 강조하는 수 밖에.

개인적으로 흥미롭게 보고있는 것은 키넥트 출시 이후에 줄줄이 등장하고 있는 해킹 사례들이다. 특히 기존에 동작/영상인식을 하던 사람들이 가장 신나하는 것같고, 그외에 컴퓨터 그래픽에서도 3차원 영상으로만 가능한 재미있는 사례가 속속 나오고 있다. 하지만 진짜 기대되는 것은 이 Kinect와 Wii Remote를 동시에 사용하는 (해킹) 어플리케이션이다.

키넥트는 전신의 움직임을 잡아내는 데에는 유용하지만 메뉴를 선택한다든가 총을 겨냥해서 쏜다든가 하는 세밀한 움직임이 불가능하다. 거기에 그걸 제대로 해줄 수 있는 장치(게다가 가상의 물체에 매핑될 수 있는 물리적 장치)를 더한다면 그야말로 동작인식에 날개를 단 형국이 아닐까. 이미 둘 다 해킹이 되어 PC에서 연동이 되고, 특히 Flash 등 인기있는 시각화 도구와도 바로 연결이 된다. 바로 며칠 전에 변형된 게임에 이를 적용한 사례가 올라오긴 했지만, 단순히 입력값을 조작에 연결시킨 수준일 뿐 각 장치의 잠재력과 시너지를 충분히 발휘했는지는 모르겠다.



아마 기존의 컨트롤러와 Kinect를 동시에 (아마도 Kinect는 보조적/선택적인 입력으로) 사용하는 Xbox용 게임이 올해 중으로는 발표되리라는 생각이 들지만, 우선은 그 전에 오는 5월의 CHI 2011 학회에서 그런 조합이 몇 건 나와주지 않을까 하는 기대를 하는 중이다.

Wii Remote, Kinect, 3D TV, ... 판이 점점 재미있게 돌아가고 있다.




... 뭐가 "짧게 짧게"냐. ㅡ_ㅡa
Posted by Stan1ey

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2011.01.18 18:27
    댓글 주소 수정/삭제 댓글
    얼마전에 dance central하고 복싱게임을 kinect로 해보면서 가졌던 의문이 좀 풀리네요. 팔을 정면으로 뻗어도 좌우로 휘젓는 사람을 이길 수 없었거든요. 그리고 kinect의 UI가 왜 특정 위치에 신체가 유지되는 interval을 측정하는 방식으로 되어있는지도 좀 알게됐습니다. 잘 읽었습니다 ^^
    • 2011.01.18 19:51
      댓글 주소 수정/삭제
      결국 알고리듬 자체는 IF문(특정 신호가 주어진 범위에 들어하는가..하는 조건문)이고, Kinect에서 처리하는 신호는 어느 정도 떨어져 있는 물체(아마도 플레이어)의 각 지점까지의 거리니까요. 거기에 영상인식으로 신체구조까지 인식하면, 좀 불안하나마 오른손/왼쪽 손/발 정도를 추가로 인식할 수 있게 되는 거죠. 말씀하신 Kinect Adventure의 경우에는 MS의 원래 욕심대로, 신체구조 인식을 좀더 적극적으로 사용한 것 같았습니다. 다른 스튜디오에서 만든 게임들은 인식이 안 되는 건 과감히 버리고 게임의 재미에 집중하고 있어요. 그러다가 처참하게 실패한 사례도 있지만. ㅎㅎㅎ
  2. hyunnam
    2011.01.24 11:51
    댓글 주소 수정/삭제 댓글
    이상한 점이 있습니다. 키넥트 센서(적외선발광+센싱)가 배경과 사용자를 분리하고 일반RGB카메라를 이용하는것 같다(?)라고 되어 있는데 RGB카메라를 가리고 해보셨는지요? RGB카메라로 pose를 인식하는게 더 어렵습니다. 그리고 손을 앞으로 뻗는다던가 하는 것도 잘됩니다. 키넥트 튜너에서 kinect adventure 타이틀을 삽입하면 skeleton이 나오기때문에 쉽게 알 수 있습니다. 타이틀이 없으면 머리와 손만 인식이 되더군요. 키넥트 게임 개발에도 참여하셨다고 하는데 잘못 알고 계시는것 같네요.
    • 2011.01.24 21:15
      댓글 주소 수정/삭제
      카메라를 가리고 검은 영상으로 만들면 아래 동영상 7분에 나오는 장면처럼 암흑 속에서 Kinect를 쓰는 것과 같은 상황이 되겠죠? 이 경우에도 인식은 됩니다만, 그 인식은 적외선 센서가 배경으로부터 분리한 이미지로부터 된다는 게 제 추측입니다.
      http://youtu.be/ZrYMda9fNug

      키넥트 튜너에서 손을 앞으로 뻗어 몸통을 시각적으로 가려보시면, 몸통 부분의 skeleton이 엉클어지는 것을 볼 수 있습니다. 키넥트 센서의 거리정보를 자세인식에 이용했다면 이런 일이 없어야 할 것 같아서 말이죠. 또한 팔의 3차원 자세를 실시간으로 UI에 이용하려고 해봤는데, 마이크로소프트로부터 "추천하지 않는다"는 의견을 들었습니다. 제가 보기엔 적외선 정보로 배경/사용자를 분리한 다음에, 사용자 이미지를 사전에 학습된 자세DB에 매칭시켜 제시하는 듯 합니다.

      사실은 이 내용에 대해서 마이크로소프트의 담당자에게 단도직입적으로 질문도 해 봤는데, 제대로 된 답변은 못 듣고 "앞으로 더 개선될 거다"라고만 하더군요. 따라서 저도 아직은 심정과 정황증거만 있고 물증은 없는 상황입니다. 하지만 이미 출시된 대부분의 게임에서의 자세인식이 대부분 정면 큰대자를 기본으로 하는 데에는 나름의 이유가 있다는 게 나름의 결론입니다.

      제가 파악한 내용이 최소한 제가 참여하고 있는 프로젝트 진행에는 도움이 됐습니다만, 분명 오류가 있을 수 있으므로 hyunnam님이 뭔가 물증을 제시해 주신다면 더없이 환영하겠습니다.
  3. hyunnam
    2011.01.25 15:43
    댓글 주소 수정/삭제 댓글
    프로젝트에 도움되시길 바라며 다시 말씀드리면 depth 영상 기반 skeleton 모델이 확실하다는 겁니다. 손을 앞으로 뻗으면 이상해지는 것 자체가 증거입니다. 손을 뻗으면 적외선광선이 가리기 때문에 몸통부분에 occlusion이 생깁니다. 그러니 당연히 skeleton 형성에 문제가 발생하죠. 학습된 자세DB에서 매칭시키는 방법은 키넥트 이전의 방법입니다. 일반 RGB카메라로 pose estimation을 할때 쓰입니다. 구분하려는 자세도 커야하고 비슷하면 안되겠죠. 키넥트 기반 게임들은 머리,팔,다리 등 엄청난 자유도를 가지고 있습니다. UI가 아닌 게임 개발자에게 물어보시면 아실겁니다. 키넥트로부터 어떤 데이터가 넘오는지.. 각 신체의 좌표가 오는지 아니면 정해진 자세DB를 매칭한 정보가 넘오는지요.
    키넥트 센서의 성능을 생각보다 괜찮습니다. 키넥트에 대해 약간 비관적인 의견을 가지신것 같아서 설득하고 싶어지네요. 컴퓨터비전, 미디어아트, 컴퓨터그래픽스, UX 등 많은 분야의 전문가들이 키넥트에 열광하고 있습니다.
    • 2011.01.25 19:22
      댓글 주소 수정/삭제
      제 블로그를 보셨으니 아시겠지만, 키넥트 센서에 대해서는 저도 3DV 시절부터 열광하는 사람 중 한 명입니다. 이 글에 비판적인 내용이 포함되어 있다면 그건 MS가 현재 구현해놓은 방식에 대한 거고요. 해킹된 키넥트 센서가 어떤 신세계를 가져올지에 대해서는 저도 상당히 기대하고 있습니다.

      말씀하신대로 적외선 occlusion이 자세인식에 영향을 주고있는 거라면, 결국 3차원 인식인 듯 하지만 3차원적인 정보는 제대로 활용하지 않고 있는 거 아닐까요. 팔로 몸을 가로막았는데 그걸 연속적으로 인식하지 못한다면 말이죠. 적외선을 이용한 2.5D 거리인식 센서의 가능성에 대해서는 hyunnam님에 대해서 이견이 없지만, 정작 상품화된 걸 보니 그 자유도에는 고려해야 할 제한이 있다는 점을 이 블로그에서 공유하고 싶어서 글을 올린 겁니다.

      실제로 그 기계 안에서 적외선 센서와 카메라가 정확히 어떻게 역할분담되어 있는지에 대해서는, 앞으로 MS가 인식가능한 제스처를 어떻게 확대시켜 나가느냐에 따라 차차 드러나리라고 생각합니다. 어차피 제 생각도 키넥트 앞에서 손짓발짓 해가며 얻은 추측일 뿐이니까, 맞을 수도 있고 틀릴 수도 있겠죠.


BLOG main image
by Stan1ey

카테고리

분류 전체보기 (347)
HTI in General (45)
User eXperience (11)
Voice UI (50)
Vision UI (14)
Gesture UI (25)
Tangible UI (28)
Robot UI (14)
Public UI (9)
Virtuality & Fun (56)
Visual Language (15)
sCRAP (70)

글 보관함



www.flickr.com
This is a Flickr badge showing public photos and videos from Stan1ey. Make your own badge here.