컴퓨터가 디지털 사진과 동영상을 어떻게 이해하는지 문제를 해명하는 연구 분야가 컴퓨터 비전이다. 한 엔지니어가 자신이 개발한 시선 이동을 따라 그려주는 아이드로우(EyeDraw) 알고리즘을 통해 컴퓨터 비전 알고리즘이 어떻게 사용되는지 설명하고 있다.
아이드로우는 오픈소스 컴퓨터 비전 라이브러리인 오픈CV(OpenCV)를 이용해 파이썬으로 개발한 시선으로 선을 그리기 위한 소프트웨어다. 아이드로우는 시선 인식을 얼굴 검출(Haar Cascades), 눈을 진단하고 호모그래피를 통한 눈동자와 커서 맵핑이라는 3가지 알고리즘을 이용한다.
첫 단계는 얼굴과 눈을 인식한다. 인식 방법으로는 오픈CV에서 제공하는 사전 학습 모델을 이용한 검출 기술(Haar Cascades) 식별자를 통한 이미지 분석을 한다. 식별자는 이런 특징을 얼굴과 눈이 갖고 있다는 걸 컴퓨터에 이해시키는 역할을 하고 식별자를 얼굴 이미지화할수록 컴퓨터에 얼굴과 눈의 특징을 파악하게 하고 있다.
얼굴과 눈을 인식한 뒤에는 눈동자를 검색할 수 있다. 컴퓨터에게 특정 특성을 공유하는 픽셀군으로 눈동자 검출을 할 수 있게 해준다. 이미지를 숫자로 변환시킨 뒤 오픈CV 메소드(findContours)를 이용해 검출한 육곽을 중심으로 반경을 추정해 눈을 감지한다.
다음 단계로 검출한 눈동자와 화면 커서를 대응시킬 필요가 있다. 이 대응을 실현하기 위해 호모그래피라는 도형 처리 기술을 이용한다. 호모그래피는 다른 평면상 두 점을 대응시키기 위한 기술이다. 여기에서 호모그래피는 수학적으로는 2차월 좌표 공간 점을 나타내는 3차원 벡터를, 다른 점을 나타내는 3차원 벡터를 변환하는 3×3행렬이다.
호모그래픽에 의한 눈동자와 커서 대응을 위해선 올바른 대응을 컴퓨터에 알리기 위한 교정이 필요하다. 보정 기능은 아이드로우에 갖춰져 오픈CV 메소드를 이용하면 쉽게 구현할 수 있다.
여기까지 처리에 컴퓨터는 사용자가 화면 어디를 보고 있는지 인식할 수 있다. 하지만 이것만으론 컴퓨터 커서 이동이 선을 그리고 있다 또는 커서를 다른 위치로 이동시키고 있다는 것인지 판단할 수 있기 때문에 포인터 모등와 커서 모드 기능을 구현하고 수동으로 전환해 문제를 해결한다.
최근에는 딥러닝이 컴퓨터비전의 강력한 대항마다. 하지만 딥러닝은 복잡성이 있고 이론상 명쾌한 컴퓨터 비전이 의료와 보안 등 분야에서 계속 사용될 수 있다는 설명이다. 아이드로우는 깃허브에 공개되어 있으며 누구나 무료로 이용할 수 있다. 관련 내용은 이곳에서 확인할 수 있다.