|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.06.2010, 01:45 | #1 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Определение контрольных точек на лице.
Привет.
Более подходящего места для этой темы я не нашел. Я задавал этот вопрос здесь: http://roboforum.ru/forum51/topic8247.html- но этот форум почти мертв - поэтому ответа фиг дождешься. Так вот: Передо мною стоит такая задача: имеется видео поток - известно наверняка, что в кадре имеется фронтальное изображение лица. Нужно определить на нем несколько контрольных точек, к примеру: ЗРАЧКИ, уголки глаз, кончик носа, уголки губ и бровей. Возможны небольшие отклонения лица вправо или влево. Подскажите пожалуйста в каком направлении двигаться, просто я новичок в компьютерном зрении. Все что у меня получалось - так это определение прямоугольника вокруг глаз, лица, губ с помощью OpenCV(если не ошибаюсь то с помощью алгоритма "Виолы-Джонса", функция cvHaarDetectObjects). Также знаю, что этот алгоритм можна обучать для других объектов. Так вот вопрос: Можно ли как нибудь обучить этот алгоритм для получения нужных точек, или нужно использовать какой нибудь другой алгоритм? Заранее спасибо. P.S.: Освещение хорошее!
The Revolution is Now!
|
07.06.2010, 11:35 | #2 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Могу добавить то, что пользователя можно "попросить" неким образом подвигатся.
The Revolution is Now!
|
07.06.2010, 12:29 | #3 |
Заблокирован
Старожил
Регистрация: 20.07.2008
Сообщений: 4,032
|
Это сложней чем Вам могло показаться.
Например, света никогда не будет достаточно, а лицо всегда будет вертеться. Да и анатомия у всех разная. Само е универсальное решение-маркеры. p.s А вот не надо, робофорум- отличный форум, но у них просто немного другая специфика. |
07.06.2010, 12:52 | #4 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Я знаю, что это сложно, но все же определить прямоугольника вокруг глаз, лица, губ я смог.
Мой вопрос заключается в том, можно ли обучить нейронную сеть на нахождение точек - поскольку определять на кадре зону з лицом, глазом, губами она "может". Я не очень опытен в нейронных сетях - только начал в них вникать. А также не очень хочется писать ее, если она не самый лучший вариант для решения этой задачи. Поэтому спрашиваю в каком направлении двигаться - возможно алгоритм, метод, технология и т.д. Разжёвывать не надо - т.к я умею пользоваться гуглом). Просто я в этой теме новичок. Я знаю, что робофорум отличный форум, но просто там надо очень долго ждать ответа. А насчет специфики несогласен - там есть отдельный подфорум: "компьютерное зрение".
The Revolution is Now!
|
07.06.2010, 13:05 | #5 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Верно. Нейронные сети лучше использовать там где нельзя написать алгоритм стандартными средствами. Левша уже упоминал про маркеры, копайте в ту сторону. И еще один фактор - нейронные сети могут ошибаться.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
07.06.2010, 13:18 | #6 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
Маркеры? В каком смысле? Тойсть пользователь сам должен кликнуть мышкой на нужные точки???
Если вы об этом - то такой вариант не подходит - так как тогда можно легко обмануть систему - а она будет использоваться в целях защиты информации. Вот для примера видео: http://www.youtube.com/watch?v=V7UdYzCMKvw того что мне удалось реализовать - но как видно - здесь только прямоугольники - а мне нужно точки!
The Revolution is Now!
|
07.06.2010, 13:20 | #7 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
ЗЫ: это не мое видео - но примерно такой результат я получил. Все кроме бровей и непонятных красных точек на уголках губ)
The Revolution is Now!
|
07.06.2010, 23:18 | #8 |
минимакс
Участник клуба
Регистрация: 11.06.2008
Сообщений: 1,143
|
Не читая особой литературы и не зная современных подходов, я бы пошел таким путем.
1-е известно, что изображение не перевернуто, то есть 30% верхней части - это волосы, лоб, приблизительно - середина - это глаза, нос. Нижняя часть - рот, подбородок, шея. Исходя из этого я бы строил анализ. Параллельно сделал бы базу - типа фоторобота, но с описаниями по цвету, форме. То есть представил бы объекты в векторной форме. При этом описание для глаз было бы таким: овальнобразный объект со следующими эмпирическими характеристиками - высота приблизительно половина ширины. - в области овала яркость середины намного меньше (темный зрачок), чем краев - белое яблоко. ожидаемое нахождение - верхняя часть экрана. А далее делал бы снимок экрана и анализировал бы пикселы - что-то типа растеризации на основе света, тонов и прочее. А далее пытался бы искать построенные векторные фигуры в сравнении с аналогами базы знаний и описания. А потом бы уже найдя область "глаза" по пиксельно искал бы точки по цветы и их расположению по краям или другим областям фигуры. Надеюсь этот бред поможет. А так - только поиск литературы и внимательное изучение форумов, особенно англоговорящих.
и это пройдет...
|
08.06.2010, 00:18 | #9 |
Форумчанин
Регистрация: 23.05.2008
Сообщений: 219
|
grenles, большое спасибо - хоть что-то - я тоже думал сначала копать в этом направлении, только о векторной форме не подумал. А задал здесь вопрос для того, чтобы изучить все возможные способы решения - а потом уже делать реализацию.
Этот метод для меня немного сложен - потому что надо ВСЕ писать самому - а это ооочень много кода - если же использовать нейронные сети - то есть готовые обертки, но если обучить сеть не выйдет - буду писать вышеизложенный вариант
The Revolution is Now!
|
08.06.2010, 08:01 | #10 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Пиши сам, я уже отмечал главный недостаток нейросети - они имеют право на ошибку. А задачи часто требуют адекватного ответа - для указанного образа должен быть однозначный ответ - да, соответствует базе, или нет. То есть имеется некоторая функция f(x), где для каждого х имеется однозначный результат у, получить который можно через f(x), а также на основании предыдущего и последующего х предсказать свойства х текущего. Так вот все выше сказанное справедливо для подобных алгоритмов полученных обычным программированием и не данное утверждение не выполняется для нейронных сетей. Иными словами нейросеть может не распознавать некоторые образы и это считается нормой. Нейросеть может считать образ совпавший с другим образцом в базе и это считается нормой. Хуже всего, то что нет данных о том когда сеть совершит ошибку, а когда нет. Такие данные могут быть получены только экспериментальным путем и хуже того что такие данные могут быть получены не всегда.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) | kcю | Помощь студентам | 0 | 17.11.2009 19:50 |