Перейти к содержимому
Compvision.ru
cfytr

Детектор моргания глаз.

Recommended Posts

Проблема: При работе за компьютером глаза моргают в 12 раз меньше, что вызывает дискомфорт и жжение в глазах.

Решение: Отслеживать моргания через веб-камеру. И, если с момента последнего моргания прошло много времени, отключать монитор. Если после отключения было сдетектированно моргание, включать монитор.

Основную часть программы могу реализовать сам. Но моих знаний в машинном зрении не достаточно для решения задачи распознавания морганий. Ищу желающих реализовать эту часть программы. В интернете есть некоторые наработки или http://www.youtube.com/watch?v=LHfUeyxhgvk, но они требуют оптимизации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В идеальных условиях найти глаза и определить закрыты они или нет задача тривиальная. Haar для лица потом haar глаз или asm и вырезанные квадраты области глаз перевести в дескриптор hog вполне справится и все это дело в svm.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В идеальных условиях найти глаза и определить закрыты они или нет задача тривиальная. Haar для лица потом haar глаз или asm и вырезанные квадраты области глаз перевести в дескриптор hog вполне справится и все это дело в svm.

А на сколько такой алгоритм быстро работать будет? Ведь нужно хотя бы 4-5 кадров в секунду обрабатывать. И при этом что б прога ела не более 10% ресурсов процессора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я думаю реалтайм можно сделать. Детектор Виолы-Джонса (то что выше названо Haar), может работать на видеокарте (в разы быстрее стандартного) и заметно разгрузит CPU.

Выделять глаза можно в реальном времени.

Правда они не на каждом кадре будут найдены, или будет найдено некоторое количество ложных глаз. Можно применить трекинг объектов, а можно просто искать на детектах (прошедших эмпирический фильтр) закрытые глаза.

Под эмпирическим фильтром понимаю некоторые ограничения на расположение и масштаб найденных областей глаз (они примерно одинаковы по размеру, находятся на одном уровне, более менее симметрично относительно оси головы и т.д.).

HOG для небольшой области считается быстро.

По поводу SVM не уверен, нужно ли его использовать в данном случае (работает он не спешно).

Можно просто искать скользящее среднее изображения глаза (двух одновременно, мы ведь моргаем двумя глазами одновременно), и при превышении отличия текущего кадра от среднего более чем на установленный порог, включать тревогу :)

Но это все умозрительно, могу ошибаться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

20-30fps на видеокарте ноутбочной (у меня 635m) реально, а десктоптой так вообще можно 100 выжать

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

20-30fps на видеокарте ноутбочной (у меня 635m) реально, а десктоптой так вообще можно 100 выжать

Насколько я понимаю вычисления на GPU в OpenCV поддерживается только для видеокарт с nvidia cuda. А как быть тем 90% людей у которых другие видеокарты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насколько я понимаю вычисления на GPU в OpenCV поддерживается только для видеокарт с nvidia cuda. А как быть тем 90% людей у которых другие видеокарты?

Понимаешь неправильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тем 900% не имеющим NVidia можно порекомендовать попробовать включить OpenCL:

http://developer.amd.com/wordpress/media/2013/07/opencv-cl_instructions-246.pdf

Там, кстати, в конце ссылка на пример детектора лиц.

Понимаешь неправильно.

Nuzhny знает, ему в этом вопросе можно верить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тем 900% не имеющим NVidia можно порекомендовать попробовать включить OpenCL:

http://developer.amd.com/wordpress/media/2013/07/opencv-cl_instructions-246.pdf

Там, кстати, в конце ссылка на пример детектора лиц.

Nuzhny знает, ему в этом вопросе можно верить :)

а разве в готовых пакетах с http://opencv.org/ OpenCL Отключен? там есть и ocl и gpu dll-ки.

У меня видеокарта Nvidia 8600 gts, на ней ведь должны примеры и из gpu и из ocl работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я обычно собираю OpenCV сам, при помощи cmake.

Но насколько я помню, по умолчанию поддержка gpu отключена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

20-30fps на видеокарте ноутбочной (у меня 635m) реально, а десктоптой так вообще можно 100 выжать

Ты через gpu или ocl вычислял? Если через ocl какую версию openCL показывает opencv на видеокарте?

cv::ocl::DevicesInfo devices;

ocl::getOpenCLDevices(devices);

std::cout<<devices[0]->deviceVersion;

У меня 8600 GTS и версия должна быть openCL 1.1, а показывает 1.0 и отказывается работать с ней.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может быть драйверы старые? Что утилита http://www.geeks3d.com/20131113/gpu-caps-viewer-1-19-0-videocard-information-utility-opengl-opencl-geforce-quadro-radeon-gpu/ показывает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может быть драйверы старые? Что утилита http://www.geeks3d.com/20131113/gpu-caps-viewer-1-19-0-videocard-information-utility-opengl-opencl-geforce-quadro-radeon-gpu/ показывает?

post-6822-0-47534500-1388738785_thumb.pn

Похоже видяха только версию 1.0 поддерживает. А на cuda есть какие-то ограничения по версиям?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

post-6822-0-47534500-1388738785_thumb.pn

Похоже видяха только версию 1.0 поддерживает. А на cuda есть какие-то ограничения по версиям?

Да, конечно. Они примерно такие же как и у OpenCL, только номера версий побольше. CUDA развивается в пределах одной компании достаточно быстро, а для OpenCL только версию 2.0 комитет утвердил недавно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Nuzhny знает, ему в этом вопросе можно верить :)

Через месяц я уже не буду работать разработчиком драйверов для видекарт АМД. Скорее всего новый проект станет более насыщен именно компьютерным зрением, а не низкоуровневой оптимизацией.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Помниться бинарники opencv(если их просто качать, а не собирать самому)имели только заглушку для GPU, а вообще по коду упор(больше кода) как раз сделан был на CUDA (может сейчас что то изменилось?).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×