Cтатьи и комментарии

Геопрофи, №5 2010

Сравнительная оценка различных методов трансформирования растрового изображения

Борзов А.Ю. В 1993 г. окончил Санкт-Петербургское высшее военно-топографическое командное училище. После окончания училища служил в рядах ВС РФ. С 2010 г. по настоящее время — ведущий программист ЗАО КБ «Панорама».

На практике при трансформировании растровых изображений часто возникает задача выбора типа преобразования, обеспечивающего минимальные искажения в изображении после его трансформирования. ГИС «Карта 2011» позволяет при трансформировании использовать различные типы преобразований: линейный (сдвиг, поворот, масштабирование), аффинный, полиномиальный, линейный и нелинейный «резиновый лист».

Рассмотрим эти типы преобразований и проведем оценку точности трансформирования каждым из них на примере растрового изображения отсканированного листа топографической карты. Расчет параметров трансформирования выполним с учетом и без учета точек пересечения линий километровой сетки.

Трансформирование по рамке листа. Запускаем в ГИС «Карта 2011» приложение «Трансформирование растровой карты по точкам» через «Запуск приложений» (рис. 1). Нажимаем кнопку «Выходные координаты добавить из…» — «Рамки листа». Сворачиваем диалог, чтобы он не мешал при измерении, и измеряем первую точку на растре. Сразу после измерения первой точки программа вычисляет сдвиг системы координат растра относительно системы координат карты. По этим параметрам выполняется переход в район второй точки. Точность совмещения второй точки растра с одноименной точкой карты зависит от разворота и разности масштабов растра и карты. После измерения второй точки появляется возможность рассчитать параметры разворота и масштабирования, поэтому совмещение следующей точки растра и карты выполняется более точно. Последовательно измеряем все точки рамки листа. После каждого измерения программа вычисляет остаточные расхождения и среднеквадратическое отклонение (СКО).

В результате линейного преобразования растрового изображения по рамке листа значения СКО по осям X и Y оказались равными: СКОx = 42 м и СКОy = 70 м, что составляет примерно 0,2 мм в масштабе карты по оси X и 0,35 мм по оси Y. Обычно требования к точности математической основы топографических карт предъявляются в пределах 0,1 мм в масштабе карты.

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

Из теории математической обработки измерений следует, что вероятность того, что случайная величина превысит свое математическое ожидание на величину, большую, чем утроенное СКО, практически равна нулю. На практике при отбраковке грубых ошибок максимальное расхождение не должно превышать СКО в 2,5 раза. В нашем случае таких точек не оказалось, поэтому можно считать, что при измерении грубых ошибок не допущено. Если грубые ошибки имеются, то необходимо повторить измерения на этих точках, выбирая их в таблице и указывая новое положение точки на растре. После исключения ошибок измерения оставшиеся расхождения будут обусловлены нелинейной деформацией растрового изображения.

Изменим тип преобразования на аффинный. СКО значительно уменьшилось (СКОX = 17 м, а СКОY = 22 м). Это объясняется тем, что в преобразовании аффинного типа, в отличие от линейного (сдвига, поворота и масштабирования), коэффициенты трансформирования вычисляются отдельно по осям Х и Y, и это, по сути, является аналогом ввода дополнительных параметров разворота и масштаба между осями координат. Так как в первоначальном варианте получилось значительное расхождение значений СКО по осям X и Y (42 м и 70 м), и максимальные расхождения находятся на углах растрового изображения (причем, по оси Y слева — отрицательные, а справа — положительные), то, скорее всего, причина повышения точности заключается в том, что масштаб отсканированного изображения по оси X отличается от масштаба по оси Y. Разные масштабы по осям X и Y учитываются в преобразовании аффинного типа, что обеспечивает уменьшение значения СКО.

Полученный результат удовлетворяет требованиям к точности основы топографической карты, однако СКО можно уменьшить, применив преобразование полиномиального типа. Изменяем тип трансформирования на полином с 4-мя коэффициентами. Получаем дальнейшее уменьшение значений (СКОX = 12 м, СКОY = 20 м). Если увеличивать количество коэффициентов полинома, то это всегда будет приводить к уменьшению остаточных расхождений и, следовательно, уменьшению СКО. Это связано с тем, что поверхность искажений становится все более сложной формы (допустимой для данного количества коэффициентов полинома) и приводит к минимуму расхождений на измеренных точках.

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

Для этих целей можно построить матрицы искажений, нажав кнопку «Строить матрицы» в ГИС «Карта 2011». Построенные матрицы добавляются к векторной карте. Создаются три матрицы нелинейных поправок: по оси Х, оси Y и матрица суммарных поправок (рис. 2). Значения элементов в матрице определяются как разность между координатами (в системе координат растра), вычисленными по формулам преобразований полиномиального и аффинного типов.

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

Изменив количество коэффициентов полинома на 5, получаем СКОX = 12 м и СКОY = 16 м, и снова строим матрицы. Несмотря на малые остаточные расхождения, в центре растра образуются значительные искажения, достигающие нескольких тысяч метров. При увеличении количества коэффициентов полинома СКО постоянно уменьшается, но искажения в центре растра увеличиваются. При значении коэффициента полинома 10 СКО по Х и Y становится равным нулю, так как количество уравнений равно количеству неизвестных, зато искажения достигают нескольких миллионов метров. Полученные результаты говорят о том, что при трансформировании необходимо использовать не более четырех коэффициентов полинома.

В ГИС «Карта 2011» имеются еще два типа преобразований — линейный и нелинейный «резиновый лист». Они основаны на построении сети треугольников (триангуляции) в области трансформирования и вычислении параметров преобразования для каждого треугольника. «Резиновый лист» обеспечивает нулевые расхождения на опорных точках, поэтому СКО всегда будет равно нулю. Однако в случае, когда параметры преобразования соседних треугольников значительно отличаются, на их границе происходит перелом поверхности искажений. Это, в первую очередь, относится к линейному «резиновому листу», так как в расчетах параметров используются только три точки треугольника. В нелинейном «резиновом листе» на параметры преобразования внутри треугольника оказывают влияние соседние точки, поэтому поверхность нелинейного «резинового листа» более гладкая, чем у линейного.

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

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

Добавим точки пересечений линий километровой сетки, нажав кнопку «Выходные координаты добавить из…» — «Километровой сетки». Выделим в таблице первую неизмеренную точку и в режиме «Переизмерения с переходом на следующую точку» измерим все добавленные точки. Если точка по каким_либо причинам не опознается на растре, переходим на следующую, нажав кнопку «N».

В результате этих действий получаем для линейного типа преобразования (сдвиг, поворот, масштабирование) СКОX = 40 м и СКОY = 48 м, а для аффинного — СКОX = 16 м и СКОY = 14 м. В отличие от измерений по углам рамки при измерениях по крестам километровой сетки имеются точки, остаточные отклонения на которых превышают допустимое СКО более чем в 2,5 раза. Однако повторный просмотр точек показывает, что они измерены верно, т. е. остаточные отклонения обусловлены деформациями растрового изображения.

Изменяя количество коэффициентов полинома, можно заметить, что если при четырех коэффициентах полинома СКОX = 16,2 м и СКОY = 13,7 м, а максимальная суммарная поправка по матрице искажений равна 8,9, то при 21_ом коэффициенте полинома СКОX = 7,3 м и СКОY = 11,6 м, а максимальная суммарная поправка по матрице искажений составляет 54,3 (см. таблицу). То есть поверхность искажений при увеличении степени полинома все более усложняется, что наглядно видно по матрицам суммарных искажений для различного количества коэффициентов полинома рис. 4.

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

Изменив тип преобразования на нелинейный «резиновый лист», можно получить матрицы поправок, приведенные на рис. 5.

Искажение по оси Х в центре вызвано разным масштабом или искривлением линейки сканера, а «полосатость» по оси Y — неравномерностью перемещения каретки при сканировании. Видно, что на точках прогиба рамки есть переломы поверхности искажений. Это связано, скорее всего, со смещением рамки листа при печати. Для сравнения точности трансформирования с учетом и без учета пересечений линий километровой сетки построим матрицу расхождений суммарных искажений для нелинейного «резинового листа», используя приложение «Сравнение матриц высот» в ГИС «Карта 2011».

Максимальные расхождения достигают 37 м, что составляет 0,15 мм в масштабе карты. Если этими ошибками можно пренебречь, то трансформировать можно и без измерения точек пересечения километровой сетки. Но оценить искажения внутри рамки листа невозможно, не измерив их. Достичь компромисса между скоростью и точностью обработки можно, измеряя не все точки пересечения, а, например, каждую вторую или третью.

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

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

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


RESUME Capabilities to rectify raster images based on various transformation types implemented in the Karta 2011 GIS are considered with specific reference. These transformations are as follows: linear (shift, turn, scaling), affine, polynomial, linear and non_linear «rubber sheeting». Application field together with the possible rectification accuracy are given.