Подсистема подготовки видеопотока к онлайн-трансляции

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    131,2 Кб
  • Опубликовано:
    2016-01-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Подсистема подготовки видеопотока к онлайн-трансляции
















ПОДСИСТЕМА ПОДГОТОВКИ ВИДЕОПОТОКА К ОНАЛАЙН-ТРАНСЛЯЦИИ


Введение

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

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

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

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

Предметной областью данного дипломного проекта является сервис онлайн-трансляции видео.

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

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

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

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

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

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

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

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

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

. Постановка задачи

Предмет исследования: Возможность (целесообразность) применения алгоритмов обработки изображений для подготовки видеопотока к трансляции в реальном времени.

Цель дипломной работы:

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

Для достижения поставленной цели можно выделить следующие задачи:

1.       Провести анализ существующих алгоритмов фильтрации и сегментации изображений.

2.      Выявить наиболее быстрые методы.

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

.        Реализовать разработанные алгоритмы на ЭВМ с использованием языка С++, в среде разработки Visual Studio.

.        Перенести разработанные алгоритмы на ОС Linux.

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

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

1.       Изучение и анализ литературных источников по фильтрации и сегментации изображений.

2.      Изучение и анализ литературных источников по обработке видеопотоков.

.        Изучение документации к открытой библиотеке компьютерного зрения OpenCV.

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

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

шумоподавляющий фильтр

фильтр резкости

фильтр цветокоррекции

компонент сегментации

компонент выделения контуров

компонент интерполяции кадра (изменения разрешения)


2. Техническое задание

         2.1 Введение

        

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

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

         2.2 Основание для разработки

алгоритм видеопоток мобильный сервер

Задание на дипломный проект по специальности «230105 - Программное обеспечение вычислительной техники и автоматизированных систем».

Томский государственный университет систем управления и радиоэлектроники. Факультет систем управления. Кафедра автоматизированных систем управления.

 


         2.3 Назначение разработки


Система онлайн-трансляции разрабатывается в рамках исследования для гранта «Методы и технологии разработки сервис-ориентированных систем анализа и идентификации изображений». Главным вопросом исследования является целесообразность применения распределенных вычислений для ускорения обработки транслируемого видео-потока.

         2.4 Требования к программе

        

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

1.      Клиентское приложение для создания трансляций (мобильные устройства под управлением ОС Android).

2.      Клиентское приложение для просмотра трансляций (мобильные устройства под управлением ОС Android).

.        Серверное приложение для просмотра трансляций через web-интерфейс (сервер под управлением ОС Linux).

.        Планировщик (сервер под управлением ОС Linux).

.        Менеджер потоков (сервер под управлением ОС Linux).

.        Набор сервисов для обработки изображения (узлы обработки/сервер).

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

Требования к функционалу клиентских приложений для создания трансляций

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

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

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

Требования к функционалу клиентских приложений для просмотра трансляций

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

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

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

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

Требования к функционалу web-клиента для просмотра трансляций.

Web-клиент для просмотра трансляций должен предоставлять следующие функции:

1.      Регистрация пользователя в системе.

2.      Авторизация пользователя.

.        Выдача списка текущих трансляций.

.        Выход на трансляцию по прямой ссылке.

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

Требования к функционалу подсистемы обработки видеопотока перед трансляцией на принимающее устройство.

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

1.       Фильтрация адиттивного белого шума.

.         Фильтрация импульсного шума.

.         Фильтр изменяющий резкость изображения.

4.      Фильтр цветокоррекции (осветление, повышение контрастности).

.        Выделение контуров на изображении.

.        Сегментация изображения.

.        Изменение размера кадра (Для передачи видео между устройствами с разными характеристиками).

         Требования к надежности

Разрабатываемая подсистема должна быть устойчива:

1.       к внезапному обрыву связи

2.      к искажению входной информации

.        к отсутствию части входной информации

.        к изменению количества доступных вычислительных узлов

5.      к локальным техническим сбоям на вычислительных узлах

Требования к обеспечению надежного функционирования программного комплекса

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

1.      Организацией бесперебойного питания технических средств.

2.      Использованием лицензионного программного обеспечения.

.        Регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств».

.        регулярным выполнением требований ГОСТ 51188-98. Защита информации. Испытания программных средств на наличие компьютерных вирусов.

Время восстановление после отказа

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

Отказы из-за некорректных действий пользователей системы

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

         Требования к составу и параметрам технических средств

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

Требования к управляющим и вычислительным узлам:

1.      процессор Intel Xeon 5300;

2.      количество процессоров/ядер - 2/8;

.        разрядность - 64;

.        тактовая частота - 2,3 Ггц;

.        не менее 8 Гб оперативной памяти;

.        не менее 160 Гб жесткий диск.

Требования к клиентам под управлением ОС Android:

1.      наличие камеры и (или) микрофона;

2.      наличие подключения к сети Интернет;

.        наличие свободной памяти размером не менее 128 МБ;

.        ОС Android версии не менее 2.3.3.

  Требования к информационной и программной совместимости

Требования к информационным структурам и методам решения

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

Требования к исходным кодам и языкам программирования

Требования к системе:

Требуемая операционная система - Linux

Требуется наличие в системе наиболее распространенных видео кодаков

Требования к языку программирования, компилятору, библиотекам:

Язык написания программы - с /с++

Код должен компилироваться компилятором из коллекции GCC

Не допускается применение платных библиотек с закрытыми исходными кодами

Рекомендуется использовать библиотеку OpenCV

Требования к защите информации и программ

Требования к защите информации и программ не предъявляются.

         Специальные требования

Специальные требования отсутствуют.

         Технико-экономические показатели

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

         Требования к программной документации

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

·              описание всех реализованных фильтров;

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

         2.5 Стадии и этапы разработки


Весь цикл разработки подсистемы обработки делиться на следующие этапы:

) исследование и обоснование стадии создания;

) научно-исследовательская работа;

) разработка и утверждение технического задания;

) разработка алгоритма решения задачи;

) определение формы представления входных и выходных данных;

) разработка структуры программы;

) программирование и отладка программы;

) проведение испытаний системы;

) анализ результатов испытаний;

) оформление рабочей документации;

3. Обзор аналогов

         3.1 Аналоги сервиса видео-трансляции


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

Данный сервис разработан компанией Qik. В январе 2011 года была куплена компанией Skype, которая в свою очередь была куплена компанией Microsoft в мае 2011 года. На данный момент владельцем и разработчиком технологии является Microsoft Skype Division.- это приложения для создания видео трансляций в режиме реального времени и двухсторонних конференций, которое позволяет пользователям транслировать видеопотоки со своих телефонов в сеть Интернет [1].

Данный сервис бесплатно предоставляет клиент для просмотра, создания прямой трансляции и записи до 25 видео в расширении VGA. При регистрации премиум-аккаунта у пользователя появляется возможность посылать и получать видео письма, записывать видео в HD качестве, обращаться в приоритетную службу поддержки, использовать службу Qik Desktop для загрузки и синхронизации видео с разных устройств. На сегодняшний момент данный сервис доступен на платформах Google Android, Apple iOS, BlackBerry, Symbian OS [2].

Ключевым отличием разрабатываемой системы от системы Qik будет предоставление пользователю возможности обработки видео (фильтры, выделение контуров, осветление, затемнение и т.д.).

Проект, разрабатываемый одноименной шведской фирмой, предоставляет возможности транслирования видео с различных платформ (Android, iOS, Symbian) [3]. По своим функциональным возможностям очень близок к Qik.

В данном проекте также нет возможности фильтрации и какой-либо обработки видео на сервере. Также не предоставляется клиент для просмотра трансляций. Соответственно все трансляции необходимо просматривать через web-интерфейс.

         Сервисы видео хостинга на примере Youtube

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

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

         3.2 Аналоги представленных фильтров обработки видео-потока


Свободная утилита для захвата, монтажа и редактирования видеопотока для платформы Windows, лицензированная на условиях GNU General Public License (GPL) [4]. Может использоваться для простых линейных операций над файлами формата видео. Также VirtualDub может использовать встроенные фильтры или подключаемые модули сторонних разработчиков.

В частности, по адресу [5] доступно большое количество модулей, разработанных в лаборатории компьютерной графики ВМиК МГУ. В том числе на сайте представлены фильтры, позволяющие удалять шум с видео, восстанавливать его качество после сжатия, изменять яркость и контрастность, повысить резкость.

Очевидным недостатком утилиты VirtualDub является ее платформозависимость, а также привязанность к определенному формату обрабатываемых файлов - avi.

         Adobe Premiere Pro

Профессиональная программа для монтажа и редактирования видео. Способна изменять яркость и контрастность, размывать и добавлять резкости, работать с цветовым балансом изображения [6]. Основным недостатком являются ее высокие ресурсозатраты, из-за чего последние версии программы не способны работать с 32-х битными системами. Так же к недостаткам можно отнести то, что программа доступна только для операционных систем Windows и Mac OS X.

         Windows Movie Maker

Программа для создания/редактирования видео. Входит в состав клиентских версий ОС windows, позволяет применять к видео простые эффекты, вроде изменения разрешения видеоклипа.

AvideMux - свободная, кроссплатформенная программа для быстрого редактирования видеофайлов (удаления ненужных частей, наложения всевозможных фильтров и последующего кодирования). Поддерживаемые форматы видео AVI, MPEG, MP4/MOV, OGM, ASF/WMV, MKV и FLV, имеется богатый набор фильтров (в их числе фильтры устранения шума и повышения резкости).

4. Выбор технологии реализации и инструментария

         4.1 Требования, выдвигаемые к инструментарию


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

         4.2 Компилятор GCC

(GNU Compiler Collection - Коллекция компиляторов GNU) - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем [7].поддерживается группой программистов со всего мира. GCC является лидером по количеству процессоров и операционных систем, которые он поддерживает.

Будучи официальным компилятором системы GNU, GCC также является главным компилятором для сборки ряда других операционных систем, среди них: различные варианты Linux и BSD, а также ReactOS, Mac OS X, OpenSolaris, NeXTSTEP и BeOS.часто выбирается для разработки программного обеспечения, которое должно работать на большом числе различных аппаратных платформ. Различия между «родными» для каждой из аппаратных платформ компиляторами приводят к трудностям при разработке кода, который бы корректно компилировался разными компиляторами, а кроме того, при использовании различных компиляторов сильно усложняются сборочные скрипты, которые должны собирать ПО для всех аппаратных платформ. При использовании GCC для компиляции кода под разные платформы будет использован один и тот же синтаксический анализатор. Поэтому если удалось собрать программу для одной из целевых платформ, то велика вероятность, что программа нормально соберётся и для других платформ.

Внешний интерфейс GCC является стандартом для компиляторов на платформе UNIX. Пользователь вызывает управляющую программу, которая называется gcc. Она интерпретирует аргументы командной строки, определяет и запускает для каждого входного файла свои компиляторы нужного языка, запускает, если необходимо, ассемблер и компоновщик.версии 4.2.1 и старше выпускался под лицензией GNU General Public License версии 2. Все последующие версии лицензируются по GPL версии 3 [7].

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

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

С момента своего альфа-релиза в январе 1999 года, OpenCV была использована во многих приложениях и научно-исследовательских работах, в том числе: наложение обычных карт и фотографий со спутника, выравнивание документов при сканировании, удаление шума из медицинских изображений, анализ объектов, системы безопасности, автоматическое наблюдение, системы контроля качества на производстве, калибровка камер, а также беспилотные летательные, наземные и подводные аппараты [8].

Библиотека написана на оптимизированном С и может работать с многоядерными процессорами. Также существуют средства позволяющие использовать ее с языками Java, Python, Matlab и др. Является кроссплатформенной, может быть установлена на операционных системах Windows, Linux, Android и Mac OS X.

Библиотека свободна как для академического или коммерческого использования.

Платформы и инструменты, поддерживаемые библиотекой OpenCV [9]:

1.       Microsoft Windows: компиляторы Microsoft Visual C++ (6.0,.NET 2003), Intel Compiler, Borland C++, Mingw (GCC 3.x).

2.      Linux: GCC (2.9x, 3.x), Intel Compiler: «./configure-make-make install», RPM (spec файл включен в поставку).

.        Linux: GCC (2.9x, 3.x), Intel Compiler: «./configure-make-make install», RPM (spec файл включен в поставку).

.        Mac OS X: GCC (3.x, 4.x).

.        Android.

.        iOS - неофициально.

Средства GUI, захват видео:

1.       Microsoft Windows: DirectShow, VfW, MIL, CMU1394.

2.      Linux: V4L2, DC1394, FFMPEG.

.        Mac OS X: QuickTime.

        


5. Реализация системы

.1 Обзор существующих алгоритмов обработки изображений

Цифровой шум - это дефект изображения, представляющий собой случайным образом расположенные области, имеющие размеры близкие к размеру пикселя и отличающиеся от исходного изображения яркостью или цветом. Шумоподавление играет важную роль при передаче, обработке и сжатии видеопоследовательностей и изображений [10].

Шум на видео может возникать по нескольким причинам [12]:

1.       Неидеальное оборудование для захвата видео.

2.      Плохие условия съемки - например, ночная фото/видеосъемка, съемка в ненастную погоду.

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

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

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

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

Белый Гауссовский шум

Одним из самых распространенных шумов является адиттивный гауссовский шум, который характеризуется добавлением к каждому пикселю изображения значений с нормальным распределением и с нулевым средним значением. Термин «аддитивный» означает, что данный вид шума суммируется с полезным сигналом. Возникает при плохих условиях приема сигнала [12].

Цифровой шум

Причина возникновения цифрового шума чаще всего связана с особенностями аппаратуры, используемой для съемки - обычно с недостаточной светочувствительностью матрицы. Данный вид шума характеризуется заменой части пикселей на изображении значениями фиксированной или случайной величины [13]. Если яркость точек примерно равна, цифровой шум также называют «импульсным». Если интенсивность точек может меняться от черного к белому, такой шум называют шумом типа «соль и перец».

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

Комбинированный шум

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

Дефекты сканирования изображений

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

  Алгоритмы удаления шума

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

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

Линейное усреднение пикселей

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

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

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

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

Фильтр Гаусса

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

(5.1)

Где параметр σ задает степень размытия, а параметр A обеспечивает нормировку [12]. В итоге центральный пиксель рассматриваемой области будет имеет наибольшее значение, соответствующее пику распределения Гаусса. Значения остальных элементов будут оказывать все меньшее влияние по мере удаления от центра.

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

 (5.2)


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

Алгоритм 2Dcleaner

Заменяет каждый пиксель изображения средним значением соседних пикселей, взятых в области ограниченной некоторым радиусом. При этом рассматриваются не все точки, попавшие в радиус, а только те, значение которых отличается от центрального пикселя не более чем на некоторую заранее заданную величину (порог) [14]. Благодаря этому равномерно окрашенные области размываются сильнее, чем резкие границы объектов. Это позволяет снизить низкоуровневый шум на изображении, вместе с тем сохранив нетронутыми мелкие детали.

Медианная фильтрация

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

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

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

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

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

         Повышение резкости изображения

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

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

Рисунок 5.1 - Иллюстрация понятия «резкость контура»

Резкость изображения зависит от величины перепада яркости между областями (W), образующими его контуры, и от резкости изменения этого перепада (H).

Прием нерезкого маскирования был впервые применен еще для обработки пленочных фотографий [17]. Приспособленный к цифровой обработке изображений метод мало отличается от оригинального: из изображения вычитается так называемая “нерезкая маска” - его размытая и инвертированная копия. Итогом становится новое изображение, содержащее только светлые контуры оригинала. Темные контуры можно получить простым инвертированием результата.

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

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

Рисунок 5.2 - Результат применение нерезкого маскирования

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

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

Главным элементом свертки является маска свертки - это матрица (произвольного размера и отношения сторон). Часто такую маску называют фильтром, ядром, шаблоном или окном. Значения элементов матрицы принято называть коэффициентами.

Чаще всего в качестве ядра свертки используется квадратная матрица.

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

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

Ядро контрастоповышающего фильтра имеет значение, большее 1, в точке (0, 0), при общей сумме всех значений, равной 1. Например, контрастоповышающим фильтром является фильтры с ядрами, задаваемыми матрицами [18]:


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

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

         Компенсация разности освещения

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

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

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

Алгоритм Single Scale Retinex

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

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

Этим требованиям удовлетворяет алгоритм Single Scale Retinex, основанный на принципах устройства рецепторов сетчатки глаза. Основная цель алгоритма - разделить изображение на компоненты, отвечающие отдельно за освещенность и детали. Так как проблемы в изображении связаны с освещением сцены, то, получив компоненту, отвечающую за освещение, становится возможным преобразовать её отдельно от изображения, тем самым значительно повысив его качество.

Любое изображение можно представить, как произведение высокочастотного сигнала (отражение - R) и низкочастотного сигнала (освещенность - I) [19].

(x,y) = I(x,y) * R(x,y)(5.6)

Рисунок 5.3 - Представление изображения в алгоритме Retinex.

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

(x,y)=G*S(x,y)

где G - Гауссовский фильтр

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


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

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

Гамма-коррекция

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

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


где I - яркость пиксела на экране дисплея (или яркости составляющих цвета, красной, зелёной и синей по отдельности), - численное значение цвета от 0 до 1, а

γ - показатель гамма-коррекции [20].

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

По умолчанию параметр γ равен 1, что соответствует линейной характеристике передачи уровней и отсутствию гамма - коррекции.

         Выделение контуров изображения

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

Рисунок 5.4 - Изменение вида степенной функции в зависимости от параметра γ

Контур объекта - это список точек, которые представляют собой некую кривую на изображении, отделяющую объект от фона. Чаще всего вдоль контура наблюдается скачок по яркости или цвету [8].

Для упрощения поиска контуров на изображении можно предварительно провести его бинаризацию.

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

Фильтр Собеля применяется последовательно к каждому пикселю, вычисляя приближенное значение градиента его яркости. Градиент для каждой точки изображения (функция яркости) - это двумерный вектор, компонентами которого являются производные яркости изображения по горизонтали и вертикали [21].


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

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

Для вычисления приближенных значений производных в каждой точке изображения фильтр Собеля использует свертку с матрицей размером 3×3.

Коэффициенты матрицы Собеля [21]:


Итоговая величина градиента вычисляется путем аппроксимируции по формуле:

|G| = |Gx| + |Gy|

Детектор границ Кенни

Хотя работа Кенни была проведена на заре компьютерного зрения (1986), детектор границ Кенни до сих пор является одним из лучших детекторов. Метод Кенни является многоэтапным алгоритмом, и включает в себя следующие шаги [22]:

1.       Очистка изображения от шума и лишних деталей.

2.      Очистка изображения от шума и лишних деталей.

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

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

.        Двойная пороговая фильтрация. Потенциальные границы определяются порогами.

.        Трассировка контуров (Связать края в контуры)

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

=arctan(Gx/Gy)

Угол направления границы округляется до одной из четырех углов, представляющих вертикаль, горизонталь и две диагонали (например, 0, 45, 90 и 135 градусов). Границами объявляются только те пиксели, в которых достигается локальный максимум градиента в направлении вектора градиента. Значение направления должно быть кратно 45°. После подавления не-максимумов, края становятся более точными и тонкими.

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

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

         Сегментация

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

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

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

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

§   однородность регионов (однородность цвета или текстуры);

§   непохожесть соседних регионов;

§   гладкость границы региона;

§   маленькое количество мелких «дырок» внутри регионов [23];

Пороговая сегментация

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

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

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


где x0 - единственный параметр обработки, называемый порогом. Уровни выходной яркости y0 и y1, могут быть произвольными, они лишь выполняют функции меток, при помощи которых осуществляется разметка получаемой карты - отнесение ее точек к классам К1 или К2 соответственно. Если образуемый препарат подготавливается для визуального восприятия, то часто их значения соответствуют уровням черного и белого. Если существует более двух классов, то при пороговой обработке должно быть задано семейство порогов, отделяющих яркости различных классов друг от друга.

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

Сегментация основанная на разбиении графа

Методы теории графов - одно из наиболее активно развивающихся направлений в сегментации изображений.

Общая идея методов этой группы следующая. Изображение представляется в виде взвешенного графа, с вершинами в точках изображения. Вес ребра графа отражает сходство точек в некотором смысле (расстояние между точками по некоторой метрике). Разбиение изображения моделируется разрезами графа [23].

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

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

         Интерполяция

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

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

Интерполяция методом ближайшего соседа

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

Билинейная интерполяция

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

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

Бикубическая интерполяция идёт на один шаг дальше билинейной, рассматривая массив из 4x4 окружающих пикселей - всего 16. Поскольку они находятся на разных расстояниях от неизвестного пикселя, ближайшие пиксели получают при расчёте больший вес. Бикубическая интерполяция производит значительно более резкие изображения, чем предыдущие два метода, и возможно, является оптимальной по соотношению времени обработки и качества на выходе. По этой причине она стала стандартной для многих программ редактирования изображений (включая Adobe Photoshop), драйверов принтеров и встроенной интерполяции камер [26].

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

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

         5.2 Обоснование выбора алгоритмов, используемых в подсистеме


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

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

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

1.       Для удаление “аддитивного белого” шума был выбран алгоритм Гаусса. Как наиболее расространенный метод шумоподавления он очень хорошо оптимизирован и соответственно обладает высокой скорость работы

2.      Для удаление “аддитивного белого” шума был выбран алгоритм Гаусса. Как наиболее распространенный метод шумоподавления он очень хорошо оптимизирован и соответственно обладает высокой скорость работы

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

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

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

.        В качестве метода выделение контуров был выбран алгоритм Кенни, так как он дает более качественные результаты, чем фильтр Собеля.

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

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

Установка и конфигурирование используемых программных средств.

На используемом вычислительном кластере была установлена система GNU Linux (Ubuntu)

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

Установка CMake

Сборка проекта осуществляется с помощью CMake (требуется версия 2.6 или выше). Установить ее можно командой:get install cmake

Так же могут понадобиться следующие библиотеки:essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev

Установка ffmpeg

Чтобы opencv мог корректно обрабатывать видео-файлы, необходимо установить библиотеку ffmpeg. Это делается следующими командами:

) Скачивание исходных кодов библиотеки #"865762.files/image015.jpg">)

(7.1)

где k - индекс (номер) эксперта;- индекс (номер) программного комплекса;- индекс (номер) программного компонента.

Оценку проводит один эксперт. Результаты экспертизы приведены в таблице 7.1

Таблица 7.1 - Экспертная оценка размерности программной системы

Программные комплексы и компоненты КПС

Пес.

Реал.

Опт.

Средн.

 

Фильтр устранения шума

 

Считывание данных

50

30

32

 

Обработка данных

50

30

20

32

 

Отправка данных

18

18

18

18

 

Сохранение данных

30

24

20

24

 

Фильтр изменения четкости

 

Считывание данных

50

30

20

31

Обработка данных

60

48

35

47

Отправка данных

18

18

18

18

Сохранение данных

30

24

20

25

Фильтр цветокоррекции

 

Считывание данных

50

30

20

32

Преобразование данных

40

30

20

30

Обработка данных

120

108

80

105

Отправка данных

30

24

20

24

Сохранение данных

45

30

20

31

Интерполирующий фильтр

 

Считывание данных

50

30

20

32

Обработка данных

30

24

20

24

Пост-обработка данных

18

18

18

18

Отправка данных

18

18

18

18

Сохранение данных

45

30

20

31

Компонент нахождения контуров





Считывание данных

50

30

20

32

Подготовка данных

30

24

20

24

Обработка данных

50

36

25

37

Отправка данных

18

18

18

18

Сохранение данных

36

24

18

25

Компонент сегментации





Считывание данных

50

30

20

32

Подготовка данных

18

18

18

18

Создание графа изображения

120

96

80

98

Сегментация графа

150

114

70

112

Сохранение данных

30

24

20

24


Оценка трудозатрат, длительности и средней численности разработчиков при реализации проекта основывается на согласовании между разработчиком и заказчиком производительности труда программиста P. Согласно нормативам трудоемкости разработки программ базовой модели COCOMO (см. таблицу 7.2) примем P = 240 строк/чел.-месяц (третий тип (ППП), с количеством строк до 30 тыс.).

Таблица 7.2 - Нормативы трудоемкости разработки программ

Класс сложности ПС

Размеры ПС


до 30 тыс. строк

до 500 тыс. строк

Первый тип (КПС)

до 140 строк/чел.-месяц

до 80 строк/чел.-месяц

Второй тип (ИПС)

до 220 строк/чел.-месяц

до 160 строк/чел.-месяц

Третий тип (ППП)

до 250 строк/чел.-месяц

до 250 строк/чел.-месяц


Трудозатраты на разработку определяются по формуле:

=R/P, (7.2)

где Т - длительность разработки системы;- оценка значения трудозатрат;- производительность труда программиста.

По формуле (7.2) вычисляем:

T=992/250=3.97

При заданной длительности разработки (3 месяца) среднюю численность персонала определяем по формуле:

=T/D, (7.3)

где N - средняя численность специалистов;- срок разработки.

По формуле (7.3) вычисляем:

N=3.97/3=1.32

Полученные основные технико-экономические показатели разработки:

1.      Трудозатраты на разработку системы за 3 месяца составят 3,97 человеко-месяцев.

2.      Необходимые людские ресурсы при реализации системы за 3 месяцев составят 1,32 чел.

         7.3 Определение договорной цены на создание программной системы

        

         Определение фонда оплаты труда на разработку и комплексные испытания программной системы

В основу определения фонда оплаты труда положены:

1.       длительность реализации каждого этапа жизненного цикла проекта;

2.      количество и качественный состав специалистов, привлекаемых на каждом этапе проекта;

.        базовая месячная ставка специалиста программиста.

Исходные данные, полученные с помощью метода определения ТЭП методом экспертных оценок:

трудоемкость - 3,97 чел.-месяцев;

длительность - 3 месяца;

средняя численность специалистов 1,32 человек;

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

= T * ai / D * bi, i = 1..5 (7.4)

где T - трудозатраты на разработку;- длительность разработки;и bi - коэффициенты из таблицы 7.4.

Таблица средней численности сотрудников, занятых на каждом из этапов создания рассматриваемого пакета программ (ППП), формируется используя статистические данные табл. 7.3, взятые из руководства [27]

Таблица 7.3 - Распределение трудозатрат и длительности по основным этапам жизненного цикла создания ПС.

Название этапа

Трудозатраты (%), ai

Длительность (%), bi

1

Анализ требований

10

10

2

Определение спецификаций

10

10

3

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

15

15

4

Кодирование

20

20

5

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

45

45



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

Этапы жизненного цикла

Трудозатраты (чел./мес.)

Численность сотрудников, чел

Длительность, месяцев

Анализ требований, предъявляемых к системе

0.4

1.32

0,3

Определение спецификаций

0.4

1.32

0,3

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

0.6

1.32

0,45

Кодирование

0.79

1.32

0.6

Тестирование (автономное и комплексное)

1.79

1.32

1.35


Относительное распределение численности специалистов на каждом этапов жизненного цикла создания программной системы приведены в таблице 7.5.

Таблица 7.5 - Относительное распределение численности специалистов по этапам

Название этапа

Аналитик

Программист

Тех. специалист

Анализ требований

40

20

40

Определение спецификаций

60

20

20

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

35

35

30

Кодирование

10

65

25

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

15

60

25


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

= pij * Ni / 100, i = 1..5, j = 1..3 (7.5)

где pij - доля (%) специалистов j-го типа привлекаемых на i-м этапе.

Таблица 7.6 - Численность каждого типа специалистов на каждого из этапов

Название этапа

Аналитик

Программист

Тех. специалист

Анализ требований

0.53

0.26

0.53

Определение спецификаций

0.79

0.26

0.26

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

0.46

0.46

0.4

Кодирование

0.13

0.86

0.33

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

0.2

0.79

0.33


Примем размер ставки программиста равной 20 тысяч рублей, как рыночную базовую ставку программиста в данном регионе. Тогда в соответствии с принятыми соотношениями (соотношение месячной ставки аналитика составляет как 1:1,3, а технического специалиста как 1:0.7) ставки участников разработки будут:

1.      базовая ставка программиста 20 000 руб;

2.      ставка руководителя 26 000 руб;

.        ставка техника 14 000 руб.

Результаты расчета фонда зарплаты сведены в таблицу 7.7:

Таблица 7.7 - расчет фонда заработной платы работников.

Название этапа

Аналитик

Программист

Тех. специалист

ФЗП по этапу

Анализ требований

4126.72

1587.2

2222.08

7936

Определение спецификаций

6190

1587.2

1111.04

8888.32

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

5416.32

4166.4

2499.84

12082.56

Кодирование

2063.36

10316.8

2777.6

15157.76

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

6963.84

21427.2

6429.6

34640.64

ИТОГО




78705.28

 

         Структура договорной цены на программное обеспечение

Предположим, что стоимость приобретенной для выполнения продукта компьютерной техники (программно-аппаратный комплекс) составит 50 тыс. рублей. Тогда амортизационные отчисления для средств вычислительной техники согласно действующему законодательству будут производиться в течении 5 лет, т.е. составят 50000/5 = 10000 рублей в год. Так как срок разработки системы - полгода, итоговые амортизационные выплаты составят 5000 рублей. Смета затрат и общая стоимость проекта сведены в таблицу 7.8:

Таблица 7.8 - Смета затрат на разработку и внедрение проекта.

Наименование статей расходов

Сумма (руб.)

Заработная плата

78705.28

Единый социальный налог

27546.85

Увеличение стоимости основных средств (2 компьютера по цене 30 тыс. рублей(сервер) и 20 тыс. рублей(рабочая станция))

50000

Амортизация программно-промышленного комплекса

5000

Услуги связи (2000р.*3мес)

6000

Прочие расходы (1000р.*3мес)

3000

Итого прямые расходы

170252.13

Фонд развития производства (10% от прямых затрат)

17025.21

Накладные расходы (12% от прямых затрат)

20430.26

Всего расходов

207707.6

Налог на добавленную стоимость (18% от общей стоимости проекта)

37387.37

ИТОГО ДОГОВОРНАЯ ЦЕНА


Договорная цена на разработку и внедрение пакета подпрограмм “фильтры изображений” составляет: 245095 рублей.

.4 Расчет точки безубыточности

Исследовав рынок программного обеспечения, экспертами отдела маркетинга установлено, что рекомендуемая стоимость  одной копии системы будет составлять порядка 13000 рублей на один выпускаемый продукт.

Основная зарплата специалистов отдела маркетинга (маркетолог, экономист) по нормам, установленным в организации, составляет 33% от стоимости тиражируемого продукта (4290 руб. в месяц).

Фиксированные издержки приведены в таблице 7.9

Таблица 7.9 - Постоянные (фиксированные) расходы

Наименование расходов

Сумма (руб.)

Плановое ежемесячное гашение кредита ( 245095 руб. / 3 мес.)

81698.33

Выплата среднего банковского процента - 20% годовых

16339.67

Амортизация программно-аппаратного комплекса отдела маркетинга (компьютер - 20000 руб.)

6667,00

Прочие расходы

1000,00

ИТОГО

105705,00


Переменные издержки отдела маркетинга, занимающегося непосредственно тиражированием программного продукта, рассчитываются на единицу продукции (таблица 7.10).

Таблица 7.10 - Переменные издержки (отдел маркетинга)

Наименование расходов

Сумма (руб.)

Основная зарплата специалистов (33% от стоимости тиражируемого продукта)

4290,00

Страховые взносы (34%)

1459,00

Комплектующие и расходные материалы (картриджи, тонер, бумага и т.д.)

500,00

Накладные расходы отдела маркетинга (услуги связи, Интернет, телефон и т.д.)

500,00

ИТОГО

6749,00


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

         7.5 Выводы по экономическому разделу


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

Таблица 7.11 - Основные экономические показатели проекта

Показатель

Значение

Затраты на разработку проекта, руб.

926240

Требуемый срок разработки, мес.

6

Количество человек необходимых для выполнения проекта за 3 мес., чел.

1,32




8. Обеспечение безопасности жизнедеятельности

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

.1 Описание рабочего помещения

Рабочее помещение располагается по адресу: ул. Вершинина, 74 (корпус ФЭТ ТУСУР), аудитория 435 (4-й этаж).

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

В рабочем помещении находятся 11 ЭВМ (на схеме обозначены номерами от 1 до 11), каждое на отдельном рабочем месте, 5 у одной стены, перпендикулярной окну, 5 у противоположной, и 1 напротив окон. Схема аудитории представлена на рис.1.

Электропитание всех компьютеров контролируется с щитка, расположенного у двери. Так же из электроприборов в кабинете присутствуют кондиционер и проектор. Рабочее место дипломника обозначено на схеме как «РМ 9». Площадь помещения составляет 40 м2, длина аудитории составляет 8 метров, ширина 5 метров, высота 3 метра. Таким образом объем составляет 120 м3. На одно рабочее место отводится площадь 3,6 м2, а объем 10,9 м3. Данные числа не удовлетворяют нормативу при использовании жидкокристаллических мониторов. Согласно [БЖД-1] площадь на одно рабочее место составляет 4,5 м2.

Рисунок 8.1 План-схема рабочего помещения

.2 Требования к ПК

Согласно ГОСТ 12.0.003-74, при работе на ПЭВМ пользователь в той или иной мере подвержен влиянию следующих вредных производственных факторов:

ñ  повышенная ионизация воздуха;

ñ  повышенный уровень статического электричества;

ñ  повышенный уровень электромагнитных излучений;

ñ  повышенная напряженность электрического поля;

ñ  повышенная контрастность и пульсация светового потока;

ñ  повышенный уровень ультрафиолетовой и инфракрасной радиации;

ñ  повышенный уровень шума и вибрации;

ñ  нервно-эмоциональная напряженность.

Чтобы избежать, или по возможности уменьшить уровень негативных воздействий на человека, необходимо использовать только те ПЭВМ, которые соответствуют санитарным нормам и правилам СанПиН 2.2.2/2.4.1340-03 «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы» [28].

ПЭВМ стандартной комплектации состоит из следующих частей: монитор, системный блок, клавиатура и средства оргтехники.

Конструкция монитора (видеодисплейного терминала - ВДТ) должна обеспечивать возможность поворота корпуса в горизонтальной и вертикальной плоскости с фиксацией в заданном положении для обеспечения фронтального наблюдения экрана. Дизайн мониторов должен предусматривать окраску в спокойные мягкие тона с диффузным рассеиванием света. Корпус монитора и ПЭВМ, клавиатура должны иметь матовую поверхность одного цвета с коэффициентом отражения 0,4-0,6 и не иметь блестящих деталей, способных создавать блики. Конструкция ВДТ должна предусматривать наличие ручек регулировки яркости и контраста, обеспечивающие возможность регулировки этих параметров от минимальных до максимальных значений.

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

Допустимые визуальные параметры ВДТ приведены в таблице 8.1.


Таблица 8.1 - Визуальные эргономические параметры ВДТ и их пределы

Наименование параметров

мин.(не менее)

макс.(не более)

Яркость знака (фона), кд/кв. м. (измеренная в темноте)

35

120

Внешняя освещенность экрана, лк

100

250

Угловой размер знака, угл. Мин.

16

60

Контраст (для монохромных ВДТ)

3:1

1,5:1

Временная нестабильность изображения (мерцание)

Не должна быть зафиксированна 90% наблюдателей


При активном рабочем состоянии эксплуатации ПЭВМ и ВДТ должны соответствовать стандартам ССБТ и нижеуказанным нормативам.

ñ  ГОСТ Р 50948-98. Средства отображения информации индивидуального пользования. Общие эргономические требования и требования безопасности.

ñ  ГОСТ 50923-96. Дисплеи. Рабочее место оператора. Общие эргономические требования к производственной среде. Методы измерения.

ñ  СанПиН 2.2.2.542-96. Гигиенические требования к видеодисплейным терминалам, ПЭВМ и организация работы.

Другой неотъемлемой частью ПЭВМ, оказывающей заметное влияние на удобство пользователя, является клавиатура. Она должна иметь опорное приспособление, у которого есть возможность изменять угол наклона поверхности клавиатуры в пределах от 50 до 150. Средний ряд клавиш должен иметь высоту не более 30 мм. Клавиши, часто используемые, должны находиться в центре, редко же используемые - сверху и слева. Минимальный размер клавиш - 13 мм, оптимальный - 15 мм. Функциональные группы клавиш должны быть выделены цветом, формой и местом расположения. Расстояние между клавишами не должно превышать 3 мм.

Требования к помещению для работы с ПК и организация рабочего места

Требования к помещениям для работы с ПК

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

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

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

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

В помещении должны находиться аптечка первой медицинской помощи, углекислотный огнетушитель для тушения пожара [28].

Требования к организации рабочих мест пользователей ПК

В помещениях культурно-развлекательных учреждений и с ПК на базе жидкокристаллических или плазменных экранов площадь на одно рабочее место должна составлять не менее 4,5 м2. [29].

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

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

Рабочие места с ПК для выполнения творческой работы, требующей значительного умственного напряжения или высокой концентрации внимания, рекомендуется изолировать друг от друга перегородками высотой 1,5-2,0 м.

Экран монитора должен находиться от глаз пользователя на расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов. Клавиатура располагается на поверхности стола на расстоянии 100-300 мм от края.

Рабочий стол может быть любой конструкции, отвечающей современным требованиям эргономики и позволяющей удобно разместить на рабочей поверхности оборудование с учетом его количества, размеров и характера выполняемой работы. Целесообразно применение столов, имеющих отдельную от основной столешницы специальную рабочую поверхность для размещения клавиатуры. Используются рабочие столы с регулируемой и нерегулируемой высотой рабочей поверхности. При отсутствии регулировки высота стола должна быть в пределах от 680 до 800 мм [30].

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

Требования к микроклимату на рабочих местах, оборудованных ПК

Работа инженера-программиста относится к категории умственного труда и по степени физической тяжести относится к категории легких работ - Ia (работа производится сидя и не требует физического напряжения, при которых расход энергии составляет до 120 ккал/час.)

На рабочем месте пользователей должны обеспечиваться оптимальные параметры микроклимата. На работах, производимых сидя и не требующих физического напряжения, температура воздуха должна быть в холодный период года от 22 до 24 оС, теплый период года - от 23 до 25 оС. Относительная влажность воздуха на постоянных рабочих местах должна составлять 40-60%, скорость движения воздуха должна быть 0,1 м/с. Для повышения влажности воздуха в помещениях следует применять увлажнители воздуха.

Ионный состав воздуха должен содержать следующее количество отрицательных и положительных аэроионов; минимально необходимый уровень 600 и 400 ионов в 1 см3 воздуха; оптимальный уровень 3 000-5 000 и 1 500-3 000 ионов в 1 см3 воздуха; максимально допустимый - 50 000 ионов в 1 см3 воздуха [31].

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

Требования к уровню шума и вибрации на рабочих местах, оборудованных ПК

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

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

При выполнении основной работы на мониторах и ПЭВМ (диспетчерские, операторские, залы вычислительной техники и т. д.), где работают инженерно-технические работники, уровень шума не должен превышать 60 дБА, в помещениях операторов ЭВМ (без дисплеев) - 65 дБА, на рабочих местах в помещениях, где размещаются шумные агрегаты вычислительных машин - 75 дБА.

При выполнении работ с использованием ПЭВМ в производственных помещениях уровень вибрации не должен превышать допустимых значений вибрации для рабочих мест (категория 3, тип “в”) в соответствии с действующими санитарно-эпидемиологическими нормативами [31].

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

Требования к освещению рабочих мест, оборудованных ПК

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

Освещенность на поверхности стола в зоне размещения документа должна быть 300-500 лк. Допускается установка светильников местного освещения для подсветки документов. Местное освещение не должно создавать бликов на поверхности экрана и увеличивать освещенность экрана более 300 лк. Прямую блескость от источников освещения следует ограничить. Яркость светящихся поверхностей (окна, светильники), находящихся в поле зрения, должна быть не более 200 кд/м2.

Отраженная блескость на рабочих поверхностях ограничивается за счет правильного выбора светильника и расположения рабочих мест по отношению к естественному источнику света [28]. Яркость бликов на экране монитора не должна превышать 40 кд/м2. Показатель ослепленности для источников общего искусственного освещения в помещениях должен быть не более 20, показатель дискомфорта в административно-общественных помещениях не более 40. Соотношение яркости между рабочими поверхностями не должно превышать 3:1 - 5:1, а между рабочими поверхностями и поверхностями стен и оборудования 10:1.

Для искусственного освещения помещений с персональными компьютерами следует применять светильники типа ЛПО36 с зеркализованными решетками, укомплектованные высокочастотными пускорегулирующими аппаратами. Допускается применять светильники прямого света, преимущественно отраженного света типа ЛПО13, ЛПО5, ЛСО4, ЛПО34, ЛПО31 с люминисцентными лампами типа ЛБ. Допускается применение светильников местного освещения с лампами накаливания. Светильники должны располагаться в виде сплошных или прерывистых линий сбоку от рабочих мест параллельно линии зрения пользователя при разном расположении компьютеров. При периметральном расположении - линии светильников должны располагаться локализованно над рабочим столом ближе к его переднему краю, обращенному к оператору. Защитный угол светильников должен быть не менее 40 градусов. Светильники местного освещения должны иметь непросвечивающийся отражатель с защитным углом не менее 40 градусов.

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


Заключение

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

В процессе реализации сервиса онлайн-трансляции «StreamME» возникла необходимость повышения качества, транслируемого видео-потока с целью повысить комфортность использования сервиса. Необходимые корректирующие алгоритмы было решено реализовать в виде отдельных программных компонент, каждый из которых представлял бы собой фильтр, устраняющий один из распространенных негативных эффектов. Требования к разрабатываемым фильтрам включали в себя устранение шума, изменение контрастности, цветокоррекцию, интерполяцию, сегментацию и выделение контуров изображения. Такая обработка могла быть осуществлена только при наличии больших вычислительных мощностей, из-за чего фильтры решено было разместить на узлах вычислительного кластера кафедры АСУ.

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

В результате выполнения дипломного проекта была изучена библиотека OpenCV, рассмотрены основные методы и алгоритмы обработки изображений. Выделены и использованы приемлемые подходы для разработки программного обеспечения, то есть достаточно простые, быстрые и обеспечивающие эффективную фильтрацию. Выполнена поэтапная программная реализация выбранных алгоритмов повышения качества изображений. Реализация выполнена на языке С++ с использованием библиотеки OpenCV (Open Source Computer Vision)

Сервис видео-трансляции и конкретно разработанные фильтры работают под управлением операционных систем семейства GNU/Linux. В состав подсистемы подготовки видео к трансляции входят следующие компоненты:

1)  фильтр Гаусса;

2)      медианный фильтр;

3)      фильтр резкости;

4)      фильтр цветокоррекции;

5)      компонент сегментации;

6)      компонент выделения контуров;

7)      компонент интерполяции кадра (изменение разрешения).

В ходе выполнения выпускной квалификационной работы были решены все поставленные задачи:

1)      проведено исследование аналогов, определены достоинства и недостатки на основании которых было принято решение о необходимости разработки нового программного обеспечения;

)        составлено техническое задание, согласно которому были выделены особенности проектируемой подсистемы;

3)      произведен анализ существующих алгоритмов улучшения качества изображений;

)        на основании этого анализа для исключения каждого негативного фактора был выбран определенный метод обработки;

)        на основании выбранных методов были разработаны программные фильтры на языке С++ в редакторе Visual Studio;

6)      разработанный пакет программ был перенесен на ОС Linux, установленную на вычислительном кластере кафедры АСУ и перекомпилирован с использованием GCC версии 4.5.1;

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

1.  Разработанная подсистема позволяет улучшать качество транслируемого видеопотока

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

.        Система работоспособна и отвечает предъявляемым требованиям производительности и потребления ресурсов.

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

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

Cписок использованных источников

1.      Kincaid, Jason (July 20, 2008). "Start Streaming: Qik Opens To The Public". The Washington Post. Retrieved August 3, 2008.

.        Официальный сайт проекта Bambuser [Электронный ресурс]: содержит всю основную информацию по проекту Bambuser. - Швеция, [2011]. - Режим доступа: http://bambuser.com/phones.- Загл. с экрана.

.        VirtualDub. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/VirtualDub, свободный

.        Д. Ватолин, М. Смирнов. Фильтрация и сжатие видео от MSU Video Group. //Всё о сжатии данных, изображений и видео - 2011 [Электронный ресурс]. Режим доступа: http://compression.ru/video/public_filters_ru.htm, свободный

.        Adobe Premiere Pro. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Adobe_Premiere_Pro, свободный

.        GCC // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/GCC, свободный.

8.      Bradski G.R., Kaehler A. - Learning OpenCV. Technical report CA-95-472. O’Reilly Media, Inc., September 2008.

9.      OpenCV // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/OpenCV, свободный.

.        Д. Ватолин, А. Ратушняк, М. Смирнов, В. Юкин "Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео". Диалог-МИФИ, 2002

.        Апальков И.В., Хрящев В.В. Удаление шума из изображений на основе нелинейных алгоритмов с использованием ранговой статистики. - Ярославский государственный университет, 2010

.        Д. Калинкина, Д. Ватолин. - Проблема подавления шума на изображениях и видео и различные подходы к ее решению // Компьютерная графика и мультимедиа: журнал. - 2009. - № 3(2).

.        Хуанг Т.С. Быстрые алгоритмы в цифровой обработке изображений: преобразования и медианные фильтры. - М.: Радио и Связь, 1984.

14.    Jim Casaburi. 2D Cleaner Filter. Denoising filters comparison results CS MSU graphics&media lab Moscow, 05 apr 2003: 2-4.

15.    Быстрые алгоритмы в цифровой обработке изображений /Под ред. Т.С. Хуанга. - М.: Радио и связь, 2014

.        Яровой Н.И. Адаптивная медианная фильтрация. // Информационный портал Центрального научно-исследовательского института ВВВ. 2007. [Электронный ресурс] - Режим доступа - http://www. controstyle.ru, свободный

.        Нерезкое маскирование. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Нерезкое_маскирование, свободный

.        Д.В. Иванов [и др.] - Фильтрация изображений. //Алгоритмические основы растровой графики [Электронный ресурс]. - Режим доступа: http://www.intuit.ru/department/graphics/rastrgraph/8/rastrgraph_8.html, для зарегистрированных пользователей

.        В. Руднева. Методы повышения цветового качества изображений и восстановления цветов в старом видео. Компьютерная графика и мультимедиа. Выпуск №4(3)/2006.

.        Гамма-коррекция. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Гамма-коррекция, свободный

.        Оператор Собеля. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Оператор_Собеля, свободный

22.    Canny, J. A Computational Approach to Edge Detection. [Электронный ресурс]. - Режим доступа: http://www.limsi.fr/Individu/vezien/PAPIERS_ACS/canny1986.pdf, свободный. - Загл. с экрана.

.        О. Баринова, А. Вежневец. Методы сегментации изображений: автоматическая сегментация [Электронный ресурс] // Графика и Мультимедиа. Научно-образовательный сетевой журнал. Выпуск №4(4), 2006. - Режим доступа: http://cgm.computergraphics.ru/content/view/147, свободный

.        Бакут П.А., Колмогоров Г. С., Ворновицкий Н.Э. Сегментация изображений: методы пороговой обработки // Зарубежная радиоэлектроника. - 1987. - № 10. - С. 6...24.

.        Билинейная интерполяция. // Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа: http://ru.wikipedia.org/wiki/Билинейная_интерполяция, свободный

26.    Интерполяция цифрового изображения. / Сambridge In Colour - a learning community for photographers. [Электронный ресурс]. - Режим доступа: http://cambridgeincolour.com/tutorials/image-interpolation.htm, свободный

.        Калайда В.Т. Технико-экономическое обоснование стоимости программных систем: методическое пособие. / Калайда В.Т. - Томск: Томск. Гос. Ун-т систем управления и радиоэлектроники, 2009. - 50 с

.        Гигиенические требования к персональным электронно-вычислительным машинам и организации работы. СанПиН 2.2.2/2.4.1340-03: [Положение: Утверждено главным государственным санитарным врачом РФ Г.Г. ОНИЩЕНКО 30 июня 2003 г.].

.        Здания жилые многоквартирные. СНиП 31-01-2003 [Строительный нормы и правила Российской Федерации: Введено Государственным комитетом РФ по строительству и жилищно-коммунальному комплексу 1 октября 2003 г.].

.        Типовая инструкция по охране труда при работе на персональном компьютере ТОИ Р-45-084-01: [Инструкция: Утверждена Приказом министерства РФ по связи и информатизации от 2 июля 2001 г. № 162].

.        Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы. СанПиН 2.2.2.542-96 [Положение: Утверждено Постановлением Госкомсанэпиднадзора РФ от 14 июля 1996 г. № 14].

Похожие работы на - Подсистема подготовки видеопотока к онлайн-трансляции

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!