Как стать автором
Обновить

Комментарии 48

Интересный пост, спасибо
НЛО прилетело и опубликовало эту надпись здесь
В алгоритме JPEG используются подобные преобразования.

Что касается распознавания, то данные алгоритм имеет какую-то аналогию с разложением сигнала в тригонометрический ряд. Сигнал представляется как сумма тригонометрических членов, а в нашем случае изображение как сумма базисных элементов.
спасибо, наконец-то встретил понятную статью, а то недавно писали про AdaBoost, сама идея там конечно ясна, но вот как сделать реализацию я так и не понял. а тут и реализация понятная и алгоритм.
Темой статьи был не AdaBoost, поэтому не стал подробно останавливаться. Там есть ссылки на литературу, я сам по ним разбирался.
Плюс за непонятность
Что именно непонятно? Я постараюсь объяснить.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
В статье об этом написано: вместо классического евклидова расстояния в задачах распознавания образов лучше применять другую метрику: расстояние Махалонобиса

Да, эта формула.
> Вычисление вектора «средних» — непонятно, что делают 1 и 3 строчки.

1 транспонирует матрицу. В 3ей строке берётся каждый столбец матрицы и вычисляется его среднее. Средние по столбцам и составляют вектор средних (усреднённое изображение).

> Далее, в 3 пункте, непонятен механизм вычисления ковариационной матрицы

Вобще ковариационная матрица должна вычисляться так:
C < — AT * A
Где AT — это транспонированная матрица А.
Но в этом случае получается матрица размером 10304х10304. Неподъёмный размер. Поэтому мы вычисляет только часть ковариционной матрицы (где количество строк и столбцов равно количеству примеров в обучающей выборке) по немного изменённой формуле:
C < — A * AT
Этот момент более подробно изложен в любом описании мат. аппарата алгоритма. На русском можно прочесть здесь: library.mephi.ru/data/scientific-sessions/2003/Neuro_2/115.pdf

Извиняюсь, формулы для вычисления ков. матрицы перепутал, там наоборот. :) Пишу в дороге с наладонника, неудобно.
НЛО прилетело и опубликовало эту надпись здесь
я бы хотел это понять
блин надо было учить математику усерднее
Применим ли данный алгоритм для распознавание обьектов, например дигитальных фотоаппаратов? Допустим задача: Есть база с ~300 изображениями (в хорошом качестве / размере) разных д. ф/а. Поступает изображение ф/а который может находиться в базе, а может и нет. Изображение не всегда под тем же углом что и изображение в базе. Стоит отметить, что часто разные ф/а одного производителя похожи друг на друга.

Есть ли алгоритмы кототрые более подходят для такой задачи?
Если человек глядя на эти фотографии не может отличить какие-нибудь два фотоаппарата, то компьютер точно не сможет.
Если только не написать алгоритм классификации фотоаппаратов :)
приятно таким заниматься в студенческие годы или в аспирантуре… я бы хотел чтобы мне платили за работу над такими вещами, тогда я вспомнил бы математику и перечитал бы кнута…
После формулы думал, что дальше пойдут нейронные сети. Рад, что ошибся. Понравилась идея с вычитанием среднего.
Я взялся писать эти статьи как раз для того, чтобы показать людям, что в распознавание образов это не только нейросети. :)
А вообще, как по-вашему, что какое средство эффективнее в распознавании образов: нейросети или какие-то другие алгоритмы?
Не знаю, я не эксперт в этой области. Единственное, что мне понятно — это то, что эффективнная система для распознавания это комплекс различных алгоритмов. Искусственная нейросеть это далеко не человеческий мозг, поэтому далеко не панацея и чудес не делает.
Действительно очень сильная статья, читал 2 раза вспоминая, что учил на вышке. Вспоминается сложно, но вспоминается, хочется еще подобных статей и побольше, заставляет напрягаться мой мосг :)
Хм, я бы попробовал получить веса для обучающей выборки, а потом усреднять.

И почему только 4 веса? Имхо надо обрезать по дисперсии.

Я и провильно понимаю что собственные значения нормализовывались только по 4-м значениям? Тогда проценты — всего лишь от вклада этих 4-х. Для оценки эффективности имеет смысл нормализовать по всем исходным размерностям.
Если не усредняя применять PCA, то области данных изображений в многомерном пространстве будут иметь большую плотность и, возможно, перекрываться.

Максимальное количество весов не превышает размер ков. матрицы по одному из измерений. Т.е. равно объёму выборки.

Это не имеет смысла т.к. все остальные размерности вырождены.
А хабр-то, ещё торт!
А есть реализация на .NET?
Поправьте, пожалуйста, если я что-то упустил: алгоритм Eigenface сводится к
1) уменьшению размерности выборки посредством метода главных компонент (PCA)
2) классификации полученных данных методом ближайшего соседа (Nearest Neighbour).
Так?
на сколько я понял, как раз да
нет не так…

сначало агоритм сводиться к PCA,
а дальше его задача найти пространство проекции так, чтобы внутреклассовая дисперсия была минимальная, а межклассовая максимальная

иными словами аглоритм фишера (или собс. лиц) это на шаг глубже чем РСА
после нахождения этого пространства — проектируется в него(!)
Безусловно, метод Фишера, или линейный дискриминантный анализ (LDA), отличается от PCA (хотя у них и много общего).
Однако сдаётся мне, Вы говорите о некоей вариации оригинального алгоритма, потому что в нём LDA не использовался, т.е. все лица обучающей выборки обрабатывались без учёта других классов (как и в данном топике).
Ну если рассуждать тезисно, то можно и так сказать.
Всё понято, только этот ужасный маткад портит всю статью, юзай мэпл или матлаб в крайнем случае. Повторяю, маткад — ужасен. А статья интересная, даже очень.
Да вы просто не поняли прелестей маткада! =)
Математические формулы «придуманы» как раз чтобы однозначно лаконично сформулировать то, что порой в пару абзацев =)))
Для этого есть Mathematica. А MathCAD все равно ужасен.
УРА! ) в этом году сдавал диплом по этой теме)) налюбился достаточно… но распознает

в частности интересно что будет если скрестить алгоритм Фишера + нейронные сети
P.N. Belhumeur, J.P. Hespanha, D.J. Kriegman, Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection
Приличная статья по CV на наших Хабрах после продолжительного уныния? Есть путь!
Indalo спасибо за отличную статью…
А я думал матан хорош только в использовании как карательная мера.
Отличная статья, не часто встретишь хорошую статью на русском по CV
В плане развития мат.аппарата у нас специальность близка к «Прикладной математике», так что все такое знакомое:) Плюс не так давно писал простую программу распознавания символов.
Кстати, статья получилась наглядная и интересная, спасибо.

Заинтересовал момент с вычислением главных компонент, удобно.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.