Re[4]: Положение монетки
От: Кос todosoft.org
Дата: 09.04.08 10:47
Оценка: 2 (1)
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Здравствуйте, Кос, Вы писали:


Кос>>Здравствуйте, Leonidze, Вы писали:


L>>>порезать монетку на половинки, для которых посчитать "центры тяжести". исходя из этого и данных эталона посчитать угол.

Кос>>А зачем на половинки?

Кос>>Если рисунок достаточно не однородный есть такой вариант:

Кос>> посчитать координаты гемоетрического центра монеты, и центров тяжести, до и после поворота.
Кос>> Если же центры тяжести и геометрическей близки — можно попытаться вычленить рисунок монетки (пороговым сечением)

ATP>А можно пожалуйста ссылочку на данную тему? Что за центры тяжести на картинке?

ссылочками не раполагаю, поищите сами. Могу вкратце объяснить

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

центр масс (я его "тяжести" обозвал, что, конечно неграмотно и неверно) — почти тоже самое но учавствуют яркости. т.е. сумируешь координаты, каждая из которых должна быть помножена на яркость пикселя. потом делишь всё это дело на суммарную яркость этих пикселей. т.е. Xцм = Хi*Bi/сумм(Bi) и для Y аналогично
Re[5]: Положение монетки
От: Кос todosoft.org
Дата: 09.04.08 10:50
Оценка:
Да и с пуговицами такой вариант, конечно, не проканает. Но можно придумать другой. если пуговица 4-х дырочноя, то в четвертушке искать центр масс. вобщем можно както под конкретные задачи подстроится
Re[6]: Положение монетки
От: O N A Россия  
Дата: 09.04.08 11:34
Оценка:
Здравствуйте, Кодт, Вы писали:

ATP>>Да нет . Просто вы не поверите, но задача реальная. Используется в автомате по пришиванию пуговиц. Заказчик американец.


К>Так ёлы палы, сразу бы про пуговицы сказал. Там четыре или две дырки, казалось бы, не так уж сложно их найти на картинке? Это во-первых.

Зачем здесь видеокамера и распознавание образов?

Затем, что бывают однодырочные пуговицы (на ножке).
SON- солнечный финал (с) азерб-африк :)
Re[5]: Положение монетки
От: piAnd Россия  
Дата: 09.04.08 11:39
Оценка: 2 (1)
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Как вы считаете такой способо будет работать:


ATP>1. Найдти на изображение екстремумы (например пусть буду максимумы)

ATP>2. Выделить из них N точек. Здесть у меня остается вопрос по какому критерию их выделять?
ATP>3. Вычислить для этих точек градиены.
ATP>4. Сравнить градиенты с исходными

как-то он все-таки будет работать, но похоже, что в п.1 эктремумы будут "шуметь", если их искать влоб.
Есть такая фигня, scale-space называется, в ней формулируются некоторые способы, похожие на ваш, выделяющие feature points, являющиеся инвариантными к плоскому вращению изображения, сдвигу и масштабу.
Более близко к практике этот принцип инвариантности использован в sift (scale invariant feature transform) алгоритме. Если говорить в терминах ss, то в sift-е используются экстремумы функции нормализованного лапласиана, а проще говоря детекторы blob-структур, "округлых пятен", которые у пуговицы будут локализованы по краям и на рельефе внутри и иметь разные масштабы, а также самое большое "пятно" — сама пуговица. Эти экстремумы проходят "сито", как в п.2.
По п.3 и 4 — это этап sift-а, соответствующий формированию дескрипторов, т.е. составлению гистограмм направлений градиентов в окрестных областях вокруг blob-"пятна".

Описание вот тут, (ссылки).
Re[6]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.04.08 11:53
Оценка:
Здравствуйте, Кодт, Вы писали:

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


ATP>>Да нет . Просто вы не поверите, но задача реальная. Используется в автомате по пришиванию пуговиц. Заказчик американец.


К>Так ёлы палы, сразу бы про пуговицы сказал. Там четыре или две дырки, казалось бы, не так уж сложно их найти на картинке? Это во-первых.

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

— честно, не знаю, мне ставят задачу, я пытаюсь решить. Насколько я понял пуговицы типа как на военной форме — никаких дырочек нет, есть только ушко. В зажим проваливается пуговица рисунком к камере в произвольном положении. Зажим может вертеться на +-180 градусов. С другой стороны подсовывается ткань к которой пришивать и там камеру не установить, насколько я понял.
Re[6]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.04.08 11:59
Оценка:
Здравствуйте, piAnd, Вы писали:

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


ATP>>Как вы считаете такой способо будет работать:


ATP>>1. Найдти на изображение екстремумы (например пусть буду максимумы)

ATP>>2. Выделить из них N точек. Здесть у меня остается вопрос по какому критерию их выделять?
ATP>>3. Вычислить для этих точек градиены.
ATP>>4. Сравнить градиенты с исходными

A>как-то он все-таки будет работать, но похоже, что в п.1 эктремумы будут "шуметь", если их искать влоб.

A>Есть такая фигня, scale-space называется, в ней формулируются некоторые способы, похожие на ваш, выделяющие feature points, являющиеся инвариантными к плоскому вращению изображения, сдвигу и масштабу.
A>Более близко к практике этот принцип инвариантности использован в sift (scale invariant feature transform) алгоритме. Если говорить в терминах ss, то в sift-е используются экстремумы функции нормализованного лапласиана, а проще говоря детекторы blob-структур, "округлых пятен", которые у пуговицы будут локализованы по краям и на рельефе внутри и иметь разные масштабы, а также самое большое "пятно" — сама пуговица. Эти экстремумы проходят "сито", как в п.2.
A>По п.3 и 4 — это этап sift-а, соответствующий формированию дескрипторов, т.е. составлению гистограмм направлений градиентов в окрестных областях вокруг blob-"пятна".

A>Описание вот тут, (ссылки).


Я понял — SIFT — я подумал SHIFT — сорри.
Ок — звучит как то что нужно. Типа Scale-пирамиды строится и там уже выбираются точки с параметрами общими для всех масштабов, я правильно понял?
Нужно время чтобы посмотреть...

Нутром чую что для моего варианта можно все гораздо проще. Больно условия идеальные.
Re[6]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.04.08 12:11
Оценка:
Здравствуйте, Кос, Вы писали:

Кос>Да и с пуговицами такой вариант, конечно, не проканает. Но можно придумать другой. если пуговица 4-х дырочноя, то в четвертушке искать центр масс. вобщем можно както под конкретные задачи подстроится


Заметил что у всех степеотип пуговицы — это пуговица от рубашки. здесь
Автор: AcidTheProgrammer
Дата: 09.04.08
Re[5]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 09.04.08 12:18
Оценка:
Здравствуйте, Кос, Вы писали:

Кос>Здравствуйте, AcidTheProgrammer, Вы писали:


ATP>>Здравствуйте, Кос, Вы писали:


Кос>>>Здравствуйте, Leonidze, Вы писали:


L>>>>порезать монетку на половинки, для которых посчитать "центры тяжести". исходя из этого и данных эталона посчитать угол.

Кос>>>А зачем на половинки?

Кос>>>Если рисунок достаточно не однородный есть такой вариант:

Кос>>> посчитать координаты гемоетрического центра монеты, и центров тяжести, до и после поворота.
Кос>>> Если же центры тяжести и геометрическей близки — можно попытаться вычленить рисунок монетки (пороговым сечением)

Непонял, их у изображения, что, несколько может быть?

ATP>>А можно пожалуйста ссылочку на данную тему? Что за центры тяжести на картинке?

Кос>ссылочками не раполагаю, поищите сами. Могу вкратце объяснить

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


Тут все понятно, все просто — центр один.

Кос>центр масс (я его "тяжести" обозвал, что, конечно неграмотно и неверно) — почти тоже самое но учавствуют яркости. т.е. сумируешь координаты, каждая из которых должна быть помножена на яркость пикселя. потом делишь всё это дело на суммарную яркость этих пикселей. т.е. Xцм = Хi*Bi/сумм(Bi) и для Y аналогично


А тут не совсем понял. Из формулы получается суммирование в весами — правильно? Вроде как только один центр получается.

А потом вы предлагаете по четырем этим центрам (2 до поворота и 2 после) вычислить угол — я правильно понимаю? А если центры совпадут?
Re[6]: Положение монетки
От: Кос todosoft.org
Дата: 10.04.08 04:03
Оценка: 2 (1)
ATP>А потом вы предлагаете по четырем этим центрам (2 до поворота и 2 после) вычислить угол — я правильно понимаю?

Да, всё верно понимаете.

ATP>А если центры совпадут?

Тогда не получится определить
Зависит от того, что за рисунок. Если элементы рисунко сильно смещены в куда-то, то будет хорошо, а если вроде как вокруг центра нарисовано — плохо, надо искать другой способ.
Re[7]: Положение монетки
От: Кос todosoft.org
Дата: 10.04.08 04:06
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Здравствуйте, Кос, Вы писали:


Кос>>Да и с пуговицами такой вариант, конечно, не проканает. Но можно придумать другой. если пуговица 4-х дырочноя, то в четвертушке искать центр масс. вобщем можно както под конкретные задачи подстроится


ATP> Заметил что у всех степеотип пуговицы — это пуговица от рубашки. здесь
Автор: AcidTheProgrammer
Дата: 09.04.08


Мда, то с атомной промышленности фиг денег выбьешь на очередную системы автоматизации, то пуговицопришывочная промышленность богатеет. Сколько будет стоить ваш автомат? За сколько денег согласится бабушка сидеть и поворачивать пуговицы нужной стороной. Кстати, по нижнему ушку, можно механическим способом спозиционировать пуговицу всего в двух различных положениях. бабульке достаточно будет класть пуговички приблизительно головами орла вверх.
Re[2]: Положение монетки
От: Leonidze  
Дата: 10.04.08 04:38
Оценка:
Здравствуйте, Leonidze, Вы писали:

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


ATP>>Всем добрый день!


ATP>>Возникла задача:

ATP>>Берем монетку и снимаем её камерой в нормальном положении (так что бы можно было прочитать номинал) на произвольном фоне. Ось поворота монетки совпадает с центром кадра. Назовем углом d угол поворота монетки относительно центра. Назовем эту картинку эталонной и условно будем считать что d = 0. Поле этого представим что монетку произвольно поворачивают на любой угол.
ATP>>Нужно придумать алгоритм вычисления угла d после поворота монетки. У кого какие идеи?

ATP>>P.S. просьба тривиальный случай с поворотом шаблона на кратные градусы не рассматривать


L>порезать монетку на половинки, для которых посчитать "центры тяжести". исходя из этого и данных эталона посчитать угол.


еще вариант — так как изображение круглое, "развернуть" его считывая яркости пикселей от центра по радиусу, например последовательно через каждый градус (можно меньше/больше в зависимости от сложности изображения). Получим "развертку" — характерный набор из N векторов, сравнивая которые с эталоном определить угол (т.е. если "шаблон эталона" близок к полученному начианя с K-ой позиции, надо на -K*шаг угла повернуть).

Можно немного усложнить сканирование — усреднять значения для углов от X до (X+dX) на одинаковом расстоянии. Получим меньшее кол-во выходных данных, правда при этом снизится точность позиционирования. Можно все параметры (шаг угла, число сканируемых точек и т.п.) оценивать по эталону.
Re: Положение монетки
От: i46217 Россия  
Дата: 10.04.08 08:16
Оценка:
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Всем добрый день!


ATP>Возникла задача:

ATP>Берем монетку и снимаем её камерой в нормальном положении (так что бы можно было прочитать номинал) на произвольном фоне. Ось поворота монетки совпадает с центром кадра. Назовем углом d угол поворота монетки относительно центра. Назовем эту картинку эталонной и условно будем считать что d = 0. Поле этого представим что монетку произвольно поворачивают на любой угол.
ATP>Нужно придумать алгоритм вычисления угла d после поворота монетки. У кого какие идеи?

ATP>P.S. просьба тривиальный случай с поворотом шаблона на кратные градусы не рассматривать


Если уверен, что ось поворота монетки точно совпадает с центром кадра, то угол поворота обычно ищут таким образом. Задаются точностью поиска поворота. Пусть это e=0.5 градуса. Затем разбивают эталонный и второй кадры на 360/e=720 секторов с центром в центре кадра и ограниченные некоторой окружностью, вписанной в кадр. В своём случае в радиус этой окружности можно взять равным радиусу монетки. Затем считают сумму значений пикселей в каждом секторе. В результате получается для каждого кадра последовательность из 720 отсчётов. Считается корреляционная функция между этими последовательностями и смещение её максимума от 0 определяет поворот монетки, т.е., если максимум корр. ф-ции находится в точке x=23, то поворот монетки=23*0.5=11.5 град. Способ тоже не быстрый, но он гораздо быстрее, чем 720 раз сравнивать непосредственно кадры, причём 720 раз грамотно кадр повернуть на заданный угол тоже задача ресурсоёмкая.

Если нет уверенности, что ось поворота монетки точно совпадает с центром кадра, то в таких случаях обычно угол поворота ищут по повороту амплитудного спектра, так как он инвариантен к сдвигу исходного кадра и угол его поворота равен углу поворота кадра. Правда будут влиять краевые эффекты, поэтому лучше предварительно обнулить фон или умножить кадр на оконную функцию. Только не забудь, что так ты вычислишь поворот кадра относительно его центра. Поэтому далее надо будет компенсировать этот поворот, определить гориз. и верт. смещение кадров, и пересчитать поворот монетки относительно её центра.
Re[8]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.04.08 09:25
Оценка:
Здравствуйте, Кос, Вы писали:

Кос>Здравствуйте, AcidTheProgrammer, Вы писали:


ATP>>Здравствуйте, Кос, Вы писали:


Кос>>>Да и с пуговицами такой вариант, конечно, не проканает. Но можно придумать другой. если пуговица 4-х дырочноя, то в четвертушке искать центр масс. вобщем можно както под конкретные задачи подстроится


ATP>> Заметил что у всех степеотип пуговицы — это пуговица от рубашки. здесь
Автор: AcidTheProgrammer
Дата: 09.04.08


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


Видимо американская бабушка обходится дороже камеры
Re[7]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.04.08 09:27
Оценка:
Здравствуйте, Кос, Вы писали:

ATP>>А потом вы предлагаете по четырем этим центрам (2 до поворота и 2 после) вычислить угол — я правильно понимаю?


Кос>Да, всё верно понимаете.


ATP>>А если центры совпадут?

Кос>Тогда не получится определить
Кос>Зависит от того, что за рисунок. Если элементы рисунко сильно смещены в куда-то, то будет хорошо, а если вроде как вокруг центра нарисовано — плохо, надо искать другой способ.

Все понял. Спасибо большое за советы. Тепер буду все пробовать. Напиши позже что реально выходит.
Re[2]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.04.08 09:33
Оценка:
Здравствуйте, i46217, Вы писали:

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


ATP>>Всем добрый день!


ATP>>Возникла задача:

ATP>>Берем монетку и снимаем её камерой в нормальном положении (так что бы можно было прочитать номинал) на произвольном фоне. Ось поворота монетки совпадает с центром кадра. Назовем углом d угол поворота монетки относительно центра. Назовем эту картинку эталонной и условно будем считать что d = 0. Поле этого представим что монетку произвольно поворачивают на любой угол.
ATP>>Нужно придумать алгоритм вычисления угла d после поворота монетки. У кого какие идеи?

ATP>>P.S. просьба тривиальный случай с поворотом шаблона на кратные градусы не рассматривать


I>Если уверен, что ось поворота монетки точно совпадает с центром кадра, то угол поворота обычно ищут таким образом. Задаются точностью поиска поворота. Пусть это e=0.5 градуса. Затем разбивают эталонный и второй кадры на 360/e=720 секторов с центром в центре кадра и ограниченные некоторой окружностью, вписанной в кадр. В своём случае в радиус этой окружности можно взять равным радиусу монетки. Затем считают сумму значений пикселей в каждом секторе. В результате получается для каждого кадра последовательность из 720 отсчётов. Считается корреляционная функция между этими последовательностями и смещение её максимума от 0 определяет поворот монетки, т.е., если максимум корр. ф-ции находится в точке x=23, то поворот монетки=23*0.5=11.5 град. Способ тоже не быстрый, но он гораздо быстрее, чем 720 раз сравнивать непосредственно кадры, причём 720 раз грамотно кадр повернуть на заданный угол тоже задача ресурсоёмкая.


I>Если нет уверенности, что ось поворота монетки точно совпадает с центром кадра, то в таких случаях обычно угол поворота ищут по повороту амплитудного спектра, так как он инвариантен к сдвигу исходного кадра и угол его поворота равен углу поворота кадра. Правда будут влиять краевые эффекты, поэтому лучше предварительно обнулить фон или умножить кадр на оконную функцию. Только не забудь, что так ты вычислишь поворот кадра относительно его центра. Поэтому далее надо будет компенсировать этот поворот, определить гориз. и верт. смещение кадров, и пересчитать поворот монетки относительно её центра.


Все что вы описали на мой взгляд и есть перевод в полярную систему координат на мой вгляд. Только в ней все гораздо проще искать. Я так и буду делать, и уже писал об этом. Первое что планирую — это перевод в полярную систему координат или лог-полярную, тогда появится инвариант еще и к размеру пуговицы.
Re: Положение монетки
От: long  
Дата: 10.04.08 12:17
Оценка:
Можно:
Поставить монетку в правильное положение.
Взять контрольную окружность. Например с радиусом, равным половине монеты.
Вычислить "средний цвет" на окружности X.
Посчитать длины получившихся интервалов: чёрный, белый, чёрный, белый, ...
Получиться последовательность чисел.

Затем каждый раз — вычислять эти же отрезки и обнаруживать — где же теперь эта последовательность. Находить её "начало" и считать расстояние от "правильного начала". Пусть оно = l, а радиус R.
Тогда угол. = 2*arcsin(l/(2R)), либо 2pi минус этот угол.

Контрольных окружностей можно провести несколько (с разными радиусами).
Re[3]: Положение монетки
От: Аноним  
Дата: 10.04.08 12:19
Оценка:
Я другой аноним.

ATP>Какие моменты имеются ввиду? что то я в графике такое слышал но не уверен... можно поподробней?

Это вычислительная алгебра и геометрия — основа матмоделирования. Полярные координаты, угловые скорости и преобразования из комплексного вида в косинусный.

А>>ps: для равномерно белого круга таких моментов найти не удасться

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

ATP>... его и вертеть не нужно. Интересно всетаки про моменты — можно пожалуйста поподробней?


Момент тут один — недостаток знаний в фундаментальной области.
Re[4]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.04.08 12:32
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я другой аноним.


ATP>>Какие моменты имеются ввиду? что то я в графике такое слышал но не уверен... можно поподробней?

А>Это вычислительная алгебра и геометрия — основа матмоделирования. Полярные координаты, угловые скорости и преобразования из комплексного вида в косинусный.

А>>>ps: для равномерно белого круга таких моментов найти не удасться

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

ATP>>... его и вертеть не нужно. Интересно всетаки про моменты — можно пожалуйста поподробней?


А>Момент тут один — недостаток знаний в фундаментальной области.


Вы всегда так помогаете другим людям, упрекая их в недостатках знаний? Естественно если бы все были гуру во всех областях, то и rsdn не нужет был бы.
Re[5]: Положение монетки
От: Аноним  
Дата: 10.04.08 13:08
Оценка: -1
Я другой аноним.

ATP>Вы всегда так помогаете другим людям, упрекая их в недостатках знаний? Естественно если бы все были гуру во всех областях, то и rsdn не нужет был бы.


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

На будущее: любые вопросы осмыслите, переведите в лаконичную технически корректную форму и задайте их в первую очередь общепризнанным авторитетам в предметной области. Например Кодт и прочие.

P.S. В книжке Гонсалес, Вудс "Цифровая обработка сигнала" даны исчерпывающие сведения о вашей проблематике. Перевести прагматику в алгоритм не составит труда. И не забудьте это сделать, чтобы компенсировать времененные затраты на вас.
Re[6]: Положение монетки
От: AcidTheProgrammer Россия https://hts.tv/
Дата: 10.04.08 13:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вместо того чтобы кратко и максимально технически грамотно сформулировать свой вопрос, вы умудрились занять десятки строк текста и отнять массу времени у людей.


Я уже про это писал, если бы я был в теме и мог грамотно сформулировать свой вопрос, то наверное и вопроса самого не было бы.

А>На будущее: любые вопросы осмыслите, переведите в лаконичную технически корректную форму и задайте их в первую очередь общепризнанным авторитетам в предметной области. Например Кодт и прочие.


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

А>P.S. В книжке Гонсалес, Вудс "Цифровая обработка сигнала" даны исчерпывающие сведения о вашей проблематике. Перевести прагматику в алгоритм не составит труда. И не забудьте это сделать, чтобы компенсировать времененные затраты на вас.


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

И не забудьте в следующий раз, когда вы увидите технически неграмотно сформулированный вопрос тима моего, просто пропустите его и не тратьте свое и чужое время.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.