cfytr 0 Жалоба Опубликовано December 28, 2013 Проблема: При работе за компьютером глаза моргают в 12 раз меньше, что вызывает дискомфорт и жжение в глазах. Решение: Отслеживать моргания через веб-камеру. И, если с момента последнего моргания прошло много времени, отключать монитор. Если после отключения было сдетектированно моргание, включать монитор. Основную часть программы могу реализовать сам. Но моих знаний в машинном зрении не достаточно для решения задачи распознавания морганий. Ищу желающих реализовать эту часть программы. В интернете есть некоторые наработки или http://www.youtube.com/watch?v=LHfUeyxhgvk, но они требуют оптимизации. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
iskees 32 Жалоба Опубликовано December 28, 2013 В идеальных условиях найти глаза и определить закрыты они или нет задача тривиальная. Haar для лица потом haar глаз или asm и вырезанные квадраты области глаз перевести в дескриптор hog вполне справится и все это дело в svm. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cfytr 0 Жалоба Опубликовано December 28, 2013 В идеальных условиях найти глаза и определить закрыты они или нет задача тривиальная. Haar для лица потом haar глаз или asm и вырезанные квадраты области глаз перевести в дескриптор hog вполне справится и все это дело в svm. А на сколько такой алгоритм быстро работать будет? Ведь нужно хотя бы 4-5 кадров в секунду обрабатывать. И при этом что б прога ела не более 10% ресурсов процессора. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 28, 2013 Я думаю реалтайм можно сделать. Детектор Виолы-Джонса (то что выше названо Haar), может работать на видеокарте (в разы быстрее стандартного) и заметно разгрузит CPU. Выделять глаза можно в реальном времени. Правда они не на каждом кадре будут найдены, или будет найдено некоторое количество ложных глаз. Можно применить трекинг объектов, а можно просто искать на детектах (прошедших эмпирический фильтр) закрытые глаза. Под эмпирическим фильтром понимаю некоторые ограничения на расположение и масштаб найденных областей глаз (они примерно одинаковы по размеру, находятся на одном уровне, более менее симметрично относительно оси головы и т.д.). HOG для небольшой области считается быстро. По поводу SVM не уверен, нужно ли его использовать в данном случае (работает он не спешно). Можно просто искать скользящее среднее изображения глаза (двух одновременно, мы ведь моргаем двумя глазами одновременно), и при превышении отличия текущего кадра от среднего более чем на установленный порог, включать тревогу Но это все умозрительно, могу ошибаться... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
iskees 32 Жалоба Опубликовано December 28, 2013 20-30fps на видеокарте ноутбочной (у меня 635m) реально, а десктоптой так вообще можно 100 выжать Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cfytr 0 Жалоба Опубликовано December 31, 2013 20-30fps на видеокарте ноутбочной (у меня 635m) реально, а десктоптой так вообще можно 100 выжать Насколько я понимаю вычисления на GPU в OpenCV поддерживается только для видеокарт с nvidia cuda. А как быть тем 90% людей у которых другие видеокарты? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано December 31, 2013 Насколько я понимаю вычисления на GPU в OpenCV поддерживается только для видеокарт с nvidia cuda. А как быть тем 90% людей у которых другие видеокарты? Понимаешь неправильно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 31, 2013 Тем 900% не имеющим NVidia можно порекомендовать попробовать включить OpenCL: http://developer.amd.com/wordpress/media/2013/07/opencv-cl_instructions-246.pdf Там, кстати, в конце ссылка на пример детектора лиц. Понимаешь неправильно. Nuzhny знает, ему в этом вопросе можно верить Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cfytr 0 Жалоба Опубликовано December 31, 2013 Тем 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 работать? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано December 31, 2013 Я обычно собираю OpenCV сам, при помощи cmake. Но насколько я помню, по умолчанию поддержка gpu отключена. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cfytr 0 Жалоба Опубликовано January 3, 2014 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 и отказывается работать с ней. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано January 3, 2014 Может быть драйверы старые? Что утилита http://www.geeks3d.com/20131113/gpu-caps-viewer-1-19-0-videocard-information-utility-opengl-opencl-geforce-quadro-radeon-gpu/ показывает? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
cfytr 0 Жалоба Опубликовано January 3, 2014 Может быть драйверы старые? Что утилита http://www.geeks3d.com/20131113/gpu-caps-viewer-1-19-0-videocard-information-utility-opengl-opencl-geforce-quadro-radeon-gpu/ показывает? Похоже видяха только версию 1.0 поддерживает. А на cuda есть какие-то ограничения по версиям? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано January 4, 2014 Похоже видяха только версию 1.0 поддерживает. А на cuda есть какие-то ограничения по версиям? Да, конечно. Они примерно такие же как и у OpenCL, только номера версий побольше. CUDA развивается в пределах одной компании достаточно быстро, а для OpenCL только версию 2.0 комитет утвердил недавно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано January 4, 2014 Nuzhny знает, ему в этом вопросе можно верить Через месяц я уже не буду работать разработчиком драйверов для видекарт АМД. Скорее всего новый проект станет более насыщен именно компьютерным зрением, а не низкоуровневой оптимизацией. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано January 13, 2014 Помниться бинарники opencv(если их просто качать, а не собирать самому)имели только заглушку для GPU, а вообще по коду упор(больше кода) как раз сделан был на CUDA (может сейчас что то изменилось?). Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах