f Фотообмер парусов на плазе
Гонки и путешествия под парусом
Новости Регаты Рулевые Форум Видео Фотоконкурс Справочник

Автор Тема: Фотообмер парусов на плазе  (Прочитано 4903 раз)

0 Пользователей и 1 Гость смотрят эту тему.

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Фотообмер парусов на плазе
« : 07 Ноября, 2014, 03:48:38 »
Обмерять паруса на плазе таки приходится. В Воронеже обмерили несколько - либо лодка еще не была собрана, а данные уже надо, либо завалить практически невозможно - ФеГе какую-нить, например.

Если есть условия для обмера на плазе, то есть резон и за фотообмер подумать. Естественно, вожделенной халявы типа щелкнул, а фотошоп "сам" убрал все искажения и посчитал площадь, не будет. Потому, что не может быть в принципе. Экономия времени может произойти за счет отсутствия необходимости инструментальных (рулеточных) измерений на парусах. Если надо быстро обмерить несколько парусов, то экономия может быть существенной. Расплатой будет однократная разметка плаза. Или расстилаемой на нем "жесткой" тряпки, превосходящей по размерам обмеряемые паруса. Понятно, что тряпку можно расстилать на любой ровной поверхности не обязательно в эллинге.

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

 
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #1 : 07 Ноября, 2014, 03:59:31 »
Желательно, чтобы камера была подключена к компу и управлялась с него-же.
Снимок выводится на экран и узлы сетки скалываются экранным дигитайзером. В результате имеем плазовые координаты узлов сетки и их координаты в системе координат снимка (в геодезии она называется "картинной").

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

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

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

Естественно, у человека с верхним образованием в таком случае неминуемо возникнет желание сказать - "гавно вопрос, зачем изобретать лисапет, аппарат нелинейной регрессии давно известен". Однако такой подход нам, неучам, ненавистен. Это вариант детерминизма, но бессмысленного. Применяя те или иные базисные функции в регрессии и подгоняя к-ты к ним, искомой неизвестной функции навязывается определенная форма. Детерминация по существу. Но не в соответствии с законами физики, а в соответствии хрен знает с чем. Поэтому плазовые коодинаты точек будем рассматривать, как "пространственные случайные переменные"...

Однако, для начала надо сварганить аппарат для сколки картинных коодинат (это многие программы умеют) и их сохранения в угодном виде (тут проще сделать, чем лазать по тырнету в поисках халявы).
« Последнее редактирование: 07 Ноября, 2014, 04:49:38 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

Сапёр Водичка

  • Сообщений: 1149
  • Уважуха: +41/-31
  • Название: Тигра
  • Тип: Handmade Cool&K
  • Номер: KAZ 535
Re: Фотообмер парусов на плазе
« Ответ #2 : 07 Ноября, 2014, 07:56:34 »
Я по жизни вообще-то не говнюк и труды ЗАКа очень уважаю. Но тут вдруг влезу с одним предложением - как бы проверить для расчета площади парусов такую штуку как лазерная рулетка?
Например как здесь - http://999.md/13900841, да мильен ссылок. Очень, думается мне удобно, прямо на мачте или же на плазе (пляже), обвел лазером контуры паруса - вуаля - площадь.
Ну для  начала сравнить с имеющимся обмером, если совпадет, то в путь! Если нет, разбираться в погрешностях. А если этот метод заработает - как же все упростится!
С радостным духом он ветру свой парус подставил и поплыл.
Сидя на крепком плоту, искусной рукою все время
Правил рулем он, и сон на веки ему не спускался.

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #3 : 07 Ноября, 2014, 13:02:29 »
Очень, думается мне удобно, прямо на мачте или же на плазе (пляже), обвел лазером контуры паруса - вуаля - площадь.
Ну для  начала сравнить с имеющимся обмером, если совпадет, то в путь!
Лазерная рулетка по Вашей ссылке - это всего лишь дальномер с калькулятором в одном корпусе. Дальномер умеет мерить только расстояния и отличается от обычной рулетки только способом его измерения.

Измерив с одной станции расстояния до точек контура, вычислить площадь внутри контура никак не сможете, даже при помощи калькулятора. Даже если он китайский :) .  Если плаз строго горизонтален, то потребуется проделать это с двух станций - концов базиса, измерить базис и превышения станций над плазом. При этом расстояния измерять до одних и тех-же точек контура. Это называется линейной засечкой точек контура. Вот тогда и площадь можно будет расчитать.

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

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

А еще у меня предложение - проверять свои идеи самостоятельно.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #4 : 08 Ноября, 2014, 02:50:52 »
Окошко испекаемой программы. Здесь введены параметры сетки, по ним расчитаны плазовые координаты узлов и происходит сколка картинных координат. Сколотые точки маркируются. В результате получаем координаты узлов в обеих системах. Надо разделить все точки на две группы - "обучающую" и контрольную и попыряться уже с содержательной частью. По обучающей группе программа должна построить правило перехода от картинных координат к плазовым и применить его к картинным координатам точек контрольной группы. Полученные плазовые координаты этих точек сравнить с фактическими. Если получится фигня, искать другое решающее правило.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

Сергей_Р_Спб

  • Сообщений: 475
  • Уважуха: +68/-45
  • Тип: Ветер
  • Номер: СП 128
Re: Фотообмер парусов на плазе
« Ответ #5 : 08 Ноября, 2014, 15:54:51 »
Может я не совсем понимаю суть и скажу глупость.
А нельзя посчитать целые квадраты, а нецелые разбивать на более маленькие, пока нас не устроит точность разбивки. Ведь если накрыть парусом бесконечно малые квадраты и просто их посчитать, то будет то что мы ищем? То есть я предлагаю сделать 1 алгоритм разбивки неполных квадратов на более маленькие, пока нас не устроит точность. разбивка разумеется программно
« Последнее редактирование: 08 Ноября, 2014, 18:26:03 от Сергей_Р_Спб »

ЯsailoR

  • Сообщений: 1577
  • Уважуха: +92/-39
  • Аверин Никита
  • Название: "Фалькон"
  • Тип: L&K Спорт-круиз "R"
  • Номер: 9
Re: Фотообмер парусов на плазе
« Ответ #6 : 08 Ноября, 2014, 18:05:27 »
ЗАК, читаю тебя как Стругацких :)
Интересный эксперимент.
« Последнее редактирование: 08 Ноября, 2014, 18:11:00 от ЯsailoR »
Вся моя жизнь - история борьбы между "Надо" внешнего мира и "Похер" внутреннего Я.

Трим

  • Сообщений: 176
  • Уважуха: +34/-6
  • Олег Дьяков, Воронеж
  • Тип: маран
  • Номер: В7, В8
Re: Фотообмер парусов на плазе
« Ответ #7 : 08 Ноября, 2014, 23:19:55 »
Хороша задумка облегчить труды.
Пока купаешься в математических высях, буду стрелять по тебе с земли.
1. Нормальный штатив с собой не потаскаешь особо для этих дел, придется пользоваться легкими из магазина фототехники. А они дристлявые. Да и камеры мыльнообразные не отличаются особой жесткостью. Прикидывал погрешности?
А даже если все жестко, то какая-нибудь сволочь в перерыве между съемками обязательно мимоходом заденет и сдвинет. Поэтому мне кажется, что сетку (отсняв однажды за сессию) убирать нельзя. А если так, возможно ли снимать "с руки" и единожды для каждого паруса, лежащего на сетке, а не делать два снимка с одной жесткой  точки?
2. Не могу однозначно понять - программа будет считать в итоге площадь фигуры, огранниченной шкаторинами или, используя контрольные точки, определять длины отрезков, нужные для обсчета парусей  по неким правилам обмера?
3. У меня монитор тяжелый и поворачивать на бок тяжело, чтобы любоваться кухней. Да и паруса привычнее видель гравитационно ориентироваными. Ну это просто брех.

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #8 : 08 Ноября, 2014, 23:44:35 »
Мне Стругацких читать намного интересней. А вот реализовывать фантазии интересно свои.

А нельзя посчитать целые квадраты, а нецелые разбивать на более маленькие, пока нас не устроит точность разбивки. Ведь если накрыть парусом бесконечно малые квадраты и просто их посчитать, то будет то что мы ищем? То есть я предлагаю сделать 1 алгоритм разбивки неполных квадратов на более маленькие, пока нас не устроит точность. разбивка разумеется программно

Сергей, у меня есть цель и планчик её достижения. Никакому другому я следовать не буду из козлиного упрямства. "Метод палетки" в меня вколотили в школе, но пользоваться им не буду вовсе не поэтому.
Вот Вы пишете "просто посчитать". Как? Те, что накрыты парусом, посчитать непосредственно невозможно. Можно посчитать только не накрытые и накрытые частично. Но это не принципиально. А принципиально - как именно Вы собираетесь считать и передавать свой счёт машине? Понятно, что можно все перетыкать мышом, а машина пусть  ведет счетчик. Но где экономия по сравнению со сколкой контура? Практически число точек контура не превышает 20-ти, а обычно вдвое меньше. Кроме того, я ожидаю, что шаг сетки в моем предполагаемом способе будет допустИм гораздо больший, чем для метода палетки. Стало быть, клеточек и узлов намного меньше. Это важно, хотя сколка узлов делается однократно (если веб-камера прибита к стене, столбу, крокве, ригелю ит.д. гвоздём).

Вы пишете "разбивка разумеется программно". Программно можно разбить изображение, но не плаз. Проводя разбивку уже не квадрата на плазе, а его искаженного изображения, частично перекрытого парусом (а другие разбивать бессмысленно), поимеем трудности при программировании. А потом опять главное - как считать мелкие кусочки, не накрытые  и частично накрытые парусом, получившиеся в рез. разбивки и во что это обойдется?

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

День прошел бездарно в езде и уколах всякому мелкому скоту, а ему еще и не нравится! Одно слово, скот.
« Последнее редактирование: 08 Ноября, 2014, 23:58:32 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #9 : 08 Ноября, 2014, 23:56:21 »
Олег, привет! Пока я свирепствовал, появился твой пост.

Я как раз имел в виду твой сарай, пардон - эллинг, где мы пруса мерили. Штатив своротят всенепременно. Поэтому камеру крепить к стене под потолок или к ригелю. Я вчера пробовал - прищепил вебку к занавесочному карнизу и кинул кишку на комп. Все бы хорошо, изображение захватывается, но камера паршивая. Если на свете есть вебки с большим разрешением, то проблемов нет. Какая там ней дисторсия и прочая кривь - должно быть неважно.

>>2. Не могу однозначно понять - программа будет считать в итоге площадь фигуры, огранниченной шкаторинами или, используя контрольные точки, определять длины отрезков, нужные для обсчета парусей  по неким правилам обмера?<<

Площадь. Любители использования дыр в ПОМ выкусят.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

Трим

  • Сообщений: 176
  • Уважуха: +34/-6
  • Олег Дьяков, Воронеж
  • Тип: маран
  • Номер: В7, В8
Re: Фотообмер парусов на плазе
« Ответ #10 : 09 Ноября, 2014, 10:50:30 »
Сколько точек предполагается скалывать на базовой сетке?
Представь, что эллингосарай унесла стая воробьев, чаво делать и где искать ригеля?

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #11 : 09 Ноября, 2014, 20:46:55 »
1. аткуда знаю, да? Надо щупать.
2. ...
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

Трим

  • Сообщений: 176
  • Уважуха: +34/-6
  • Олег Дьяков, Воронеж
  • Тип: маран
  • Номер: В7, В8
Re: Фотообмер парусов на плазе
« Ответ #12 : 10 Ноября, 2014, 01:23:05 »
В продолжение телефонии.
Не знаю почему, но съемка по диагонали кажется более правильной. Вдруг удастся обойтись сколкой четырех точек по углам (для стакселя - маленьктй прямоугольник, для грота - побольше) и заданием количества клеток по длинной и короткой сторонам. А потом уверовать в линейность и перспективность. Для пущего уверования можно в начале сессии контрольно прострелять снимок пустой сетки.
В другое время  на сетке можно будет в шахматы поиграть. Или чапаевцев.

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #13 : 14 Ноября, 2014, 05:28:41 »
С содержательной частью боль-мень разобрался (в своей постановке - раздельная съемка пустого плаза с сеткой и паруса на плазе). Разобрался в смысле - математику написал. Осталось сколку контура паруса, но это потом. Пока - эксперименты с прореживанием сетки надо проделать.

На моем кухонном плазе ячейки сетки - 0.3 м (точнее, в среднем 0.3033м). Во первых, надо определиться с требованием к точности метода. Это не сложно. Точнее, чем до пикселя, указатель(курсор) на экране позиционировать невозможно. Если прикинуть размеры паруса на плазу и размеры изображения на экране, то выходит, что ошибка в пиксель соответствует в среднем примерно одному сантиметру в натуре. Поэтому ошибки модельных плазовых координат определяемых точек должны иметь порядок первых сантиметров.

Эксперимент. На снимке в сообщ.№4 взята сетка 5х11. Я её сколол и разбил узлы на две группы по шахматному правилу, см. схему. На схеме опорные (обучательные) узлы помечены красным, контрольные, исключенные из настройки - синим.

Для всех узлов известны плазовые (X,Y) и картинные (x,y) координаты. По этим данным обучательной группы узлов произошда настройка, а потом по картинным координатом контрольной группы получены модельные плазовые координаты контрольных точек. Имея их фактические значения, несложно получить оценку точности модельных значений. СКО по Х и Y составили, соотв. 18мм и 7мм. Сталбыть линейная ошибка около 2-х см. Что и ожидалось. Ось Х на плазе направлена вдоль направления съемки, на схеме и снимке - слева направо. Теперь - прореживать опорные.
« Последнее редактирование: 14 Ноября, 2014, 05:30:57 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЯsailoR

  • Сообщений: 1577
  • Уважуха: +92/-39
  • Аверин Никита
  • Название: "Фалькон"
  • Тип: L&K Спорт-круиз "R"
  • Номер: 9
Re: Фотообмер парусов на плазе
« Ответ #14 : 14 Ноября, 2014, 07:30:54 »
В правом нижнем углу подряд 3 красных. Ошибка в рисунке для форума или специальный смысл?
Вся моя жизнь - история борьбы между "Надо" внешнего мира и "Похер" внутреннего Я.

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #15 : 14 Ноября, 2014, 09:43:21 »
Ошибка рисования, конешно. Ошалел слегка. Предпоследняя точка в нижнем ряду справа - контрольная.

Проведенная проверка чрезмерно жесткая и оторванная от предполагаемой жизни. Часть контрольных точек лежат на границах плаза, т.е. не находятся в окружении исходных точек. А технология предполагает полное окружение контура паруса. Точки на границе, естественно, определяются с наибольшими ошибками, они уже почти экстраполируются.

Если есть желающие покопаться с фактическим материалом самостоятельно - скажите, вывалю.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #16 : 14 Ноября, 2014, 20:20:36 »
Следующий опыт. Шаг сетки увеличивается вдвое (до 0.6м), получаем опорную сетку 3 х 6. Расположение контрольных точек ближе к реальности - не берутся точки на границах плаза. Посмотрим, что получится.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #17 : 14 Ноября, 2014, 21:37:02 »
Плазовые координаты 23-х контрольных точек получены с СКО(Х)=21мм, СКО(У)=5мм.
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #18 : 15 Ноября, 2014, 02:13:08 »
Из-за того, что контрольные точки расположены в узлах плазовой квадратной сетки, выполненные тесты могут показаться "не честными". Но только это совсем не так. Программа не знает о том, что это узлы сетки и не может этого узнать, она вообще не имеет дела с их фактическими плазовыми координатами до этапа оценки точности. А точки на снимке, представленые своими картинными координатами, вовсе не лежат в узлах какой-либо прямоугольной сетки (на снимке).
 
Расположение контрольных точек в серединах клеток - это наихудший, в смысле точности оценивания, вариант. В таком положении они максимально удалены от опорных точек. Вот если бы определяемая точка находилась бы рядом с опорной, ее плазовые координаты оценивались бы очень точно. При совпадении - вообще безошибочно (до влияния ошибки сколки). Еще замечу, что расположение опорных точек на регулярной сетке - вовсе не обязательное условие, они могут быть расположены хаотично, но это не технологично :) Пришлось бы их привязывать и вколачивать координаты вручную.

Поскольку способ оправдывает ожидания, можно его примерно описать.

Как насс уже отмечало, наблюдается взаимно-однозначное соответствие между картинными и плазовыми координатами точек: (x,y)<==>(X,Y) . (Конечно, только при неизменном взаимном расположении камеры и плаза, это станем иметь в виду и более не поминать в тексте). Однако аналитически описать зависимость затруднительно. Ну и не будем пыжиться.

X и Y - координаты произвольной точки не связаны между собой никакими математическими соотношениями, т.е. независимы. Тогда, с учетом сказанного, существуют два независимых однозначных (но уже не "взаимно") соответствия : (х,у)==>Х  и  (х,у)==>Y. Это ничего не дает в смысле постижения аналитического описания Х и Y от (x,y), но позволяет рассматривать X и Y как скалярные функции двух переменных. А с этим мы уже кое-что умеем делать.

Зная координаты одних и тех-же (опорных) точек в обеих системах координат, мы, по существу, имеем дело с двумя функциями X(x,y) и Y(x,y) неизвестного вида, но заданным таблично. Это в школе учили.  Далее можно говорить только о работе с одной из этих функций, со второй все аналогично.

Перекур. Пока сохранюсь, выпью чё-нить для энтуазизьма, потом продолжу.
« Последнее редактирование: 15 Ноября, 2014, 02:15:30 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #19 : 15 Ноября, 2014, 04:25:59 »
Поехали дальше. Скалярную функцию двумерного аргумента (или двух переменных по-старому) принято интерпретировать, как поверхность "над" координатной плоскостью аргумента. Для манагеров: Мысленно дополним систему координат Оxy на плоскости третьей координатной осью (назовем её Z), перпендикулярной координатной плоскости Оxy. По этой оси станем откладывать значения функции Z(x,y). Если, набравшись терпения, мы переберем бесчисленное множество значений x и y, то получим бесчисленное число точек (x,y,Z), которые и образуют поверхность.  Таким образом, в воображаемом трехмерном пространстве с системой координат ОxyZ получим поверхность Z(x,y). В качестве Z в этой теме будем рассматривать плазовые координаты X или Y.

За каким я лядом это написал? А за таким, что ранее обещал рассматривать плазовые координаты точек, как "пространственные случайные функции (переменные)", определенные на Oxy. Случайные - в том смысле, что не в силах аналитически формализовать их зависимость от картинных координат (с учетом незнания элементов ориентирования камеры) .

Теория "Пространственных случайных функций" была предложена французским горным инженером Жоржем Матероном, кроме того, разработавшим и собравшим мат. методы для работы со случайными функциями, заданными таблично. Всю эту кухню Матерон крайне неудачно назвал "геостатистикой" (ГЕО - в смысле глобальная статистика? геохимическая? геобатаническая? геодезическая? ...? нет, он имел в виду геологическую, оказывается). Однако, методы геостатистики повылезли за пределы геологии руд и применяются нынче в разных предметных областях.

Антракт
« Последнее редактирование: 15 Ноября, 2014, 04:33:12 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #20 : 15 Ноября, 2014, 23:24:13 »
Основным методом геостатистики является кригинг. Метод назван в честь южно-африканского горного инженера Криге, применявшим отдельные методы геостатистики до её систематической разработки, как единого целого, Матероном. В нашей литературе можно встретить название кригинга в пропиндосной транскрипции - "крайгинг". Только Криге был африканером, а не американером. В метеорологии вместо "кригинг" иногда использовался термин "метод оптимальной интерполяции". Существует несколько разновидностей кригинга. Я использовал "простой точечный кригинг". Точечный в том смысле, что дает оценку функции Z(x,y) в точке (x,y), а не среднее значение в некоторой окрестности этой точки (этим занимается "блочный" или "протяженный" кригинг).

Итак, было сказано слово "интерполяция". Что и понятно: если нет аналитического описания поверхности, а есть только конечное число принадлежащих ей точек, то остается только интерполировать значения функции в этих точках .

Согласно теории Матерона, применение кригинга требует от пространственной случайной функции (ПСФ) свойства "стационарности в широком смысле", либо, на худой конец, "стационарности приращений".  Подробности я расписывать не буду, есть книжки. В нашей задаче стационарности не наблюдается из-за наличия тренда. Поэтому, перед применение кригинга, происходит исключение тренда. В качестве модели тренда в программе могут использоваться алгебраические полиномы порядков от нулевого до третьего. Это детерминированная составляющая ПСФ. Никакого научного смысла в алгебраическом полиноме для нашей задачи нет, но нестационарность снимается. Наличие простого аналитического описания делает такую модель удобной.

Тренд функции двумерного аргумента - это тоже поверхность. Тренд нулевого порядка - плоскость, параллельная координатной плоскости Оху и отстоящаяя от нее на величину среднего значения Z в опорных точках. Тренд первого порядка - тоже плоскость, но уже наклонная к координатной. Тренды более высоких порядков - уже не плоские поверхности.

Наилучшие результаты получены при модели тренда 2-го порядка:

    Z = c0 + c1*x + c2*y + c3*x^2 + c4*x*y + c5*y^2

Неизвестные к-ты с0 ... с5  находятся из решения системы из m уравнений методом наименьших квадратов, m - число опорных точек (сколотых узлов сетки в нашем случае).  Эта задача называется задачей линейной регрессии. В некоторых источниках - нелинейной, но это фигня - нелинейны только базисные функции, но не система уравнений. В качестве Z фигурируют  плазовые координаты X или Y , для которых получаем свои наборы к-тов с0 ... с5.

Исключив из значений плазовых координат X и Y точек плазовой сетки значения их трендов, получает остатки dX и dY, к которым и применяем кригинг. Кригинг - интерполянт, он позволяет получить оценки значений dX и dY в призвольной точке, не совпадающей, ващеговоря, ни с одной из опорных точек. Конечно, очень желательно, чтобы точки оценивания находились внутри области, охваченной опорными точками. При использовании бессмысленных моделей тренда это уже не только желательно, но, пожалуй и обязательно, при порядке полиномов выше 1.

Получив оценки dX и dY кригинга в интересующих нас точках на снимке (контрольных или точках поворота контура паруса), прибавим к ним значения тренда, вычисленного в этих  точках и получим, наконец, окончательный результат.

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



« Последнее редактирование: 15 Ноября, 2014, 23:33:26 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #21 : 16 Ноября, 2014, 01:54:35 »
Плазовые координаты 23-х контрольных точек получены с СКО(Х)=21мм, СКО(У)=5мм.

Удалось уменьшить СКО(Х) до 10мм. За счет чего?

Сам по себе кригинг - алгоритм довольно примитивный. Формируется система линейных уравнений и решается относительно к-тов линейной комбинации значений ПСФ в опорных точках.  Интимная тонкость в том - как именно получаются элементы матрицы и свободного члена системы уравнений. Поэтому геостатистика предполагает предварительный (перед кригингом) статистический анализ пространственной изменчивости ПСФ в виде вариограммного анализа. Впервые вариограммный анализ был применен в лесоведении, откуда и был заимствован и развит.

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

Кроме кригинга, известен еще один метод интерполяции поверхностей, заданных в нерегулярных точках - сплайны на функциях Грина (D-сплайны). Ссылку на теорию дам позже. Метод схож с кригингом, слегка отличается вычислительной схемой, но, главное, вместо вариограммы, определяющей поведение интерполянта в промежутках между опорными точками, используются функции Грина, обеспечивающие формальную гладкость поверхности ПСФ. При отсутствии серьезного вариограммного анализа это хороший путь.
Вот для оценки X я его и применил в ходе поисков улучшения и получил лучший результат, чем при использовании типовых моделей вариограмм от балды.

П.С. А не буду искать ссылку на теорию D-сплайнов. Кому интересно, ищите сами. Общедоступных лит. изданий на эту тему, на сколько мне известо, не было. В свое время я засылал агента с дипломом в ГПНТБ, где были доступны малотиражные ведомственные отчеты. В интернете могут быть писания профессора Тверского университета Ашкиназы, эту фамилию и ищите.
« Последнее редактирование: 16 Ноября, 2014, 02:06:56 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #22 : 18 Ноября, 2014, 03:15:23 »
Так что осмелюсь доложить - полный успех. Написал сколку паруса и расчет площади. Понамерил площадей разных фигур. Поскольку "плаз" снимал с руки, а не с закрепленной камеры, натурально воспроизвести технологию не мог, да и не горит пока. Обмеряемые фигурки рисовались при сколке на снимке плаза, я располагал их так, чтобы точки контура нигде не совпадали с опорными (узлами сетки на плазе). Сетку задал редкую, 6х3, а в неиспользуемых узлах располагал вершины фигур, чтобы можно было истинные площади в уме посчитать.

На скриншоте один из примеров. сколоты углы фигни, напоминающей парус. При задании параметров сетки шаг задал единичный, опять же, чтоб истину в уме легко считать (квадратная единица - четыре плитки). Это нормально, меня интересовали относительные ошибки площади, а они от масштаба не зависят. Так вот, истинная площадь сколотой фигуры - 5.75.  Результат программы на картинке. Точнее - два результата. Для контроля использовал два несколько разных алгоритма расчета площади, один дал отрицательный результат - забыл абс. величину взять. В этом примере отн. ошибка весьма мала, но на более мелких фигурах она побольше, до 3.5% доходило. Но до ПОМ Маринс далеко, та и на 15% может соврать на трапецеидальном парусе. Намс еще расти и расти до Великих! Но мы не станемс, нет.

П.С. На картинке опорные точки пометил красными кляксами. Марки в вершинах контура "паруса" ставятся при сколке, плазовых координат этих точек программа не знает. И что они в узлах кафельной плитки - тоже не знает. На второй картинке отмеченно то, что она знает после сколки контура с ее же помощью и на основе чего расчитывает площадь внутри контура. Сколка плазовой сетки происходит однократно другой программой, которая пишет данные в файл. После этого можно обрабатывать сколько угодно снимков парусов этой второй программой, если они сделаны без изменения положения камеры и она не перефокусировалась. Координаты сетки берутся из файла. Это я для ясности шишнадцатый раз повторил.
« Последнее редактирование: 18 Ноября, 2014, 05:19:33 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

  • Сообщений: 3441
  • Уважуха: +342/-129
  • Андрей Зворыкин М54
Re: Фотообмер парусов на плазе
« Ответ #23 : 19 Ноября, 2014, 03:08:28 »
А чё только один минус запихали? С фотообмером на рангоуте вроде больше было. Видать какой-то вечный член совета маринс и одновременно меритель оскорбился. Ну да ладно, хоть один - и то хлеб, хоть и без пракического толка. А вообще-то надо более организованно "работать". А то што - один в поле разве воин? Собрали бы совет в клозет-форуме (клозет - значит закрытый).  Да и приняли бы единогласно - всем "правоверным" напихать минусов! А я б тогда мерзцко отреагировал, а Вельский бы меня забанил навечно. Разве плохо? Подумайте, если это возможно :)

В общем, я собой весьма доволен. Задачка решена успешно, в собственной детальной (не ля-ля) постановке, и есть еще резервы по увеличению точности.  Тут надо учесть, что попутно учился программированию на РВ. Для старого пердуна это занятие малоувлекательное - трудно запомнить написание на собачьем языке длинных ключевых слов.  Теперь надо набраться терпения и отточить некоторые технические детали и сценарии диалогов программы со сторонним юзверем (которого, вероятно, не будет, но это не роялит).

Нельзя забыть, что идея фотообмера (ватерлиний) впервые была предложена Г.Шмерлингом, а фотообмер парусов предложил  kun, если я чего не прозевал, не забыл и не перепутал. Спасибо им.

По поводу примененного подхода надо заметить, что он не требует аптечной плоскоты плаза. Практически достаточно, чтобы тряпка с нанесенной сеткой укладывалась на плаз без видимых деформаций и не образовывалось "теней". В частности, теоретически допустим цилиндрический и конический плаз, а практически еще и "слабо закрученная плоскость" (линейчатая поверхность).  Это потому, что методу всё равно, что вызывает искажения на снимке - фотоаппарат или кривой плаз. Главное - сохранение линейных размеров по поверхности. При этом только надо учесть, что для многих парусов придется сильно растягивать переднюю шкаторину, стянутую севшим капроновым ликтросом. И надо, чтобы после растяжения она не оторвалась от плаза.

Олег, задачу в твоей постановке я думаю. В связи с чем должен заметить следующее. Как уже отмечалось, из ничего чего-то не высосешь. Для решения любой задачи необходимо иметь некоторый минимальный объем информации, достаточный для. Информация может быть двух видов - результаты измерений и теории (или гипотезы), имеюшие отношение к делу и не слишком завиральные. Вот в предыдущем подходе я отказался от теорий вообще, за что расплатился необходимостью иметь довольно густую опорную сеть. В твоей постановке иметь покрывающую плаз сеть нереально и придется думать башкой на предмет гипотез.

Упомянутая тобой линейность переспективы, даже если я правильно понимаю, что ты имел в виду и она не искажается дисторсией, вовсе не ведет к линейной зависимости плазовых координат от картинных. Это ясно, а если не ясно, то легко проверяемо. .... В общем, нужен совсем другой (отличный от предыдущего) подход. Примерно представляю какой, как мне кажется. В рез. более простая математика, но более сложное программирование, если не ошибаюсь. Попробую еще подумать и кое-что проверить имеющимся уже прогр. аппаратом и снимками.
« Последнее редактирование: 20 Ноября, 2014, 18:36:47 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"