Разработка и реализация алгоритма локализации объекта, заданного моделью, на изображении

Анализ процесса локализации и требований к алгоритму. Постановка критериев анализа алгоритмов локализации. Разработка алгоритма фильтрации и модификации результатов обнаруженных объектов на изображении. Выбор среды реализации и языка программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 23.09.2018
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Аннотация

Данная работа посвящена разработке и реализации алгоритма локализации объекта, заданного моделью, на изображении. Автор работы студент НИУ ВШЭ - Пермь образовательной программы «Программная инженерия» Дмитрий Титов.

Работа включает в себя введение, четыре главы, заключение, библиографический список и два приложения. Объем работы оставляет 52 страницы, из которых 40 страниц занимает основной текст работы. Работа содержит 20 иллюстраций и 7 таблиц.

Оглавление

  • алгоритм локализация программирование язык
  • Введение
  • Глава 1. Анализ процесса локализации и постановка требований к алгоритму
    • 1.1. Описание процесса локализации объекта на изображении
    • 1.2. Описание требований и ограничений в реализации алгоритма
    • 1.3. Анализ существующих решений
    • 1.4. Анализ литературы
    • 1.5. Выводы по первой главе
  • Глава 2. Анализ и выбор алгоритмов и инструментов
    • 2.1. Постановка критериев анализа алгоритмов локализации
    • 2.2. Поиск и анализ существующих алгоритмов и инструментов
    • 2.3. Библиотека ARKit
    • 2.4. Библиотека OpenCV
    • 2.5. Выбор алгоритмов и инструментов на основании проведенного анализа
      • 2.5.1. Экономическое обоснование разработки алгоритма
      • 2.5.2. Оценка функционального размера разрабатываемой информационной системы
      • 2.5.3. Оценка базовой трудоемкости разработки программного обеспечения
      • 2.5.4. Расчет трудоемкости разработки программного обеспечения с учетом поправочных коэффициентов
    • 2.6. Выводы по второй главе
  • Глава 3. Разработка алгоритма локализации объекта, заданного моделью, на изображении
    • 3.1. Разработка абстрактной концепции алгоритма локализации
    • 3.2. Разработка алгоритма фильтрации и модификации результатов обнаруженных объектов на изображении
      • 3.2.1. Разработка алгоритма усреднения вершин
      • 3.2.2. Разработка алгоритма слияния схожих фигур
      • 3.2.3. Разработка алгоритма фильтрации по количеству вершин
      • 3.2.4. Разработка алгоритма фильтрации по размеру фигур
      • 3.2.5. Разработка алгоритма фильтрации по выпуклости фигур
    • 3.3. Разработка алгоритма локализации объекта с заданными параметрами и координатами на изображении
    • 3.4. Выводы по третей главе
  • Глава 4. Реализация алгоритма локализации объекта, заданного моделью, на изображении
    • 4.1. Выбор инструментов программной реализации разработанного алгоритма
      • 4.1.1. Выбор среды реализации
      • 4.1.2. Выбор языка программирования
      • 4.1.3. Выбор среды разработки
      • 4.1.4. Выбор системы контроля версий
    • 4.2. Реализация алгоритма обнаружения фигур на изображении
    • 4.3. Реализации алгоритма фильтрации и модификации набора фигур
    • 4.4. Реализация алгоритма локализации объекта с заданными параметрами и координатами на изображении
    • 4.5. Выводы по четвертой главе
  • Заключение
  • Библиографический список
  • Приложение

Введение

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

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

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

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

Стоит отметить, что реализация исследуемой технологии уже активно используется в разных отраслях. Многие люди узнали о ней из новостей о мобильном приложении с названием «Pokemon GO». Эта игра распознает горизонтальные плоскости на видеопотоке камеры и отображает на них виртуальных персонажей. Но технология использовалась и задолго до появления игры, например, в проектировании автомобилей с автопилотом. Пускай движение таких автомобилей по дорогам общего пользования запрещено практически во всем мире, очевидно, что через несколько лет можно ожидать появления автомобилей с автопилотом на улицах мегаполисов.

Объектом исследования данной работы являются системы машинной обработки изображений. Предметом исследования выступают алгоритмы и методы точной локализации.

Целью выполнения данной работы является разработка алгоритма локализации объекта, заданного моделью на изображении и его реализация. Для достижения этой цели необходимо выполнить ряд задач:

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

2. Исследовать существующие алгоритмы и инструменты локализации объекта на изображении.

3. Провести анализ исследованных алгоритмов.

4. Произвести выбор наиболее подходящих алгоритмов и инструментов.

5. Разработать алгоритм локализации объекта, заданного моделью, на изображении.

6. Реализовать разработанный алгоритм с использованием выбранных инструментов.

7. Провести испытания локализации объемного объекта на изображении в созданных условиях.

Глава 1. Анализ процесса локализации и постановка требований к алгоритму

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

1.1 Описание процесса локализации объекта на изображении

Распознавание, идентификация, отслеживание и классификация объектов на изображениях - задачи, которое решаются с помощью технологии машинного зрения. Специальные алгоритмы, на основании изображений, подаваемых в виде матриц, производят те или иные вычисления. Матрицы состоят из значений цветов, заданных в формате определенных цветовых схем, например, RGB или HSV. Большинство подобных алгоритмов обрабатывают матрицы цветов, находя скопления одинаковых цветов выделяя контрастирующие участки. На основании этих данных компьютерные программы делают предположения о нахождении или отсутствии на изображении объектов, заранее описанных моделью. Также известны алгоритмы, использующие набор изображений объектов, которые необходимо локализовать или распознать.

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

Задача локализации состоит из двух процессов: процесс распознавания объектов и процесс определения пространственного отношения между распознанными объектами и камерой, что произвела снимок. Наиболее алгоритмически сложным вопросом является определение положения объекта локализации по отношению к точке отсчета координат. Такой точкой может выступать, например, геометрический центр матрицы камеры. Тогда как первая задача решается определением разницы в соседствующих ячейках матрицы цветов, вторая является менее тривиальной, она требует произведения множества математических расчетов.

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

Рисунок 1.1. Пример локализации объекта

1.2 Описание требований и ограничений в реализации алгоритма

Разрабатываемый алгоритм локализации - это фундамент, на основании которого могут быть построены алгоритмы локализации более специфичных объектов. Например, болтов, шайб и прочих объектов нетривиальной геометрической формы. Учитывая это, можно выделить несколько нефункциональных требований:

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

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

3. Масштабируемость. Алгоритм должен предполагать возможность дальнейшего расширения. Например, локализации большего количества объектов.

Главной функцией алгоритма является локализация объекта, заданного моделью на изображении. Но для реализации этой возможности алгоритм и его программное окружение должны быть способны выполнять следующие функции:

1. Получать изображения с камеры или через функцию загрузки из локального или внешнего хранилища;

2. Преобразование изображения в формат пригодный для обработки алгоритмом;

3. Распознавание на изображении объекта локализации;

4. Определение положения объекта относительно точки отсчета координат с помощью стереометрических правил;

5. Определение расстояния между точками объектов;

6. Определение координат объекта локализации.

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

1. Требования к входным параметрам;

2. требования к условиям эксплуатации;

3. требования к средствам разработки и использования;

4. требования к работе алгоритма и полученным данным;

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

Главные требования диктуются алгоритмом и определяются требованиями к его входным данным. Как было сказано выше, для своей работы, алгоритму нужно иметь изображение с полностью расположенным на нем объектом локализации. Далее представлены требования к изображениям, подаваемым на вход алгоритму:

1. Достаточная освещенность. Объект локализации, должен быть освещен в достаточной мере.

2. Угол освещения. Направление света не должно быть параллельным ни одной из плоскостей объектов.

3. Цветовые различия. Объект локализации должен иметь цвет, контрастирующий с цветом фона.

4. Расположение объектов на изображении. Все объекты, задействованные в алгоритме должны быть целиком видны на изображении.

5. Масштаб. Объект локализации должен занимать не менее одной сотой изображения.

6. Формат изображения. Изображение должно подаваться в формате, который не подвержен автоматической компрессии, например, JPEG.

7. Форма объектов. Объект локализации должен иметь форму, приближенную к геометрической форме куба.

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

1. Изображения должны быть сделаны в крытом помещении.

2. Должны быть использованы несколько источников света с широким углом направленностью лучей.

3. Окружение, на фоне которого производятся снимки должно быть темных оттенков. Это сделает изображение контрастным и упростит работу алгоритма.

Наконец, имея требования к входным параметрам и к среде эксплуатации нужно определить, какой результат ожидается от работающего алгоритма:

1. Алгоритм должен распознавать куб на изображении.

2. Алгоритм должен выдавать координаты всех восьми точек куба в трехмерном пространстве относительно центра матрицы камеры.

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

1.3 Анализ существующих решений

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

В ходе анализа было выявлено одно приложение, реализующее схожий алгоритм и находящееся в открытом доступе - AR Measure (рис. 1.2). Это приложение для устройств под управлением iOS, позволяющее делать относительно точные измерения на изображении. С его помощью можно измерить расстояние от одной точки до другой.

Рисунок 1.2. Приложение AR Measure

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

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

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

Так же был найден один пример реализации алгоритма, схожего с исследуемым. От профиля с именем “IntelRealSense”, которым владеет компания Intel, в хранилище сервиса GitHub был обнаружен репозиторий под названием “librealsense” (рис. 1.3). Он хранит инструменты для обработки изображений и множество примеров их использования. В соответствии с темой данной работы был наиболее интересен пример реализации алгоритма, который позволяет рассчитывать расстояние между объектами, лежащими в разных плоскостях.

Рисунок 1.3. Работа librealsense

Алгоритм расчета расстояния от компании Intel использует набор инструментов библиотеки OpenCV. Используются инструменты для расчета размеров и расстояний между объектами. Для распознавания объектов на изображении используются шаблонные. Алгоритм состоит из трех этапов: фильтрация изображения, распознавание объекта, определение координат в плоскости изображения и конвертация двумерных координат в трехмерное представление.

Последняя реализация выполнена с помощью библиотеки OpenCV. Это набор из целого ряда алгоритмов, позволяющих обрабатывать и получать информацию из изображений. Эта библиотека реализована на многих языках, в том числе на C++, что делает ее пригодной для использования в среде разработки Xcode и с языком Objective-C++.

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

1.4 Анализ литературы

Прежде чем приступить к разработке был проведен важный этап - изучение литературы релевантной теме исследования. Был осуществлён поиск литературы, которая позволила бы погрузиться в предметную область. Как было сказано ранее, машинное обучение - относительно новая технология. Это стало причиной тому, что на данный момент известно не так много литературы, которая раскрывает тему локализации объектов, заданных моделью на изображении. Однако то, что есть, предоставляет достаточный объем знаний, чтобы реализовать соответствующий алгоритм.

Дэвид А. Форсайт и Джин Понс в своей книге «Компьютерное зрение. Современный подход» [3] подают фундаментальные знания в области машинного зрения. Первые несколько глав книги посвящены строению камер и условиям произведения снимков. Как известно, важная часть любого алгоритма - входные данные. Для технологии машинного зрения входные данные - это изображения, сделанные на камеру. Первые несколько глав посвящены строению камер, освещению, теням, цветам, калибровке камер. Далее авторы продолжают углубляться в технологию, они знакомят читателя с азами анализа фотографии. Вторая часть книги посвящена определению на изображении фигур, границ, текстур и прочего. Третья часть книги предназначена для профессионалов. Она рассказывает про моделирование, динамику, графы и прочее. Данная книга не дает ответ на то, как реализовать какой-либо алгоритм из сферы машинного зрения. Однако, авторы дают читателям фундаментальные знания, которые, в дальнейшем, позволят осваивать алгоритмы значительно проще.

Вторая книга - «Learning OpenCV» [10], написанная Андрианом Кехлером и Гари Брадски посвящена работе с библиотекой OpenCV. Книга начинается с введения в работу с библиотекой. Далее описывается работа с изображением: получение, трансформация, сегментация и использование шаблонов. К рассматриваемым шаблонам относятся: лица, дорожные знаки и прочее. Как и во многих источниках, особое внимание уделяется распознаванию лиц. Это неудивительно, ведь распознавание лиц, на настоящий момент, является одной из наиболее популярных задач машинного зрения. но, не смотря на то, что распознанию лиц уделено наибольшее внимание, авторы не обошли стороной распознавание примитивных фигур. Среди прочих, в книге описывается алгоритм распознавания кубов, что релевантно теме данного исследования.

Следующая книга - «Computer Vision: Algorithms and Applications» [13], написанная Ричардом Сзелиски так же, как и книга «Компьютерное зрение. Современный подход», о которой было написано выше, даёт фундаментальные знания о машинном зрении. Но, если последняя книга была ориентирована на теорию, то первая в большей степени посвящена сферам применения технологии. В книге малую долю занимает теория, но большая часть книги содержит исчерпывающую информацию о таких сферах применения, как обработка изображений, объемная реконструкция, детальный анализ изображений и распознавание объектов. Среди алгоритмов распознавания много тех, что были представлены в книге «Learning OpenCV».

Делл Волфенспаргер в книге «Apple ARKit Revealed: Augmented and Mixed Reality for iPhone and iPad» [11] знакомит читателей с инструментом дополненной реальности от компании Apple, ARKit. Это библиотека высокого уровня абстракции, реализованная, в том числе, с помощью технологии машинного зрения. Из этого следует, что сама книга не содержит глубоких познаний в сфере алгоритмов. Она раскрывает лишь возможности самой библиотеки.

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

1.5 Выводы по первой главе

В первой главе была рассмотрена предметная область. Были описаны основные понятия исследуемой области. Также были сформулированы требования к алгоритму и его работе. Далее был выполнен разбор литературы.

Глава 2. Анализ и выбор алгоритмов и инструментов

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

Эта глава посвящена анализу и выбору средств и инструментов, которые могут быть использованы при реализации алгоритма. В ней описываются алгоритмы и проводится их анализ. На основании анализа производится сравнение, по результатам которого выбирается наиболее подходящий вариант. Далее выбираются вспомогательные инструменты, позволяющие реализовать выбранный инструмент.

2.1 Постановка критериев анализа алгоритмов локализации

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

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

1. Возможность распознавания объектов. Один из этапов локализации - распознавание объекта.

2. Возможность распознавания нескольких объектов одновременно. Этот критерий не обязателен, но желателен.

3. Простота. Цель любого проекта - достигнуть нужного результата, истратив наименьшее количество ресурсов.

2.1 Поиск и анализ существующих алгоритмов и инструментов

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

2.2 Библиотека ARKit

В первую очередь стоит разобрать инструмент под названием ARKit. Это нативная библиотека, написанная на языке Swift. она достаточно новая, была выпущена в открытый доступ в апреле две тысячи семнадцатого года. Она написана специально для устройств под управлением iOS, а значит очень удобна в нативной разработке.

ARKit позволяет использовать камеру и гироскоп устройства, чтобы накладывать виртуальные объекты на заданную точку пространстве. Ключевым компонентом в библиотеке является класс - ARSession. Для настройки этого экземпляра необходимо создать экземпляр одного из потомков класса ARConfiguration:

1. ARWorldTrackingConfiguration - конфигурация, позволяющая отслеживать объекты реального мира через камеру заднего вида;

2. AROrientationTrackingConfiguration - конфигурация, схожая с первой, но для отслеживания использующая только акселерометр;

3. ARFaceTrackingConfiguration - конфигурация, позволяющая отслеживать положение лица через фронтальную камеру.

Для задач текущей работы наиболее полезно использовать класс ARWorldTrackingConfiguration. Среди всего прочего у этого класса есть одно наиболее интересное свойство - planeDetection, которое может принимать только одно из двух значений: вертикальная ориентация или горизонтальная. Это означает, что библиотека ARKit позволяет работать только с вертикальными и горизонтальными поверхностями. Визуализация работы ARWorldTrackingConfiguration представлена на рисунке 2.1. Но в рамках данной работы необходимо оперировать различными положениями куба относительно плоскости. Далее можно заметить, что экземпляру ARSession соответствует только одна плоскость. Это значит, что определить несколько плоскостей не предоставляется возможным, по крайней мере, при текущей версии библиотеки.

Рисунок 2.1. Визуализация работы ARKit

Подводя итоги, нужно рассмотреть данную библиотеку в рамках разработанных критериев:

1. Возможность распознавания объектов. Как было сказано выше, эта библиотека способна только распознавать поверхности. Таким образом, если поместить на объекты локализации изображения, их можно обнаружить.

4. Возможность распознавания нескольких объектов одновременно. Библиотека не предусматривает распознавание нескольких плоскостей одновременно.

2. Простота. ARKit - инструмент высокой абстракции. Это означает его простоту использования.

2.3 Библиотека OpenCV

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

Библиотека разделена на несколько модулей (рис. 2.2):

1. opencv_core -- ядро: базовые структуры, вычисления (математические функции, генерация псевдослучайных чисел, DFT, DCT, ввод/вывод в XML и т.п.);

2. opencv_imgproc -- обработка изображений (фильтры, преобразования и т. д.);

3. opencv_highgui -- простой UI, загрузка/сохранение изображений и видео;

4. opencv_ml -- методы и модели машинного обучения;

5. opencv_features2d -- различные дескрипторы;

6. opencv_video -- анализ движения и отслеживание;

7. opencv_objdetect -- детектирование объектов на изображении;

8. opencv_calib3d -- калибровка камеры, поиск стерео-соответстсвия и элементы обработки трехмерных данных;

9. opencv_flann -- библиотека быстрого поиска ближайших соседей;

10. opencv_contrib -- сопутствующий код, еще не готовый для применения;

11. opencv_legacy -- устаревший код, сохраненный ради обратной совместимости;

12. opencv_gpu -- ускорение некоторых функций OpenCV.

Рисунок 2.2. Модули OpenCV

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

1. opencv_core как основной модуль;

2. opencv_objdetect как инструмент для распознавания объектов на изображении.

Применяя критерии, представленные выше, можно сделать следующие выводы:

1. Возможность распознавания объектов. Как было представлено в разборе описании библиотеки, она содержит целый модуль, который имеет главной функцией - распознавание объектов на изображении. Следуя документации модуля, он позволяет реализовать необходимый функционал.

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

3. Простота. OpenCV - библиотека высокого уровня. Не смотря, на то, что уровень вхождения у нее значительно выше, чем у ARKit, она является доступной.

2.5 Выбор алгоритмов и инструментов на основании проведенного анализа

С целью выбора наиболее подходящего критерия была разработана таблица соответствия требованиям к инструменту. В таблице (Табл. 2.1) оценки расставлены от единицы за несоответствие до пятерки за полное соответствие.

Таблица 2.1. Сравнение ARKit и OpenCV

Критерий

ARKit

OpenCv

Возможность распознавания объектов

2

4

Возможность распознавания нескольких объектов одновременно

1

5

Простота

4

2

Возможность интеграции для работы в iOS

5

4

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

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

2.5.1 Экономическое обоснование разработки алгоритма

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

В рамках данного исследования была выбрана методология оценки трудоемкости разработки - CETIN. Эта методология выбрана как наиболее подходящая для начальной стадии реализации продукта.

2.5.2 Оценка функционального размера разрабатываемой информационной системы

Оценка функционального размера информационной системы производится на основании модели информационной системы и функциональных требований пользователей. Функциональный размер ИС представляет собой пять функциональных единиц измерения

· количество вариантов использования - C;

· количество типов объектов - E;

· количество свойств типов объектов - Т;

· количество взаимодействий между типами объектов - I;

· количество типов узлов - N.

Функциональный размер обозначается как SIZE={C, E, T, I ,N}

Для оценки функционального размера рекомендуется использовать модель информационной системы, реализованной на языке моделирования UML. В случае отсутствия модели ИС, оценщику предлагается заполнить анкету, представляющую собой перечень вопросов об информационной системе. Такой подход позволить определить функциональность системы на ранних этапах, оценить границы системы. В методике представлены алгоритмы определения функционального размера (Табл. 2.2)

Таблица 2.2. CETIN

C

E

T

I

N

Распознавание объекта

2

3

1

1

Определение пространственного отношения

2

3

1

1

2

2

3

1

1

На основании таблицы был получен результат SIZE = {2, 2, 3, 1, 1}

2.5.3 Оценка базовой трудоемкости разработки программного обеспечения

Оценка производится на основании предыдущих вычислений и данных о коэффициентах (Табл. 2.3).

Таблица 2.3. Нормативные коэффициенты трудоёмкости

Наименование процесса

Трудоемкость реализации варианта использования S(c,j)

Трудоемкость реализации типа объекта S(e,j)

Трудоемкость реализации свойства типа объекта S(t,j)

Трудоемкость реализации свойства взаимоотношения меду объектами S(I,j)

Трудоемкость реализации узла S(n,j)

1.

Бизнес моделирование

12,1

17,3

21,5

17,8

0,00

2.

Управление требованиями

44,35

32,18

24,6

34,5

0,00

3.

Проектирование

32,6

37,8

21,98

22,56

12,01

4.

Реализация

26,12

21,1

29,69

24.81

18,7

5.

Тестирование

70,5

0,00

0,00

0,00

0

6.

Развертывание

9,56

0,00

0,00

0,00

12,83

Базовая трудоёмкость выполнения работы рассчитывается посредством следующий функции:

где - трудоемкость определенного процесса разработки с номером i, измеряется в человеко-месяцах,

- нормативные коэффициенты трудоемкости реализации одного варианта использования, единицы измерения - [человеко-час]/[вариант],

- нормативный коэффициент трудоемкости реализации одного типа объектов, единицы измерения - [человеко-час]/[тип объектов],

- нормативный коэффициент трудоемкости реализации одного свойства типа объекта, единицы измерения - [человеко-час]/[свойство типа объектов],

 - нормативный коэффициент трудоемкости реализации одного взаимодействия между типами объектов, единицы измерения - [человеко-час]/[взаимодействие между типами объектов],

- нормативный коэффициент трудоемкости реализации одного типа узла, единицы измерения - [человеко-час]/[узел],

{C,E,T,I,N} - функциональный размер разрабатываемой системы, определенный в таблице 2.6,

165 - количество человеко-часов в одном человеко-месяце.

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

Далее проведены расчеты итоговой трудоёмкости проекта на основании данных, полученных выше и поправочных коэффициентов (Табл. 2.4).

Таблица 2.4. Расчёт трудоёмкости проекта

Номер процесса (i)

Наименование процесса

Трудоемкость (чел/мес)

Трудоемкость (чел/мес) с учетом ПК

1.

Бизнес моделирование

2,75

3,12

2.

Управление требованиями

5,43

6,11

3.

Проектирование

5,08

5,5

4.

Реализация

4,81

5,25

5.

Тестирование

2,82

3,11

6.

Развертывание

0.89

0,98

Итог:

24,07

Для получения данных таблицы была использована следующая формула:

, (2)

где S - трудоемкость процесса разработки программного продукта с учетом корректировки поправочными коэффициентами в человеко-месяцах,

- базовая трудоемкость разработки программного продукта в человеко-месяцах (значения взяты из таблицы 2.7),

- поправочные коэффициенты, значения которых представлены в приложении (см. прил. Б).

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

2.6 Выводы по второй главе

Во второй главе были рассмотрены инструменты, с помощью которых можно реализовать процесс распознавания объекта на изображении. Был проведен их анализ и сравнение. В результате была выбрана библиотека OpenCV. Также были рассмотрены и выбраны вспомогательные средства. Было проведено экономическое обоснование разработки системы и был высчитан объем работы.

Глава 3. Разработка алгоритма локализации объекта, заданного моделью, на изображении

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

3.1 Разработка абстрактной концепции алгоритма локализации

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

Таким образом, алгоритм локализации объекта, заданного моделью, на изображении состоит из следующих алгоритмов, выполняемых в строгой последовательности:

1. Алгоритм распознавания объектов на изображении;

2. Алгоритм фильтрации и модификации фигур, полученных предыдущим алгоритмом;

3. Алгоритм локализации объектов с заданными параметрами и координатами на изображении. Разработка алгоритма обнаружения фигур на изображении.

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

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

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

Известно, что, имея один точечный источник света, на изображении разные стороны объекта реального мира имеют разные значения цветов. Как было сказано ранее, в данной работе производится локализация куба. Также известно, что на одном изображении могут располагаться только три стороны куба. Хотя, для определения всех координат куба достаточно иметь координаты только двух сторон, желательно иметь координаты всех трех. Для того чтобы алгоритм мог распознавать только одну сторону куба, необходимо иметь изображение, отфильтрованное по цветовой модели соответствии с заранее заданными конфигурациями. В контексте данной работы конфигурацией называется набор диапазонов значений цветов в модели HSV.

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

Таким образом, алгоритм должен получать на вход следующие параметры:

1. Изображение;

2. набор конфигураций.

Алгоритм должен возвращать набор из обнаруженных на изображении фигур.

Как было сказано выше, для того, чтобы определить фигуры на изображении, необходимо определить их границы. Существует наиболее распространённый алгоритм определения границ на изображении - Канни [12], разработанный Джоном Канни в 1986 году. Алгоритм получает на вход изображение и параметры фильтрации и возвращает координаты распознанных границ. Основная работа алгоритма заключается в фильтрации изображения и определения градиентов. Он состоит из следующих этапов:

1. Сглаживание. Изображение сжимается затем расширяется. Таким образом, теряется качество изображения, но оно становится более пригодным для работы алгоритма.

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

3. Подавление не-максимумов. В качестве границ выбираются только локальные максимумы.

4. Двойная пороговая фильтрация. Границы фильтруются в соответствии с заданным порогом. Фильтрация происходит по величине косинуса углов фигур. Так, если задать значение порога 1, фильтрация пропустит все границы.

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

Пример работы алгоритма можно видеть на изображении ниже (рис. 3.1).

Рисунок 3.1. Пример работы Канни алгоритма

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

Для того, чтобы отфильтровать изображение, убрав пиксели с значениями цветов, не представленными у локализуемых объектов, необходимо представить, из чего состоит изображение. Изображение можно рассматривать в виде матрицы значений цветов. При этом значения представлены в соответствии с цветовой моделью изображения. Для удобства использования была выбрана цветовая модель HSV (рис. 3.2). Эта модель содержит три компонента:

1. Hue -- цветовой тон, (например, красный, зелёный или сине-голубой). Варьируется в пределах 0--170.

2. Saturation -- насыщенность. Варьируется в пределах от 0 до 255. Чем больше этот параметр, тем «чище» цвет, поэтому этот параметр иногда называют чистотой цвета. А чем ближе этот параметр к нулю, тем ближе цвет к нейтральному серому.

3. Value (значение цвета). Задаётся в пределах от 0 до 255.

Рисунок 3.2. Цветовая модель HSV

Цветовая модель HSV была выбрана в связи с тем, что с помощью параметра hue можно задать оттенок цвета. Что значительно упрощает использование ручной настройки человеком. Так, например, неопытному пользователю будет сложно использовать алгоритм с цветовой моделью RGB, представляя каждый пиксель как набор из значений красного, зеленого и синего цветов.

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

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

3.2 Разработка алгоритма фильтрации и модификации результатов обнаруженных объектов на изображении

В результате алгоритма обнаружения объектов на изображении получен набор из координат множества разнообразных фигур. В этот набор могут входить:

1. Треугольники, четырехугольники, шестиугольники и любые другие фигуры с количеством вершин большим трех;

2. фигуры, имеющие размер в несколько пикселей или размер, совпадающий с размером изображения;

3. фигуры, имеющие как выпуклые, так и не выпуклые углы;

4. фигуры, отдельные линии которых имеют пренебрежительно малую длину.

Для каждой из этих вариаций необходимо предусмотреть фильтрацию или модификацию. Алгоритм фильтрации и модификации должен иметь следующую последовательность преобразований (рис. 3.3):

Рисунок 3.3 Воронка фильтраций и модификаций

1. Модификация фигур посредством устранения линий с длиной, ниже пороговой (рис 3.4). При обнаружении границ, алгоритм обнаружения может присвоить одной реальной вершине фигуры несколько вершин. Таким образом получается, что, например, четырехугольник представлен набором из пяти точек. Расстояние между двумя соседними точками которого ниже порогового. Усреднив эти две точки, можно получить четырехугольник, пригодный для дальнейшей фильтрации

.

Рисунок 3.4 Слияние вершин

2. Модификация фигур посредством разбиения фигур с количеством вершин, кратным двум и большим двух на набор четырехугольников. Как было сказано ранее, для работы алгоритма локализации необходим набор из трех прямоугольников. Но две стороны куба могут быть распознаны как один шестиугольник. Для получения из этого шестиугольника двух четырехугольников, необходима данная модификация.

Рисунок 3.5 Воронка фильтраций и модификаций

3. Слияние схожих фигур (рис 3.6). При определении, для одной реальной геометрической фигуры алгоритм выдает набор из нескольких схожих фигур, координаты которых в разной степени приближены к координатам реальной геометрической фигуры. Для получения более точных значений, должна высчитываться усредненная фигура с исключением математических выбросов.

Рисунок 3.6 Воронка фильтраций и модификаций

4. Фильтрация фигур с количеством вершин не равным четырем. Для того, чтобы алгоритм локализации получил набор из прямоугольников, необходимо удалить из набора все треугольники, пятиугольники и прочие фигуры, не являющиеся четырехугольниками.

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

6. Фильтрация по выпуклости фигур (рис. 3.7). Куб на изображении может иметь только выпуклые четырехугольники в качестве сторон. Все прочие фигуры должны быть удалены из набора.

Рисунок 3.7 Невыпуклая фигура

7. Фильтрация по количеству. Грубая фильтрация, оставляющая только три фигуры, необходимые алгоритму локализации.

Таким образом, алгоритм должен получать на вход набор фигур.

Алгоритм должен возвращать набор из трех или менее фигур.

Ниже будет описана разработка каждого из алгоритмов выполнения алгоритма фильтрации и модификации набора фигур.

3.2.1 Разработка алгоритма усреднения вершин

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

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

3.2.2 Разработка алгоритма слияния схожих фигур

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

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

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

3.2.3 Разработка алгоритма фильтрации по количеству вершин

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

3.2.4 Разработка алгоритма фильтрации по размеру фигур

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

3.2.4 Разработка алгоритма фильтрации по выпуклости фигур

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

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

3.3 Разработка алгоритма локализации объекта с заданными параметрами и координатами на изображении

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

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

· Верхняя задняя;

· верхняя правая;

· верхняя фронтальная;

· верхняя левая;

· нижняя задняя;

· нижняя правая;

· нижняя фронтальная;

· нижняя левая.

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

Рисунок 3.8. Слияние точек вершин куба

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

...

Подобные документы

  • Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.

    дипломная работа [1,0 M], добавлен 16.06.2013

  • Задача локализации проекции шаблона на изображении. Свойства биномиального распределения. Определение проекций опорных точек в области локализации. Понижение разрешения и дифференцирование локализованного изображения. Поиск вероятных приближенных решений.

    дипломная работа [3,5 M], добавлен 06.11.2011

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Блок-схема алгоритма Флойда. Разработка его псевдокода в программе Microsoft Visual Studio. Программа реализации алгоритмов Беллмана-Форда. Анализ трудоемкости роста функции. Протокол тестирования правильности работы программы по алгоритму Флойда.

    курсовая работа [653,5 K], добавлен 18.02.2013

  • Состав и принцип работы аппаратуры. Выбор параметров корреляционного анализа и Фурье-анализа. Разработка и применение алгоритма корреляционного анализа. Реализация алгоритма Фурье-анализа на языке С++ и алгоритма корреляционного анализа на языке С#.

    дипломная работа [4,6 M], добавлен 30.11.2016

  • Определение эффективности методов RSS и TOA, их сравнение в позиционировании абонентских станций внутри помещений и на открытых пространствах. Принципы локализации абонентов в стандарте IEEE 802.11. Использование систем локализации объектов в сетях Wi-Fi.

    курсовая работа [1,5 M], добавлен 07.12.2013

  • Программная реализация алгоритма составления каталога товаров из сети электронных магазинов с выявлением одинаковых, используя сравнение по изображениям. SURF-метод в основе алгоритма: поиск особых точек на изображении и составление их дескрипторов.

    дипломная работа [3,1 M], добавлен 27.06.2012

  • Метод установления границ начального отрезка локализации минимума. Метод золотого сечения. Оценивание точки минимума внутри найденного отрезка локализации. Программная реализация метода Свенна на языке C++. Текст программы нахождения точки минимума.

    контрольная работа [47,3 K], добавлен 27.01.2011

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

    научная работа [94,3 K], добавлен 29.01.2009

  • Содержательная часть языка программирования С++. Правила автоматной грамматики, классификация Хомского. Принцип построения графов, разработка проекта средствами среды программирования Builder C++. Алгоритм синтаксического анализа оператора вывода.

    контрольная работа [228,4 K], добавлен 22.05.2012

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

    курсовая работа [332,3 K], добавлен 09.12.2014

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

    курсовая работа [567,6 K], добавлен 13.10.2014

  • Выбор языка программирования и его обоснование. Определение системных требований. Схема алгоритма и программа на языке Qbasic. Разработка руководства пользователя. Способы конструирования программ. Особенности и принципы динамического программирования.

    курсовая работа [398,8 K], добавлен 21.01.2014

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

    курсовая работа [1,5 M], добавлен 07.07.2013

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Разработка программы, осуществляющей контроль за своевременностью обновления программного обеспечения с помощью рассылки электронных писем. Анализ требований к системе; выбор метода решения, алгоритма, выбор языка программирования, описание программы.

    дипломная работа [5,6 M], добавлен 29.06.2011

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

    презентация [243,7 K], добавлен 07.10.2013

  • Алгоритм реализации векторного пространства, метод фильтрации шумов на изображении. Формально-логическая модель разработки программного обеспечения, выбор инструментальных средств его реализации. Анализ точности совпадения распознанного изображения.

    дипломная работа [2,7 M], добавлен 13.02.2013

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

    дипломная работа [3,6 M], добавлен 16.11.2011

  • Интерфейс OpenMP - системы программирования на масштабирующих SMP-системах. Разработка алгоритмов блока "Эксперт для мультипроцессора" в проекте "Экспериментальная система автоматизации распараллеливания" для генерации вариантов локализации данных.

    дипломная работа [129,8 K], добавлен 15.10.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.