Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2010, 01:45   #1
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию Определение контрольных точек на лице.

Привет.
Более подходящего места для этой темы я не нашел. Я задавал этот вопрос здесь: http://roboforum.ru/forum51/topic8247.html- но этот форум почти мертв - поэтому ответа фиг дождешься.
Так вот: Передо мною стоит такая задача: имеется видео поток - известно наверняка, что в кадре имеется фронтальное изображение лица. Нужно определить на нем несколько контрольных точек, к примеру: ЗРАЧКИ, уголки глаз, кончик носа, уголки губ и бровей. Возможны небольшие отклонения лица вправо или влево.
Подскажите пожалуйста в каком направлении двигаться, просто я новичок в компьютерном зрении. Все что у меня получалось - так это определение прямоугольника вокруг глаз, лица, губ с помощью OpenCV(если не ошибаюсь то с помощью алгоритма "Виолы-Джонса", функция cvHaarDetectObjects). Также знаю, что этот алгоритм можна обучать для других объектов.
Так вот вопрос: Можно ли как нибудь обучить этот алгоритм для получения нужных точек, или нужно использовать какой нибудь другой алгоритм?
Заранее спасибо.

P.S.: Освещение хорошее!
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 07.06.2010, 11:35   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Могу добавить то, что пользователя можно "попросить" неким образом подвигатся.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 07.06.2010, 12:29   #3
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Это сложней чем Вам могло показаться.
Например, света никогда не будет достаточно, а лицо всегда будет вертеться. Да и анатомия у всех разная. Само е универсальное решение-маркеры.

p.s А вот не надо, робофорум- отличный форум, но у них просто немного другая специфика.
Levsha100 вне форума Ответить с цитированием
Старый 07.06.2010, 12:52   #4
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Я знаю, что это сложно, но все же определить прямоугольника вокруг глаз, лица, губ я смог.
Мой вопрос заключается в том, можно ли обучить нейронную сеть на нахождение точек - поскольку определять на кадре зону з лицом, глазом, губами она "может". Я не очень опытен в нейронных сетях - только начал в них вникать. А также не очень хочется писать ее, если она не самый лучший вариант для решения этой задачи. Поэтому спрашиваю в каком направлении двигаться - возможно алгоритм, метод, технология и т.д. Разжёвывать не надо - т.к я умею пользоваться гуглом). Просто я в этой теме новичок.

Я знаю, что робофорум отличный форум, но просто там надо очень долго ждать ответа. А насчет специфики несогласен - там есть отдельный подфорум: "компьютерное зрение".
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 07.06.2010, 13:05   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от hoza_syl Посмотреть сообщение
. А также не очень хочется писать ее, если она не самый лучший вариант для решения этой задачи.
Верно. Нейронные сети лучше использовать там где нельзя написать алгоритм стандартными средствами. Левша уже упоминал про маркеры, копайте в ту сторону. И еще один фактор - нейронные сети могут ошибаться.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 07.06.2010, 13:18   #6
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Маркеры? В каком смысле? Тойсть пользователь сам должен кликнуть мышкой на нужные точки???
Если вы об этом - то такой вариант не подходит - так как тогда можно легко обмануть систему - а она будет использоваться в целях защиты информации.

Вот для примера видео: http://www.youtube.com/watch?v=V7UdYzCMKvw того что мне удалось реализовать - но как видно - здесь только прямоугольники - а мне нужно точки!
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 07.06.2010, 13:20   #7
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

ЗЫ: это не мое видео - но примерно такой результат я получил. Все кроме бровей и непонятных красных точек на уголках губ)
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 07.06.2010, 23:18   #8
grenles
минимакс
Участник клуба
 
Аватар для grenles
 
Регистрация: 11.06.2008
Сообщений: 1,143
По умолчанию

Не читая особой литературы и не зная современных подходов, я бы пошел таким путем.

1-е известно, что изображение не перевернуто, то есть 30% верхней части - это волосы, лоб, приблизительно - середина - это глаза, нос. Нижняя часть - рот, подбородок, шея.

Исходя из этого я бы строил анализ.

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

А далее делал бы снимок экрана и анализировал бы пикселы - что-то типа растеризации на основе света, тонов и прочее. А далее пытался бы искать построенные векторные фигуры в сравнении с аналогами базы знаний и описания.

А потом бы уже найдя область "глаза" по пиксельно искал бы точки по цветы и их расположению по краям или другим областям фигуры.

Надеюсь этот бред поможет. А так - только поиск литературы и внимательное изучение форумов, особенно англоговорящих.
и это пройдет...
grenles вне форума Ответить с цитированием
Старый 08.06.2010, 00:18   #9
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

grenles, большое спасибо - хоть что-то - я тоже думал сначала копать в этом направлении, только о векторной форме не подумал. А задал здесь вопрос для того, чтобы изучить все возможные способы решения - а потом уже делать реализацию.
Этот метод для меня немного сложен - потому что надо ВСЕ писать самому - а это ооочень много кода - если же использовать нейронные сети - то есть готовые обертки, но если обучить сеть не выйдет - буду писать вышеизложенный вариант
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 08.06.2010, 08:01   #10
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Пиши сам, я уже отмечал главный недостаток нейросети - они имеют право на ошибку. А задачи часто требуют адекватного ответа - для указанного образа должен быть однозначный ответ - да, соответствует базе, или нет. То есть имеется некоторая функция f(x), где для каждого х имеется однозначный результат у, получить который можно через f(x), а также на основании предыдущего и последующего х предсказать свойства х текущего. Так вот все выше сказанное справедливо для подобных алгоритмов полученных обычным программированием и не данное утверждение не выполняется для нейронных сетей. Иными словами нейросеть может не распознавать некоторые образы и это считается нормой. Нейросеть может считать образ совпавший с другим образцом в базе и это считается нормой. Хуже всего, то что нет данных о том когда сеть совершит ошибку, а когда нет. Такие данные могут быть получены только экспериментальным путем и хуже того что такие данные могут быть получены не всегда.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50