인간의 의도를 이해하는 수단으로서 사람의 시선은 많은 정보를 내포하고 있다. 비주얼캠프(VisualCamp)의 Seeso와 같은 훌륭한 기술과 연구들이 인간의 시선을 예측하기 위하여 활용되고 있다. 딥러닝 기술의 발전은 다른 많은 컴퓨터 비전 분야처럼 시선 예측 분야의 성능도 비약적으로 향상시켰다. 이 글에서는 시선 추적에 이러한 딥러닝 기술이 어떻게 연구되고 적용되는지를 개략적으로 살펴본다. 한 분야의 흐름을 이해하기 위해서는 리뷰 논문으로부터 출발하는 것이 좋은 선택일 수 있다. 여기서는 2021년에 발표된 Appearance-based Gaze Estimation With Deep Learning: A Review and Benchmark로부터 딥러닝이 적용된 시선예측 방법인 appearance-based method에 관하여 알아 본다.
Appearance-based Gaze Estimation은 무엇인가?
시선 예측을 위하여 appearance-based gaze estimation 이전에 사용되던 방식은 크게 3D eye model recovery-based 방식과 2D eye feature regression-based 방식이 있었다. 전자는 기하학적인 3차원 eye model을 구성한 후에, 그 모델을 활용하여 시선 방향 벡터를 예측한다. 후자는 eye model을 구성하지는 않지만, 시선 방향을 결정하는 동공의 크기나 빛이 반사되는 glint 지점 같은 기하학적인 특성을 찾아내어서 사용자가 바라보는 화면의 지점(PoG, Point of Gaze)을 예측한다.
두 방식 기하학적인 정보를 파악하기 위하여 적외선(IR) 카메라와 같은 전용 장비를 사용해야 했다. 따라서 요구되는 비용이 컸고, 그 활용이 제한적일 수밖에 없었다. 반면 appearance-based 방식은 웹캠이나 모바일 카메라와 같은 일반적인 장비로부터 눈의 외양을 파악하고, 이로부터 시선 지점을 찾아낼 수 있다. 이미지로부터 시선방향을 예측할 수 있는 만큼 그 설정은 간단했고, 다양한 알고리즘을 제안하는 연구가 많아지면서 시선 예측의 응용도 활발해졌다.
초기에는 여러 가지 특성이 함께 뒤섞여 있는 이미지로부터 시선 특성(gaze feature)을 추출하기 위하여 HOG(Histogram of Oriented Gradients)와 같은 규칙 기반 알고리즘(rule-based algorithm)이나 이미지 처리(image processing) 기술이 사용되었다. 하지만 고차원 이미지 데이터로부터 필요한 핵심 특성을 뽑는 것은 쉽지 않은 일이었다. 한편, 이미지로부터 사람의 시선과 관련된 특성이 파악되더라도, 실제 시선의 방향이나 시선 지점으로 대응시키는 것은 어려운 일이었다. 시선 특성과 결과값을 맵핑하는 다양한 회귀(regression) 함수가 제안되었지만, 만족할만한 성능이 나오지 않았다. 이는 복잡한 고차원 시선 특성에서 우리가 찾으려는 시선 지점으로 대응되는 비선형관계를 파악하기 어려웠기 때문이었다. 또, 입력으로 사용되는 이미지에서 머리의 기울어짐이나 회전과 같은 head pose의 변화가 일어났을 때, 성능 저하도 뚜렷했다.
최근에는 이처럼 기존 방식이 갖는 중요한 특성 추출의 한계와 낮은 정확도를 극복하기 위하여, 다른 컴퓨터 비전 태스크처럼 시선 예측에도 딥러닝이 활발히 적용되고 있다. 특히 이미지로부터 추상적인 고차원 특징을 추출하는데 탁월하고, 눈 이미지와 시선 정보 사이의 비선형 관계를 학습할 수 있는 까닭에, 딥러닝 방식은 일관되고(robust) 높은 정확도를 보인다. 또한 조명 조건이나 head pose와 같은 대상자의 상태 변화에도 성능 저하가 크기 않고, 여러 사용자 간에도 성능 차이가 크지 않아서 일반화가 잘 이뤄진다. 이러한 이유로 딥러닝 기술의 적용은 appearance-based gaze estimation 방식의 활용 범위를 크게 넓힐 수 있었다.
어떠한 이미지를 사용할 것인가?
딥러닝 방식에 의하여 시선 예측 정확도가 크게 향상되었다는 것은 구축한 모델이 중요한 특성을 효과적으로 파악했다는 것을 의미한다. 이 때 각 모델이 어떠한 특징에 주목하였고 이를 어떻게 추출하였는지에 따라서 성능 및 학습 방법이 달라지게 된다. 여기에서는 여러 시선 예측 모델이 사용하는 입력 형태를 알아보고, 이로부터 시선 예측 결과에 영향을 줄 수 있는 특성이 무엇인지를 파악해 본다.
우선, 시선 방향 예측과 직접적으로 연관되어 있는 눈의 외양(appearance)을 생각해 본다. 안구의 회전은 홍채의 위치나 눈꺼풀의 형태 같은 눈 주위의 모양을 바꾸고나서, 시선 방향의 변화로 나타난다. 이러한 이유 때문에 눈 영역의 이미지로부터 시선 예측에 필요한 특성을 추출할 수 있다고 생각되어졌다. 딥러닝 이전의 전통적인 appearance-based 방식도 눈 이미지를 사용했지만, 이미지의 개별 픽셀로부터 고차원 특성을 직접 추출하려고 시도하였다. 그러나 원본 픽셀값처럼 처리되지 않은 원래의 특성들은 필요한 정보가 중첩되어 있거나, 조명이 바뀌거나 촬영된 이미지가 회전하는 입력의 변화에 대응하지 못하는 단점이 뚜렷하였다.
딥러닝 기반 컴퓨터비전 기술의 발전 양상과 동일하게 컨볼루션 층이 사용되는 컨볼루션 신경망(CNN)이 사용되면서, 시선 예측과 관련된 더 다양하고 일관성 있는 특성이 추출될 수 있었다. 초기의 딥러닝 방식은 단일한 눈 이미지를 따로 사용했다. 그러나 최근의 연구들은 두 눈의 특성을 결합(concatenate)시킴으로써, 시선 예측의 정확도가 향상될 수 있음을 보였다. 이에 따라 왼쪽, 오른쪽 눈에서 개별적 특징을 추출한 뒤, 마지막 시선 예측을 위한 회귀(regression) 층의 입력으로 두 특성을 결합하거나, 아니면 하나의 모델 안에서 각 눈이나 두 눈의 결합된 특성을 동시에 추출할 수 있는 스트림을 여럿 두는 모델이 제안되었다. 이 때, 각 특성들을 단순히 결합하는 데에 그치지 않고, 특성의 효율적인 결합을 위해 어텐션(attention) 메커니즘을 사용하거나, 최종 시선방향에 각 눈의 특성이 미치는 가중치 비율을 계산하는 새로운 층을 도입하기도 하였다.
시선 예측을 위해 특성 추출 이외에 고려해야 할 요소는 대상자의 얼굴 회전이나 이동같은 head pose의 변화에 대응할 수 있도록 하는 것이다. 초기의 appearance-based 방식은 추정된 head pose의 값을 눈 이미지 이외에 추가 입력으로 사용했는데, 성능의 향상이 뚜렷하지 않았다. 이 때문에 전체 얼굴 이미지를 CNN의 입력으로 사용하여 중요한 시선 특성을 추출하는 방식이 사용되기 시작했다. 이는 오직 눈 이미지만을 사용할 때보다 성능이 향상되었고, 개선된 일반화 결과를 보였다. 하지만 얼굴 이미지를 사용하는 경우, 각각의 채널이 중복된 정보를 사용하거나 시선 예측과 관련 없는 특성도 다수 포함되었기 때문에, 여러 최적화 방식이 적용될 필요가 있었다. 최근에는 얼굴 이미지로부터 왼쪽, 오른쪽 눈 이미지를 직접 크롭하여서 얼굴 이미지와 함께 입력으로 사용하는 3개의 스트림 모델이 사용되기도 하였다. 이 모델은 얼굴의 회전과 이동과 같은 head pose은 얼굴 이미지로부터 추출하며, 안구의 회전 정보는 각 눈 이미지로부터 획득한 뒤, 결합된 특성들이 단일한 시선 방향 벡터로 대응되는 것을 기대하는 연구였다.
어떻게 학습 시킬 것인가?
딥러닝 기반의 appearance-based gaze estimation 연구에서 컴퓨터 비전에 널리 쓰이는 컨볼루션 신경망이 각 시선 예측 모델의 핵심을 이루는 것은 동일하지만, 어떠한 학습전략을 택하느냐에 따라서 정확도나 일반화 성능에 차이를 보인다. 시선 예측 문제를 2차원 정답 시선 좌표 혹은 3차원 시선 벡터로의 회귀(regression) 문제라고 생각했을 때, 가장 흔하게 사용되는 방식은 정답 값을 타겟으로 학습하는 지도 학습 방식(supervised learning)이다. 지도 학습이 이미지 인식(image recognition)분야에서 오랫동안 주류로 연구되었다는 점과 appearance-based 방식의 입력이 눈 또는 얼굴 부위의 이미지라는 점을 고려하여, 컴퓨터 비전에서 많이 사용되는 CNN 아키텍처들이 시선 예측 모델의 백본으로 활용되었다. 성능 향상을 위해서 좀 더 넓은 범위를 바라보는 dilated convolution 층을 사용하거나 두 눈의 특성을 효율적으로 결합하는 attention 모듈을 활용함으로써 시선 예측의 정확도가 좋아지는 연구도 있었다.
지도 학습을 위해서는 시선 방향이 레이블된 대규모 데이터셋이 필요하기 때문에, 시선 예측 연구를 위한 MPIIGaze나 GazeCapture와 같은 데이터셋이 제안되었다. 많은 시간과 비용이 소요된 이러한 대규모 데이터셋에도 불구하고, 대상자의 얼굴 방향, 촬영 조건이 더욱 다양한 데이터셋의 필요성은 꾸준이 제기되고 있다. 한편, 실제 데이터셋 구축과 더불어 실제 이미지처럼 보이도록 합성된 시선 데이터셋의 사용도 제안되었다. UnityEye와 같은 시스템은 눈 주위의 영역에서 필요한 이미지를 빠르게 합성할 수 있어서, 여러 시선 예측 모델 연구에 사용되었다. (그러나 실제 데이터와 함께 합성 데이터를 사용하였을 때, 일관된 결과가 나오도록 학습하는 것은 쉽지 않다.)
한편, 시선 데이터의 레이블링에 들어가는 비용과 시간 소요를 극복하기 위하여 레이블되지 않은 이미지를 사용하는 학습 방법도 활발하게 연구되었다. 레이블된 이미지와 레이블되지 않은 이미지를 함께 사용하는 준지도학습(semi-supervised)을 채택한 방식에서는 학습의 목표를 살짝 바꿔 입력된 이미지가 레이블된 그룹과 레이블되지 않은 그룹 중 어떤 곳에 속한 이미지인지를 구분하는 적대적 모듈(adversarial module)을 사용한다. 비록 최종 시선 예측의 학습을 위해서는 레이블된 데이터만을 사용하지만, 더 많은 수의 데이터를 사용해서 이미지의 특성을 보다 효율적으로 추출하도록 학습 되었기 때문에 예측의 정확성을 높일 수 있었다. 적절한 pretext task를 규정하여 예측 성능을 높이려는 자기 지도 학습(self-supervised)방식을 따라서 2개의 서브네트워크를 사용하는 연구도 있다. 두 눈의 시선 방향을 예측하는 회귀 신경망과 예측 결과의 성능을 판단하는 평가 신경망을 따로 두어서, 추가적인 파라미터 없이 시선 예측 결과의 정확성을 높이려 시도한 연구 였다.
오직 레이블되지 않은 이미지만을 사용하는 비지도학습(unsupervised learning)은 정답을 사용하지 않는 만큼, 실험의 설계와 학습의 최적화가 가장 쉽지 않다. 여기에는 대표적으로 사전학습된 시선 변환 신경망(pre-trained gaze redirection network)를 사용하여 시선 표현을 학습하는 방법이 제안되었다. 주어진 두 이미지의 차이에서 추출한 시선변환변수(redirection variable)와 입력 이미지를 통해, 새로운 방향을 바라보는 이미지를 생성한다. 이 과정에서 시선 표현에 대한 학습이 최적화된다. (그러나 이 연구에서도 학습된 시선표현으로부터 시선 방향을 연결짓는 정보가 필요하였기 때문에, 최종 시선 예측의 정확성을 높이기 위하여 소수의 레이블된 이미지를 사용하였다.)
여기까지는 시선 예측에 사용되는 입력 요소가 보통 이미지인 까닭에 CNN 학습에 사용되는 학습방식이 활용된 연구를 살펴보았다. 그런데 사람의 시선은 단편의 이미지로부터 오는 개별 정보일수도 있지만, 실제로는 시간의 흐름처럼 연속성을 가진다고 생각할 수 있다. 이에 따라 연속 데이터(sequential data)를 다루는 재귀신경망(RNN)을 시선 추적 연구에 도입하여, 비디오와 같은 영상 데이터를 바라볼 때 사람의 최종 시선 예측 결과를 앞뒤 프레임에서의 시선 방향을 활용해 더 정확하도록 개선하기도 하였다. LSTM, GRU, bi-LSTM 같은 다양한 RNN 구조가 함께 실험되었다.
마지막으로 안구 모델(eye model), 눈 움직임 패턴 등과 같은 사전 정보(prior information)를 활용하여 보다 정확한 시선 예측을 학습하려는 시도가 있었다. 인간의 시선은 단일한 예측값이라기보다는 상대적으로 제한된 머리 방향(head pose) 및 안구 방향(eyeball orientation) 하에서 이뤄질 수 있다. 따라서 얼굴 이미지로부터는 머리의 방향을 예측하고, 눈 이미지로부터는 안구의 방향을 파악한 뒤, 이 두 정보를 통합한 뒤에 기하학적 변환을 겨처 최종 시선이 예측되었다. 머리 방향 정보를 결합하는 것처럼 일반적인 눈의 움직임인 시선 고정(fixation), 시선 도약(saccade) 등의 정보도 정확도를 향상시키는 훌륭한 사전 정보로 활용될 수 있었다.
댓글