Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнить два лица. Сравнить два лица в разных ракурсах. 
:(
    Опции темы
_Y_
Дата 9.7.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



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

ИМХО если решишь задачу с достоверностью результата близкой к достоверности зрительного сравнения фотографий, то много лет сможешь питаться, разъезжая по миру с лекцией "Как мне удалось это сделать". smile  Удачи!


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
galileopro
Дата 9.7.2009, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 7.6.2009
Где: Харьков

Репутация: нет
Всего: нет



Цитата(_Y_ @  9.7.2009,  15:49 Найти цитируемый пост)
Я бы выделял отдельные черты лица (глаза, рот, и т.п.) и считал соотношения размеров элементов и расстояний, лежащих в одной плоскости.

Проблема в том, что если ракурс изменен, то эти осонвные точки уже будут не в одной плоскости. Поэтому я и восстанавливаю 3D. А сравнивать разумеется будем по основным элементам. Спасибо за совет.
PM MAIL WWW ICQ   Вверх
dereyly
Дата 10.7.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 16.6.2006

Репутация: 1
Всего: 4



Здравствуй, сложной задачей ты занимаешься, но надеюсь у тебя все получится... Вот есть пару ссылок работы 2х комерческих программ: 
1. Демонстрация построения 3D модели лица
2. Сайт faceApi, советую скачать демку для веб камеры
PM MAIL   Вверх
_Y_
Дата 10.7.2009, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(galileopro @ 9.7.2009,  19:57)
если ракурс изменен, то эти осонвные точки уже будут не в одной плоскости

Мне кажется там хитрость в том, что сравниваются только те характеристические соотношения, которые можно определить на обеих фотографиях. Остальные же просто игнорируются. Ну и, понятно, таких соотношений должно быть много, чтобы статистически исключить шум.

Кстати, если человек ни разу не попадал под трактор, линия рта и линия глаз у него параллельны и, соответственно, всегда лежат в одной плоскости smile  Это просто пример, конечно.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
_Y_
Дата 11.7.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Я вот еще подумал. Для выбора характеристических признаков можно покопаться в принципах сборки милицейских фотороботов.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
dereyly
Дата 12.7.2009, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 16.6.2006

Репутация: 1
Всего: 4



Цитата(_Y_ @ 11.7.2009,  12:48)
Я вот еще подумал. Для выбора характеристических признаков можно покопаться в принципах сборки милицейских фотороботов.

Идея интересная вот только, как их БД вскрыть, так как обычно формат элементов находится во внутреннем представлении.
PM MAIL   Вверх
galileopro
Дата 12.7.2009, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 7.6.2009
Где: Харьков

Репутация: нет
Всего: нет



А можно ли попытаться не строить 3 Д с нуля, а сделать базу из 3Д моделей лиц, а потом надожить фото как текстуру? А по фотографии определить какая из доступных моделей подходит лучше всего и еще сделать модели так, чтобы можно было изменять полноту лица, расстояние между бровями и другие параметры?
PM MAIL WWW ICQ   Вверх
DRUID3
Дата 13.7.2009, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 2
Всего: 9



Цитата(galileopro @  12.7.2009,  21:28 Найти цитируемый пост)
А можно ли попытаться не строить 3 Д с нуля, а сделать базу из 3Д моделей лиц, а потом надожить фото как текстуру? А по фотографии определить какая из доступных моделей подходит лучше всего и еще сделать модели так, чтобы можно было изменять полноту лица, расстояние между бровями и другие параметры? 

Если при этом правильно организовать хранение этих самых моделей - в виде дерева - то поиск по базе можно будет заметно ускорить...

Добавлено через 2 минуты и 33 секунды
Цитата(_Y_ @  11.7.2009,  11:48 Найти цитируемый пост)
Я вот еще подумал. Для выбора характеристических признаков можно покопаться в принципах сборки милицейских фотороботов. 

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


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
_Y_
Дата 13.7.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: 8
Всего: 34



Цитата(DRUID3 @ 13.7.2009,  09:09)
Цитата(_Y_ @  11.7.2009,  11:48 Найти цитируемый пост)
Для выбора характеристических признаков можно покопаться в принципах сборки милицейских фотороботов.
 А Вы в состоянии написать программу эффективно работающую с изображениями фоторобота? Они сделаны для восприятия человека...

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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
galileopro
Дата 13.7.2009, 14:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 7.6.2009
Где: Харьков

Репутация: нет
Всего: нет



Вот есть программа, она делает 3Д модель лица по 3-м фотографиям: в фас, левый профиль, правый профиль. Называется FaceGen Modeller 3.1.2. Скачать можно тут, но учтите, что Демо-версия не сохраняет модель(посмотреть можно, а воспользоваться - нет).  http://www.facegen.com/
Если есть эти 3 фотки, то можно сделать 3Д по ним, а потом просто развернуть модель в нужный ракурс, наложить текстуру, применить фильтры (ну чтобы 2 сравниваемых изображения обладали более-менее одинаковыми свойствами), а потом сравнить эти 2 фотки (уже в одинаковых ракурсах). Для сравнения проще всего попиксельное, но можно и нейросеть обучить, можно и основные елементы выделить, кому как, я бы использовал нейросеть, так как когда-то я с ними сталкивался, а вот как выделить основные елементы лица если угол поворота более 20-25 градусов я так и не разобрал. Ну это еще можно почитать.
Основной неодстаток проги - то, что у меня, по крайней мере, она моделила 3Д но текстуру не наложила, то есть модель сгенерировала очень похожую на фотки, но цвет кожи, волосы, макияж, и все остальное благополучно отбросила, получился этакий Вин Дизель, но черты лица такие, как на фотках.
Пришлость экспортировать модель из проги в 3Д макс и там уже наложить текстуру. Потом я по теням определил насколько нужно изменить ракурс (насколько повернуть по Ох Оу Oz) и сравнил попиксельно (дало 86.324% сходства) и методом нейросетей (91.454%). Нейросеть делал сам, пользовался 
http://depositfiles.com/files/urhq14jpd
http://www.basegroup.ru/library/analysis/neural/math/
http://masters.donntu.edu.ua/2007/kita/mik...s/ind/index.htm
http://daily.sec.ru/dailypblshow.cfm?rid=5&pid=4425
И еще много чем. Вообще довольно геморно получается, но единственное понятно: по одной фотографии восстановить 3Д не получится. Или получится с большими погрешностями. Думаю  нужно попробовать написать прогу, которая хотя бы по 3-м фоткам (фас, левый профиль, правый профиль) восстановила 3Д и изменила нужным образом ракурс, наложила текстуру и сравнила полученные изображения. Причем мне понравился метод FaceGen Modeller 3.1.2 там ты на фотки накладываешь сетку из основных точек - вроде это результативнее, чем тратить машинное время на определение их внутри программы. Хотя можно и так.
Итак, господа форумчане, хочу услышать отзыв. smile


Это сообщение отредактировал(а) galileopro - 13.7.2009, 16:28
PM MAIL WWW ICQ   Вверх
DRUID3
  Дата 13.7.2009, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 20.6.2005
Где: Kyyiv

Репутация: 2
Всего: 9



galileopro
Ну вобщем-то интересно...Но... Но я думал мы обсуждаем несколько иное. У ментов есть систем где вводится фотка (понятное дело никаких 3-х ракурсов в помине нет) а с телекамер(например в аэропорту) непрерывно сканируется изображение на совпадение. И ежу понятно - масштаб совершенно иной, угол захвата и падения освещения - произвольный... Системы - реальные, "принятые на вооружение", для работы достаточно одноядерного процессора ~3GHz (не знаю правда плавающая точка там или фиксированная)...

Вобщем, как верно подметил Dims...
Цитата(Dims @  6.7.2009,  16:29 Найти цитируемый пост)
1) нужно восстановить 3-мерную модель лица; для этого нужно найти источник света, вычислить наклон поверхностей, учесть макияж и т.п.

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

Цитата(Dims @  6.7.2009,  16:29 Найти цитируемый пост)
2) Нужно сравнить две 3-мерные модели

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

Да... с масштабами будет нелегко, и даже не знаю как правильно. Наверное нужно модель в виде графа сводить к какой-то общей величине. Толи общей сумме весов ребер, то ли к общему объему занимаемому 3-D моделью. Что менее ресурсоемко...

Добавлено через 6 минут и 59 секунд
Да, еще хотел добавить что нестОит сюда пока тянуть никаких нейронных сетей... Блин, это какая-то новая эпидемия... Нейронные сети это основа физической машины нашего мозга, а отнюдь не ИИ вообще, основа искусственного интеллекта - математика... Вот эти самые НС между задачей и ее моделью, как Java между конкретной архитектурой процессора и ленью программиста общим командным интерфейсом... Т.е. можно но быстрее и правильнее без них...
 Тем более что их смешали уже и с сетями Вольтерии(которые вообще не из этой степи) и мноигим чем еще... Слово очень модное, почти как нанотехнологии...

Добавлено через 8 минут и 56 секунд
Кстати, достойная задача для CUDA...


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
galileopro
Дата 13.7.2009, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 7.6.2009
Где: Харьков

Репутация: нет
Всего: нет



Ясно. Просто хотелось побыстрее получить результат.
Цитата(DRUID3 @  13.7.2009,  21:07 Найти цитируемый пост)
масштаб совершенно иной, угол захвата и падения освещения - произвольный...

Сейчас пытаюсь реализовать такое:
1) Определить местоположение лица.
Здесь я пробовал так:
Выделяю кожу по цвету 
 if (!((r > g) && (r > b) && (b > 20) && (r > 95) && (b > 20) && (abs(r - g) > 15) && (max(r,g,b)-min(r,g,b) > 15)))
беру  Лапласиан и выделяю контуры,
d2f = 4*z5 - (z2 + z4 + z6 + z8) 
Здеся как и советуется в http://masters.donntu.edu.ua/2007/kita/mik...s/ind/index.htm с сглаживающей Гаусовской функцией, потом нахожу замкнутый контур, который приближенно имеет форму эллипса или на него можно наложить 2 параболы.
2) Преобразую в бинарное, и определяю расстояние между ушами, потом на линии ушей делая квадратик как сказано в http://www.iai.dn.ua/public/JournalAI_2004...Tukhtasinov.pdf и масштабирую под другой масштаб (оба изображения под один, равный максимальному размеру из 2-х данных)
3) Нахожу источник света по теням и областям высокой яркости (здесь тоже свертки из http://masters.donntu.edu.ua/2007/kita/mik.../ind/index.htm). Тут проблема такая: хотелось бы максимально выровнять яркость по направлению источника света.
4) Наклон поверхностей - метод градиентного спуска, и это действительно, как упоминалось, дает приближенную 3D модель.
5)Построить модель в виде графа. Сейчас это и делаю. Как получится - напишу.
Спасибо за помощь.

PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.