1 of 16

Python을 활용한 웹캠 기반�eye-tracking 프로그램 베타 버전 시연

황준오

서울대학교 물리교육과

데이터사이언스연구실 박사과정

2024. 02.

2 of 16

프로젝트 페이지

3 of 16

Facial mouse

  • 웹캠으로부터 얻은 영상만으로 마우스를 대체하는 프로젝트

  • Face Landmark로 마우스의 위치를 추정하고, 미간의 이미지로 클릭 여부 판정

4 of 16

Facial mouse

57개의 2차원 백터로 이루어진

Face Landmark 의 시계열 데이터

Input X

Regression

Output Y

마우스 포인터의

위치 벡터

Input X

미간의 이미지

데이터

Classification

Output Y

마우스 클릭 여부

  • Face recognition이라는 오픈소스 라이브러리로 landmark를 구할 수 있음

  • 마우스 위치는 win32api로 접근 및 제어 가능

  • Landmark를 57×2=114 차원의 벡터로 바꿔서 Regression
  • 미간 이미지 crop 범위는 화면에 나타난 얼굴 크기에 비례해서 결정됨

  • 눌렀냐 땠냐를 결정하므로 binary classification

  • Laplacian filter를 사용한 영상처리 기반으로 구현

5 of 16

Facial mouse – 데이터 수집 과정

  • 마우스의 움직임을 눈으로 따라가는 과정을 통해 양질의 데이터 생성 가능
  • 다양한 거리와 위치에서 화면의 구석구석을 바라본 데이터 필요
  • 약 8시간동안 기록하여 10.2MB 분량의 데이터를 얻었음

6 of 16

Facial mouse – 데이터 수집 과정

  • 이미지 처리엔 Convolutional Neural Network가 많이 사용되지만, 학습시키려면 오래 걸리기 때문에 고전적인 영상처리 기법을 사용

  • 미간 주름이 생기는 정도를 수치화하여, Laplacian의 최대치와 평균치로 Logistic Regression 시행

7 of 16

Facial mouse – 개발 결과

8 of 16

Facial mouse – 개발 결과

9 of 16

웹캠 기반 tracking이 범용적으로 쓰일 수 있는가?

  • 웹캠의 성능이 제각기 다르다.

  • 사람의 생김새가 제각기 다르다.

  • 조명과 화질 등에도 영향을 받음

  • 가장 중요한 것은, 웹캠과 모니터 화면의 위치관계가 다 다름

  • (캘리브레이션으로 해결 가능한 부분)

10 of 16

Real Eye 벤치마킹

특징

  • 웹 브라우저 기반, 웹캠 기반 온라인 eye tracking

  • 약 1분 간의 calibration 이후 피검사자의 카메라와 화면을 녹화함

  • 검사가 진행되는 동안 피검사자의 PC에서는 tracking이 이루어지지 않으며, 검사를 마치고 카메라 및 화면 녹화영상이 서버로 전송되어 처리됨

  • Saccade, fixation, AOI (area of interest) 등의 통계 지원

11 of 16

Real Eye 절차 (피검사자)

1. 카메라 위치 조정

2. 붉은 점을 따라가며

캘리브레이션

3. 화면 녹화

이때 캘리브레이션 할 당시의 시점에서 벗어나면 경고창 뜸

4. 설문 및 서버제출

기술적 특징

  • 캘리브레이션 도중 화면 밝기가 변화하면서, 화면의 컨텐츠에 따라 얼굴 밝기가 변화하는 문제 보정
  • 도중에 캘리브레이션에서 학습되지 않은 눈 위치로 이동할 경우, 돌아올 것을 경고해 정확도 향상시킴

12 of 16

SNUWET beta 절차

Beta Release에서 다운로드

프로그램 실행시

얼굴 위치 조정할 시간 10초

RealEye와 거의 유사한 방식의

캘리브레이션 시작

13 of 16

SNUWET beta 절차

사용자의 카메라와

화면이 동시에 녹화

생성된 3개의 파일을

피검사자가 연구자에게 전송

연구자는 분석소프트웨어로

업로드

Face mesh 및 시선추적 영상

다운로드

14 of 16

프로그램에서 제공되는 데이터

  • 각 시간별로 x, y raw data를 제공하기 때문에 이후 엑셀, python 등의 프로그램으로 불러와서 다양한 시각화 가능

  • 적절한 기준이 주어지면 saccade, fixation, AOI등 RealEye에서 제공하는 기능들 모두 구현 가능

  • 뿐만 아니라 카메라, 화면 데이터를 가지고 있기 때문에 감정분석 등 eye tracking 할 당시 이루어지지 못한 분석도 추후 추가 가능

15 of 16

추후 개발 방향

  • 프로그램 경량화 및 안정화, 보안문제 해결, Mac에서의 호환성 해결

  • 추적 알고리즘 고도화

  • 피검사자가 녹화되고 있다는 느낌을 받지 않도록 파이프라인 간소화, 녹화된 영상파일은 압축하여 피검사자가 열어볼 수 없도록 암호화

  • 분석 프로그램을 손쉽게 실행할 수 있도록 개량

  • 시각화 및 통계 지원

  • RealEye 에서 정확도를 위해 눈의 위치를 고정하는 기능을 on/off 할 수 있도록 개발

16 of 16

감사합니다.