Smorodov 579 Жалоба Опубликовано September 4, 2012 Здесь есть описание и OpenCV-шные исходники. http://www.morethantechnical.com/2010/06/24/image-recoloring-using-gaussian-mixture-model-and-expectation-maximization-opencv-wcode/ Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 5, 2012 что то мне уже слишком часто стало встречаться про Gaussian Mixture Model и Expectation Maximization. может есть где это объясняется по простому и для чего используется? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 5, 2012 GMM - это статистическая модель объекта (аппроксимация реального распределения линейной комбинацией гауссианов). EM - Алгоритм, при помощи которого находят эту самую аппроксимацию. Параметры распределений (mu, sigma) и коэффициенты (веса) этих распределений в модели. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 5, 2012 да это то я абстрактно понимаю, а вот куда его применяют и как не очень понятно в частности. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 5, 2012 Например при моделировании цвета кожи. Собирают большую выборку данных, и хотят определить с какой вероятностью новая точка принадлежит классу "кожа". Если мы посчитаем среднее и дисперсию, то можем моделировать распределение Гаусса, и подставив в него нашу точку, получим искомую вероятность. Но распределение может плохо вписываться в унимодальное распределение (один гуассиан), например состоит из нескольких конгломератов точек, тогда намного более точные результаты нам даст представление модели при помощи комбинации гауссианов. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 5, 2012 http://www.juergenwiki.de/work/wiki/doku.php?id=public:gaussian_mixture_models_em_algorithm_-_demo 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 6, 2012 а вы поняли как там делается матчинг гауссиан? там жадный алгоритм и рэндомные перестановки какие то. алгоритм похоже даёт только приближённое к оптимальному решение. а в общем случае мы имеем опять assigment problem с cost matrix составленной из метрик symmetric kullback-leibler. тут вот вроде бы быстрее алгоритмы чем Hungarian Algorithm. я пробовал алгоритм победитель, и вроде он норм работает, только всё равно при использовании shape context выдает не то, но это скорее я не правильно закодировал shape context. пробовал еще в качестве метрики использовать евклидово расстояние, вместо разности векторов shape context получилось тоже плохо. http://zealint.ru/assignment-problem-comp.html 1 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 6, 2012 Насколько я понял, каждому Гауссиану модели первого изображения сопоставляется Гауссиан второго изображения, причем делается это рандомно, чтобы не перебирать все, т.к. задача NP-полная. Затем оценивается качество сопоставления. Похоже на некое подобие генетического алгоритма. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано September 6, 2012 ну вообще то не NP полная, т.к. решается с помощью Hungarian Algorithm за O(N^3), а по ссылке выше там еще Cost Scaling который должен еще быстрее работать. попробовал тупо для каждой гауссианы из 1 набора найти лучшую на втором наборе по метрике symmetric kullback-leibler, что используется в коде. и получилось, что все похожи на одну и ту же. а потом я посмотрел картинки и либо это баг opencv либо как то надо добавочно ограничивать, потому что иногда одной большой гауссианой всё закрывает. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано September 6, 2012 По поводу сложности это, я поспешил . Я думаю, что сравнивать нужно смесь со смесью, то есть если выбрали одну лучшую пару, то она не участвует в выборе следующей, и т.д. Про баг с большой гауссианой говорилось в той демке, ссылку на которую Вы недавно давали (пост №6). Там же написано, что его в последних версиях исправили. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах