Comments 48
UFO just landed and posted this here
Интересный пост, спасибо
-2
UFO just landed and posted this here
спасибо, наконец-то встретил понятную статью, а то недавно писали про AdaBoost, сама идея там конечно ясна, но вот как сделать реализацию я так и не понял. а тут и реализация понятная и алгоритм.
+1
Плюс за непонятность
+4
Что именно непонятно? Я постараюсь объяснить.
+2
UFO just landed and posted this here
UFO just landed and posted this here
> Вычисление вектора «средних» — непонятно, что делают 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
1 транспонирует матрицу. В 3ей строке берётся каждый столбец матрицы и вычисляется его среднее. Средние по столбцам и составляют вектор средних (усреднённое изображение).
> Далее, в 3 пункте, непонятен механизм вычисления ковариационной матрицы
Вобще ковариационная матрица должна вычисляться так:
C < — AT * A
Где AT — это транспонированная матрица А.
Но в этом случае получается матрица размером 10304х10304. Неподъёмный размер. Поэтому мы вычисляет только часть ковариционной матрицы (где количество строк и столбцов равно количеству примеров в обучающей выборке) по немного изменённой формуле:
C < — A * AT
Этот момент более подробно изложен в любом описании мат. аппарата алгоритма. На русском можно прочесть здесь: library.mephi.ru/data/scientific-sessions/2003/Neuro_2/115.pdf
+1
Матан =)
+1
UFO just landed and posted this here
блин надо было учить математику усерднее
+3
Применим ли данный алгоритм для распознавание обьектов, например дигитальных фотоаппаратов? Допустим задача: Есть база с ~300 изображениями (в хорошом качестве / размере) разных д. ф/а. Поступает изображение ф/а который может находиться в базе, а может и нет. Изображение не всегда под тем же углом что и изображение в базе. Стоит отметить, что часто разные ф/а одного производителя похожи друг на друга.
Есть ли алгоритмы кототрые более подходят для такой задачи?
Есть ли алгоритмы кототрые более подходят для такой задачи?
0
приятно таким заниматься в студенческие годы или в аспирантуре… я бы хотел чтобы мне платили за работу над такими вещами, тогда я вспомнил бы математику и перечитал бы кнута…
0
Хабр тот.
+14
После формулы думал, что дальше пойдут нейронные сети. Рад, что ошибся. Понравилась идея с вычитанием среднего.
+1
Я взялся писать эти статьи как раз для того, чтобы показать людям, что в распознавание образов это не только нейросети. :)
+1
А вообще, как по-вашему, что какое средство эффективнее в распознавании образов: нейросети или какие-то другие алгоритмы?
0
Действительно очень сильная статья, читал 2 раза вспоминая, что учил на вышке. Вспоминается сложно, но вспоминается, хочется еще подобных статей и побольше, заставляет напрягаться мой мосг :)
+3
Хм, я бы попробовал получить веса для обучающей выборки, а потом усреднять.
И почему только 4 веса? Имхо надо обрезать по дисперсии.
Я и провильно понимаю что собственные значения нормализовывались только по 4-м значениям? Тогда проценты — всего лишь от вклада этих 4-х. Для оценки эффективности имеет смысл нормализовать по всем исходным размерностям.
И почему только 4 веса? Имхо надо обрезать по дисперсии.
Я и провильно понимаю что собственные значения нормализовывались только по 4-м значениям? Тогда проценты — всего лишь от вклада этих 4-х. Для оценки эффективности имеет смысл нормализовать по всем исходным размерностям.
+1
Если не усредняя применять PCA, то области данных изображений в многомерном пространстве будут иметь большую плотность и, возможно, перекрываться.
Максимальное количество весов не превышает размер ков. матрицы по одному из измерений. Т.е. равно объёму выборки.
Это не имеет смысла т.к. все остальные размерности вырождены.
Максимальное количество весов не превышает размер ков. матрицы по одному из измерений. Т.е. равно объёму выборки.
Это не имеет смысла т.к. все остальные размерности вырождены.
0
А хабр-то, ещё торт!
+3
А есть реализация на .NET?
-3
Поправьте, пожалуйста, если я что-то упустил: алгоритм Eigenface сводится к
1) уменьшению размерности выборки посредством метода главных компонент (PCA)
2) классификации полученных данных методом ближайшего соседа (Nearest Neighbour).
Так?
1) уменьшению размерности выборки посредством метода главных компонент (PCA)
2) классификации полученных данных методом ближайшего соседа (Nearest Neighbour).
Так?
0
на сколько я понял, как раз да
0
нет не так…
сначало агоритм сводиться к PCA,
а дальше его задача найти пространство проекции так, чтобы внутреклассовая дисперсия была минимальная, а межклассовая максимальная
иными словами аглоритм фишера (или собс. лиц) это на шаг глубже чем РСА
сначало агоритм сводиться к PCA,
а дальше его задача найти пространство проекции так, чтобы внутреклассовая дисперсия была минимальная, а межклассовая максимальная
иными словами аглоритм фишера (или собс. лиц) это на шаг глубже чем РСА
+1
после нахождения этого пространства — проектируется в него(!)
+2
Безусловно, метод Фишера, или линейный дискриминантный анализ (LDA), отличается от PCA (хотя у них и много общего).
Однако сдаётся мне, Вы говорите о некоей вариации оригинального алгоритма, потому что в нём LDA не использовался, т.е. все лица обучающей выборки обрабатывались без учёта других классов (как и в данном топике).
Однако сдаётся мне, Вы говорите о некоей вариации оригинального алгоритма, потому что в нём LDA не использовался, т.е. все лица обучающей выборки обрабатывались без учёта других классов (как и в данном топике).
+1
Ну если рассуждать тезисно, то можно и так сказать.
0
Всё понято, только этот ужасный маткад портит всю статью, юзай мэпл или матлаб в крайнем случае. Повторяю, маткад — ужасен. А статья интересная, даже очень.
-3
УРА! ) в этом году сдавал диплом по этой теме)) налюбился достаточно… но распознает
в частности интересно что будет если скрестить алгоритм Фишера + нейронные сети
в частности интересно что будет если скрестить алгоритм Фишера + нейронные сети
+1
Приличная статья по CV на наших Хабрах после продолжительного уныния? Есть путь!
+2
Indalo спасибо за отличную статью…
0
А я думал матан хорош только в использовании как карательная мера.
0
Отличная статья, не часто встретишь хорошую статью на русском по CV
0
В плане развития мат.аппарата у нас специальность близка к «Прикладной математике», так что все такое знакомое:) Плюс не так давно писал простую программу распознавания символов.
Кстати, статья получилась наглядная и интересная, спасибо.
Заинтересовал момент с вычислением главных компонент, удобно.
Кстати, статья получилась наглядная и интересная, спасибо.
Заинтересовал момент с вычислением главных компонент, удобно.
0
Хорошая статья, спасибо. От себя добавлю ссылку на статью Юрия Чеснокова (eng) с реализацией аналогичного алгоритма на С++
0
Sign up to leave a comment.
Распознавание изображений. Алгоритм Eigenface