1. 서론
인터넷은 생활 전반의 지식뿐만 아니라 다양한 분야의 전문적인 지식을 습득하는 도구로 발전해 왔다[1]. PC는 이러한 인터넷을 사용하기 위한 가장 기본적이며 보편화 된 기기이다. PC를 사용하기 위해서 가장 기본이 되는 입력 장치로 마우스가 존재한다. 마우스는 윈도우 화면의 메뉴와 폴더 등의 객체를 선택하고 실행시키는 등 PC와 사용자 간의 상호 작용이 가능하게 해 주는 도구이다[2]. 이러한 중요성에도 다양한 건강 상태로 인해 장애가 생겨 손 사용이 자유롭지 못하는 사람들은 PC 사용에 차별을 받고 있다. 시선 추적 기술은 이러한 장애 사용자들이 기계와 상호 작용이 가능하게 하는 대안 기술로 효과를 얻고 있다[3]. 이에 따라 상지장애인을 위해 키보드와 마우스 등 손을 이용한 입력 장치의 대체 방안으로 시선 추적 기술이 연구가 활발하게 진행되고 있다.
시선 추적 기술로 GUI를 자유롭게 조작하기 위해서는 포인터의 이동과 객체의 실행이 기본적으로 수행되어야 한다. 하지만 기존의 시선 추적 기술로 포인터의 인터랙션을 수행하기에는 정확성의 문제점이 발생한다. 기존의 연구에서는 시선 추적을 통해 객체를 제어할 때 눈의 응시 시간[4] 또는 눈의 깜빡임[5]을 통해 마우스 클릭과 같은 포인팅한 객체에 대하여 실행 명령을 수행한다. 하지만, 사용자가 시선 명령을 내리지 않고 화면만을 보고 싶은 상황 등 포인터 실행을 위한 응시시간 및 눈 깜빡임 방법은 반복적인 포인터 실행의 오작동 문제를 발생 시킨다.
본 연구에서는 기존의 시선 추적 시스템의 오작동 문제를 개선하여 상지장애인이 GUI화면을 제어 할 수 있도록 음성 명령으로 보완한 시선 추적 인터페이스를 제안한다. 시선 추적으로 포인터의 이동을 수행하고 음성 명령으로 포인터의 실행을 수행하도록 인터페이스를 설계하고, 기존의 응시, 깜빡임 인터페이스와의 비교 실험을 통해 포인터의 오작동률 감소확인을 최종 목표로 한다.
2. 관련 연구
2.1 응시 시간을 이용한 포인터 실행 연구
응시시간을 이용한 기기 제어 방식은 화면의 객체를 응시하고 있는 시간 Dwell Time을 계산하여 설정한 시간을 초과했을 때, 현재 위치의 객체에 대해 포인터를 실행하는 방식이다. Butterfleye는 심각한 운동장애 사용자를 위한 선 기반 웹 응용프로그램 개발을 쉽게 하게 하는 오픈 소스 라이브러리이다[4]. 이 라이브러리는 투명한 대형 실행 버튼, 응시 시간 타이머, 자동 완성 키보드 및 청각 피드백을 지원하며, 응시 시간으로 포인터가 위치한 좌표의 객체를 실행 시킨다.
2.2 깜빡임을 이용한 포인터 실행 연구
눈 깜빡임을 이용한 시선 추적 연구는 사용자의 눈 깜빡임으로 포인터를 실행하는 방식이다. 눈 깜빡임의 방식을 이용한 연구로는 웹 환경에서의 제어 GazeTheWeb [5] 연구가 있다. GazeTheWeb은 눈의 움직임과 깜빡임으로 포인터의 이동 및 실행, 문자 입력을 수행한 Chrominum 기반의 오픈 소스 프레임워크이다. 웹 페이지와의 상호작용 기능과 필수 브라우징 메뉴를 큰 아이콘으로 웹 브라우저 화면의 좌우에 배치하여 빠른 접근 방식을 제공하였다. 또한 포인터의 지속적인 줌인(확대 및 축소) 동작을 사용하여 해당 링크를 선택하고, 눈깜빡임으로 포인터를 실행하도록 개발하였다.
2.3 메뉴 및 객체 실행에 적용되는 기존 시선 추적의 문제점 분석
시선 추적을 통해 객체를 제어할 때 눈의 깜빡임 또는 Dwell Time을 통해 마우스 클릭과 같은 포인팅한 객체에 대하여 실행 명령을 수행한다. 하지만, 사용자가 시선 명령을 내리지 않고 화면만을 보고 글을 읽거나 그림을 쳐다볼 때, 포인터는 응시하고 있다고 판단해서 잘못된 포인터 실행을 발생시킨다. 또한 틱장애와 같은 장애를 가지고 있는 사용자의 경우, 지속적인 디스플레이 화면 응시에 따른 눈의 피로 등으로 반복적인 깜빡임을 발생 시킨 경우 포인터의 오작동이 발생한다. 따라서 본 논문에서는 사용자가 원하는 시점에 포인터를 실행 시킬 수 있도록 음성 명령을 이용한 시선 추적 인터페이스를 개발하고 기존의 방식과의 비교 실험을 통해 오작동의 개선을 확인하였다.
3. 음성 명령 포인터 실행 인터페이스 설계 및 구현
3.1 시스템 목표 및 개요
본 시스템은 상지장애인이 마우스의 사용 없이도 PC의 메뉴 및 객체를 자유롭게 선택하고 실행 시키리 수 있는 인터페이스 개발을 목표로 한다. 본 인터페이스 설계의 핵심은 상지장애인이 웹 브라우저에서 클릭을 실행하고자 할 경우, 의도적으로 눈을 깜빡이거나 일정 시간 응시하지 않고도 화면을 탐색하는 과정에 즉시 음성 명령을 내려 클릭을 실행하게 하였으며, 인터페이스의 이름을 Eye-Voice라고 정하였다.
3.2 시스템 주요 기능 설계
포인터 제어 인터랙션은 포인터의 상태에 따라 기능을 실현할 수 있도록 시선 추적, 음성 명령 및 음성인식 기술을 조합하여 설계하였다. 포인터의 상태는 포인터의 이동과 실행으로 구분되며, 문자 입력을 위한 커서 상태를 추가하였다. 포인터의 이동은 시선 추적 기술로 포인터의 실행과 커서는 시선 추적 및 음성 기술로 수행하도록 설계하였다. 포인터 실행이 가능한 유형에는 스크롤, 메뉴, 실행 객체, 텍스트 입력이 포함된다.
이 중 음성 인터랙션은 음성 텍스트 입력 모드와 음성 명령 모드로 분류하여 설계하였다. 음성 텍스트 입력 모드는 커서 모드에서의 텍스트 입력 모드이며, 단어. 단문, 장문 입력 등에 사용된다. 음성 명령 모드는 포인터 실행을 위한 명령어 입력 모드이다. 다음 Fig. 1은 시선 추적 및 음성 명령 기반 포인터 제어 인터랙션의 상태 전이도이다.
Fig. 1. State Transition Diagram of Eye Tracking Based Pointer Control Interactions.
3.3 구현 및 결과
본 논문에서 제안하는 시스템의 구성도는 Fig. 2.와 같다. 시스템이 구동되면 시선 추적 모듈이 실행된다. 시선 추적 모듈은 실시간 시선 좌표를 포인터와 맵핑하여 모니터 화면에 디스플레이 시키며 음성인식 기능을 이용하여 포인터 실행을 수행한다. 시선 추적 및 음성 명령 기능은 Python 언어[6]로 tobii_reserach API[7]와 Google Cloud Speech API[8]를 이용하여 개발하였다. 개발 단계와 사용자 테스트 진행시 사용된 데모 도구는 아이트래커 Tobii Etyetracket X130[9]이다.
Fig. 2. Overall System Diagram.
포인터 액션 기능은 포인터의 이동, 포인터 실행으로 구분된다. 포인터의 이동은 시선에 따라 이동하며, 포인터 실행은 포인터가 이동 도중 음성 명령을 통해 포인터를 실행한다.
포인터의 이동은 Tobii사에 제공하는 Pro SDK에서 제공하는 함수를 사용하여 시선의 응시점 좌표를 획득 후, 모니터 좌표로 변환 시킨다. 이후 Window API[10]의 SetCurorPos() 함수를 이용하여 모니터상 응시점 좌표와 포인터를 맵핑하여 이동시킨다. 이 과정에서 시선 좌표 획득 후, 포인터와 맵핑시키는 과정에서 포인터가 떨리는 현상을 최소화하기 위해 응시점 떨림 보정 작업을 진행하였다. 응시점 떨림 작업은 현재의 응시하는 좌표와 이전의 응시 좌표를 비교하여 그 거리의 차가 50pixel 이상일 때 현재의 위치에 포인터를 이동 시키고, 거리의 차가 50pixel 이하일 경우에는 포인터를 이동시키지 않고 이전의 좌표값 위치에 유지하게 구현하였다[11].
포인터의 실행은 시선의 이동에 따라 포인터가 위치한 객체가 실행 가능한 객체일 경우, 음성 명령을 내려 포인터를 실행한다. 이때 실행 가능한 객체에는 PC 화면에서의 menu, file, folder 등이 해당된다. 대상이 클릭할 수 없는 실행 객체일 경우, 음성 명령이 실행되어도 객체의 실행은 발생되지 않고 포인터는 화면에서 여전히 시선에 따라 움직이도록 하였다. 포인터의 실행 기능은 음성 인식 기능으로 처리하였다. 시선 추적 모듈에 음성 인식 기능을 이식시키기 위해 Google Cloud speech API를 사용하였다. 사용자가 말하는 내용을 입력받아 출력 시키는 기능을 구현하기 위해 transcribe_streaming_mic2.py를 활용하였다. 인식되는 음성 명령어는 ‘okay’와 ‘no’ 두 가지로 설정하였다. 첫 번째, 음성 명령어 ‘okay’를 인식할 경우 마우스 왼쪽 클릭을 수행하며, 두 번째 명령어 ‘no’를 인식하면 마우스 오른쪽 클릭을 실행 하도록 구현하였다. 클릭은 pyautogui.click() 함수를 이용하여 구현하였다. Fig. 3은 시선 이동에 따른 포인터 이동 실행 화면이다.
Fig. 3. Pointer movement screen according to gaze.
4. 포인터 실행의 오작동에 대한 평가
4.1 평가의 목적 및 평가 방법
본 실험은 PC 환경에서 상지장애인이 기존 시선 추적 인터페이스들의 사용과 비교하여 음성 명령을 적용한 인터페이스의 포인터 실행의 오작동 감소 확인을 목표로 한다. 여기서 오작동 감소의 기준은 음성 명령을 결합하여 포인터를 실행할 경우 객체 실행의 정확도가 얼마나 향상되는지 확인이다.
평가 방법은 다음과 같다. 기존 시선 추적 인터페이스 2종과 제안 인터페이스 Eye-voice를 대상으로 비교 평가를 진행하다. 기존 시선 추적 인터페이스 2종은 포인터의 실행 방법에 따라 응시시간 인터페이스, 깜빡임 인터페이스이다. 평가에 참여한 피평가자는 손 사용을 제한한 일반 사용자 10인으로 구성되었다.
실험은 세 가지 항목에 대해 측정한다. 첫 번째 평가 항목은 에러율의 감소이며, 측정 방법은 주어진 태스크를 완료하기 위한 태스크 시도 횟수를 측정한다. 두 번째 항목은 실행 속도의 단축이며, 측정 방법은 태스크 완료까지의 시간을 측정한다. 마지막 항목은 어떠한 방식이 더 편했는지에 대한 만족도를 측정한다.
평가에 사용된 태스크는 메뉴, 링크 등 클릭할 실행 객체의 크기 대, 중, 소로 조합된 작업 난이도 하, 중, 상으로 구성하였다. 실행 객체 크기의 구분은 모니터 해상도 1920*1080, 브라우저 글꼴 크기 100% 상태에서 구분하였다. 태스크의 난이도 하에는 실행 객체의 크기 대와 중으로 구성되었으며, 난이도 중에는 실행 객체의 크기 대, 중, 난이도 하에는 실행 객체의 크기 중, 소로 구성하여 난이도를 조절하였다.
실험은 제시된 실행 객체들을 클릭하여 실행시키기까지를 태스크의 완료라고 정의하고 태스크에 포함된 실행 객체의 클릭을 위한 시도 횟수와 시간을 측정하였다. 태스크의 순서는 랜덤하게 제시되며, 각 2회 진행 후 평균을 계산하였다. 태스크 완료 후, 더 편했던 인터페이스에 대하여 5점 척도의 주관적 만족도를 측정하였다.
실험 시작 전 각 인터페이스와 태스크에 대한 충분한 설명 및 안내하고 진행하였다. 평가자는 임의로 손 사용이 불가하게 고정하고, 시선과 음성명령으로 브라우저를 제어하도록 안내하였다. 실험 시작 전, 태스크 별 실행 객체 클릭 순서를 화면으로 먼저 안내해서 클릭 위치를 숙지 할 수 있도록 시간 부여하였으며, 클릭을 시도할 때마다 소리를 내도록 안내하였다.
4.2 결과 분석 및 결론
총 10명의 피실험자를 대상으로 2종의 시선추적 인터페이스와 Eye-Voice인터페이스 각각에 대하여 실험을 진행한 후, 수행 시간, 재시도 횟수를 측정하여 평균을 구하였다. 또한 Eye-Voice 인터페이스와 다른 2종의 인터페이스 간의 실험 결과가 차이가 있는지에 대하여 독립 표본 T검증을 추가로 진행하였다.
포인터 실행의 오작동 감소 실험 결과는 두 가지 항목으로 분석하였다. 첫 번째 항목은 인터페이스 별평균 오작동 감소 확인이며, 두 번째 항목은 작업난이도 별 오작동 감소 확인이다.
4.2.1 인터페이스 별 평균 오작동 감소 확인
다음 Table 1은 인터페이스 별 평균 오작동 감소확인을 위해 실행한 실험의 결과를 나타낸다.
Table 1. Average Experimental result of reducing malfunction of pointer execution
인터페이스 별 오작동 감소 확인 결과, Eye-Voice 인터페이스가 가장 적은 시도 횟수와 수행 시간이 소요되었다. Fig. 4와 Fig. 5는 오작동 감소 실험의 인터페이스 시도 횟수와 수행 시간 비교 그래프이다.
Fig. 4. Number of attempts per interface in the malfunction reduction experiment.
Fig. 5. Execution time by interface of the malfunction reduction experiment
어떠한 인터페이스가 사용하기에 더 편했는지에 대한 포인터 실행 방법의 만족도 평가 결과, 5점 만점에 응시 인터페이스 3.5점, 깜박임 인터페이스 3.6점, Eye-Voice 4.5점으로 Eye-Voice가 가장 높은 만족도를 보였다.
4.2.2 작업 난이도 별 오작동 감소 확인
Table 1의 결과 수치를 기반하여 작업 난이도 별 오작동 감소 분석을 진행하였다. 작업 난이도에 따른 인터페이스 별 시도횟수와 수행시간의 실험 결과 모든 작업 난이도에서 Eye-Voice가 가장 적은 시도횟수와 수행 시간을 기록하였다. Eye-Voice의 실험 결과를 살펴보면, 난이도 별 시도횟수와 수행 시간 측정에서 난이도 “하”에서 1.35회, 68.90초, “중” 1.73회, 83.15초, “상” 2.50회, 162.05초의 결과를 얻었다. 각각의 수행 난이도에 대하여 기존 2종 인터페이스와 Eye-voice 간의 T검정을 시행한 결과, 시도 횟수에 대하여 응시 인터페이스와 Eye-Voice 간에는 유의미한 차이는 없었으나, 깜박임 인터페이스와는 난이도 ‘상’을 제외하고 유의미한 차이를 보였다. 수행 시간에 대한 T검정 결과, 응시 인터페이스와의 비교에서 난이도 “하”, “상”에서 유의미한 차이를 보였으며, 깜빡임 인터페이스와는 모든 난이도에서 차이가 없었다. 다음 Table 2는 Eye-Voice 인터페이스와 비교하여 인터페이스 별 시도 횟수와 수행 시간 비교에 대한 T검증 결과이다. 또한 Eye-Voice에 대하여 인터페이스 간의 시도 횟수와 수행 시간의 감소 차이를 비교한 결과는 Eye-Voice가 모든 난이도에서 각 인터페이스에 비해 시도 횟수가 감소하였으며, 수행시간이 빨라졌다.
Table 2. T-test result for comparison of attempts and execution time by interface (p<0.05)
4.2.3 결과 분석에 따른 결론
포인터 실행의 오작동 감소 실험 결과, 상지장애인이 기존의 시선 추적 인터페이스들의 사용과 비교한 결과 Eye-Voice의 사용이 가장 적은 시도횟수와 수행 시간을 기록하였으며, T 검정 결과 응시인터페이스와의 시도횟수를 제외하고 유의미한 차이를 얻었다. 또한, 실 사용자의 만족도 평가에서 Eye-Voice 사용이 가장 높은 점수를 획득하였다. 특히, 깜빡임 인터페이스와 비교하여 오작동 감소에서 효과가 있음을 확인할 수 있었다. 작업 난이도에 따른 검증에서 난이도가 어려워질수록 수행 시간 및 시도 횟수가 증가하였지만, 모든 난이도에서 Eye-Voice의 가장 낮은 오작동률을 보였으며 대체적으로 실행 객체의 크기가 작은 난이도 “중, 상”에서의 효과 차이가 보였다. 따라서 음성을 결합한 시선 추적 인터페이스가 포인터 실행의 오작동률을 낮추었으며, 실 사용자에게 효과가 있음이 확인 되었다.
6. 결론
본 논문은 기존의 시선 추적 시스템의 오작동 문제를 개선하여 상지장애인이 마우스 클릭 감소를 통하여 PC의 메뉴 및 객체를 자유롭게 선택하고 실행시킬 수 있도록 음성 명령을 결합한 시선 추적 인터페이스를 개발하고, 기존의 시선 추적 인터페이스와의 오작동률 개선에 대한 사용성 검증을 진행하였다. 손 사용이 불가한 상지장애인이 시선 추적 기술로 포인터의 움직임을 실행하고, PC 화면을 탐색하는동안 부정확한 포인터 실행(깜빡임, 응시) 방법을 사용하지 않고 “okay”라고 음성 명령을 내려 자연스러운 클릭을 즉각적으로 실행할 수 있도록 설계하였다. 기존 시선 인터페이스들과의 포인터 실행의 오작도 감소에 관한 비교 실험을 진행한 결과 Eye-Voice가 포인터 실행의 오작동률을 낮추었으며 효과가 있음을 검증하였다. 또한 클릭해야 하는 객체의 크기로 구분한 작업 난이도 별 검증 실험에서 객체의 크기가 작을수록 포인터 실행이 어려웠지만 Eye-Voice가 난이도가 높아질수록 효과가 있음을 확인하였다.
본 연구는 PC 화면에서의 포인터 실행에 대하여 연구를 진행하였다. 향후 웹 환경으로 범위를 확장시킨다면, 다양한 크기로 구성 된 웹 콘텐츠의 객체를 실행하기 위해서는 웹의 특성에 기반 한 문제가 발생할 것으로 예상되어 추가적인 연구가 필요할 것으로 예상 된다. 또한 본 연구를 통해 운동 장애로 인해 손 사용이 불편한 상지장애인뿐만 아니라 손을 움직이기 불편한 상황에서 마우스 이외의 시선과 음성으로 PC를 제어하고 할 수 있는 환경이 될 것으로 기대한다.
References
- J.H. Park, S. Park, M. Lee and S.B. Lim, “Voice Activity Detection Algorithm using Wavelet Band Entropy Ensemble Analysis in Car Noisy Environments,” Journal of Korea Multimedia Society, Vol. 21, No. 11, pp. 1342-1352, 2018. https://doi.org/10.9717/KMMS.2018.21.11.1342
- D.H. Jin, A study on Usability Evaluation of an Eye Mouse-Based on the Function of Click, Double-Click, Drag, and Scroll, Master's Thesis of Seoul National University, 2016.
- A. Murata, R. Uetsugi and T. Hayami, "Study on cursor shape suitable for eye-gaze input system," 2012 Proceedings of SICE Annual Conference(SICE), pp. 926-931, 2012.
- Alastair Chetcuti and Chris Porter, "Butterfleye : Supporting the Development of Accessible Web Applications for Users with Severe Motor-Impairment" Proceedings of the 30th International BCS Human Computer Interaction Conference, 2016.
- Menges, Raphael, Chandan Kumar, Daniel J Muller and Korok Sengupta. "GazeTheWeb: A Gaze-Controlled Web Browser." Proceedings of the 14th Web for All Conference on The Future of Accessible Work, Article No. 25, ACM, 2017.
- Python. https://www.python.org/ (accessed March 24, 2018)
- tobii_reserach API. http://developer.tobiipro.com/ (accessed March 24, 2018)
- Google Cloud Speech API. https://cloud.google.com/speech-to-text/?hl=ko (accessed March 24, 2018)
- Tobii Etyetracket X130. https://www.tobiipro.com/ (accessed March 24, 2018)
- Window API. https://docs.microsoft.com/enus/windows/win32/apiindex/api-index-portal (accessed March 24, 2018)
- S. Kwak, I. Kim, D. Sim, S.H. Lee, and S.S. Hwang, "A Computer Access System for the Physically Disabled Using Eye-Tracking and Speech Recognition", Journal of the HCI Society of Korea, Vol. 12, No. 4, pp. 5-15, 2017.