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

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

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

ЗАК

  • Сообщений: 3507
  • Уважуха: +347/-139
  • Андрей Зворыкин М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 от ЗАК »
"Один ишак ишол, второй ишак ишол и третий ишак ишол и весь караван ишол"

ЗАК

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

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

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

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

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

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

ЗАК

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

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

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

ЗАК

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

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

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

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

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

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