가상현실 헤드셋에 대한 제어는 머리에 착용한 상태에서 손을 사용하기 때문에 조작에 대한 부담감이 발생한다. 본 논문에서는 손을 사용하지 않고 즉각적인 입력신호를 줄 수 있는 안전도(EOG, electro-oculogram)를 이용한 가상현실 헤드셋 입력시스템을 제안하였다. 이는 가상현실 헤드셋의 제어를 위한 입력 신호를 손의 움직임 없이 사용자의 안전도만으로 디스플레이 되는 콘텐츠를 제어할 수 있는 시스템이다. 제안된 시스템은 모바일 폰, 가상현실 헤드셋, 그리고 뇌전도 데이터 획득용 헤드셋으로 구성되어 있으며, 신호처리 및 제어를 위한 Unity3D 엔진을 이용하여 제어 시스템을 구현하였으며, 구현된 시스템을 통해 가상현실 헤드셋의 손쉬운 제어가 가능함을 확인하였다.
가상현실 헤드셋에 대한 제어는 머리에 착용한 상태에서 손을 사용하기 때문에 조작에 대한 부담감이 발생한다. 본 논문에서는 손을 사용하지 않고 즉각적인 입력신호를 줄 수 있는 안전도(EOG, electro-oculogram)를 이용한 가상현실 헤드셋 입력시스템을 제안하였다. 이는 가상현실 헤드셋의 제어를 위한 입력 신호를 손의 움직임 없이 사용자의 안전도만으로 디스플레이 되는 콘텐츠를 제어할 수 있는 시스템이다. 제안된 시스템은 모바일 폰, 가상현실 헤드셋, 그리고 뇌전도 데이터 획득용 헤드셋으로 구성되어 있으며, 신호처리 및 제어를 위한 Unity3D 엔진을 이용하여 제어 시스템을 구현하였으며, 구현된 시스템을 통해 가상현실 헤드셋의 손쉬운 제어가 가능함을 확인하였다.
The most of virtual reality headset have the separated controllers while they put on the headset; so the users may feel the discomfort and burden for the operation. In this paper, a novel virtual reality headset system using the EOG (electro-oculogram) is proposed and it has a distinguished feature ...
The most of virtual reality headset have the separated controllers while they put on the headset; so the users may feel the discomfort and burden for the operation. In this paper, a novel virtual reality headset system using the EOG (electro-oculogram) is proposed and it has a distinguished feature that the user does not need to control the virtual reality headset by the hands, but the displayed contents are controllable by the electrical activity of the user's brain. The proposed system consist of the mobile device, a virtual reality headset, and an EOG headset for data acquisition. The system is implemented by using the Unity3D engine for the signal processing and controller, and the concept is confirmed through the implementation that it is more interesting and easier to control the virtual reality headset.
The most of virtual reality headset have the separated controllers while they put on the headset; so the users may feel the discomfort and burden for the operation. In this paper, a novel virtual reality headset system using the EOG (electro-oculogram) is proposed and it has a distinguished feature that the user does not need to control the virtual reality headset by the hands, but the displayed contents are controllable by the electrical activity of the user's brain. The proposed system consist of the mobile device, a virtual reality headset, and an EOG headset for data acquisition. The system is implemented by using the Unity3D engine for the signal processing and controller, and the concept is confirmed through the implementation that it is more interesting and easier to control the virtual reality headset.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
Plane은 3D 공간상의 위치 좌표를 나타내는 Vector를 중심으로 회전하게 된다. 또한 Plane에 디바이스의 카메라를 실시간으로 획득한 영상을 texture로 입혀서 마치 사용자가 앞을 보고 있도록 느끼게 하였다.
각각의 콘텐츠는 Blink 함수를 통해서 입력이 들어왔을 때 실행하고자 하였다. 그러나 현재는 캔버스의 위에 콘텐츠의 실제 기능을 구현하지 못하기 때문에 모바일 폰에서 콘텐츠를 사용한 모습을 캡쳐한 이미지를 불러오게 하였다.
본 논문에서는 뇌전도 획득 장치를 사용하여 획득한 안전도룰 이용하여 입력을 할 수 있는 시스템을 제안하였다. 제안된 시스템은 모바일 폰, 가상현실 헤드셋, 그리고 뇌전도 데이터 획득용 헤드셋으로 구성되어 있다.
가설 설정
그 결과, 세 번째 Window까지는 거의 정상적으로 Blink 신호의 Count에 맞게 숫자가 증가하였으나 네 번째 Window는 Count가 제대로 적용되지 않았다. 이를 통해 나중에 만들어질수록 Window가 Blink 신호가 약해진다는 것을 알게 되어 Blink 함수는 여러 곳에서 사용될 경우 신호의 수신이 급격히 떨어지게 된다는 가설을 세웠다. 따라서 [그림 8(b)]과 같이 Blink 함수를 메뉴에서만 사용하도록 처리 하였고 메뉴 바에서 전역 변수를 이용하여 다른 Window에 Blink 함수가 실행되었음을 알리게 하였다.
제안 방법
따라서 본 연구에서는 손을 사용하지 않고 VR 입력이 가능하도록 뇌전도를 이용한 VR 헤드셋의 입력 장치를 구현하였다. 이를 위해 AR 구현이 쉽고 무선으로 이용할 수 있는 장점과 지연시간에 대한 문제가 없는 이유로 구글의 안드로이드 기반인 모바일 폰을 사용하였으며, 애플의 iOS, 마이크로소프트의 Windows 등을 기반으로 한 다른 기기와도 호환이 가능하도록 Unity3D라는 개발 툴을 사용하였다[9].
제안된 시스템은 목의 움직임만으로 포인터를 이동 시키고 눈의 깜빡임으로 클릭을 함으로서 별도의 동작이나 노력 없이 목 위의 두 가지 요소만으로 VR 기기를 제어할 수 있다. 또한, 뇌전도를 이용함으로써 사용자가 쉽게 컨트롤러를 장시간 사용할 수 있으며, 신체적 장애를 가진 사람들도 부담없이 사용할 수 있는 시스템이다.
시스템 구현에 사용된 뇌전도 획득 장치는 NeuroSky 社의 MindWave 제품을 사용하였다[11]. Bluetooth 통신을 통해 사용자의 뇌전도 데이터를 모바일 폰으로 획득하고, 획득된 뇌전도 신호를 분석하여 입력 장치를 구현하였다. NeuroSky 社에서 Mindwave 제품에 대해 제공되는 ThinkGear SDK에서는 뇌전도 센서의 신호를 분석하거나 특정 신호를 이용하여 함수를 호출하는 등 내부적인 알고리즘을 구현해 놓았다.
본 논문에서는 Google 社에서 제시한 Cardboard SDK를 사용하여 가상현실을 구현하였고 Cardboard SDK에서는 Unity3D에서 기본적으로 주어진 포인터에 UI를 입혀 사용자의 시선을 점모양의 포인터로 표현하였다. 사용자가 클릭 이벤트를 발생시키고자 할 때 포인터는 사용자의 머리와 함께 회전하여 [그림 2(a)]와 같이 항상 사용자에게 제공되는 디스플레이의 중앙에 위치하고 있다.
Cardboard SDK의 포인터의 활성화 상태는 Cardboard SDK의 SetGazedAt() 함수에 의해 각각 물체의 응시 상태를 bool 값으로 정의된다. 포인터 클릭은 뇌전도 전체 신호인 Raw 신호를 분석하여 얻은 안전도를 사용하여 구현하였다. Raw 신호에서 눈을 깜빡일 때마다 안전도가 증감하고 따라서 ThinkGear SDK의 Blink 수치를 변동시키며 OnUpdateBlink() 함수를 실행하는 이벤트를 발생시키고 OnUpdateBlink() 함수 내부에 클릭 함수를 구현하여 사용자가 눈을 깜빡일 때마다 클릭이 실행되게 하였다.
Raw 신호에서 눈을 깜빡일 때마다 안전도가 증감하고 따라서 ThinkGear SDK의 Blink 수치를 변동시키며 OnUpdateBlink() 함수를 실행하는 이벤트를 발생시키고 OnUpdateBlink() 함수 내부에 클릭 함수를 구현하여 사용자가 눈을 깜빡일 때마다 클릭이 실행되게 하였다. 안전도 신호는 지속적으로 얻어지고 있기 때문에 다른 물체가 클릭될 수 있으므로 각 물체에 SetGazedAt() 함수를 사용하여 바라보는 오브젝트에 한하여 클릭이 되도록 하였다.
드리프트 현상이란 사용자가 가만히 있음에도 불구하고 구식 센서의 오차로 인해 Yaw 회전이 발생하는 현상이다. Yaw회전으로 인해 변경된 Center를 원상복구하기 위해 Center를 이동시키는 버튼을 만들었다. 메뉴의 버튼이 작업에 방해가 될 수 있다고 판단하여 메뉴의 버튼을 숨기는 축소화(Contract) 기능을 추가하였다.
Yaw회전으로 인해 변경된 Center를 원상복구하기 위해 Center를 이동시키는 버튼을 만들었다. 메뉴의 버튼이 작업에 방해가 될 수 있다고 판단하여 메뉴의 버튼을 숨기는 축소화(Contract) 기능을 추가하였다. 메뉴의 Contract 기능은 다른 버튼보다 큰 메뉴 중심의 버튼을 누를 시에 실행된다.
메뉴의 Contract 기능은 다른 버튼보다 큰 메뉴 중심의 버튼을 누를 시에 실행된다. 마지막으로 Quit 버튼을 구현하여 어플리케이션을 종료하도록 하였다.
Window의 크기를 조절하는 Resize기능은 Window 의 가로, 세로의 길이를 늘리거나 줄여야하기 때문에 사용자의 머리 회전을 사용하였으며 머리 회전의 기준 축을 선택되어진 Window의 중심으로 이용하였다. Window의 정보를 변경시키는 것은 평상시에 작동되면 안 되는 함수이기 때문에 버튼을 누르기 전까지는 작동이 되지 않게 하였고 Resize 버튼을 눈 깜빡임을 사용하여 클릭할 경우 다음 눈 깜빡임 이벤트가 발생하기 전까지 Window의 정보를 변경시킬 수 있도록 하였다.
Window의 크기를 조절하는 Resize기능은 Window 의 가로, 세로의 길이를 늘리거나 줄여야하기 때문에 사용자의 머리 회전을 사용하였으며 머리 회전의 기준 축을 선택되어진 Window의 중심으로 이용하였다. Window의 정보를 변경시키는 것은 평상시에 작동되면 안 되는 함수이기 때문에 버튼을 누르기 전까지는 작동이 되지 않게 하였고 Resize 버튼을 눈 깜빡임을 사용하여 클릭할 경우 다음 눈 깜빡임 이벤트가 발생하기 전까지 Window의 정보를 변경시킬 수 있도록 하였다.
따라서 중간의 부분만 확대, 축소하였고 나머지 사용자 버튼들은 위치 이동만 하도록 구현하였다. 또한 Window의 이름을 나타내는 버튼은 Window 이름을 나타내는 부분과 버튼부분을 따로 사용하여 글씨가 늘어나지 않도록 하였고 모든 버튼은 실험을 통해 얻어진 속도 상수를 이용하여 최적화하였다.
사용자가 어플리케이션을 처음 작동시켰을 때 [그림 6]과 같은 공간상의 축에서 사용자 머리의 정면 방향과 수평한 Z축의 이동만 적용하였더니 Window의 위치가 고려되지 않아서 Window의 현재 회전을 나타내는 Quaternion 변수에 사용자로부터 Window까지의 거리를 나타내는 Z 변수의 크기를 증가시킨 위치 Vector를 실시간으로 곱해주었다. 사용자로부터 Window까지 거리의 증감 또한 Resize 기능에서 사용한 것 같이 Window의 중심과 사용자 머리 회전의 각도 차이를 이용하여 구현하였다. 사용자의 머리가 Window를 중심으로 오른쪽, 아래로 회전할 경우 거리가 멀어지고 왼쪽, 위로 회전할 경우 거리가 좁아진다.
World를 기준으로 하는 좌표는 전체 공간상에서의 절대적인 좌표를 뜻하며 Local을 기준으로 한 좌표는 특정 오브젝트와 상대적인 좌표이다. 현재 Window의 기능은 canvas 내에서 이루어지므로 Local 상의 회전이라고 볼 수 있기 때문에 본 논문에서는 Local 기준으로 계산하였다. 따라서 이러한 차이는 World 상에서 절대적인 회전을 취할 경우 해결될 것이다.
Close 기능은 더 이상 사용하지 않을 Window를 제거하는 기능이다. 사용자가 해당 Window를 사용할 필요가 없다고 판단할 때 Close 버튼을 누르면 GameObject의 Destroy() 함수를 이용하여 해당 Window를 파괴하도록 구현하였다.
첫 번째로 만들어진 Window와 두 번째로 만들어진 Window는 작동이 잘되었는데 그 후에 만들어진 Window부터 제대로 되고 있지 않은 것으로 보아 Blink 함수 내에 너무 많은 처리를 해야 되기 때문이라 추측했다. 따라서 간단하게 Blink 신호가 발생할때 Count를 하여 Window 이름으로 띄우도록 처리하여 4개의 Window를 띄워 실험하였다. 그 결과, 세 번째 Window까지는 거의 정상적으로 Blink 신호의 Count에 맞게 숫자가 증가하였으나 네 번째 Window는 Count가 제대로 적용되지 않았다.
이마 센서부를 머리카락이 닿지 않게 이마에 부착시키고 [그림 12(b)]와 같이 귓볼에 귀 연결부의 클립을 집어준다. 뇌전도 획득 장치의 착용이 끝나면 HMD에 장착되어 있는 모바일 폰에서 실험용 어플리케이션을 실행시킨 후 HMD를 착용하여 실험준비를 하였다.
실험 준비를 마친 후 뇌전도 획득 장치의 Poor 신호를 이용하여 연결 상태에 따라 사용 가능 상태를 Display하고 집중도(Attention 값)에 따라 물체를 이동 시키도록 하는 어플리케이션을 구현하였다.
그리고 Contract 기능은 [그림 14(d)]와 같이 Window의 최소화를 가능하게 하며 Close 기능은 Window를 닫아서 제거하는 역할을 한다. 이로서 눈의 깜빡임을 이용한 클릭 구현에 대한 편리함과 클릭에 대한 수신율을 확인하였다.
본 논문에서는 뇌전도 획득 장치를 사용하여 획득한 안전도룰 이용하여 입력을 할 수 있는 시스템을 제안하였다. 제안된 시스템은 모바일 폰, 가상현실 헤드셋, 그리고 뇌전도 데이터 획득용 헤드셋으로 구성되어 있다.
대상 데이터
본 논문에서 제안된 손을 사용하지 않는 VR 장치의 입력시스템은 [그림 1]과 같이 모바일 폰, VR 헤드셋, 뇌전도 데이터 획득용 m헤드셋, 그리고 신호처리 및 제어를 위한 Unity3D 엔진으로 구성되어 있다.
이론/모형
따라서 본 연구에서는 손을 사용하지 않고 VR 입력이 가능하도록 뇌전도를 이용한 VR 헤드셋의 입력 장치를 구현하였다. 이를 위해 AR 구현이 쉽고 무선으로 이용할 수 있는 장점과 지연시간에 대한 문제가 없는 이유로 구글의 안드로이드 기반인 모바일 폰을 사용하였으며, 애플의 iOS, 마이크로소프트의 Windows 등을 기반으로 한 다른 기기와도 호환이 가능하도록 Unity3D라는 개발 툴을 사용하였다[9].
뇌전도 데이터 획득용 헤드셋 장치는 사용자의 머리에 착용하여 Blink, Poor, Attention, Meditation, Delta, Low Alpha, High Alpha, Low Beta, High Beta, Low Gamma, High Gamma, Connect State등의 다양한 신호들을 얻을 수 있는 장치이다. 시스템 구현에 사용된 뇌전도 획득 장치는 NeuroSky 社의 MindWave 제품을 사용하였다[11]. Bluetooth 통신을 통해 사용자의 뇌전도 데이터를 모바일 폰으로 획득하고, 획득된 뇌전도 신호를 분석하여 입력 장치를 구현하였다.
Mindwave 제품의 전원을 켠 채로 이마 센서부와 귀 연결부를 사용자에게 정확히 착용하였을 때 EEG 신호가 그대로 raw 신호가 되어 모바일 폰에 전달된다. 받아진 raw 신호는 ThinkGear SDK의 내부 알고리즘을 통해 각 신호로 해석되지만 본 논문에서의 뇌전도 신호는 사용자의 헤드셋 착용 여부와 통신 연결을 위한 Poor 신호와 입력 장치의 클릭신호로 사용하기 위한 Blink 신호를 사용하였다. Poor 신호는 Bluetooth 연결이 해제되어 있을 때 200의 값을 출력하며 연결을 진행 하는 중에는 30 ∼ 80 사이의 임의의 값, 연결이 완료되면 0의 값을 출력한다[13].
성능/효과
따라서 간단하게 Blink 신호가 발생할때 Count를 하여 Window 이름으로 띄우도록 처리하여 4개의 Window를 띄워 실험하였다. 그 결과, 세 번째 Window까지는 거의 정상적으로 Blink 신호의 Count에 맞게 숫자가 증가하였으나 네 번째 Window는 Count가 제대로 적용되지 않았다. 이를 통해 나중에 만들어질수록 Window가 Blink 신호가 약해진다는 것을 알게 되어 Blink 함수는 여러 곳에서 사용될 경우 신호의 수신이 급격히 떨어지게 된다는 가설을 세웠다.
제안한 시스템은 손을 사용할 필요 없이 눈 깜빡임을 통하여 입력이 가능하며, 이로 인해 손을 통해 조작해야하는 기존의 VR 입력시스템에 대한 부담 혹은 불편함을 최소로 할 수 있었다.
후속연구
향후 연구로는 본 연구에서 사용되었던 뇌전도 획득 장치에 필요한 센서를 일체형으로 HMD에 장착할 수 있도록 설계하고 뇌전도의 Attention, Mediation등 다양한 신호를 사용할 수 있는 여러 콘텐츠를 만드는 연구가 필요하다.
질의응답
핵심어
질문
논문에서 추출한 답변
HMD(head mounted display)기반의 VR 기기는 장시간 조작시 팔이나 손목 등의 신체적 고통을 유발 할 수 있는 이유는?
현재, HMD(head mounted display)기반의 VR 기기는 손을 사용하는 별도의 컨트롤러를 필요로 하거나 손을 사용하기 때문에 장시간의 조작 시에 팔이나 손목 등의 신체적 고통을 유발 할 수 있다. 또한 일부의 기기는 유선으로 되어있어 자유로운 움직임을 방해한다.
모바일 폰을 사용하여 무선으로 그래픽을 처리할 경우 AR 구현이 더 쉬운 이유는 무엇인가?
02초 이하이기 때문에 이로 인한 시각적 불편함은 없다. 또한 카메라가 머리를 따라 회전하기 때문에 AR(augmented reality) 구현에도 더 쉽다는 장점이 있다[7].
VR 기기는 어떠한 방법들로 나뉘는가?
VR 헤드셋에 대한 핵심연구 분야로는 해상도 개선, 시야각 개선, 지연시간 개선 등의 하드웨어 중심의 기술 개발이 진행되고 있다[2-4]. VR 기기는 PC와 유선 연결하여 사용하는 방법과 모바일 폰을 사용하여 무선으로 사용하는 방법으로 나눌 수 있다[5]. 유선으로 PC 와 연결하여 사용할 경우 고사양의 그래픽을 보장할 수있지만 자유로운 움직임에 제한을 받는다.
NingHan Liu, ChengYu Chiang, and HsuanChin Chu, "Recognizing the Degree of Human Attetion Using EEG Signals from Moblie Sensors," Sensors, Vol.13, No.8, pp.10273-10286, 2013.
Fernando Alonso-Martin, Maria Malfaz, Joao Sequeira, Javier F. Gorostiza, and Miguel A. Salichs, "A Multimodal Emotion Detection System during Human-Robot Interaction," Sensors, Vol.13, No.11, pp.15549-15581, 2013.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.