Eye movement를 이용한 VR improvement관련 실험



인간의 생리학적 특성상 눈이 건조해지는 걸 막기 위해 실시간으로 깜빡거리는 특성을 가지고 있고, 이를 뇌 신경망이 후처리를 이용해 보정하는 구조를 가지고 있는데요. 이러한 특성을 이용하여 VR simualtion과 관련된 여러 실험이 진행되었던 것 같더군요.

먼저 VR simulation에서 눈의 blinking이 어떠한 영향을 끼치는지 연구한 논문이 있었는데요. In the Blink of an Eye – Leveraging Blink-Induced Suppression for Imperceptible Position and Orientation Redirection in Virtual Reality라는 논문입니다.

링크 : https://basilic.informatik.unihamburg.de/Publications/2018/LSLWB18/eye_blinks.pdf


이 논문에서는 HTC vive에 눈 깜빡임을 감지할 수 있는 장치(pupil Labs gaze detection system)를 달아서 2가지의 실험을 진행하였는데요.

실험 1.  - 눈을 깜빡일 때 의도적으로 화면을 회전시킨 뒤 사용자가 해당 변화에 대해 인지하는지에 대한 실험

실험 2.  - Redirected walking 과 관련된 것으로서, 소리가 날 때 의도적으로 눈을 깜빡이게 하고 눈을 깜빡일 때 5도씩 회전시킨 실험

이렇게 2개의 실험으로 구성해서 진행하였다고 하네요.


먼저 실험 1의 경우에는
실험을 진행하기 전에 사전 테스트로서 눈 사이의 거리(interpupillary distance)를 측정하였고, 시작적인 장애나 VR경험에 대한 설문지를 작성하였다고 합니다.

본 실험에서는 HTC vive + eye gaze tracking장비로 구성된 실험 장비를 사용하였으며, 눈을 깜빡일때마다 위-아래, 왼쪽-오른쪽 중 한 방향으로 scene에 대해 무작위 회전 변화를 주고 피 실험자에게 scene의 이동 방향에 대해 반드시 2개 중 하나로 답변하도록 지시하였다고 하네요.


결과를 보면 변화를 주지 않았을 때 0.5로 거의 동일한 응답 분포를 보이며(알 수 없다 = 사실상 이동하지 않았다), scene를 회전시킨 정도가 커질수록 눈을 깜빡였을 때의 변화에 대한 인지 비율이 높아졌다고 합니다.

대략 +- 5' 이하 정도에서는 잘못 대답하는 비율이 25% 이상이었으나, 15'를 넘는 변화 수준에서는 오차 응답이 대략 5%미만임을 확인할 수 있었습니다.

실험 이전의 평균 SSQ는 7.01이었으나, 실험 이후의 SSQ는 23.38 정도로 증가했다고 하네요.

결론적으로
눈을 깜빡일 때 2-5'미만의 변화가 있었을 경우에 사람은 이를 잘 인지하지 못하며, 움직임으로는 대략 4 - 9cm이하의 고개 회전에 대해서는 변화를 잘 인지하지 못한다고 합니다.




실험 2의 경우에는 redirected walking과 관련된 실험인데요.
redirected walking란, HMD를 쓰고 가상 공간에서 이동하는 것과 현실 세계에서의 행동을 서로 일치시키는 실험을 의미합니다.


보통 가상 공간에서 5m을 움직이기 위해 현실 세계에서 움직여야 하는 오차율이 상당히 큰데요. 해당 논문에서는 별도의 실험 결과 minimum 3.91m - maximum 5.81m정도였다고 합니다. 


여기서 눈의 깜빡임이 가상현실에서의 걸음걸이에 어떠한 영향이 있을지 알아보기 위해 실험을 디자인 하였다고 하는데요. 실험 절차는 기본적으로 HMD를 장착하고 가상 현실에서 5m 정도를 걸어가는 것이나, 소리가 들리면 눈을 깜빡이라고 했다고 하더군요.

여기서 눈을 깜빡일 때 사용자에게 알리지 않고 scene에 5'씩 추가 회전을 부여하였으며, 깜빡일 때의 걸음걸이 움직임을 별도로 측정하였다고 합니다.

실험 결과 눈을 깜빡이는 것으로 인한, 인지되지 못한 추가적인 움직임이 평균적으로 0.087m 정도였으며, 5'씩 추가 회전을 준 부분에 대하여 인지했는지에 대한 설문 조사 결과 50개의 응답 중 절반 정도가 회전을 인지하였다고 응답하였다고 하더군요.


결론적으로 위의 실험 2개를 종합해볼 때 
인간 뇌의 정보처리 구조상 눈을 깜빡일 때의 영상은 기존의 정보를 바탕으로 추론되는 것 뿐이기에, 이러한 추론 구조로 인해 5' 이하의 회전 변화는 잘 인지되지 않는 경우가 많다고 볼 수 있겠더군요. 

이를 이용하여 사용자의 눈이 깜빡일 때 변화를 주는 방식을 사용한다면 효율적일 수 있겠다는 게 해당 논문의 결론이었습니다.


그 외에는 saccade를 활용한 RDW(redirected walking) improvement를 연구한 논문이 있었는데요.
제목은 Towards Virtual Reality Infinite Walking: Dynamic Saccadic Redirection로, NVIDIA에서 수행된 연구입니다.







해당 논문에서 연구된 내용은 크게 3가지인데요.
1. eye saccade를 이용한 infinity(amplified)walking

2. A real-time path planning algorithm that automatically avoids
static and dynamic obstacles by responding to individuals’ eye
movements

3. highlight기법을 이용해서 saccade를 일부러 발생시키는 것에 관한 연구

실험 장비로는 HTC vive에 SMI eye tracking장치를 결합한 장비를 활용하였다고 하네요.


해당 논문의 선행 실험으로서 
eye saccade가 일어날 때 eye gaze speed를 측정해 보니, saccade시에 gaze speed가 일반적인 상황에 비해 크게 증가된다는 것을 확인할 수 있었다고 합니다.
즉 saccade시에는 gaze speed가 더욱 빠르니, 이 때를 이용해 scene의 movement speed를 올려서 보정하거나 후처리를 해도 괜찮을 것이라고 유추해볼 수 있는 것이지요.


eye saccade를 이용한 infinity(amplified)walking은
saccade시에 눈이 빠르게 움직인다는 사실을 바탕으로, saccade 시마다 원래 움직임 대비 VR scene 내부에서의 움직임을 더욱 많이 줌으로서 작은 현실 공간에서 훨씬 넓은 가상공간 상에서의 움직임을 할 수 있도록 구현하였다고 합니다.
saccade시의 unnoticeable angle change는, 기존의 여러 실험에 의해 최대 12.6'/sec 정도까지 할 수 있다고 하네요.

현실 세계와 amplified Virtual coordinate의 관계에 대해 수식으로 보면...
                                  u(x,t) = M(t) (x − xc (t)) + xc (t))인데요.
현실 세계에서의 좌표u(x,t)를 바탕으로, 가상현실 x(x,y)의 좌표로 affine transformation (M(t))을 시켜 연산하였다고 합니다.

M(t+1) frame에 대해서는, M(t)와 optimize한 각도 변환 값 ∆θ(t)에 대해

 라고 하네요.
optimize 방식에 대해서는 논문의 4.3 참조...

그러나 이러한 현상을 지속적으로 일으키려면 위의 영상에 나오는 것처럼 scene highlight 기법을 이용해 saccade 현상을 지속적으로 일으켜야만 하는데요. 
논문에서 scene highlight을 구현한 부분을 보니 saccade를 일으키기에는 적당하였을 것 같으나, 문제는 이러한 것들이 사람 눈을 어지럽게 한다는 점이 있더군요.

이 방법은 이론적으로는 좋은 해결책이었을 것으로 예상되나, 실제로는 지속적으로 깜빡거f린다는 점과 saccade유도를 위한 highlight으로 인해 VR sickness가 일정 부분 증가하는 경향이 있더군요.
성능향상을 위해 시야각 부분에 dynamic sampling를 구현하였으나, 카메라 사야 방향에 리소스를 집중시킨 것 뿐이니 기술적으로 크게 이슈가 될 만한 건 없습니다...


A real-time path planning algorithm that automatically avoids static and dynamic obstacles by responding to individuals’ eye movements 요 부분은 위의infinity(amplified) walking과 연동하면서도 현실 세계에서의 장애물을 피해야 한다는 문제점 때문에 제시되었는데요.

여기서는 독자적인 알고리즘을 이용한 GPU병렬 처리를 이용하여 보정처리를 하는 방식을 활용하였다고 하네요.

댓글 없음:

댓글 쓰기

글에 대한 의문점이나 요청점, 남기고 싶은 댓글이 있으시면 남겨 주세요. 단 악성 및 스팸성 댓글일 경우 삭제 및 차단될 수 있습니다.

모든 댓글은 검토 후 게시됩니다.

Translate