Направление взгляда

Компьютерное зрение, OpenCV

Направление взгляда

Сообщение NovaThor » 09 июл 2017, 20:34

Привет всем. У меня возникла идея создать ПО, способное определять направление взгляда с помощью веб-камеры и отправлять соответствующие команды системе(хотя бы для 4-х направлений). Звучит неплохо, не так ли? Но существует ряд проблем при реализации такого алгоритма. С большинства веб-камер снимки получаются далеко не такими, какими бы их хотелось видеть для определения направления взгляда(например, моя веб-камера снимает с разрешением 640х480). В результате, с вырезанными фрагментами глаз практически невозможно работать. Не могли бы вы подтолкнуть на правильную мысль по поводу возможного улучшения изображения? Как бы вы реализовали такой алгоритм определения направления взгляда?
Вот мой текущий алгоритм(работающий с качественными фотографиями):
Получение снимка с камеры -> Поиск глаз на изображении(ф-я DetectMultiScale) -> Вырезка прямоугольников с глазами в отдельные изображения -> Применение GaussianBlur -> Бинаризация с помощью TresholdAdaptive(тип порога - MeanC) -> Поиск окружностей(радужек глаз) с HoughCircles( dp = 6) -> Формирование результата по смещению центра окружности относительно вырезанного прямоугольника.
NovaThor
 
Сообщения: 4
Зарегистрирован: 09 июл 2017, 20:31
programming: C#, C++

Re: Направление взгляда

Сообщение noonv » 09 июл 2017, 21:42

NovaThor писал(а):например, моя веб-камера снимает с разрешением 640х480

Уже давно есть камеры с лучшими характеристиками ;) Но начинать, разумеется, нужно не с покупки нового оборудования, а, для начала, просто посчитать - какой размер в пикселях будет занимать глаз при таком разрешении и получится ли что-то из этого получить.
Изображение
Аватара пользователя
noonv
Администратор
 
Сообщения: 537
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Направление взгляда

Сообщение NovaThor » 10 июл 2017, 20:27

В данном изображении размер прямоугольника с глазом составляет примерно 40х30. Noonv, смогли бы вы на такой картинке определить направление взгляда?
Изображение
NovaThor
 
Сообщения: 4
Зарегистрирован: 09 июл 2017, 20:31
programming: C#, C++

Re: Направление взгляда

Сообщение noonv » 11 июл 2017, 10:55

Так я, собственно, об этом и говорю.
Но, у вас ведь задача несколько иная - веб-камеру ведь можно прямо перед лицом расположить (над монитором - как у многих ноутбуков).
Аватара пользователя
noonv
Администратор
 
Сообщения: 537
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Направление взгляда

Сообщение NovaThor » 11 июл 2017, 12:30

noonv писал(а):веб-камеру ведь можно прямо перед лицом расположить (над монитором - как у многих ноутбуков).

Можно. Но если учитывать удаленность глаз от камеры при нормальной работе за компьютером(30-40 см), то распознование сводится к ситуации, как на изображении выше.
NovaThor
 
Сообщения: 4
Зарегистрирован: 09 июл 2017, 20:31
programming: C#, C++

Re: Направление взгляда

Сообщение noonv » 11 июл 2017, 12:44

Тогда - сначала нужен детектор лица, затем на нём ищем глаза, а далее зрачок.

В составе OpenCV уже есть пример - Face Detection using Haar Cascades - там и глаза находятся:
Изображение

Так же, для детектирования лиц можно библиотеку dlib попробовать.
Detect eyes, nose, lips, and jaw with dlib, OpenCV, and Python
Eye blink detection with OpenCV, Python, and dlib
Изображение
Аватара пользователя
noonv
Администратор
 
Сообщения: 537
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++

Re: Направление взгляда

Сообщение NovaThor » 12 июл 2017, 08:02

noonv писал(а):ищем глаза, а далее зрачок.

Нет такой функции поиска зрачка ни в OpenCV, ни в dlib
noonv писал(а):Так же, для детектирования лиц можно библиотеку dlib попробовать.
Detect eyes, nose, lips, and jaw with dlib, OpenCV, and Python

Адриан для определения точек лица использует библиотеку imutils, а она написана только для Питона.
NovaThor
 
Сообщения: 4
Зарегистрирован: 09 июл 2017, 20:31
programming: C#, C++

Re: Направление взгляда

Сообщение noonv » 12 июл 2017, 08:57

NovaThor писал(а):Нет такой функции поиска зрачка ни в OpenCV, ни в dlib

Есть поиск лица и глаз. Зрачок придётся искать самостоятельно.
Аватара пользователя
noonv
Администратор
 
Сообщения: 537
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++


Вернуться в Компьютерное зрение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron
© 2009-2017 |  О проекте  |  Политика Конфиденциальности  |