Алгоритм сравнения 2-х фотографий (посоветуйте)
Модератор: Модераторы разделов
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Алгоритм сравнения 2-х фотографий
Постановка задачи такова: Имеется два изображения одного и того же объекта с разных ракурсов. Требуется найти на этих изображениях одинаковые поверхности.
Есть идея использовать аппарат ИНС для решения этой задачи. Может быть кто то посоветует еще способы без использования ИНС???
Есть идея использовать аппарат ИНС для решения этой задачи. Может быть кто то посоветует еще способы без использования ИНС???
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Алгоритм сравнения 2-х фотографий
ИНС это инерциальные навигационные системы или Институт национальной стратегии. Последних использовать не советую.
А вообще как метод. На каждой фотографии выделить несколько одинаковых точек. Разбить на треугольники (многоугольники). Применить формулы аффинных преобразований. Тогда видно, чем отличается изображение на фото. Сдвиг, вращение, подобие и т.д. И плясать отсюда. Нет?
А вообще как метод. На каждой фотографии выделить несколько одинаковых точек. Разбить на треугольники (многоугольники). Применить формулы аффинных преобразований. Тогда видно, чем отличается изображение на фото. Сдвиг, вращение, подобие и т.д. И плясать отсюда. Нет?
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: Алгоритм сравнения 2-х фотографий
А вы юморист. ИНС( искусственный нейронный сети) один из методов анализа изображения.
Desipere in loco
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
Это верно
begin2009 писал(а): ↑12.02.2010 23:56ИНС это инерциальные навигационные системы или Институт национальной стратегии. Последних использовать не советую.
А вообще как метод. На каждой фотографии выделить несколько одинаковых точек. Разбить на треугольники (многоугольники). Применить формулы аффинных преобразований. Тогда видно, чем отличается изображение на фото. Сдвиг, вращение, подобие и т.д. И плясать отсюда. Нет?
ИНС - искусственные нейронные сети! Интересное предложение, но к примеру, вы фотографигуйте край какого либо объекта с разных сторон и тогда такой метод сравнения работать уже не будет.
-
begin2009
- Сообщения: 349
- Статус: Ламер со стажем
- ОС: без глюков
Re: Алгоритм сравнения 2-х фотографий
То есть на фото нет совпадающих частей вообще? Тогда алгоритм представить трудно. Если общие части есть - преобразование можно определить по части фото.
Пессимист видит темный туннель, оптимист видит свет в конце туннеля, реалист видит свет, туннель и поезд.
И только машинист видит этих трех идиотов, сидящих на рельсах.
И только машинист видит этих трех идиотов, сидящих на рельсах.
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
-
Bizdelnick
- Модератор
- Сообщения: 21520
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Алгоритм сравнения 2-х фотографий
Если "одинаковые поверхности" - это плоскости, посмотрите в сторону алгоритмов выравнивания фоток, которые в сшивателях панорам используются. Только там характер искажений совершенно другой (дисторсия, которая исправляется очень легко).
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
Bizdelnick писал(а): ↑13.02.2010 01:29Если "одинаковые поверхности" - это плоскости, посмотрите в сторону алгоритмов выравнивания фоток, которые в сшивателях панорам используются. Только там характер искажений совершенно другой (дисторсия, которая исправляется очень легко).
а есть какой нибудь сшиватель панорам с открытым кодом?
-
Doublespace
- Сообщения: 275
- ОС: Debian Lenny,Squeeze,Centos
Re: Алгоритм сравнения 2-х фотографий
Меня всегда интересовало,можно ли к такой задаче прикрутить алгоритмы корреляционного анализа,что мы по электронике изучали.
-
NickLion
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: Алгоритм сравнения 2-х фотографий
Doublespace писал(а): ↑13.02.2010 11:42Меня всегда интересовало,можно ли к такой задаче прикрутить алгоритмы корреляционного анализа,что мы по электронике изучали.
Да, можно, если ввести векторную характеристику, устойчивую к искажениям
Корреляция себя неплохо чувствует при нахождении точного положения маленьких областей.
-
Bizdelnick
- Модератор
- Сообщения: 21520
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Алгоритм сравнения 2-х фотографий
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
MassConstructor
- Сообщения: 20
- ОС: GNU/Linux Debian 5.0.1
Re: Алгоритм сравнения 2-х фотографий
Коллеги, если не возражаете, я тоже выскажусь.
Проблема в постановке задачи, а именно а разности ракурсов. Использовать нейросеть для этого можно лишь в том случае, если правильно представить себе максимальное и мимнимальное различие в изображении предмета (как известно, персептрон (система класса Adaline) делит целевое пространство на две части одной гиперплоскостью, следовательно, для корректного построения сети надо знать количество параметров, которые определят принадлежность к распознаваемому классу). Также, при выборе метода ИНС необходимо правильно кодировать входные и декодировать выходные сигналы.
Пример: если фон объекта легко процедурно отделим от самого объекта, то, предварительно отделив объекты от фона на обоих входных изображениях, можно послать одно изображение на вход сети Хопфилда, предварительно обучив ее другим образцом, и, если на выходе получится точная копия исходного изображения, то сфотографирован один и тот же объект. Недостатки очевидны.
Если же ракурсы сильно различаются, то стойкого метода, позволяющего сделать искомое заключение, на данный момент не существует (или он мне не известен).
По вопросам архитектур ИНС обращайтесь, всегда помогу
Проблема в постановке задачи, а именно а разности ракурсов. Использовать нейросеть для этого можно лишь в том случае, если правильно представить себе максимальное и мимнимальное различие в изображении предмета (как известно, персептрон (система класса Adaline) делит целевое пространство на две части одной гиперплоскостью, следовательно, для корректного построения сети надо знать количество параметров, которые определят принадлежность к распознаваемому классу). Также, при выборе метода ИНС необходимо правильно кодировать входные и декодировать выходные сигналы.
Пример: если фон объекта легко процедурно отделим от самого объекта, то, предварительно отделив объекты от фона на обоих входных изображениях, можно послать одно изображение на вход сети Хопфилда, предварительно обучив ее другим образцом, и, если на выходе получится точная копия исходного изображения, то сфотографирован один и тот же объект. Недостатки очевидны.
Если же ракурсы сильно различаются, то стойкого метода, позволяющего сделать искомое заключение, на данный момент не существует (или он мне не известен).
По вопросам архитектур ИНС обращайтесь, всегда помогу
Спасибо сказали:
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
MassConstructor писал(а): ↑13.02.2010 17:11Коллеги, если не возражаете, я тоже выскажусь.
Проблема в постановке задачи, а именно а разности ракурсов. Использовать нейросеть для этого можно лишь в том случае, если правильно представить себе максимальное и мимнимальное различие в изображении предмета (как известно, персептрон (система класса Adaline) делит целевое пространство на две части одной гиперплоскостью, следовательно, для корректного построения сети надо знать количество параметров, которые определят принадлежность к распознаваемому классу). Также, при выборе метода ИНС необходимо правильно кодировать входные и декодировать выходные сигналы.
Пример: если фон объекта легко процедурно отделим от самого объекта, то, предварительно отделив объекты от фона на обоих входных изображениях, можно послать одно изображение на вход сети Хопфилда, предварительно обучив ее другим образцом, и, если на выходе получится точная копия исходного изображения, то сфотографирован один и тот же объект. Недостатки очевидны.
Если же ракурсы сильно различаются, то стойкого метода, позволяющего сделать искомое заключение, на данный момент не существует (или он мне не известен).
По вопросам архитектур ИНС обращайтесь, всегда помогу
Спасибо!
Угол обзора будет выбираться из интервала [0, 120] градусов. А можете дать ссылки на литература о работе ИНС с изображениями?
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
Вообще изображения подготавливаются таким образом: одно до другое после обработки фильтром
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
MassConstructor
- Сообщения: 20
- ОС: GNU/Linux Debian 5.0.1
Re: Алгоритм сравнения 2-х фотографий
Вы можете дать пример двух ракурсов? Или ракурс один и требуется сравнить обработанное и необработанное изображение?
Насчет литературы:
1) Д.Рутковская, М.Пилиньский, Л.Рутковский. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д.Рудинского - М.:Горячая линия - Телеком, 2006
2) В.В.Круглов, В.В.Борисов. Искуственные нейронные сети. Теория и практика. - М.:Горячая линия - Телеком, 2002
ОЧЕНЬ советую первую книгу - там дан хороший математический аппарат, хотя почти ничего не сказано о релаксационных сетях.
Для этого советую вторую 
Насчет литературы:
1) Д.Рутковская, М.Пилиньский, Л.Рутковский. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д.Рудинского - М.:Горячая линия - Телеком, 2006
2) В.В.Круглов, В.В.Борисов. Искуственные нейронные сети. Теория и практика. - М.:Горячая линия - Телеком, 2002
ОЧЕНЬ советую первую книгу - там дан хороший математический аппарат, хотя почти ничего не сказано о релаксационных сетях.
Спасибо сказали:
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
MassConstructor писал(а): ↑13.02.2010 22:50Вы можете дать пример двух ракурсов? Или ракурс один и требуется сравнить обработанное и необработанное изображение?
Насчет литературы:
1) Д.Рутковская, М.Пилиньский, Л.Рутковский. Нейронные сети, генетические алгоритмы и нечеткие системы: Пер. с польск. И.Д.Рудинского - М.:Горячая линия - Телеком, 2006
2) В.В.Круглов, В.В.Борисов. Искуственные нейронные сети. Теория и практика. - М.:Горячая линия - Телеком, 2002
ОЧЕНЬ советую первую книгу - там дан хороший математический аппарат, хотя почти ничего не сказано о релаксационных сетях.Для этого советую вторую
За книги огромное спасибо!
Сравниваться уже будут обработанные изображения. Вот пример ракурсов:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
MassConstructor
- Сообщения: 20
- ОС: GNU/Linux Debian 5.0.1
Re: Алгоритм сравнения 2-х фотографий
Незачто!
Насчет изображений - это очень сложная задача. ИНС всех видов в чистом виде здесь просто бессильны, поверьте моему опыту.
Вам однозначно нужен более комплексный подход.
Без дополнительных данных о задаче могу предложить только один порядок действий:
1) Фильтрация (она у Вас есть, насколько я понимаю)
2) Выделение уникального набора точек (необходимо чтобы объект был текстурирован уникальными текстурными картами)
3) На основе сравнения таких наборов выдавать вероятностное утверждение о сходстве или различии
Также, проводя фильтрацию методом свертки с матрицей размерностью 3 (например), можно выделять границы плоскостей и подкреплять вывод координатами выделенных многоугольников.
Задача резко упрощается, если у Вас есть возможность следить за изменением ракурса с малой дельтой угла. Например, если ракурс объекта берется с вращающейся камеры. В этом случае есть метод опорных точек.
Насчет изображений - это очень сложная задача. ИНС всех видов в чистом виде здесь просто бессильны, поверьте моему опыту.
Вам однозначно нужен более комплексный подход.
Без дополнительных данных о задаче могу предложить только один порядок действий:
1) Фильтрация (она у Вас есть, насколько я понимаю)
2) Выделение уникального набора точек (необходимо чтобы объект был текстурирован уникальными текстурными картами)
3) На основе сравнения таких наборов выдавать вероятностное утверждение о сходстве или различии
Также, проводя фильтрацию методом свертки с матрицей размерностью 3 (например), можно выделять границы плоскостей и подкреплять вывод координатами выделенных многоугольников.
Задача резко упрощается, если у Вас есть возможность следить за изменением ракурса с малой дельтой угла. Например, если ракурс объекта берется с вращающейся камеры. В этом случае есть метод опорных точек.
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
MassConstructor писал(а): ↑13.02.2010 23:33Незачто!
Насчет изображений - это очень сложная задача. ИНС всех видов в чистом виде здесь просто бессильны, поверьте моему опыту.
Вам однозначно нужен более комплексный подход.
Без дополнительных данных о задаче могу предложить только один порядок действий:
1) Фильтрация (она у Вас есть, насколько я понимаю)
2) Выделение уникального набора точек (необходимо чтобы объект был текстурирован уникальными текстурными картами)
3) На основе сравнения таких наборов выдавать вероятностное утверждение о сходстве или различии
Также, проводя фильтрацию методом свертки с матрицей размерностью 3 (например), можно выделять границы плоскостей и подкреплять вывод координатами выделенных многоугольников.
Задача резко упрощается, если у Вас есть возможность следить за изменением ракурса с малой дельтой угла. Например, если ракурс объекта берется с вращающейся камеры. В этом случае есть метод опорных точек.
Задача такая: есть объект (любой, это для примера я сделал в автокаде простенькую модель), цифровиком мы делаем его фотографии с n-ого кол-ва ракурсов, достаточного для того, чтобы рассмотреть этот объект с различных сторон. Потом анализируя последователь эти изображения, находя одинаковые точки и перещитывая по формулам их расположение в 3х мерной плоскости создаем 3D модель объекта. Потом ее текстурируем.
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Алгоритм сравнения 2-х фотографий
Если картинки - это фотографии, и разница в ракурсах невелика, то с существенной вероятностью контрольные точки сможет расставить autopano (autopano-sift-C). Для приведённой модели оно выдало полную ерунду :/
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
MassConstructor
- Сообщения: 20
- ОС: GNU/Linux Debian 5.0.1
Re: Алгоритм сравнения 2-х фотографий
SoulRiver писал(а): ↑13.02.2010 23:51Задача такая: есть объект (любой, это для примера я сделал в автокаде простенькую модель), цифровиком мы делаем его фотографии с n-ого кол-ва ракурсов, достаточного для того, чтобы рассмотреть этот объект с различных сторон. Потом анализируя последователь эти изображения, находя одинаковые точки и перещитывая по формулам их расположение в 3х мерной плоскости создаем 3D модель объекта. Потом ее текстурируем.
Значит мне удалось угадать Вашу задачу
Это уже достаточно простой случай. Такие алгоритмы часто применяются в некоторых псевдо-3d-сканерах.
Могу предложить следующее решение:
А. Исходные материалы
1) Одноцветный фоновый материал
2) Одноцветная платформа на валу мотора с редуктором
3) Камера с удаленным управлением
2) Одноцветная платформа на валу мотора с редуктором
3) Камера с удаленным управлением
Б. Краткий мета-алгоритм
1) Собираем набор фотографий объекта, посылая команды съемки на камеру с равными промежутками времени. Платформа в это время вращается с равномерной (и достаточно малой) скоростью. Получаем набор фотографий с фиксированным угловым шагом ракурса.
2)
3) По классическим формулам рассчитывается положение текстурных карт. Пользователю предлагается выбрать наиболее подходящий ракурс для каждой текстурной карты.
4) Для кардинально других ракрусов - переход на пункт 1, только новые полигоны на втором этапе программа предлагает связывать с уже существующими.
2)
2.0. Программа-обработчик просит пользователя вручную указать точки привязки (начальный набор вертексов) на первой фотографии. Формируется начальный набор полигонов.
2.1. Программа переходит к следующей фотографии и методом "ближайшего соседа" находит изменившиеся положения и предлагает пользователю принять или изменить этот набор.
2.2. п.2.1. повторяется для всего набора. Пользователь таким образом постепенно формирует полный полигональный набор.
2.1. Программа переходит к следующей фотографии и методом "ближайшего соседа" находит изменившиеся положения и предлагает пользователю принять или изменить этот набор.
2.2. п.2.1. повторяется для всего набора. Пользователь таким образом постепенно формирует полный полигональный набор.
3) По классическим формулам рассчитывается положение текстурных карт. Пользователю предлагается выбрать наиболее подходящий ракурс для каждой текстурной карты.
4) Для кардинально других ракрусов - переход на пункт 1, только новые полигоны на втором этапе программа предлагает связывать с уже существующими.
Это то, что сразу приходит в голову. Наверняка, можно немного упростить некоторые нюансы.
Вообще, для этих целей существуют полноценные 3d-сканеры. Но они, как правило, работают уже не с полигонами, а с воксельными пространствами.
Надеюсь, это Вам хотя бы немного поможет.
Спасибо сказали:
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
Доступно! Буду пробывать!
-
Bizdelnick
- Модератор
- Сообщения: 21520
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Алгоритм сравнения 2-х фотографий
В Ваших примерах есть одна деталь, которая может усложнить задачу - разное освещение. То есть разное взаимное расположение источника света и объекта. Если бы камера перемещалась вокруг объекта, всё было бы проще, но у Вас поворачивается сам объект.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
MassConstructor
- Сообщения: 20
- ОС: GNU/Linux Debian 5.0.1
Re: Алгоритм сравнения 2-х фотографий
Bizdelnick писал(а): ↑14.02.2010 01:55В Ваших примерах есть одна деталь, которая может усложнить задачу - разное освещение. То есть разное взаимное расположение источника света и объекта. Если бы камера перемещалась вокруг объекта, всё было бы проще, но у Вас поворачивается сам объект.
Соглашусь и замечу, что важным моментом здесь является угол падения луча. При вращающемся объекте этот угол для каждой плоскости будет меняться. Факт.
Но, во-первых, при вращении камеры вокруг объекта также могут быть заметны некоторые артефакты освещения (блики), когда камера поймает локальный максимум отраженного света.
Во-вторых, технически предложенный мною способ проще.
-
Bizdelnick
- Модератор
- Сообщения: 21520
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Алгоритм сравнения 2-х фотографий
MassConstructor, я, честно говоря, не про Ваше сообщение писал, а про выложенные ТС картинки
Так или иначе, ему следует сперва определиться, в каких условиях будет проводиться съёмка, а уже потом решать задачу исходя из этого. В противном случае получится ерунда.
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
SoulRiver
- Сообщения: 74
- ОС: Ubuntu 9.10
Re: Алгоритм сравнения 2-х фотографий
Камера будет вращаться вокруг объекта! Делаем фотографию, перемещаем камеру относительно центра объекта на угол α, делаем очередную фотографию и так далее до 360 градусов. Угол α я думаю можно будет определить практическим путем.