Хелп! Изображения через функционалы. Раскинем мозгами! :-)
От: DoctorM  
Дата: 22.01.04 11:59
Оценка:
Всех приветствую,

Задача состоит в следующем. У нас есть изображение. Есть возможность сохранить от 1 до N даблов, неким образом описываюших его. Необходимо отфильтровать поток изображений (имеющих порой другие размеры), которые "совсем не похожи на исходное". Иными словами "нечеткая селеция". Алогритм должен быть довольно простым и универсальным (не надо предлагать тренировки, ХММ и т.п.)

Заранее благодарен за идеи и активность в обсуждении,
Доктор
Re: Хелп! Изображения через функционалы. Раскинем мозгами! :
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 22.01.04 12:09
Оценка:
Здравствуйте, DoctorM, Вы писали:

DM>Всех приветствую,


DM>Задача состоит в следующем. У нас есть изображение. Есть возможность сохранить от 1 до N даблов, неким образом описываюших его. Необходимо отфильтровать поток изображений (имеющих порой другие размеры), которые "совсем не похожи на исходное". Иными словами "нечеткая селеция". Алогритм должен быть довольно простым и универсальным (не надо предлагать тренировки, ХММ и т.п.)


DM>Заранее благодарен за идеи и активность в обсуждении,

DM>Доктор

Не совсем понятно чего же ты хочешь. Что именно должны описывать эти даблы и для чего они будут использоваться.
Чем более подробно изложишь мысль, тем более активно будут реагировать на поставленную задачу.
Сергей.
Re[2]: Хелп! Изображения через функционалы. Раскинем мозгами
От: DoctorM  
Дата: 22.01.04 12:23
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, DoctorM, Вы писали:


DM>>Всех приветствую,


DM>>Задача состоит в следующем. У нас есть изображение. Есть возможность сохранить от 1 до N даблов, неким образом описываюших его. Необходимо отфильтровать поток изображений (имеющих порой другие размеры), которые "совсем не похожи на исходное". Иными словами "нечеткая селеция". Алогритм должен быть довольно простым и универсальным (не надо предлагать тренировки, ХММ и т.п.)


DM>>Заранее благодарен за идеи и активность в обсуждении,

DM>>Доктор

SAS>Не совсем понятно чего же ты хочешь. Что именно должны описывать эти даблы и для чего они будут использоваться.

SAS>Чем более подробно изложишь мысль, тем более активно будут реагировать на поставленную задачу.

У меня есть два приложения. Первое берет картинку (обычно не более 50x50 пикселов) и может вычислить ряд параметров на ней. Пусть эти параметры записываются в файл.

Затем второе приложение считывает эти параметры и применяет АНАЛОГИЧНЫЕ вычисления к потоку картинок, а затем производит фильтрацию по значениям параметров (нечетко сравнивая их с эталонными).

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

Картинки могут различаться, но незначительно. :-) К примеру, иконки с небольшими искажениями, изменяющаяся цветовая гамма (при почти сохранившейся структуре) и т.п.

Если fuzzy logic осталась, то готов ответить на уточняющие вопросы.

Удачи и жду помощи,
Доктор
Re[3]: Хелп! Изображения через функционалы. Раскинем мозгами
От: Atilla Россия  
Дата: 22.01.04 12:37
Оценка:
Похожую вещь делают программы анализирующие отпечатки пальцев, сетчатку глаз и т.п. Функционалы эти — на самом деле инварианты задачи (т.е. величины не меняющиеся при изменениях картинки не меняющих некоего важного смысла). Зная задачу сказать какие у нее инварианты не просто, а если задача неизвестна — то абсолютно невозможно
Кр-ть — с.т.
Re[3]: Хелп! Изображения через функционалы. Раскинем мозгами
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 22.01.04 12:49
Оценка:
Здравствуйте, DoctorM, Вы писали:

[skipped]

Какого сорта фильтрацию ты хочешь затеять? Может быть есть уже проверенные варианты по конкретной нужде.
Сравнивать изображения по нечеткой логике? Здесь можно воспользоваться вейвлетами — хошь "даблы", хошь целые.
Почитай про вейвлеты, мне кажеться тебе это поможет. Материалов в интернете предостаточно.

Удачи.
Сергей.
Re[4]: Хелп! Изображения через функционалы. Раскинем мозгами
От: DoctorM  
Дата: 22.01.04 13:09
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, DoctorM, Вы писали:


SAS>[skipped]


SAS>Какого сорта фильтрацию ты хочешь затеять? Может быть есть уже проверенные варианты по конкретной нужде.

SAS>Сравнивать изображения по нечеткой логике? Здесь можно воспользоваться вейвлетами — хошь "даблы", хошь целые.
SAS>Почитай про вейвлеты, мне кажеться тебе это поможет. Материалов в интернете предостаточно.

SAS>Удачи.


Такие вещи я знаю, но требуется нечто простое. К примеру, рассмотрим одну из иконок виндов и сравним ее с другими. Как отфильтровать большинство "ерудны" для нашего случая. А теперь возьмем другую иконку и для нее усе сделаем. А если мы захватили иконку с небольшим куском экрана? Короче, необходима "хэш-функция" с основными условиями, что "близкие значения" соответствую "близким картинкам". Усредненая яркость, к примеру, довольно хилый способ. Что-то есть получше, однозначно. Мне необходима ПРОСТАЯ фильтрация, так как я имею ряд дополнительных условий, которые помогут мне найти верный вариант из числа оставшихся.

Сложность не всегда оправдана,
Доктор
Re[5]: Хелп! Изображения через функционалы. Раскинем мозгами
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 22.01.04 13:53
Оценка:
Здравствуйте, DoctorM, Вы писали:

DM>Здравствуйте, Sergey A. Sablin, Вы писали:


SAS>>Здравствуйте, DoctorM, Вы писали:


SAS>>[skipped]


SAS>>Какого сорта фильтрацию ты хочешь затеять? Может быть есть уже проверенные варианты по конкретной нужде.

SAS>>Сравнивать изображения по нечеткой логике? Здесь можно воспользоваться вейвлетами — хошь "даблы", хошь целые.
SAS>>Почитай про вейвлеты, мне кажеться тебе это поможет. Материалов в интернете предостаточно.

SAS>>Удачи.


DM>Такие вещи я знаю, но требуется нечто простое. К примеру, рассмотрим одну из иконок виндов и сравним ее с другими. Как отфильтровать большинство "ерудны" для нашего случая. А теперь возьмем другую иконку и для нее усе сделаем. А если мы захватили иконку с небольшим куском экрана? Короче, необходима "хэш-функция" с основными условиями, что "близкие значения" соответствую "близким картинкам". Усредненая яркость, к примеру, довольно хилый способ. Что-то есть получше, однозначно. Мне необходима ПРОСТАЯ фильтрация, так как я имею ряд дополнительных условий, которые помогут мне найти верный вариант из числа оставшихся.


DM>Сложность не всегда оправдана,

DM>Доктор

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

И еще —
"Мне необходима ПРОСТАЯ фильтрация, так как я имею ряд дополнительных условий, которые помогут мне найти верный вариант из числа оставшихся."
ты значит имеешь, а мы должны догадываться... хех... как ты представляешь себе оптимальное решение задачи в частичных условиях?

С уважением.
Сергей.
Re[6]: Хелп! Изображения через функционалы. Раскинем мозгами
От: DoctorM  
Дата: 22.01.04 14:08
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, DoctorM, Вы писали:


DM>>Здравствуйте, Sergey A. Sablin, Вы писали:


SAS>>>Здравствуйте, DoctorM, Вы писали:


SAS>>>[skipped]


SAS>>>Какого сорта фильтрацию ты хочешь затеять? Может быть есть уже проверенные варианты по конкретной нужде.

SAS>>>Сравнивать изображения по нечеткой логике? Здесь можно воспользоваться вейвлетами — хошь "даблы", хошь целые.
SAS>>>Почитай про вейвлеты, мне кажеться тебе это поможет. Материалов в интернете предостаточно.

SAS>>>Удачи.


DM>>Такие вещи я знаю, но требуется нечто простое. К примеру, рассмотрим одну из иконок виндов и сравним ее с другими. Как отфильтровать большинство "ерудны" для нашего случая. А теперь возьмем другую иконку и для нее усе сделаем. А если мы захватили иконку с небольшим куском экрана? Короче, необходима "хэш-функция" с основными условиями, что "близкие значения" соответствую "близким картинкам". Усредненая яркость, к примеру, довольно хилый способ. Что-то есть получше, однозначно. Мне необходима ПРОСТАЯ фильтрация, так как я имею ряд дополнительных условий, которые помогут мне найти верный вариант из числа оставшихся.


DM>>Сложность не всегда оправдана,

DM>>Доктор

SAS>Для твоего случая вейвлет не так уж и сложен — берешь верхний слой преобразованного изображения (что-нить типа 16х16 или типа того) и сохраняешь, а потом сравниваешь с другими.

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

SAS>И еще —

SAS>"Мне необходима ПРОСТАЯ фильтрация, так как я имею ряд дополнительных условий, которые помогут мне найти верный вариант из числа оставшихся."
SAS>ты значит имеешь, а мы должны догадываться... хех... как ты представляешь себе оптимальное решение задачи в частичных условиях?

SAS>С уважением.


просто у меня есть объекты, одним из "свойств" которых является их графическое представление. Мне необходимо отфильтровать лишь малую часть совсем непохожих, а остальное я отфильтрую по другим свойтвам. У меня есть ряд имплементаций, но я хотел собрать feedback, может есть что-то интересное и простое, так как, повторюсь, сложность не всегда оправдана.

Касательно dsp, то спасибо за совет. Опыт, это здорово, это я как Доктор, у которого аспиранты даже за рубежом были, говорю. :))

Жду комментсов,
Док
Re[7]: Раскинем мозгами
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 23.01.04 06:26
Оценка:
Здравствуйте, DoctorM, Вы писали:

DM>просто у меня есть объекты, одним из "свойств" которых является их графическое представление. Мне необходимо отфильтровать лишь малую часть совсем непохожих, а остальное я отфильтрую по другим свойтвам. У меня есть ряд имплементаций, но я хотел собрать feedback, может есть что-то интересное и простое, так как, повторюсь, сложность не всегда оправдана.


DM>Касательно dsp, то спасибо за совет. Опыт, это здорово, это я как Доктор, у которого аспиранты даже за рубежом были, говорю.


DM>Жду комментсов,

DM>Док

Вот это уже ближе к телу — т.е. тебе надо отсеивать совсем непохожие на исходный экземпляр изображения — для этих целей ест-но подойдут всяческие усредненные яркости, дисперсии, возможно координаты центра массы , можно посчитать некоторую "энергию" изображения. Но повторюсь (вруг ты все-таки оценишь простоту) — вейвлет вот такого вида даст тебе сразу несколько характеристик изображения (по-моему это Хаар, а может я его несколько утрирую, но все равно):

x[i/2 ] = (x[i] + x[i+1]) / 2;
x[i/2+n/2] = (x[i] — x[i+1]) / 2;

+ тоже самое по вертикали

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

Удачи.
Сергей.
Re[8]: Раскинем мозгами
От: DoctorM  
Дата: 23.01.04 13:44
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, DoctorM, Вы писали:


DM>>просто у меня есть объекты, одним из "свойств" которых является их графическое представление. Мне необходимо отфильтровать лишь малую часть совсем непохожих, а остальное я отфильтрую по другим свойтвам. У меня есть ряд имплементаций, но я хотел собрать feedback, может есть что-то интересное и простое, так как, повторюсь, сложность не всегда оправдана.


DM>>Касательно dsp, то спасибо за совет. Опыт, это здорово, это я как Доктор, у которого аспиранты даже за рубежом были, говорю. :))


DM>>Жду комментсов,

DM>>Док

SAS>Вот это уже ближе к телу — т.е. тебе надо отсеивать совсем непохожие на исходный экземпляр изображения — для этих целей ест-но подойдут всяческие усредненные яркости, дисперсии, возможно координаты центра массы :), можно посчитать некоторую "энергию" изображения. Но повторюсь (вруг ты все-таки оценишь простоту) — вейвлет вот такого вида даст тебе сразу несколько характеристик изображения (по-моему это Хаар, а может я его несколько утрирую, но все равно):


SAS>x[i/2 ] = (x[i] + x[i+1]) / 2;

SAS>x[i/2+n/2] = (x[i] — x[i+1]) / 2;

SAS>+ тоже самое по вертикали


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


SAS>Удачи.


Неплохо,

Пожалуй попробую. Дело в том, что у меня сейчас есть уже одна достойная простая реализация. С помощью OpenCV lib вычисляю количество контуров. Затем вычисляюю transformation distance (среднюю) в GRAY mode (вот это можно заменить). Затем fuzzy logic киляет большинство хлама (можно простейший триангулярный фильтр взять).

Брать надо усредненные характеристики — это факт. Предположим, у тебя есть две одинакове иконки, но у одной "захвачена" дополнительная "полоска" (1-я есть 16x16, а 1-я есть 16x17). В этом случае все должно быть чики...

Удачи,
Доктор
Re[9]: Раскинем мозгами
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 23.01.04 13:52
Оценка:
Здравствуйте, DoctorM, Вы писали:

DM>Пожалуй попробую. Дело в том, что у меня сейчас есть уже одна достойная простая реализация. С помощью OpenCV lib вычисляю количество контуров. Затем вычисляюю transformation distance (среднюю) в GRAY mode (вот это можно заменить). Затем fuzzy logic киляет большинство хлама (можно простейший триангулярный фильтр взять).


DM>Брать надо усредненные характеристики — это факт. Предположим, у тебя есть две одинакове иконки, но у одной "захвачена" дополнительная "полоска" (1-я есть 16x16, а 1-я есть 16x17). В этом случае все должно быть чики...


OpenCV хорошая либа (учитывая, что делают ее в Новгороде ), но все-таки довольно тяжелая (по объему, не поймите меня превратно). Со скоростями как известно у интелей все в порядке. Если будут интересные результаты напиши пожалуйста.
Сергей.
Re[10]: Раскинем мозгами
От: DoctorM  
Дата: 23.01.04 14:08
Оценка:
Здравствуйте, Sergey A. Sablin, Вы писали:

SAS>Здравствуйте, DoctorM, Вы писали:


DM>>Пожалуй попробую. Дело в том, что у меня сейчас есть уже одна достойная простая реализация. С помощью OpenCV lib вычисляю количество контуров. Затем вычисляюю transformation distance (среднюю) в GRAY mode (вот это можно заменить). Затем fuzzy logic киляет большинство хлама (можно простейший триангулярный фильтр взять).


DM>>Брать надо усредненные характеристики — это факт. Предположим, у тебя есть две одинакове иконки, но у одной "захвачена" дополнительная "полоска" (1-я есть 16x16, а 1-я есть 16x17). В этом случае все должно быть чики...


SAS>OpenCV хорошая либа (учитывая, что делают ее в Новгороде ;) ), но все-таки довольно тяжелая (по объему, не поймите меня превратно). Со скоростями как известно у интелей все в порядке. Если будут интересные результаты напиши пожалуйста.


Канечна напишу,

А о "тяжести" я сейчас товарисчам по корпорации поведаю... :-))
Re[11]: Раскинем мозгами
От: xp_alp  
Дата: 24.01.04 12:59
Оценка:
Здравствуйте, DoctorM, Вы писали:

DM>Здравствуйте, Sergey A. Sablin, Вы писали:


SAS>>Здравствуйте, DoctorM, Вы писали:


DM>>>Пожалуй попробую. Дело в том, что у меня сейчас есть уже одна достойная простая реализация. С помощью OpenCV lib вычисляю количество контуров. Затем вычисляюю transformation distance (среднюю) в GRAY mode (вот это можно заменить). Затем fuzzy logic киляет большинство хлама (можно простейший триангулярный фильтр взять).


DM>>>Брать надо усредненные характеристики — это факт. Предположим, у тебя есть две одинакове иконки, но у одной "захвачена" дополнительная "полоска" (1-я есть 16x16, а 1-я есть 16x17). В этом случае все должно быть чики...


SAS>>OpenCV хорошая либа (учитывая, что делают ее в Новгороде ), но все-таки довольно тяжелая (по объему, не поймите меня превратно). Со скоростями как известно у интелей все в порядке. Если будут интересные результаты напиши пожалуйста.


DM>Канечна напишу,


DM>А о "тяжести" я сейчас товарисчам по корпорации поведаю...


Пару слов в поддержку вейвлетов — если ты возмешь верхний слой, с этим слоем ты можешь значительно быстрей сравнивать свои картинки. То есть если ты предполагаешь, что можешь захватить часть кадра, тебе нужно сравнивать картинки со сдвигом, возможно с поворотом, или с масштабированием. После вейвлета это будет сделать быстрей (оставив меньше слоев) и возможно точней (избавишься от мелких деталей и шума).
Кроме того вейвлет так-же работает и черно-белым изображением.
А вот сравнение по количеству контуров я не совсем понял.
И убирать шум fuzzy logic процесс тоже медленный.
xp
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.