Государственное образовательное учреждение высшего профессионального образования «Московский государственный технический университет имени Н.Э. Баумана» (МГТУ им. Н.Э. Баумана) ФАКУЛЬТЕТ _________Информатика и Системы управления______________ КАФЕДРА ___________Системы автоматического управления_____________ ______________________________________________________________________ РАСЧЁТНО - ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе на тему: _______________Исследование и разработка программного _________________ _______________обеспечения интерполяции изображений__________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ ______________________________________________________________________ Студент ___________________________ __________________ ___________________ (Подпись, дата) (И.О.Фамилия) Руководитель квалификационной работы __________________ __________________ (Подпись, дата) (И.О.Фамилия) Москва, 2009
24
Embed
Исследование и разработка программного обеспечения интерполяции изображений
В ходе курсовой работы, проведенной на первом семестре магистратуры МГТУ им. Баумана, были исследованы алгоритмы решения задачи интерполяции изображений. Разработаны алгоритмы трех методов решения поставленной задачи. Проведены их экспериментальные исследования в части зависимости производительности от размера изображения и метода обработки. По результатам анализа экспериментов определен наиболее оптимальный алгоритм обработки. Работа была выполнена в конце 2009 года. Исходные коды вложены на GitHub https://github.com/asimkin/20091201_Interpolation.
This work was carried out during the first term of the master program «Intelligent Systems and Control» at the Bauman University. In this work, Anatoly researched and developed algorithms for image interpolation. He examined three algorithms and analyzed how their performance depends on the image size and the interpolation method. The coursework was completed at the end of 2009. The source code of this work has been published under the GPL license at GitHub at https://github.com/asimkin/20091201_Interpolation, and research notes at http://www.slideshare.net/asimkin/ss-25037557.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Государственное образовательное учреждение высшего профессионального образования
«Московский государственный технический университет имени Н.Э. Баумана»
(МГТУ им. Н.Э. Баумана)
ФАКУЛЬТЕТ _________Информатика и Системы управления______________
КАФЕДРА ___________Системы автоматического управления_____________
Руководитель квалификационной работы __________________ __________________
(Подпись, дата) (И.О.Фамилия)
Москва, 2009
2
Содержание
стр.
Обозначения и сокращения ............................................................................................................................................. 3
1 Постановка задачи и первичное исследование ................................................................................................ 4
1.1 Постановка задачи ................................................................................................................................................... 4
1.2 Оценка современного состояния решаемой научно-технической проблемы ........................ 4
1.3 Обоснование необходимости проведения работы ................................................................................. 5
1.4 Назначение и цели создания программного обеспечения ................................................................ 5
2 Проектирование ПО ......................................................................................................................................................... 5
2.1 Структура модулей ПО ........................................................................................................................................... 5
2.2 Постановка задачи на реализацию подсистем АС .................................................................................. 6
3 Теоретические исследования ..................................................................................................................................... 6
3.1 Обоснование направления исследований .................................................................................................. 7
3.2.1 Определение ....................................................................................................................................................... 8
3.2.2 Методы интерполяции .................................................................................................................................. 9
3.4.1.2 Недостатки метода .............................................................................................................................. 15
Список использованных источников ...................................................................................................................... 24
Обозначения и сокращения
АС – Автоматизированная система;
Задача АС – Задача автоматизированной системы;
НИР – Научно-исследовательская работа;
ПО – Программное обеспечение;
ТЗ – Техническое задание на автоматизированную систему;
Аннотация
В данной работе рассмотрена задача разработки программного обеспечения
интерполяции изображений.
Для поставленной задачи была разработана структура системы, модулей и
схемы их взаимодействия. Предложена среда разработки и реализации
автоматизированной системы. Сделан выбор технических и трудовых средств и
Задача заключается в том, чтобы разработать программное обеспечение (ПО)
задачей которого будет обработка изображений для последующего анализа.
В рамках задачи дипломного проекта1 эта задача является связующим звеном
между подсистемой получения и предварительной обработки изображения и
подсистемой анализа и распознавания.
1.2 Оценка современного состояния решаемой научно-технической
проблемы
Исследование современного рынка решений поставленной задачи приводит к
выводу о том, что существует множество ПО для решения подобной задачи. Однако,
во многих случаях интеграция с подсистемами затруднена, как вследствие этого
необходима разработка собственного модуля для обработки изображений.
Общий анализ технологической базы существующих прикладных решений
приводит к следующим выводам: 1 Под Системой понимается «Автоматизированная система контроля доступом» подробное описание назначения и целей создания АС имеется в ТЗ к дипломному проекту.
5
Используется большое количество методов и алгоритмов интерполяции
изображений.
Обеспечивается высокое качество и производительность.
Решения не обладают универсальностью, используются в контексте
подсистем ПО.
Таким образом, можно сделать вывод о том, существующие системы обладают
хорошей технологической базой, но не обладают достаточной универсальностью. В
существующих ПО нет модульного решения для интеграции в существующую
задачу.
1.3 Обоснование необходимости проведения работы
В результате оценки современного состояния решаемой задачи мы приходим
к выводу о том, что существующие решения, не дают полной возможности (без
доработок) произвести интеграцию с реализованной подсистемой.
Проведение НИР в области исследования и разработки программного
обеспечения интерполяции изображений, которое будет обладать модульной
структурой, является в рамках задачи дипломного проектирования очень важной
задачей.
1.4 Назначение и цели создания программного обеспечения
Назначение ПО – интерполяция входящего изображения.
Основная цель создания ПО – создания модуля для системы распознавания
изображений.
Создание данного ПО, как модуля системы, решает конкретные задачи:
Повышает скорость последующей обработки изображений;
Повышает эффективность распознавания изображения;
Расширяет функционал системы.
2 Проектирование ПО
2.1 Структура модулей ПО
В автоматизированную систему должны входить следующие модули:
библиотека типов;
библиотека расширенной работы с массивами;
6
библиотека обработки изображений;
библиотека основных функций;
библиотека быстрой работы с изображениями;
библиотека построения линейных сплайнов;
библиотека построения двухмерных сплайнов;
Необходимая взаимосвязь компонентов приложения изображена в диаграмме
компонентов (см. рисунок 2.1) по нотации UML 2.0 [1].
Interpolate Image
«library»
ImgLibTypes
«library»
ImgLibArrayExt
«library»
ImgLibImageExt
«library»
ImgLibImpl
«library»
QPixels
«library»
SplineLibLinear
«library»
SplineLibBilinear
Рисунок 2.1. Взаимосвязь модулей приложения
2.2 Постановка задачи на реализацию подсистем АС
В поставленной задаче НИР стоит разработка ПО интерполяции изображений.
Будем реализовывать поставленную задачу таким образом, чтобы соблюдать
модульную структуру Системы.
Наибольший практический интерес представляет собой задача билинейной
интерполяции, входящая в модуль «Библиотека обработки изображений».
3 Теоретические исследования
Основная задача исследований заключается в изучении современных
алгоритмов интерполяции изображений и их реализация в ПО.
7
В данном разделе отчета о НИР рассматриваются методы интерполяции
изображений. Таким образом, далее следует описание проведенных исследований и
разработанных алгоритмов для решения задачи разработки ПО.
3.1 Обоснование направления исследований
Все большее распространение получили системы автоматизированного ввода
информации через различные типы сканеров, а также цифровые фото- и
видеокамеры. При этом по разрешающей способности такие системы ввода вполне
приближаются к зрению человека или животных, а с учетом быстродействия
ближайшей технической моделью глаза, очевидно, являются видео- и цифровые
фотокамеры. Так ПЗС матрица цифровой фотокамеры обеспечивает разрешение до 3
млн. пикселей на кадр, а современным высокопроизводительным компьютерам
вполне доступна несложная обработка в реальном масштабе времени.
Под обработкой изображений следует понимать совокупность методов и
задач, где входной информацией являются изображения [2]. Круг решаемых задач
очень широк и используется в различных областях, таких как математика,
нейробиология, оптическая физика и других. Можно назвать две основные
прикладные области, активно развиваемые в последнее время, это «Машинное
зрение» и «Компьютерное зрение». Данные области достаточно близки и часто
пересекаются по классу задач, поэтому иногда их объединяют в одну (см. рисунок
3.1).
Современные исследования и развития данных областей, позволяют
сформулировать их основные задачи [2].
Обработка изображений фокусируется на обработке двумерных (2D)
изображений.
Машинное зрение - это решение промышленных и производственных задач
(робототехника и прочее).
Компьютерное зрение включает в себя класс задач связанных с
восстановлением трехмерного изображения (3D) по входным двумерным (2D)
изображениям.
В рамки задач по обработке изображений входят и задачи преобразования
размеров изображения, и соответственно их интерполяция.
Интерполяция изображений происходит во всех цифровых фотографиях на
определённом этапе, например, при масштабировании. Она происходит всякий раз,
8
когда вы изменяете размер или развёртку изображения из одной сетки пикселей в
другую. Изменение размера изображения необходимо, когда вам нужно увеличить
или уменьшить число пикселей, тогда как изменение положения может происходить
в самых различных случаях: исправление искажений объектива, смена перспективы
или поворот изображения.
3.2 Математическая интерполяция
Интерполяция – в вычислительной математике способ нахождения
промежуточных значений величины по имеющемуся дискретному набору известных
значений.
Часто в научных и инженерных расчетах приходится оперировать наборами
значений, полученных экспериментальным путём или методом случайной выборки.
На основании этих наборов данных требуется построить график функции, на
которую могли бы с высокой точностью попадать другие получаемые значения.
Такая задача называется аппроксимацией кривой. Интерполяцией называют такую
разновидность аппроксимации, при которой кривая построенной функции проходит
точно через имеющиеся точки данных.
Также существует близкая к интерполяции задача, которая заключается в
аппроксимации какой-либо сложной функции другой, более простой функцией. В
случае, когда некоторая функция слишком сложна для производительных
вычислений, можно попытаться вычислить её значение в нескольких точках, а по
ним построить, то есть интерполировать, более простую функцию. Использование
упрощенной функции не позволяет достичь первоначальной точности, но в
определенных классах задач достигнутый выигрыш в простоте и скорости
вычислений перевешивает получаемую погрешность в результатах.
Существует также совершенно другая разновидность математической
интерполяции, известная под названием «интерполяция операторов».
3.2.1 Определение
Рассмотрим систему несовпадающих точек 0,1,...,ix i N из некоторой
области D . Пусть значения функции f известны только в этих точках
, 1,...,i iy f x i N (3.1)
9
Задача интерполяции состоит в поиске такой функции F из заданного класса
функций, что
, 1,...,i iF x y i N , (3.2)
где
Точки ix называют узлами интерполяции, а их совокупность —
интерполяционной сеткой;
Пары ,i ix y называют точками данных или базовыми точками;
Разность между «соседними» значениями 1i i ix x x — шагом
интерполяционной сетки, который может быть как переменным, так и
постоянным;
Функцию F x — интерполирующей функцией.
3.2.2 Методы интерполяции
Интерполяция полиномами
Линейная интерполяция;
Интерполяционная формула Ньютона;
Метод конечных разностей;
Полином Лагранжа;
Сплайн-функция;
Обратное интерполирование
Полином Лагранжа;
Обратное интерполирование по формуле Ньютона;
Обратное интерполирование по формуле Лагранжа;
Рациональная интерполяция;
Тригонометрическая интерполяция.
Методы сплайн интерполяции подробно рассмотрены в книге [3].
3.3 Одномерная сплайн-интерполяция
3.3.1 Сплайн-функция
Сплайн - это агрегатная функция, совпадающая с более простой функцией на
каждом элементе разбиения своей области определения [4].
10
Сплайн-функция является особым видом кусочно-непрерывного полинома. В
монографии [5] указано, что интерполяция сплайн-функция является более
предпочтительным полиномиальной интерполяции, т.к. ошибка может быть
намного меньше, даже при низкой степени многочлена сплайн-функции.
Следовательно, позволяет избежать проблем возникающих при высокой степени
аппроксимирующего полинома2.
Таким образом, сформулируем задачу интерполяции.
Пусть дано 1n точек ix таких, что
0 1 1... n nx x x x , (3.3)
с известными 1n значениями ( )i iy x .
Необходимо определить сплайн-функцию степени n
0 0 1
1 1 2
1 1 1
, ,
, ,
...
, ,n n
S x x x x
S x x x xS x
S x x x x
, (3.4)
где каждая из функций iS x является многочленом степени K .
Рассмотрим интерполяцию сплайном третьей степени.
3.3.2 Интерполяция сплайном третьей степени
В основе данной сплайн-интерполяции лежит следующий принцип. Интервал
интерполяции разбивается на небольшие отрезки, на каждом из которых функция
задается полиномом третьей степени. Коэффициенты полинома подбираются таким
образом, чтобы выполнялись определенные условия, которые зависят от метода
интерполяции. Общие требования для всех типов сплайнов третьего порядка: