roboforum.ru

Технический форум по робототехнике.

Тупое распознавание образа

Re: Тупое распознавание образа

Сообщение =DeaD= » 06 дек 2007, 07:03

GraphD писал(а):Норма разности средних цветов? Ммм... разность средних цветов обоих сравниваемых прямоугольников? Иными словами разность средних арифметических! Т.е. Вы хотите сравнивать скалярную характеристику, а тот, кто предложил гистограмму - сравнивать векторную характеристику, вот это и есть предмет спора (?) и вся сказка про белого бычка? :D

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

GraphD писал(а):Так! Похоже, простите за прямоту, Вы хотите лишить CV-науку такого мощнейшего аппарата как теория распределения вероятностей и статистика! :) Столбики вырастут так как нужно!, [и будут вырастать везде :D ]! У вас же не десять пикселей в окне! Ну если меньше, то тут нужность статистики действительно сомнительна, и, как Вы предложили, берем средний цвет и поехали...

Утомляюсь уже спорить, вы не хотите видеть очевидных проблем. Возьмите тогда и реализуйте свой метод и сами всё поймете. Огребя проблемы с тем, что ваша оценочная функция будет давать какие угодно результаты кроме нужных и будет очень долго считаться. Только изображения берите реальные, а не в фотошопе сделанные.

PS: Последняя моя попытка показать, почему гистограммы плохо, а средний цвет - отлично:

Итак - что нам требуется: Заменить долгий рассчет distance(img1,img2)=sqrt(summ( sqr(img1[x][y]-img2[x][y]) )/totalPixels) какой-нибудь быстро считаемой функцией, дающей хорошую оценку снизу

Моя функция дает отличную оценку снизу - myEstimation(img1,img2)=abs(avgColor(img1)-avgColor(img2))<=distance(img1,img2) - это очень легко доказать. То есть если моя функция больше лучшего найденного ранее distance, то можно не считать долгий distance и переходить к следующему фрагменту, а значит мой способ отсечений будет эффективен.

Ваша же функция не дает такой оценки снизу ни с какой стороны. Как я уже показал yourFunction(img1,img2) может быть 255 как в случае distance(img1,img2)=1, так и в случае distance(img1,img2)=254. То есть ваша функция достигает своего максимума на чрезвычайно похожих изображениях, а значит её нельзя использовать для отсечений, иначе вы отсечете искомое изображение смещенное всего на 1 по цветам.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Тупое распознавание образа

Сообщение Виталий » 06 дек 2007, 11:42

Вобщем надо пробовать реализовывать я считаю.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Тупое распознавание образа

Сообщение Николай_Алексеевич » 06 дек 2007, 11:48

Особо не перечитывал, но по причине появления большинства доп времени могу реализовать ваши методы и выложить сюда. Конкретизируйте алгоритмы и я приведу вам код. С вашей помощью ессно :)
Николай_Алексеевич
 
Сообщения: 44
Зарегистрирован: 11 дек 2006, 17:18
Откуда: Тольятти

Re: Тупое распознавание образа

Сообщение EDV » 06 дек 2007, 12:22

Николай_Алексеевич писал(а):Особо не перечитывал, но по причине появления большинства доп времени могу реализовать ваши методы и выложить сюда. Конкретизируйте алгоритмы и я приведу вам код. С вашей помощью ессно :)


Извините, что вклиниваюсь в вашу беседу, немного не по теме. Я тут следующую версию «Associative video memory» сделал, и надо отметить, что достаточно хорошо работает. Вот теперь надо бы исследовать насколько хорошо это работает в различных задачах распознавания образов. Так что если есть желание, милости просим: RcgEDV_Demo_v0-2.zip
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Тупое распознавание образа

Сообщение Виталий » 06 дек 2007, 12:33

Особо не перечитывал, но по причине появления большинства доп времени могу реализовать ваши методы и выложить сюда. Конкретизируйте алгоритмы и я приведу вам код. С вашей помощью ессно

Предлагаю перечитать и реализовать. =)

Я тут следующую версию «Associative video memory» сделал, и надо отметить, что достаточно хорошо работает. Вот теперь надо бы исследовать насколько хорошо это работает в различных задачах распознавания образов. Так что если есть желание, милости просим: RcgEDV_Demo_v0-2.zip

Желание есть. Совесть не позволяет закрытый продукт поддерживать. =)
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Тупое распознавание образа

Сообщение EDV » 06 дек 2007, 12:48

Виталий писал(а):
Желание есть. Совесть не позволяет закрытый продукт поддерживать. =)

Ну и где же он закрытый? Я же с вас за использование Recognition SDK денег не требую, всё бесплатно. Ну а то что не рассказываю как это работает, и не выкладываю исходников, ну так время ещё не пришло :)

Главное, что это работает, а что внутри, ну какая разница. Вы когда мобильным телефоном пользуетесь, сильно интересуетесь, как он устроен внутри? Хотя, я не кому ничего навязывать не собираюсь, не желаете использовать это в ваших проектах, дело хозяйское.
Последний раз редактировалось EDV 06 дек 2007, 12:53, всего редактировалось 1 раз.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Тупое распознавание образа

Сообщение =DeaD= » 06 дек 2007, 12:49

Виталий писал(а):Вобщем надо пробовать реализовывать я считаю.

Не могу ничего сказать против :) попробую ближайшие дни изыскать время на эксперименты.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Тупое распознавание образа

Сообщение GraphD » 06 дек 2007, 19:00

=DeaD= писал(а):Предмет спора - полезность этих сравнений. Я вам говорю что гистограммы сравнивать так как вы сказали бесполезно, потому как ваша оценочная фукнция в самом точном вариаенте (который по идее должен давать самую точную оценку) дает одинаковый результат как в случае отличия всех пикселей на 255, так и на 1 по цвету. Кроме того ваша функция считается на порядок дольше.

Ну ладно... о пользе скажут пользователи :)))

А вот примерчик. Без масштабов пока. Позиционирование эталона осуществляем стрелками на цифр.клавиатуре. Кн."5" - найти фрагмент. Ищет честно, перебором, влоб, ничего не оптимизировалось.
Причем в гистограмму эталона вносится случайная ошибка - число 0...10
PS Картинку можно грузить цветную, но ищет он по градациям серого. Бинарик делался в VS8, с его dll-ми конечно.

=DeaD= писал(а):Утомляюсь уже спорить, вы не хотите видеть очевидных проблем. Возьмите тогда и реализуйте свой метод и сами всё поймете. Огребя проблемы с тем, что ваша оценочная функция будет давать какие угодно результаты кроме нужных и будет очень долго считаться. Только изображения берите реальные, а не в фотошопе сделанные.

Все это реализовано и статей уже написано довольно много [именно по CV, дескрипторам]. Я тоже не хочу спорить, лучше см. пример. А теперь Ваша очередь! :D

=DeaD= писал(а):Моя функция дает отличную оценку снизу - myEstimation(img1,img2)=abs(avgColor(img1)-avgColor(img2))<=distance(img1,img2) - это очень легко доказать. То есть если моя функция больше лучшего найденного ранее distance, то можно не считать долгий distance и переходить к следующему фрагменту, а значит мой способ отсечений будет эффективен.

Допустим, что distance есть СКО пикселей, тогда средний цвет будет -> 0, а СКО -> максимум. Возьмите две картинки: шахматная доска и инвертированная шахматная доска.

=DeaD= писал(а):Ваша же функция не дает такой оценки снизу ни с какой стороны. Как я уже показал yourFunction(img1,img2) может быть 255 как в случае distance(img1,img2)=1, так и в случае distance(img1,img2)=254. То есть ваша функция достигает своего максимума на чрезвычайно похожих изображениях, а значит её нельзя использовать для отсечений, иначе вы отсечете искомое изображение смещенное всего на 1 по цветам.

Задача поика не в улавливании незаметных на глаз смещений на 1 цвет. Оно сродни шуму. Весь массив пикселей раскидывается гистограммой по столбикам, если случайно какой-то столбик чуть опуститься или вырастет, то это войдет в погрешность. В примере я даже искусстенно её внес, т.е. случайные скачки столбиков на 0...10 ошибочных пикселей.
Вложения
hist_demo.rar
(471.83 КиБ) Скачиваний: 29
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Re: Тупое распознавание образа

Сообщение =DeaD= » 06 дек 2007, 20:09

GraphD писал(а):А вот примерчик. Без масштабов пока. Позиционирование эталона осуществляем стрелками на цифр.клавиатуре. Кн."5" - найти фрагмент. Ищет честно, перебором, влоб, ничего не оптимизировалось.
Причем в гистограмму эталона вносится случайная ошибка - число 0...10

Кабы мне да самому вводить нужную мне функцию отклонений, да я бы такого наворотил, у меня бы игровые автоматы сразу мне кассу в сумку складывали без вариантов :) проблема в том, что на практике отклонение будет не добавлением к столбцам произвольных чисел 0..10, а перемещением сколь угодно больших значений в близкие соседние столбцы. Освещение чуть под другим углом (на 1/255) и вся гистограмма "уехала" вверх или вниз.

GraphD писал(а):Все это реализовано и статей уже написано довольно много [именно по CV, дескрипторам]. Я тоже не хочу спорить, лучше см. пример. А теперь Ваша очередь! :D

Я тоже умею составлять такие примеры которые подходят к моему предположению. Тем более что искусственные примеры.

Я не против дескрипторов, только ваш дескриптор с функцией сравнения чрезвычайно неустойчив к минимальным колебаниям освещения. А это уже полный аут.

GraphD писал(а):Задача поика не в улавливании незаметных на глаз смещений на 1 цвет. Оно сродни шуму.

А я вам о чем? Я и говорю что ваша функция существенно нестабильна на минимальном шуме.

GraphD писал(а):Весь массив пикселей раскидывается гистограммой по столбикам, если случайно какой-то столбик чуть опуститься или вырастет, то это войдет в погрешность. В примере я даже искусстенно её внес, т.е. случайные скачки столбиков на 0...10 ошибочных пикселей.

Вы неправильно смоделировали влияние погрешностей. Берите конкретные реальные примеры с разным освещением и проверяйте вашим алгоритмом :).
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Тупое распознавание образа

Сообщение GraphD » 06 дек 2007, 20:21

***человек и его интеллект вещь далеко не гибкая, как думают физиологи, а монолит!!!! :D ***
Просто гистограмма не обладает теми свойствами на реальных снимках [цвет не монотонный], которые вы ей хотите приписать. Если бы это было так, то наше зрение бы не работало, т.к. оно на этих приципах функционирует.
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Re: Тупое распознавание образа

Сообщение =DeaD= » 06 дек 2007, 21:31

GraphD писал(а):***человек и его интеллект вещь далеко не гибкая, как думают физиологи, а монолит!!!! :D ***
Просто гистограмма не обладает теми свойствами на реальных снимках [цвет не монотонный], которые вы ей хотите приписать. Если бы это было так, то наше зрение бы не работало, т.к. оно на этих приципах функционирует.

Специально для вас пример применения вашего подхода на реальных снимках произведенных не самым плохим фотиком под чуть разным углом:

Зеленая гистограмма правого изображения, красная - левого. Очевидно ваш метод укажет на значительное расхождение (порядка 1/2-1/3 от максимально возможного) см. зеленые и красные области в совмещенное гистограмме) и скажет не копаться дальше, поскольку изображения значительно отличаются, а это будет ошибкой. Мой же метод укажет разницу в средних цветах 105-94=11, то есть всего 11/255, а значит этот вариант нельзя пропускать и его нужно анализировать.
Вложения
images.jpg
images.jpg (29.54 КиБ) Просмотров: 1876
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Тупое распознавание образа

Сообщение GraphD » 07 дек 2007, 00:32

=DeaD= писал(а):Специально для вас пример применения вашего подхода на реальных снимках произведенных не самым плохим фотиком под чуть разным углом:


Заинтересовало это дело, вот результат тестов.
Визуально разница у Вас видна, это пока еще субъективная разница. Но чтобы делать выводы, надо сначала выбрать МЕРЫ, и уж потом смотреть результат сравнения, а то непонятно что с чем сравнивать фактически.
Внизу даны сграбленные графики разностей в метриках: гистограммной (кр.) и среднего цвета (зел.), как Вы и хотите. Левый фрагментик двигается по горизонтали, правый стоит на месте, разность в обоих метриках и выводится на график. Т.е., видно даже визуально, в обоих метриках ВСЕ ОК!!! О чем спор был? ни о чем! Добавлю, что у гистограммной метрики, в отличие от среднего цвета, шире "различимость" полюбому, как у любых векторных характеристик, но чтобы это увидеть, нужен глубокий эксперимент с хотябы сотней-другой одновременно сравниваемых фоток.
Вложения
Cap3.jpg
Эксп.1
Cap3.jpg (6.41 КиБ) Просмотров: 1847
Cap2.jpg
Эксп.2
Cap2.jpg (4.31 КиБ) Просмотров: 1878
Cap1.jpg
Эксп.3
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Re: Тупое распознавание образа

Сообщение =DeaD= » 07 дек 2007, 00:58

GraphD писал(а):Левый фрагментик двигается по горизонтали, правый стоит на месте, разность в обоих метриках и выводится на график

Кто куда двигается? Я что-то не догоняю, вы хотите чтоли при сравнении гистограмм еще их подвигать друг относительно друга и минимум выбрать? Ну вы даете, мало вам что у вас гистограмма считается в N раз дольше чем средний цвет, чем сильно снижает свою полезность, так вы еще и двигать её взялись - это еще надо на N умножить, итого у вас вместо моей одной операции получается N^2 операций. И результат сомнительный - вы все еще не указали почему ваша оценка будет хороша, кроме умозрительного "гистограммы похожих изображений похожи". И ежу понятно, что похожи, вопрос в чем эта похожесть выражается? Мне не кажется что лучший критерий похожести это СКО разности.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Тупое распознавание образа

Сообщение GraphD » 07 дек 2007, 01:12

=DeaD= писал(а):Кто куда двигается? ...[skip]...И результат сомнительный - вы все еще не указали почему ваша оценка будет хороша, кроме умозрительного "гистограммы похожих изображений похожи"...[skip]... Мне не кажется что лучший критерий похожести это СКО разности.

Вообще, всем людям иногда "кажется", а иногда "не кажется". Гистограмма == вектор, потому размерность == "различимость" выше, вот потому и лучше (в поиске главное отличать). Скажу сентенцией. Мое мнение, надо искать общие точки вблизи авторитетов. В данной задаче - это может быть D.Lowe [придумал sift-algorithm], и еше основы статистики.
8)
GraphD
 
Сообщения: 157
Зарегистрирован: 01 окт 2005, 00:56
Откуда: С.-Петербург

Re: Тупое распознавание образа

Сообщение =DeaD= » 07 дек 2007, 02:28

GraphD писал(а):Вообще, всем людям иногда "кажется", а иногда "не кажется". Гистограмма == вектор, потому размерность == "различимость" выше, вот потому и лучше (в поиске главное отличать). Скажу сентенцией. Мое мнение, надо искать общие точки вблизи авторитетов. В данной задаче - это может быть D.Lowe [придумал sift-algorithm], и еше основы статистики.8)

Я почему-то все это время думал, что обсуждал конкретное ваше предложение использовать конкретную функцию сравнения с конкретными дескрипторами = гистограммами. А у вас теперь всё шире оказывается, как так?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0