106
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И.Ульянова (Ленина) (СПбГЭТУ «ЛЭТИ») Направление 12.04.01 - Приборостроение Профиль Адаптивные измерительные системы Факультет ИБС Кафедра ИИСТ К защите допустить Зав. кафедрой Алексеев В.В. ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА МАГИСТРА Тема: ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ПОТОКА ВИДЕОИЗОБРА- ЖЕНИЙ ДЛЯ ЗАДАЧ ОПРЕДЕЛЕНИЯ ПАРАМЕТРОВ ДВИЖЕНИЯ ОБЪЕКТОВ Студентка Волыхина М.Н. подпись Руководитель к.т.н., доцент Пыко С.М. (Уч. степень, уч. звание) подпись Консультанты к.т.н., с.н.с., доцент Буканин В.А. (Уч. степень, уч. звание) подпись к.т.н., ассистент Романцова Н.В. (Уч. степень, уч. звание) подпись Санкт-Петербург 2017

< U I M K D G : Y D < : E B N B D : P B H G G : Y J : ; …library.eltech.ru/files/vkr/2017/magistri/1587... · дач определения параметров движения

  • Upload
    dinhtu

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Санкт-Петербургский государственный электротехнический университет

«ЛЭТИ» им. В.И.Ульянова (Ленина)

(СПбГЭТУ «ЛЭТИ»)

Направление 12.04.01 - Приборостроение

Профиль Адаптивные измерительные системы

Факультет ИБС

Кафедра ИИСТ

К защите допустить

Зав. кафедрой Алексеев В.В.

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА

МАГИСТРА

Тема: ПРЕДВАРИТЕЛЬНАЯ ОБРАБОТКА ПОТОКА ВИДЕОИЗОБРА-

ЖЕНИЙ ДЛЯ ЗАДАЧ ОПРЕДЕЛЕНИЯ ПАРАМЕТРОВ ДВИЖЕНИЯ

ОБЪЕКТОВ

Студентка Волыхина М.Н.

подпись

Руководитель к.т.н., доцент Пыко С.М.

(Уч. степень, уч. звание) подпись

Консультанты к.т.н., с.н.с., доцент Буканин В.А.

(Уч. степень, уч. звание) подпись

к.т.н., ассистент Романцова Н.В.

(Уч. степень, уч. звание) подпись

Санкт-Петербург

2017

2

ЗАДАНИЕ

НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ

Утверждаю

Зав. кафедрой ИИСТ

____________ Алексеев В.В.

«___»______________20___ г.

Студентка Волыхина М.Н. Группа 1587

Тема работы: Предварительная обработка потока видеоизображений для за-

дач определения параметров движения объектов

Место выполнения ВКР: кафедра ИИСТ СПбГЭТУ «ЛЭТИ»

Исходные данные (технические требования):

Персональный компьютер, Microsoft Visual Studio 2012, библиотека OpenCV,

видео формата .yuv размером 1280x720

Содержание ВКР:

Введение, литературный обзор, постановка цели и задач работы, разработка

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

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

языке С++ в Microsoft Visual Studio 2012 и OpenCV, заключение.

Перечень отчетных материалов: пояснительная записка, иллюстративный

материал, приложения

Дополнительные разделы: Специальные вопросы обеспечения безопасности

Дата выдачи задания Дата представления ВКР к защите

«___»______________20___ г. «___»______________20___ г.

Студентка Волыхина М.Н.

Руководитель к.т.н., доцент Пыко С.М. (Уч. степень, уч. звание)

Консультант к.т.н., с.н.с., доцент Буканин В.А.

(Уч. степень, уч. звание) подпись

3

КАЛЕНДАРНЫЙ ПЛАН ВЫПОЛНЕНИЯ

ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ

Утверждаю

Зав. кафедрой ИИСТ

____________ Алексеев В.В.

«___»______________20___ г.

Студентка Волыхина М.Н. Группа 1587

Тема работы: Предварительная обработка потока видеоизображений для за-

дач определения параметров движения объектов

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

Срок вы-

полнения

1 Обзор литературы по теме работы 02.01 –

15.02

2 Постановка цели и задачи 16.02 –

17.02

3 Разработка алгоритма 20.02 –

05.03

4 Программная реализация алгоритма 05.03 –

01.05

5 Оформление пояснительной записки 02.05 –

10.05

6 Оформление иллюстративного материала 15.05 –

31.05

Студентка Волыхина М.Н.

Руководитель к.т.н., доцент Пыко С.М. (Уч. степень, уч. звание)

4

РЕФЕРАТ

Пояснительная записка 106 стр., 65 рис., 6 табл., 28 ист., 5 прил.

ВИДЕОКОДИРОВАНИЕ, ВИДЕОАНАЛИТИКА, OPENCV, АЛГО-

РИТМЫ СЖАТИЯ, РАСПОЗНАВАНИЕ ОБРАЗОВ, ДЕТЕКТИРОВАНИЕ

ОБЪЕКТОВ, ОБНАРУЖЕНИЕ ОБЪЕКТОВ, ПАРАМЕТРЫ ДВИЖЕНИЯ

ОБЪЕКТОВ, ДЕТЕКТОР ГРАНИЦ КАННИ, ФИЛЬТР ГАУССА, ФИЛЬТР

СОБЕЛЯ, ДВУХПОРОГОВАЯ ФИЛЬТРАЦИЯ, ВЕКТОРА ДВИЖЕНИЯ,

ГРАДИЕНТ ЯРКОСТИ, МАКРОБЛОКИ

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

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

объектов.

Цель работы – Повышение вероятности правильного обнаружения объ-

ектов, локализации их границ, снижение негативных эффектов от действия

разнообразных влияющих факторов.

Для решения поставленной задачи был проведен краткий обзор суще-

ствующих методов поиска объектов и определения их характеристик, разра-

ботан алгоритм предварительной обработки видеопотока для задач определе-

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

для выделения границ объектов и локализации объектов на изображении,

написана программная реализация алгоритма на языке программирования С++

в Microsoft Visual Studio 2012 с использованием методов из библиотеки

OpenCV. В результате был разработан и реализован алгоритм предваритель-

ной обработки потока видеоизображений для задач определения параметров

движения объектов, а также протестирован на тестовом потоке видеоизобра-

жений формата.yuv 4:2:0, разрешения 1280x720.

5

ABSTRACT

In this graduate work the algorithm for preliminary processing of the video

stream for the tasks of determining the parameters of the motion of objects was de-

veloped with using the Canny borders detector for highlighting the borders of objects

and localization them in the video image. A program implementation of this devel-

oped algorithm was made in C ++ in Microsoft Visual Studio 2012 using methods

from the OpenCV library. The result of this work is the algorithm for the preliminary

processing of the video image stream for problems of determining the motion pa-

rameters of objects. In addition, this program tested on a test video of the format.

yuv 4: 2: 0, resolution 1280x720.

6

СОДЕРЖАНИЕ

Введение 10

1 Современная видеоаналитика: примеры и приложение 13

1.1. Алгоритмы сжатия 18

2 Обзор методов поиска объектов и определения их характе-

ристик

20

2.1. Методы обнаружения 20

2.2.

Классификация существующих методов реализации этапов

процесса распознавания

22

2.2.1. Методы построения переднего плана 22

2.2.2. Методы выделения движущихся объектов 24

2.3. Методы расчета параметров движения 34

2.4. Погрешность и влияющие факторы 40

2.5. Общий алгоритм определения параметров движения объек-

тов

45

3 Предварительная обработка потока видеоизображений для

задач определения параметров движения объектов

46

3.1. Программная реализация предварительной обработки 46

3.2. Определение параметров движения через геометрические

соотношения

62

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

Вводная часть

65

65

4.1.

4.1.1.

4.1.2.

Вредные производственные факторы на рабочем месте

пользователя

Классификация опасных и вредных производственных фак-

торов

Классификация опасных и вредных производственных фак-

торов, обладающих свойствами физического воздействия на

65

66

организм человека 67

7

4.2.

4.2.1.

Вредные факторы при работе с ПЭВМ

Электромагнитные поля и излучения

69

69

4.3.

4.3.1.

4.4.

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

Общие требования к организации рабочего места

Эргономика разрабатываемого ПО

Выводы по главе специальные вопросы обеспечения без-

опасности

72

72

80

83

Заключение 84

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

Приложение А. Листинг программы предварительной обра-

ботки потока видеоизображений

Приложение Б. Результаты работы программы предвари-

тельной обработки потока видеоизображений

89

94

Приложение В. Листинг программы выделения лиц с ис-

пользованием OpenCV

96

Приложение Г. Результаты работы программы выделения

лиц c использованием OpenCV

Приложение Д. Существующие методы оценки движения

98

100

8

ОПРЕДЕЛЕНИЯ, ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ

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

соответствующими определениями:

2D – 2-dimensional

3D – 3-dimensional

3DRS – 3D-Recursive Search

IP – Internet Protocol

JPEG – Joint Photographic Experts Group

MJPEG – Motion JPEG

MV – motion vectors

OpenCV – Open Source Computer Vision Library

SAD – Sum of Absolute Differences

TSS – Three-Step Search

ВДТ – видеодисплейные терминалы

ГОСТ – государственный стандарт

ИКТ – информационно-коммуникационные технологии

КЕО – коэффициент естественного освещения

ЛЭП – линия электропередачи

МП – магнитное поле

ОД – оценка движения

ОЭС – оптико-электронное средство

ПДУ – предельно допустимый уровень

ПО – программное обеспечение

ПУЭ – правила устройства электроустановок

ПЭВМ – персональная электронно-вычислительная машина

СанПиН – санитарные правила и нормы

СН – санитарные нормы

СНИП – строительные нормы и правила

9

ЧО – человек-оператор

ЭЛТ – электронно-лучевая трубка

10

ВВЕДЕНИЕ

В современном мире широко распространено использование обработки

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

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

Видеоаналитика – это технология анализа видеоданных, использующая ме-

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

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

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

можно запускать как на компьютерах, так и встраивать в видеокамеры.

Видеоинформационные системы подразделяются на два больших

класса:

- визуальные системы, предполагающие наличие оператора для приема;

- системы технического зрения, информация с которых обрабатывается авто-

матической системой (без участия оператора).

В первом случае основная задача видеоаналитики – помочь оператору

воспринимать поступающую видеоинформацию.

Для этого необходимо решить следующие частные задачи для улучшения зри-

тельного восприятия:

- повышение качества изображения (снижение видимого шума на изображе-

нии, повышение контраста изображения, улучшение четкости);

- улучшение цветопередачи или введение псевдоцвета;

- акцентирование внимания на отдельных важных деталях изображения;

- интерполяция (увеличение количества) пикселов, кадровой частоты;

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

наличие тумана и других атмосферных воздействий).

Во втором случае при помощи видеоаналитики решаются задачи авто-

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

дачам можно отнести следующие:

- детектор движения в видеопотоке;

- детектор оставленных предметов;

11

- распознавание букв, цифр и других символов и состоящего из них текста;

- выделение человеческих фигур;

- выделение лиц;

- распознавание лиц;

- наблюдение за животными;

- измерение геометрических параметров объектов;

- совместная обработка нескольких видеопотоков (комплексирование видео-

информации);

- определение жестов.

Области применения:

- виртуальная реальность;

- использование людьми с ограниченными возможностями;

- использование в отраслях повышенной опасности;

- управление автомобилем без водителя.

Таким образом существует задача подготовки потока видеоизображе-

ний для определения параметров движения объектов с целью детектирования

объектов и улучшения зрительного восприятия оператором, что обуславли-

вает актуальность данной работы.

Соответственно:

Задача

Предварительная обработка потока видеоизображений для задач опре-

деления параметров движения объектов.

Цель

Повышение вероятности правильного обнаружения объектов, локализа-

ции их границ, снижение негативных эффектов от действия разнообразных

влияющих факторов.

Пути решения

Прежде чем производить поиск и классификацию объектов, видеоизоб-

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

роятности правильной работы алгоритма (устранить нелинейные искажения

12

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

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

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

мощью алгоритма Канни для выделения границ объектов и локализации объ-

ектов на изображении, что и будет реализовано перед использованием

OpenCV.

Поставленную задачу по обработке видеоизображения будем решать на

основе использования методов из библиотеки OpenCV на языке программиро-

вания C++, а также программы Microsoft Visual Studio 2012.

13

1. Современная видеоаналитика: примеры и приложение

Область применения видеоаналитики достаточно обширная. Задачи, ко-

торые решает видеоаналитика представлены ниже в таблице 1.1.

Таблица 1.1 – Задачи видеоналитики и успехи в решении этих задач

Задача Успехи в решении

Детектирование движения Хорошо

Детектирование оставленных предметов Хорошо

Отслеживание траекторий движения Хорошо в «чистом поле»

Плохо в толпе

Очень плохо многокамерное

Многокамерный трекинг Хорошо при фиксированном ракурсе

Плохо при изменении ракурса

Классификация объектов Хорошо при фиксированном ракурсе

Плохо при изменении ракурса

Идентификация объектов Хорошо для номеров

Не очень хорошо для лиц

Распознавание ситуаций Плохо

Анализ поведения человека Плохо

а) Поиск объектов и обнаружение людей

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

пользования видеоаналитики.

14

Рисунок 1.1 – Пример трекинга

Первый метод – прослеживание областей движущихся объектов, второй – вы-

деление на изображении людей по данным нескольких наблюдений или метод

«фильтра частиц».

Основным современным подходом к обнаружению объектов в сцене яв-

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

рисунке 1.2.

15

Рисунок 1.2 – Распознавание образов

б). Многокамерная видеоаналитика и межкамерный трекинг

Многокамерная видеоаналитика сопровождает объект несколькими ка-

мерами, что позволяет снизить общее число тревожных сигналов в месте пе-

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

карте местности, помогая оператору лучше ориентироваться в происходящем.

При межкамерном трекинге система классифицирует объект, выявляя

его особенности, и пытается найти объекты с похожими характеристиками на

соседних камерах. Безусловным плюсом является тот факт, что для анализа не

требуется полностью декодировать видео, что снижает требования к ресурсам.

в). Подсчет людей

«Подсчет числа людей необходим не только в целях общественной без-

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

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

В зависимости от ракурса съемки и плотности толпы могут использоваться

разные сценарии подсчета людей» [1].

16

Рисунок 1.3 – Подсчет людей через обнаружение

г). Выявление асоциального поведения

Еще одним применением видеоаналитики является обнаружение асоци-

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

по всплескам активности. Для этого проводится анализ истории движения объ-

ектов (людей), выявление неравномерности движения или бега. Решение о не-

стандартном поведении выносится на основе собранной статистики.

д). Удаленное видеонаблюдение

«Всё более популярным становится видеонаблюдение с использованием

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

лируемом объекте. Запись с камер разбивается на события, поэтому видео, не

представляющее интереса, можно игнорировать. К тому же объем видеоар-

хива уменьшается в десятки тысяч раз.

е). Машинное зрение и промышленные камеры

Система машинного (технического) зрения – это набор программно-ап-

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

17

или видеоряда» [1]. Видеоаналитика в данном случае используется в промыш-

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

шинами, интеграции с IP-видеосистемами – для идентификации и учета.

ж). Переход от 2D к 3D-видеоаналитике

Еще одно интересное направление, позволяющее получить больше ин-

формации о наблюдаемом объекте, – видеоаналитика 3D.

При наблюдении за трехмерными объектами с помощью 2D-камеры теряется

информация, необходимая для видеоанализа.

Естественным шагом является переход к трехмерному видеонаблюде-

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

- лазерное сканирование;

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

ления этих линий;

- измеряется время отражения света от объектов на разном расстоянии.

Так как объем собираемой информации существенно больше, чем в двухмер-

ном изображении, точность распознавания значительно повышается [1].

Рисунок 1.4 – Пример 3D-реконструкции по видеопоследовательности

Существуют системы жизнеобеспечения, например, как в статье [15],

где также может использоваться видеоаналитика для решения различных за-

дач.

18

1.1. Алгоритмы сжатия

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

Выделение объектов и их классификация позволяют существенно повысить

качество кодирования (например, управляя величиной квант-параметра на вы-

деленных объектах).

Если выделенный объект кодировать без потерь качества, а фон, не иг-

рающий существенной роли в распознавании закодировать с потерями, то

можно уменьшить затраты ресурсов.

«Проблема передачи и хранения информации, представленной в цифро-

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

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

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

ресурсах при эксплуатации носителей информации и повысить эффективность

передачи данных по каналам связи. На сегодняшний день наибольший объем

данных соответствует изображениям, видеоданным и звуку» [28].

«Алгоритмы сжатия прежде всего разделяют:

Потоковые и статические, то есть работающие с последовательностями

кадров (потоком), или с каждым из кадров отдельно.

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

на следующие: сжатие без потерь данных, сжатие с потерями данных.

В статических алгоритмах сжатие достигается с помощью методов об-

работки изображений, при этом может обрабатываться либо все изображение

целиком, либо разбиваться на отдельные блоки. Одними из самых распростра-

ненных на сегодняшний момент являются алгоритмы группы Wavelet и JPEG.

В потоковых алгоритмах учитывается тот факт, что близкорасположен-

ные кадры не сильно отличаются друг от друга и сжатие достигается также за

счет кодирования лишь разницы между кадрами (избыточность во времени), а

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

ких кадрах. Причем положение объекта в каждом из кадров - разное. Работа с

19

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

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

ненных в потоковых алгоритмах являются алгоритмы групп MPEG и MJPEG.

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

терь данных полученное после декомпрессии изображение в точности (по-

битно) совпадает с оригиналом.

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

емых в настоящее время, работают так, что два оцифрованных изображения -

от оригинала и от сжатого и восстановленного с использованием того или

иного декодера файла побитно не совпадают. Так, например, работают JPEG

для сжатия статической графики и алгоритм MJPEG для сжатия видео» [27].

«Сжатие с потерей данных делят:

а) Сжатие без заметных потерь с точки зрения восприятия:

Данные после декомпрессии побитно не совпадают с исходными, од-

нако из-за особенностей восприятия человек не способен отличить разницу на

статическом, и тем более на «живом» изображении. Для субъективной харак-

теристики применяют так называемый фактор качества сжатия, варьирую-

щийся в пределах от 0 до 100. При факторе, равном 100, характеристики де-

компрессированного видео по восприятию почти неотличимы от оригинала.

б) Сжатие с естественной потерей качества:

JPEG, MPEG и другие технологии сжатия с потерей качества иногда

«сжимают», переступая за грань сжатия без потерь с точки зрения восприятия

видеоинформации. Тем не менее сжатые видео и статические изображения

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

в) Сжатие с неестественными потерями качества:

Низкое качество сжатия, в значительной степени искажающее изобра-

жение и вносящее в него искусственные (не существующие в оригинале) де-

тали сцены, называется неестественным сжатием с потерей качества. Приме-

ром тому может служить «блочность» в сильно сжатом MJPEG и в других ком-

20

прессорах, использующих технологию блочного дискретно-косинусного пре-

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

самых важных с точки зрения восприятия человеком характеристик изображе-

ния - контуров. Опыт показывает, что именно контуры позволяют человеку

правильно идентифицировать тот или иной визуальный объект» [27].

«Как показывает практика, применение методов сжатия без потерь не

приводит к существенному сокращению их информационного представления,

поэтому актуальной задачей становится исследование методов сжатия с поте-

рями, ориентированных на конкретные типы данных. Подобные методы сжа-

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

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

сти восприятия соответствующей информации человеком» [28].

2. Обзор методов поиска объектов и определения их характе-

ристик

2.1. Методы обнаружения

«Видеоаналитика базируется на выделении объектов (распознавание и

классификация) для последующей обработки.

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

• выделение переднего плана,

• выделение и классификация движущихся объектов,

• отслеживание траектории движения найденных объектов,

• распознавание и описание объектов, представляющих интерес.

Процесс выделения переднего плана заключается в отделении движу-

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

принадлежащими заднему плану. От данного этапа зависят все последующие

этапы обработки информации, а также требуемые вычислительные ресурсы.

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

21

факторов: собственные шумы камеры, внезапное изменение освещенности сцены,

падающие тени, движение ветвей деревьев на ветру и т.п.

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

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

еся с одинаковой скоростью, которые считаются движущимися объектами. За-

тем их соотносят с заранее определенными классами(шаблонами): автомо-

били, люди, животные и т. п.

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

живанию траектории каждого движущегося объекта (этот процесс называется

трекингом – от англ tracking). Для осуществления трекинга необходимо уста-

новить взаимно-однозначное соответствие между обнаруженными объек-

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

На заключительном этапе обработки проводится распознавание и опи-

сание действий выделенных объектов. В принятой терминологии считается,

что движущиеся объекты принадлежат «переднему плану», а стационарные -

к «заднему плану», который также называют фоном.

Рисунок 2.1 – Разбиение изображения на видеообъекты

22

Обычно выделяют 3 ключевых видеообъекта, что представлено на ри-

сунке 2.1:

- фигуры людей (передний план) – VOP1,

- надписи (передний план) – VOP2,

- фон (задний план) – VOP3.

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

тов» [2].

2.2. Классификация существующих методов реализации этапов

процесса распознавания

2.2.1. Методы построения переднего плана

Для построения переднего плана наиболее часто используются методы,

основанные на вычитании фона, вероятностные методы, методы временной

разности и оптического потока.

Методы вычитания фона

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

кущим кадром и некой моделью фона (сцена без движущихся объектов).

23

Рисунок 2.2 – Пример обработки изображения методом вычитания фона

А – оригинальное изображение, Б – модель фона, В – нахождение попиксель-

ной разности между текущим кадром и некой моделью фона, Г – вычитание

фона

Главным недостатком методов вычитания фона является возможная

классификация фоновых пикселей как переднеплановых (листья деревьев, ко-

лышущихся на ветру, падающий снег, тени, отбрасываемые движущимися

объектами). Также минусом является то, что для обновления модели фона

необходимо некоторое время, прежде чем будут учтены изменения, связанные

с началом движения или остановкой объекта. Методы вычитания фона предъ-

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

Вероятностные методы

В методах данного типа задний план представляют в виде случайного

«пиксельного процесса». В итоге фон рассматривают как Гауссову смесь, т.

е. линейную комбинацию одномерных, нормально распределенных случай-

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

Гауссиана в смеси, можно отделить объекты от фона. Вероятностные методы

24

позволяют решать проблемы выделения фона при наличии фрагментов изоб-

ражений с падающими тенями, отражениями, качающимися ветвями и др.

Однако быстрые изменения фона и освещенности сцены данные алгоритмы

описать не могут.

Методы временной разности

Эти методы позволяют отделять передний план от фона путем нахож-

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

кадрами. Бесспорным плюсом этого метода является тот факт, что временные

разности хорошо определяют динамические изменения сцены, однако не мо-

гут выделить целиком все однородные пиксели одного объекта, что приводит

к фрагментированности выделенных объектов (часто внутри них образуются

пустоты).

Кроме того, эти методы не в состоянии обнаруживать остановившиеся

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

тодами.

Метод оптического потока

В его основе лежит определение параметров когерентного движения то-

чек. Выделение фона, основывающееся на вычислении оптического потока,

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

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

ния. К недостаткам можно отнести то, что алгоритмы данного класса явля-

ются слишком ресурсоемкими и дороги в реализации, кроме того, чрезвы-

чайно чувствительны к шуму.

2.2.2. Методы выделения движущихся объектов

Объекты, представляющие для нас интерес, находятся на переднем

плане, причем априорно неизвестно, сколько их, какого они размера, какое

имеют взаимное расположение. Чтобы классифицировать такие объекты,

25

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

изображения. Сегментацией называется процесс подразделения сцены на со-

ставляющие части или объекты.

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

выделение «блоба» (blob – англ. капля), который задается набором координат

составляющих его пикселей, либо указание вершин прямоугольника, внутри

которого находится выделенный объект (более грубое описание объекта, но

с меньшими затратами по времени).

Рисунок 2.3 – Выделение движущихся объектов

А – выделение объектов в прямоугольники, Б – выделение движения в бинар-

ном виде, В – выделение объектов «блобами»

В случае, когда объекты хорошо отделимы друг от друга, на основе от-

ношения высоты к ширине полученного прямоугольника, можно предвари-

тельно определить тип объекта. Однако после сегментирования переднего

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

объектов. Дело в том, что выделенные «блобы» обычно имеют фрагменты,

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

26

выполнить операции дилатации (расширения) и эрозии. Эти операции позво-

ляют убрать шумы из изображения, увеличив или уменьшив имеющиеся

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

ленных сегментов становятся более плавными и содержат минимальное

число пустот внутри объекта.

Рисунок 2.4 – Операция эрозии

Рисунок 2. 5 – Операция дилатации [2]

Методы сегментации разделяют на такие методы, как:

1). Методы разметки точек

Метод порогового ограничения по яркости

Многие изображения характеризуются тем, что они содержат объект,

представляющий интерес, достаточно однородной яркости на фоне другой яр-

кости. Для этих изображений яркость служит характеристикой, которую

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

Для определения порога, отделяющего яркость объектов от яркости

фона, достаточно располагать дополнительной информацией в виде перепадов

яркости и максимального значения яркости, получаемых в результате анализа

27

гистограммы. Порог можно определить, например, бинаризацией по порогу

или диапазону. Суть обоих способов заключается в следующем: Любая точка

(x, y), для которой интенсивность f (x, y) > T, принадлежит объекту, в против-

ном случае – фону.

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

(1)

где P – порог чувствительности; bij – пиксел исходного изображения; Bij – бит

с теми же координатами выходного изображения. Пиксели со значением 1 от-

носятся к объектам, в то время как пиксели со значением 0 относятся к фону.

Метод наращивания областей

Метод основывается на обнаружении разрывов яркости. Данные методы

используют информацию о связности объектов и основаны на рекуррентном

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

Разметка точек осуществляется согласно некоторому критерию однородности.

Конкретные алгоритмы различаются выбором критерия однородности, спосо-

бом просмотра точек и выбором начальных «стартовых» точек, размечаемых

на нулевом шаге. Существует два основных способа выбора стартовых точек

и порядка просмотра остальных точек: центроидное связывание и слияние -

расщепление объекта.

2). Методы, основанные на выделении границ объектов

«Контуры определяют форму изображения, слабо зависят от цвета и яр-

кости и содержат необходимую информацию для дальнейшей классификации

объекта. Такой подход позволяет не рассматривать внутренние точки изобра-

жения и тем самым значительно сократить объем обрабатываемой информа-

ции» [6].

«Существует большое количество методов выделения границ и анализа

контуров. Практически все они основаны на определении градиента. Градиент

изображения f(х,у) в точке (х,у) определяется как двумерный вектор:

28

(2)

Вектор G указывает направление максимального изменения функции f в точке

(х, у)» [4]. Градиенты можно определять, используя разнообразные фильтры.

Расчет градиента с использованием линейной фильтрации базируется на обра-

ботке изображения с помощью скользящей маски, называемой также филь-

тром или ядром, которая представляет собой некую квадратную матрицу. Ис-

пользование такой матрицы в каких-либо локальных преобразованиях называ-

ется фильтрацией или пространственной фильтрацией.

Рисунок 2.6 – Схема пространственной фильтрации [5]

«Нашли распространение следующие виды фильтров:

1. разностный амплитудный фильтр;

2. максимальный разностный амплитудный фильтр;

29

3. фильтр Робертса:

(3)

К недостаткам этого оператора относятся высокая чувствительность к

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

контуре и отсутствие явно выраженного центрового элемента. А достоинство

– высокая скорость обработки изображения;

4. фильтр Превитта:

(4)

5. фильтр Собеля:

(5)

У оператора Собеля влияние шума угловых элементов несколько

меньше, чем у оператора Превитта. В операторе Собеля используется весовой

коэффициент 2 для средних элементов;

6. фильтр Лапласа:

(6)

Для решения задачи выделения перепадов яркости можно применить

дифференциальный фильтр, основанный на производной второго порядка -

оператор Лапласа. Основным недостатком лапласиана является очень высокая

чувствительность к шумам. Кроме того, возможны появления разрывов в кон-

туре, а также их удвоение. Достоинством является то, что он нечувствителен

к ориентации границ областей, и малая ресурсоемкость» [6].

Кроме линейных фильтров, градиенты можно оценивать неявно, напри-

мер, с помощью метода «Прослеживание контуров» или анализа на основе тео-

рии графов.

30

Прослеживание контуров

«Суть метода заключается в последовательном вычерчивании границы

между объектом и фоном. Прослеживающая точка в виде «жука» передвига-

ется по изображению до тех пор, пока не доходит до темной области, которой

является объект. Тогда «жук» делает поворот налево и движется по кривой,

пока не достигнет границ объекта, после этого поворачивается направо и по-

вторяет процесс, пока не достигнет начальной точки» [3].

Рисунок 2.7 – Пример использования метода прослеживания контуров [3]

Анализ с помощью теории графов

«Методы теории графов, основываются на обнаружении и связывании

контуров с помощью представления отрезков контуров в виде графа и осу-

ществлении поиска на этом графе путей, соответствующих искомым конту-

рам» [7].

Рисунок 2.8 – Элемент контура, находящийся между пикселами p и q

Элементы контура идентифицируются координатами точек р и q.

31

«Каждому элементу контура, заданному пикселями р и q соответствует некая

стоимость, которая определяется по формуле:

c(p, q) = H − [ f ( p) − f (q)], (7)

где Н – максимальный уровень яркости в изображении, a f (p) и f (q) – значения

яркости пикселей р и q» [6].

Достоинством является тот факт, что данный метод хорошо работает в

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

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

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

ницы объектов. В ряде случаев эти точки оказываются одиночно отстоящими

или разорванными. Поэтому их необходимо связать в непрерывные линии (ме-

тод прослеживания контуров не обладает таким недостатком). Для этого ис-

пользуют специальные методы формирования контуров, например, метод ак-

тивных контуров.

Метод активных контуров

«Модель активных контуров использует кривые минимальной энергии,

или змейки. Алгоритм следующий: сначала контур инициализируется как про-

стая линия, а затем он деформируется для создания области объекта. Точки в

контуре стремятся к границе объекта при минимизации энергии контура. По-

ведение активного контура и его свойства полностью определяются функцио-

налом E – энергией контура, который зависит от формы и размеров контура и

от его положения на изображении» [8]. Недостаток метода заключается в том,

что если объект не имеет четких границ или площадь неоднородна, то алго-

ритм не решит задачу сегментации корректно.

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

Данный алгоритм обнаружения контуров является, фактически, комби-

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

32

санных ранее методов. Поэтому детектор границ Канни является одним из са-

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

алгоритме является устранение шума на контурах, который в может повлиять

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

Алгоритм состоит из следующих этапов:

1. Сглаживание шумов и исключение лишних деталей из исходного

изображения f (r, c) с помощью функции Гаусса f ^ (r, c):

f ^(r, c)=f( r,c)*G(r,c,δ), (8)

где G (r,c,δ) – оператор Гауссовского размытия изображения;

2. Поиск градиента. Границы намечаются там, где градиент принимает

максимальное значение;

3. Выделение локальных максимумов или подавление не-максимумов.

В каждой точке известно направление градиента и его абсолютная

величина. Следовательно, можно сравнить эту абсолютную вели-

чину с величиной градиента в соседних точках по направлению этого

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

границы;

4. Определение итоговых границ путем подавления всех краев, не свя-

занных с определенными границами. Реализация производится пу-

тем использования двойной пороговой фильтрации [9].

«Достоинство данного метода заключается в том, что он устойчив к

шуму и дает, как правило, лучшие результаты по сравнению с другими мето-

дами. С другой стороны, так как это в принципе набор алгоритмов, то и быст-

родействие данного метода уступает более простым операторам, что является

недостатком такого подхода» [7].

3). Адаптивный метод обнаружения оптико-электронным сред-

ством

«Данный метод основан на автоматическом восстановлении опорного

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

33

значения корреляционной матрицы по серии изображений, для принятия ре-

шения об обнаружении объекта по критерию Неймана−Пирсона. Для этого ис-

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

априорных данных о заднем плане (фоне) изображения.

Опорное изображение формируется в пространственной спектральной

области (с последующим преобразованием в пространственную область) по

выдаваемым ОЭС изображениям без априорной информации о фоновой обста-

новке (заднем плане): корреляционная матрица вычисляется в каждом поло-

жении скользящего «окна» на изображении ,т.е. на каждом изображении вво-

дится сетка окон и в каждом положении окна вычисляется фрактальная раз-

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

ная размерность превышает известное значение фона, что представлено на ри-

сунке 2.9. Далее следует операция прямого двумерного вейвлет-преобразова-

ния.

Рисунок 2.9 – Фрактальная размерность в окнах исходного изображения

34

Затем выполняется операция сравнения вычисленных спектров в каждом те-

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

точения – всплески спектральных составляющих. Спектральные всплески об-

разуются излучениями пространственно-протяженных объемных образований

от объекта на фоне ясного неба или облачности. После этого формируется ста-

тистика в виде максимального значения корреляционной матрицы и принима-

ется решение об обнаружении объекта по критерию Неймана − Пирсона.

Достоинством данного метода является высокая эффективность как в

простых, так и в сложных фоновых условиях обнаружения объектов ОЭС и по

точечным, и по протяженным объектам» [10].

2.3. Методы расчета параметров движения

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

возможно путём обработки изображений для определения дальности до объ-

екта, чтобы затем по дальностям оценить координаты и параметры перемеще-

ния объекта.

«Существует много различных методов для определения параметров

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

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

нескольких наблюдений, с целью определения наиболее чётких объектов изоб-

ражений. В этом же методе определяется расстояние на основе анализа цвето-

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

цикл обработки информации на уровне алгоритмов обработки самой телеви-

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

ещё не даёт ответа на вопрос о географических координатах обнаруженного

объекта и параметрах его движения» [17].

Также можно упомянуть метод [18], в котором предлагается использо-

вать дополнительные источники света и по теням оценивать расстояние до

35

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

возможность распознавания как людей, так и номеров машин.

Помимо описанных выше методов существует еще один способ опреде-

ления координат, курса и скорости перемещения объекта, являющийся наибо-

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

на геометрических соотношениях и пропорциональности размера изображе-

ния и расстояния до объекта. Рассмотрим более подробно суть этого метода.

Рисунок 2.10 – Изменение угловых размеров с увеличением расстояния до

объекта

Пусть в дискретные моменты времени ti с некоторым временным интер-

валом на экране телевизионной камеры наблюдается изображение.

По полученному изображению определяются на рисунке 2.10:

– вертикальный размер объекта (человеческой фигуры) hi;

– смещение di изображения по горизонтали относительно вертикальной оси

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

Спустя некоторый промежуток времени в момент ti+1 на экране вновь реги-

стрируется положение объекта с параметрами hi+1, di+1.По данным, получен-

ным с камеры необходимо определить координаты объекта, курс перемещения

объекта Q и скорость V.

Рассматривается 2 случая положения камеры:

– телевизионная камера неподвижна;

– телевизионная камера подвижна и представляет собой поворотную камеру;

Предполагается, что положение (географические координаты положе-

ния) неподвижной телевизионной камеры известно, на экране отображается

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

36

поворотной камеры – информация об углах поворота телевизионной камеры в

вертикальной и в горизонтальной плоскостях. Также предполагается, что из-

вестно нулевое направление оси зоны обзора в горизонтальной плоскости. Под

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

которой оператор способен обнаружить движущийся объект. По поступающей

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

Описание метода

Чтобы определить координаты необходимо пересчитать продольное и

поперечное смещения изображения на телевизионной камере в дистанцию и

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

определения скорости перемещения объекта необходимо определить пройден-

ный им путь на рассматриваемом временном интервале. Для определения

пройденного пути необходимо определение его составляющих: продольное и

поперечное смещения объекта относительно оси зоны обзора телевизионной

камеры.

Под продольным направлением будем понимать направление, совпада-

ющее с осью зоны обзора камеры и представленное на изображении мыслен-

ной вертикальной линией. Под поперечным направлением - направление пе-

ремещения объекта, строго перпендикулярное продольной оси зоны обзора те-

левизионной камеры.

1) Расчёт продольного перемещения объекта

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

линейных размерах объекта меняются угловые размеры, которые и отобража-

ются на экране телевизионной камеры. На рисунке 2.11 представлена пропор-

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

Если известен размер изображения H, при котором точно известно рас-

стояние L до объекта, то далее из подобия треугольников ΔOAB и ΔOCD, ко-

торое представлено на рисунке 2.10, получаем следующее соотношение:

37

(9)

Из формулы (9) выводится формула (10).

(10)

После определения расстояния до объекта, производится пересчёт поло-

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

отображение его положения на карте местности.

2) Расчёт поперечного перемещения объекта

Рассмотрим два варианта положения камеры:

Первый вариант – поворотная камера, которая при обнаружении объекта со-

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

Под сопровождением объекта будем понимать такой поворот камеры, при ко-

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

оси экрана. Расчёт поперечного смещения для поворотной камеры будет опре-

деляться выражением, которое описывает рисунок 2.11.

На рисунке 2.12 представлен вариант, при котором направление оси

зоны обзора телевизионной камеры совпадает с направлением на север. При

произвольном расположении зоны обзора телевизионной камеры относи-

тельно направления на север углы положения осей для первого и второго

направлений будут, соответственно, 𝛼1 и 𝛼2.

Тогда угол поворота оси телевизионной камеры определяется следую-

щим выражением:

(11)

Отрезок, соответствующий пройденному пути S, определяется по тео-

реме косинусов из ΔOAB, который представлен на рисунке 2.11.

38

Рисунок 2.11 – Определение пройденного пути

(12)

где 𝑙1 и 𝑙2 – расстояния до объекта, вычисленные по результатам обработки

вертикального размера изображения, S – пройденный путь, φ – угол поворота

оси камеры, Q – курс направления объекта.

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

предельной различимости объекта не превышает 150 м, то можно пренебречь

кривизной земной поверхности и рассматривать задачу определения расстоя-

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

между двумя точками будем осуществлять с использованием евклидовой гео-

метрии.

Введём местную систему координат с центром, расположенным в точке

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

другая образует с ней правую систему координат.

Тогда координаты объекта x1 и y1 определяются равенствами:

(13)

Для того чтобы определить курс объекта рассмотрим рисунок 2.12. Курс

определяется как направление от точки 1 к точке 2 из следующего выражения

39

(14)

Рисунок 2.12 – Определение курса объекта

Второй вариант – телевизионная камера неподвижна. Для данного слу-

чая поперечное смещение изображения объекта относительно оси зоны обзора

камеры определяется по отклонениям d1, d2 изображения объекта в моменты

времени t1, t2.

Рисунок 2.13 – Определение поперечного смещения объекта

40

Углы 1 и 2 между центральной осью зоны обзора камеры и направ-

лением на объект в моменты времени t1 и t2 определяются выражениями, при-

веденными ниже:

(15)

Далее отсюда можно вычислить угол по формуле (11).

Пройденный путь S определяется по формуле (12), расчёт курса Q – по фор-

муле (14).

Определение скорости объекта осуществляется из соображений кинематики:

[14] (16)

2.4. Погрешность и влияющие факторы

На сегодняшний день задача исключения влияющих факторов еще явля-

ется открытой. В данной ВКР будет проведен только анализ влияющих факто-

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

Использование библиотеки OpenCV приводит к появлению специфиче-

ских погрешностей, которые своим возникновением обязаны коэффициенту

масштабирования и квантованию. Скорректировать влияние внешних факто-

ров, как и факторов от канала связи представляется возможным в той или иной

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

попробовать решить эту задачу (оценки и исключения факторов), используя

среднестатистические параметры объектов (например, размер лица человека)

для определения параметров их движения и провести оценку погрешности

определения этих параметров.

Рассмотрим более подробно какие существуют факторы, влияющие на

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

Экспериментально доказано, что изменение освещённости в зависимо-

сти от времени суток, состояния атмосферы, осадков, тумана, влажности,

41

ветра – все эти факторы создают помехи, приводящие к ложным тревогам и

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

Причём ручное выставление порога не помогает.

Факторы могут иметь следующую природу возникновения:

- внешние (погодные, освещение);

- обусловленные каналом пропускания;

- в результате обработки изображения (нахождение контуров).

Итак, влияющие факторы:

1. Изменение уровня освещенности, например, вспышка или восход

солнца, приводит к появлению тени, высокой контрастности и экспозиции с

фоновой засветкой. Тень искажает форму объекта и создает иллюзию движе-

ния. Освещение в значительной мере влияет на возможность идентифициро-

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

отслеживать в течение дня изменения интенсивности и направленности сол-

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

освещение, во избежание ситуации с фоновой подсветкой. От уровня освеще-

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

увеличивается при хорошем освещении. Чем больше показатель глубины рез-

кости, тем больше область, в которой объекты находятся в фокусе.

Рисунок 2.14 – Наглядное представление что такое глубина резкости

42

«При низком уровне освещенности может появится шум на изображении, что

осложняет идентификацию» [11].

Рисунок 2.15 – Пример шума

2. Состояние атмосферы (дождь, туман, снег). Происходит размыва-

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

кацию объектов и могут вызвать ложное срабатывание. Снег, например, уси-

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

часть отраженного света.

3. Спектральные изменения освещенности, связанные с временем су-

ток. Меняется чувствительность камеры, меняется четкость объектов.

4. Атмосферные искажения из-за наличия слоев атмосферы с различ-

ными оптическими характеристиками – «эффект лупы».

5. Эффекты, связанные с особенностями камеры:

- нелинейные искажения (рыбий глаз):

Некоторые некачественные объективы искажают изображение. В основ-

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

кового размера, находящиеся по краям, будут иметь меньшее разрешение и

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

ражением [11].

43

Рисунок 2.16 – Пример бочкообразного искажения

- движение камеры (линейное, поворот и т.д.):

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

которое зависит от фокусного расстояния камеры, расстояния от камеры до

объекта.

Рисунок 2.17 – Размытие от движения камеры [12]

- зум, кратность:

Чем выше коэффициент увеличения объектива (зум), тем большее уве-

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

тельно, тем больше возможностей для видеосъемки.

- расположение камеры:

44

Расположение и направление объектива камеры являются достаточно

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

не только предотвращает проблемы с освещением, но также обеспечивает

съемки людей или объектов под правильным углом. Если камера установлена

слишком высоко, то это может привести к проблемам распознавания.

Рисунок 2.18 – Расположение камеры

А – изображение слишком мало для распознавания, Б – лицо повернуто в сто-

рону от камеры, В – лицо повернуто в сторону камеры

- вибрация и т.д.:

«Четкость картинки может пострадать если присутствует вибрация, так

как она вызывает размытость изображения. Особенно это ощутимо в случае,

если камера установлена достаточно высоко» [11].

- размер объекта:

«Чем крупнее объект в соотношении с полем зрения камеры, тем лучше

распознавание и идентификация объекта» [13].

45

2.5. Общий алгоритм определения параметров движения объектов

На основании проведенного анализа примеров применения видеоанали-

тики и методов обработки изображений можно предложить следующий общий

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

вательности:

1) Предварительная обработка;

2) Выделение объектов;

3) Расчет параметров движения;

4) Оценка погрешностей.

Целью предварительной обработки является повышение вероятности

правильного обнаружения объектов, локализации их границ, снижение нега-

тивных эффектов от действия разнообразных влияющих факторов.

На этапе выделение объектов предполагается применения алгоритмов

поиска заданных объектов с целью определения их координат и размера (ха-

рактерных признаков объектов).

Следующий шаг – этап расчета временных изменений параметров объекта.

Заключительный этап – оценка качества полученных результатов.

Предметом текущей работы является проведение предварительной об-

работки видеоизображений в рамках предложенного алгоритма определения

параметров движения объектов.

46

3. Предварительная обработка потока видеоизображений для

задач определения параметров движения объектов

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

щие этапы:

- определение параметров движения камеры;

- оконтуривание изображения;

- поиск лиц объектов.

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

В частности, на данном этапе предполагается следующая работа с видео-

потоком:

1. Чтение видеофайлов:

Рисунок 3.1 – Блок-схема чтения файлов

47

2. Разбиение кадра на макроблоки размером 16х16 для поиска векто-

ров движения представлено на рисунке 3.2.

Рисунок 3.2 – Разбиение на макроблоки кадра

Рисунок 3.3 – Блок-схема разбиения кадра на макроблоки

48

Рисунок 3.4 – Результат выполнения: разбиение на макроблоки кадра

3. Метод оценки движения

Для определения движения камеры можно воспользоваться различными

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

ными и применяемыми методами можно в приложении Д.

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

Блочные методы вычисляют вектор движения не для каждого пикселя по от-

дельности, а для блока пикселей. То есть всем пикселям в блоке в итоге соот-

ветствует один вектор движения, что позволяет существенно сократить коли-

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

объекты представляют собой группы пикселей. Работа любого алгоритма сво-

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

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

ванного блока, состоящего из M × N пикселов обрабатываемого кадра, выпол-

няется поиск на опорном кадре (предыдущем или следующем, ранее закоди-

рованном и переданном декодеру) «подходящего» блока из M × N пикселов.

Это делается путем сравнения, фиксированного M × N-блока с некоторыми

49

или со всеми M × N-блоками области поиска (это некий регион с центром в

середине этого выбранного блока) и нахождение самого «подходящего» блока,

что представлено на рисунке 3.5.

Рисунок 3.5 – Оценка движения [11]

Выбор метода оценки движения

Так как нам на данном этапе неважно быстродействие, то будем исполь-

зовать метод полного перебора. При использовании метода полного перебора

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

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

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

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

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

макроблока, что представлено на рисунке 3.6.

50

Рисунок 3.6 – Поиск наилучшего совпадения макроблоков

Рисунок 3.7 – Блок-схема поиска наилучшего совпадения макроблоков

4. Для компенсации перемещения камеры оценка SAD, как мера бли-

зости блоков: поиск будем выполнять на основе критерия минимум SAD, он

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

51

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

ному критерию наименьшая величина, свидетельствующая о наименьшей раз-

нице текущего макроблока и макроблока найденного в окне поиска.

Вычисление SAD (суммы абсолютных разностей) между элементами теку-

щего и опорного блоков производится по формуле:

𝑆𝐴𝐷(𝑉𝑥 , 𝑉𝑦) = ∑ |𝐹(𝑥, 𝑦, 𝑡) − 𝐹(𝑥 − 𝑉𝑥, 𝑦 − 𝑉𝑦, 𝑡 − 1)|𝑋,𝑌 , (17)

где F – значение яркости, t – временной индекс кадра, (x, y) – пространствен-

ные координаты пикселей в кадре, VX, VY – координаты вектора движения.

Рисунок 3.8 – Блок-схема алгоритма подпрограммы расчета SAD

5. Построение поля векторов движения. Пример построения MV при-

веден на рисунке 3.9.

52

Рисунок 3.9 – Построение вектора движения

Рисунок 3.10 – Блок-схема построения вектора движения

6. Реализация детектора границ Канни:

Достоинство детектора границ Канни заключается в том, что он устой-

чив к шуму и дает, как правило, лучшие результаты по сравнению с другими

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

быстродействие данного метода уступает более простым операторам, что яв-

53

ляется недостатком такого подхода, но в данном случае это не является глав-

ным для решения поставленной задачи. В дальнейшем его можно оптимизи-

ровать для получения лучшего результата.

1) Фильтр Гаусса: Данный этап реализуется с целью уменьшения

шума на изображении. Наиболее часто используемым фильтром, основанным

на матрице свёртки, является фильтр размытия или фильтр Гаусса. Обычно

матрица заполняется по нормальному (Гауссовому) закону.

Рисунок 3.11 – Матрица размытия 5x5 заполненная по закону Гауссовского

распределения

54

Рисунок 3.12 – Блок-схема Гауссовского размытия

55

2) «Оператор (фильтр) Собеля – дискретный дифференциальный

оператор, вычисляющий приближение градиента яркости изображения,

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

применения к изображению показывает, насколько «резко» или «плавно»

меняется яркость изображения в каждой точке, а значит, вероятность

нахождения точки на грани, а также ориентацию границы» [19].

(18)

В формуле (18) представлены матрицы фильтра Собеля, где каждая точка

содержит приближенные производные по x и по y. Вычисляются путем

умножения матриц Gx и Gy на изображение и суммированием обоих матриц,

полученный результат записывается в текущие координаты x и y в новое

изображение:

(19)

56

Рисунок 3.13 – Блок-схема вычисления градиента яркости оператором Со-

беля

57

3) Двухпороговая фильтрация: На данном этапе сложным является

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

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

шума будет присутствовать на полученном изображении. Если значение пик-

селя выше верхнего порога – он принимает максимальное значение, если ниже

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

чения: 0 и 10

Рисунок 3.14 – Блок-схема выделения границ двухпороговой фильтрацией

58

Рисунок 3.15 – Результат работы детектора границ Канни

7. Использование библиотеки OpenCV для обнаружения и выделе-

ния лиц

В качестве объектов оценивания в данной ВКР выбраны лица людей.

Распознавание самих объектов в OpenCV производится на основе ис-

пользования каскадов слабых классификаторов, которые были настроены пу-

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

Для снижения вычислительной сложности чаще всего слабые классификаторы

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

блоки изображения нормализуют по динамическому диапазону (реализовано

внутри детекторов обнаружения объектов), улучшая работу классификаторов.

Обучение классификаторов в OpenCV производится на изображениях опреде-

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

дение с образцом фрагментов изображения с разными масштабными коэффи-

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

зона, охватывающая объект. Оценивание изменения координат прямоуголь-

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

59

Рисунок 3.16 – Пример обнаружения объектов

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

1) Загрузка и подключение необходимых файлов:

haarcascade_frontalface_alt.xml и haarcascade_eye_tree_eyeglasses.xml;

2) Выделение памяти под запись файла с выделенными лицами и четкими

контурами;

3) Открытие файлов;

4) Создание буфера для Y компоненты, чтобы туда ее пересохранить;

5) Чтение кадров из файла pInpVideo и pInpV.Отметим, что для Y компо-

ненты из pInpV не создается буфер;

6) Обнаружение и выделение лиц на видео с использованием метода

detectAndDisplay (tmp). В выделенной прямоугольной области прово-

дится поиск центра и по нему строится круг (выделение лица в круг) и

эллипсы (выделение глаз на найденном лице). После этого полученный

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

пуска программы: imshow (window_name, tmp);

60

7) После выделения лиц происходит следующее: наложение файлов pIn-

pVideo и pInpV друг на друга, в результате чего получается цветное

изображение с ярко выраженными контурами, что способствует более

верному обнаружению и выделению объектов;

8) Запись полученного видеоизображения;

9) Закрытие файлов.

61

Рисунок 3.17 – Блок-схема обобщенного алгоритма работы программы

Листинг программы с использованием OpenCV представлен в приложе-

нии В, а результаты работы в приложении Г.

62

3.2. Определение параметров движения через геометрические со-

отношения

Данный материал выходит за рамки предварительной обработки, он яв-

ляется основой для будущих реализаций и исследований в данной области. Да-

лее он будет рассмотрен более подробно.

Оцениванию подлежат три компоненты: продольная, поперечная и вра-

щательная компоненты вектора перемещения. Продольная составляющая –

это перемещение объекта вдоль продольной оси камеры. Поперечная состав-

ляющая – движение в плоскости перпендикулярной продольной оси камеры.

Обычно для определения продольной составляющей перемещения объ-

екта используют простые соотношения, получаемые из элементарной геомет-

рии (теорема о подобии треугольников):

Рисунок 3.18 – Определение продольной составляющей перемещения объ-

екта

ℎ1

ℎ0=

𝑥1

𝑥0= 1 +

𝑑𝑥

𝑥0 (20)

𝑑𝑥 =𝑥0

ℎ0𝑑ℎ (21)

Если изменение произошло в течение N кадров и частота кадров F – известна,

то продольная составляющая скорости перемещения составит:

𝑉𝑡 =𝑑𝑥

𝑑𝑡=

𝑥0

ℎ0∙𝑑ℎ

𝑑𝑡=

𝑥0𝐹

ℎ0∙𝑑ℎ

𝑁 (22)

В этих формулах предполагается, что известно первоначальное положе-

ние объекта до камеры – x0. В реальности, x0 может быть не определено. Для

определения неизвестного расстояния x0 необходимо знать фокусное расстоя-

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

Однако, если объект был классифицирован, то известны некоторые усреднен-

h1h0

x0 x1

63

ные его характеристики. Например, если детектируемый объект – лицо чело-

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

hb = 22 – 25см. Таким образом, можно использовать этот усредненный пара-

метр в качестве опоры для оценивания параметров движения.

Предположим, hb – образ объекта на поверхности светочувствительной

матрицы, а f – фокусное расстояние линзы объектива. Тогда, используя фор-

мулу тонкой линзы можно получить:

1 +ℎ0

ℎ𝑏=

𝑥0

𝑓 (23)

Следовательно, получаем формулу:

𝑉𝑡 =(ℎ𝑏+ℎ0)𝐹𝑓

ℎ0ℎ𝑏∙𝑑ℎ

𝑁 (24)

Рисунок 3.19 – Определение поперечной составляющей перемещения объ-

екта

Зная физический размер матрицы и ее разрешение, можно соотнести раз-

мер в пикселях к размеру в метрах.

При расчетах поперечного движения также используют элементарную

геометрию. Предположим продольное перемещение объекта отсутствует, ка-

мера неподвижна (или ее движении было предварительно компенсировано) и

направлена в сторону объекта.

В этом случае скорость поперечного движения может быть оценена как

𝑉ℎ =𝑠𝑟

𝑑𝑡=

𝑠𝑟𝐹

𝑁, (25)

где sr – горизонтальное перемещение объекта.

sw

64

Рисунок 3.20 – Определение поперечной и продольной составляющих пере-

мещения объекта

Если считать, что ширина лица взрослого человека составляет ws = 14 см, то

скорость, выраженная в пикселях можно соотнести со скоростью в метрах:

𝑉ℎ =𝑠∙𝑤𝑠∙𝐹

𝑤0∙𝑁, (26)

где s – расстояния, w0 – измеренные по изображению.

Наличие одновременного перемещения в поперечном и продольных направ-

лениях принципиально не меняют характер расчетов. Для определения резуль-

тирующей скорости перемещения, составляющие скорости геометрически

суммируют.

Более сложной задачей является определение вращательного движения

объекта. В этом случае универсального алгоритма не существует. По-види-

мому, для определения вращательной составляющей потребуется более тонкая

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

возможно судить о вращательном движении. Например, локализовав положе-

ние лица, можно затем определить положение глаз. Отслеживая перемещение

глаз, можно определить параметры вращения.

sw0

w1

65

4. СПЕЦИАЛЬНЫЕ ВОПРОСЫ ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ

Обеспечение безопасности труда при использовании разработанной

программы на ПЭВМ и видеодисплейных терминалов (ВДТ)

ВВОДНАЯ ЧАСТЬ

Тема данной ВКР «Предварительная обработка потока видеоизобра-

жений для задач определения параметров движения объектов» непосред-

ственно связана с большими объемами работы с ЭВМ. «Применение ЭВМ в

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

задач. Очевидно, что насколько быстро и качественно будет решена задача,

зависит не только от возможностей собственно машины, но и от действия опе-

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

упростить и облегчить труд оператора ЭВМ. Большое значение имеет рацио-

нальная конструкция и расположение элементов рабочего места, что важно

для поддержания оптимальной рабочей позы человека-оператора» [20].

Целью написания данной главы является обеспечение правильного ре-

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

заболеваний и производственного травматизма. В связи с этим в этой главе

будут рассмотрены вопросы организации рабочего места пользователя ПЭВМ,

возможные меры для предотвращения различных заболеваний.

4.1 Вредные производственные факторы на рабочем месте поль-

зователя

«Под рабочим местом оператора ЭВМ понимают зону трудовой деятель-

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

обходимым для осуществления управлением ЭВМ» [20].

66

На пользователя ПЭВМ одновременно воздействуют достаточно боль-

шое количество вредных факторов. Их источниками являются не только мо-

нитор и другие модули ПЭВМ, но и факторы внешней среды, количество и

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

4.1.1 Классификация опасных и вредных производственных фак-

торов

«Все производственные факторы по сфере своего происхождения под-

разделяют на следующие две основные группы:

• факторы производственной среды;

• факторы трудового процесса.

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

сти труда по критерию возможности причинения вреда организму работаю-

щего человека выделяют:

• неблагоприятные производственные факторы:

- вредные производственные факторы (факторы, приводящие к заболе-

ванию, в том числе усугубляющие уже имеющиеся заболевания);

- опасные производственные факторы (факторы, приводящие к травме,

в том числе смертельной).

• производственные факторы, не являющиеся неблагоприятными, то есть

нейтрального или благоприятного действия.

Опасные и вредные производственные факторы производственной

среды по источнику своего происхождения подразделяют:

- на природные (климатические и погодные условия на рабочем месте);

- технико-технологические;

- эргономические (связанные с физиологией организма человека).

Опасные и вредные производственные факторы трудового процесса по

источнику своего происхождения подразделяют:

- на психофизиологические;

- организационно-управленческие;

67

- личностно-поведенческие (связанные с самим работающим);

- социально-экономические» [26].

«К психофизиологическим факторам согласно ГОСТ 12.0.003–2015

можно отнести:

- статические перегрузки, связанные с рабочей позой;

- динамические нагрузки, связанные с повторением стереотипных ра-

бочих движений;

- нервно-психические перегрузки, связанные с напряженностью трудо-

вого процесса;

- умственное перенапряжение, в том числе вызванное информационной

нагрузкой;

- перенапряжение анализаторов, в том числе вызванное информацион-

ной нагрузкой;

- монотонность труда, вызывающая монотонию;

- эмоциональные перегрузки» [26].

4.1.2 Классификация опасных и вредных производственных фак-

торов, обладающих свойствами физического воздействия на орга-

низм человека

«Опасные и вредные производственные факторы, обладающие свой-

ствами физического воздействия на организм работающего человека, подраз-

деляют на следующие группы:

а) Опасные и вредные производственные факторы, связанные с меха-

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

1) повышенным уровнем общей вибрации;

2) повышенным уровнем локальной вибрации;

б) Опасные и вредные производственные факторы, связанные с акусти-

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

68

1) повышенным уровнем и другими неблагоприятными характе-

ристиками шума;

2) повышенным уровнем инфразвуковых;

3) повышенным уровнем ультразвуковых колебаний;

в) Опасные и вредные производственные факторы, связанные с элек-

трическим током, вызываемым разницей электрических потенциалов, под дей-

ствие которого попадает работающий, включая действие молнии и высоко-

вольтного разряда в виде дуги;

г) Опасные и вредные производственные факторы, связанные с элек-

тромагнитными полями, неионизирующими ткани тела человека:

1) постоянного характера, связанного с:

• повышенным образованием электростатических зарядов;

• наличием электростатического поля, чрезмерно отличаю-

щегося от поля Земли;

• наличием постоянного магнитного поля, чрезмерно отли-

чающегося от геомагнитного поля Земли;

2) переменного характера, связанного с:

• наличием электромагнитных полей промышленных ча-

стот (порядка 50–60 Гц);

• наличием электромагнитных полей радиочастотного диа-

пазона;

д) Опасные и вредные производственные факторы, связанные со свето-

вой средой и характеризуемые чрезмерными характеристиками световой

среды, затрудняющими безопасное ведение трудовой и производственной де-

ятельности:

1) отсутствие или недостаток необходимого естественного осве-

щения;

2) отсутствие или недостатки необходимого искусственного осве-

щения;

3) повышенная яркость света;

69

4) пониженная световая и цветовая контрастность;

5) прямая и отраженная блесткость;

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

е) Опасные и вредные производственные факторы, связанные с неиони-

зирующими излучениями:

1) инфракрасное излучение;

2) ультрафиолетовое излучение;

3) лазерное излучение» [26].

«Также к опасным производственным факторам на рабочих местах с

ПЭВМ можно отнести:

1) Пожарную опасность, обусловленную наличием на рабочем месте

мощного источника энергии;

2) Высокое напряжение питающей сети, обуславливающее возмож-

ность поражения человека электрическим током» [21].

4.2 Вредные факторы при работе с ПЭВМ

4.2.1 Электромагнитные поля и излучения

ПЭВМ генерирует в окружающее пространство широкий спектр ЭМП

различной интенсивности:

- электростатическое поле;

- переменные низкочастотные ЭМП;

- электромагнитное излучение радиочастотного диапазона;

- электромагнитное излучение оптического (видимого) диапазона;

- ультрафиолетовое и рентгеновское излучения ЭЛТ.

Источник электростатического поля – экран дисплея, несущий высокий

электростатический потенциал (ускоряющее напряжение ЭЛТ). Заметный

вклад в общее электростатическое поле вносят электризующиеся от трения по-

верхности клавиатуры и мыши.

70

Электростатическое поле, помимо собственно биофизического воздей-

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

телем и экраном пыли, которая затем с вдыхаемым воздухом попадает в орга-

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

Кроме того, пыль оседает на клавиатуре ПЭВМ и, проникая затем в поры паль-

цев, может провоцировать заболевания кожи рук.

Источники переменных ЭМП – узлы ПЭВМ, работающие при высоких

переменных напряжениях и больших токах.

Следствием систематического воздействия переменных ЭМП с парамет-

рами, превышающими допустимые нормы, являются функциональные нару-

шения нервной, эндокринной и сердечно-сосудистой систем. Указанные нару-

шения проявляются в виде повышенной утомляемости, головных болей, нару-

шений сна, гипертонии, заторможенности рефлексов.

Источником фоновых ЭМП промышленной частоты является электро-

проводка, а также любое электрооборудование (щиты питания, розетки, вы-

ключатели) и бытовая электрорадиотехника (осветительные и нагревательные

приборы, кондиционеры). При этом фон конкретного помещения формиру-

ется электрооборудованием всего здания и внешними источниками (трансфор-

маторные подстанции, ЛЭП и др.).

Напряженность фонового поля промышленной частоты в офисах и ра-

бочих кабинетах, в основном, в десятки раз меньше установленных ПДУ, по-

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

дисплей, как рабочий инструмент, обладает той особенностью, что магнитная

составляющая фона промышленной частоты напряженностью более 1 мкТл

обуславливает пространственную и временную нестабильности изображения

на экране дисплея. Указанные нестабильности, воспринимаемые пользовате-

лем как дрожание и мерцания изображения, оказывают вредное воздействие

на зрительный анализатор пользователя и через него - на общее состояние по-

следнего.

71

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

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

ции рабочего места.

Таблица 4.1 – ПДУ электромагнитных полей на рабочих местах пользо-

вателей ПК и другими средствами ИКТ

Нормируемые параметры ПДУ

Напряженность электрического поля 5 Гц - < 2 кГц 25 В/м

2 кГц - < 400

кГц

2,5 В/м

Напряженность магнитного поля 5 Гц - < 2 кГц 250 нТл

2 кГц - < 400

кГц

25 нТл

Плотность потока энергии 300 МГц - 300

ГГц 10 мкВт/см

Напряженность электростатического поля 15 кВ/м

Таблица 4.2 – ПДУ синусоидального (периодического) магнитного поля

частотой 50 Гц

Время пребывания, ч Допустимые уровни МП, Н [А/м] / В [мкТл] при воздей-

ствии

общем локальном

1 1600/2000 6400/8000

2 800/1000 3200/4000

4 400/500 1600/2000

8 80/100 800/1000

ПДУ МП синусоидального (периодического) частотой 50 Гц внутри

временных интервалов определяется в соответствии с кривой интерполяции,

представленной на рисунке 4.1.

72

Рисунок 4.1 – Кривая интерполяции ПДУ магнитных полей частотой 50 Гц в

зависимости от времени

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

4.3.1 Общие требования к организации рабочего места

Рассмотрим основные требования к помещениям, где установлены компью-

теры.

1) Требования к освещению

Освещение помещений вычислительных центров должно быть смешан-

ным.

При выполнении работ категории высокой зрительной точности

(наименьший размер объекта различения 0,3–0,5 мм) величина коэффициента

естественного освещения (КЕО) должна быть не ниже 1,5%, а при зрительной

работе средней точности (наименьший размер объекта различения 0,5–1,0 мм)

КЕО должен быть не ниже 1,0%. В качестве источников искусственного осве-

щения обычно используются люминесцентные лампы типа ЛБ или ДРЛ, кото-

рые попарно объединяются в светильники. Эти светильники должны распола-

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

73

Требования к естественному, искусственному и совмещенному освеще-

нию рабочих мест на промышленных предприятиях и в помещениях обще-

ственных зданий приведены на рисунке 4.2 по СанПиН 2.2.2/2.4.2620-10.

Рисунок 4.2 – Нормативы уровней освещенности промышленных помещений

а – постоянная работа, б – периодическая работа при постоянном пребывании

в помещении, в – периодическая работа при периодическом пребывании в

помещении, г – общее наблюдение за инженерными коммуникациями.

Рисунок 4.3 – Нормативы уровней освещенности офисных помещений

В производственных помещениях со зрительными работами I-III разря-

дов следует применять совмещенное освещение. Комбинированная система

74

естественного освещения должна обеспечивать нормативные уровни КЕО в

соответствии с приложением 9 к настоящим СанПиН приведена на рисунке

4.4.

Рисунок 4.4 – Нормативные уровни КЕО

Яркость рабочей поверхности не должна превышать значений, указан-

ных в таблице 4.3.

Таблица 4.3 – Допустимые уровни яркости рабочих поверхностей по

условиям отраженной блескости

Площадь рабочей поверхности, м Наибольшая допустимая яркость, кд/м2

менее 0,0001 2000

от 0,0001 до 0,001 1500

от 0,001 до 0,01 1000

от 0,01 до 0,1 750

более 0,1 500

75

2) Требования к микроклимату

Вычислительная техника является источником существенных тепловы-

делений, что может привести к повышению температуры и снижению относи-

тельной влажности в помещении. В помещениях, где установлены компью-

теры, должны соблюдаться определенные параметры микроклимата согласно

СанПиН 2.2.4.3359-16 «Санитарно-эпидемиологические требования к физиче-

ским факторам на рабочих местах», которые представлены в таблице 4.4. Ра-

бота с ПЭВМ по интенсивности труда относится к категории 1a,1б – легкая

работа, где затраты энергии человеком не превышают 174 Вт.

Таблица 4.4 – Допустимые величины параметров микроклимата на рабо-

чих местах производственных помещений

Период

года

Категория

работ по

Температура воздуха,

°С

Темпе-

ратура

поверх-

ностей,

°С

От-

носи-

тель-

ная

влаж-

ность

воз-

духа,

%

Скорость движения

воздуха, м/с

уровню

энерготрат,

Вт

диапазон

ниже

опти-

мальных

величин

диапазон

выше

опти-

мальных

величин

для диа-

пазона

темпе-ра-

тур

воздуха

ниже

опти-

мальных

величин,

не более

для диа-

пазона

темпе-

ратур

воздуха

выше

опти-

мальных

величин,

не бо-

лее**

Холод- Iа (до 139) 20,0-21,9 24,1-25,0 19,0-26,0 15-75* 0,1 0,1

ный Iб (140-

174)

19,0-20,9 23,1-24,0 18,0-25,0 15-75 0,1 0,2

Теплый Iа (до 139) 21,0-22,9 25,1-28,0 20,0-29,0 15-75* 0,1 0,2

Iб (140-

174)

20,0-21,9 24,1-28,0 19,0-29,0 15-75* 0,1 0,3

76

Объем помещений, в которых размещены работники вычислительных

центров, не должен быть меньше 19,5 м3/человека с учетом максимального

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

помещения, где расположены компьютеры, приведены в таблице 4.5.

Таблица 4.5 – Нормы подачи свежего воздуха в помещениях с ЭВМ

Характеристика помещения Объемный расход подаваемого в помеще-

ние свежего воздуха, м3/на одного чело-

века в час

Объём до 20 м3 на человека Не менее 30

20 м3- 40 м3 на человека Не менее 20

Более 40 м3 на человека Естественная вентиляция

Помещение без окон и световых фонарей Не менее 60

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

вентиляции и кондиционирования, а также естественная вентиляция.

3) Рабочее место оператора ВДТ

«Организация рабочего места оператора, обслуживающего видеодис-

плейные терминалы (ВДТ), должна соответствовать положениям санитарно-

эпидемиологических правил к видеодисплейным терминалам, персональным

электронно-вычислительным машинам и требованиям раздела 9.4. Санитар-

ных правил:

расстояния между рабочими столами с видеомониторами (в направлении тыла

поверхности одного видеомонитора и экрана другого видеомонитора), должно

быть не менее 2,0 м;

расстояние между боковыми поверхностями видеомониторов – не менее 1,2 м,

что продемонстрировано на рисунке 4.5;

видеотерминалы следует устанавливать на подъемно-поворотной площадке,

позволяющей перемещать его по горизонтали и вертикали (в пределах 130–

220 мм) и изменять угол наклона экрана;

77

экран видеомонитора должен располагаться на оптимальном расстоянии 600-

700 мм (но не ближе 500 мм) от глаз пользователя с учетом размеров алфа-

витно-цифровых и графических знаков и символов;

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

Угол наблюдения нижней части экрана оператором относительно горизон-

тальной линии взгляда не должен превышать 60°;

иметь возможность регулирования высоты рабочей поверхности стола в пре-

делах 680–800 мм, а при отсутствии таковой должна составлять 725 мм;

клавиатуру ВДТ следует располагать на поверхности стола на расстоянии 100–

300 мм от края, обращенного к пользователю» [24].

Рисунок 4.5 — Организация рабочего места

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

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

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

ным требованиям эргономики.

Рабочий стул (кресло) должен быть подъемно-поворотным, регулируе-

мым по высоте и углам наклона сидения и спинки, а также расстоянию спинки

от переднего края сидения. Положение спинки кресла оператора должно обес-

печивать наклон тела назад от 97–121°. Рабочее место пользователя следует

оборудовать подставкой для ног.

«Существенное значение для производительной и качественной работы

78

на компьютере имеют размеры знаков, плотность их размещения, контраст и

соотношение яркостей символов и фона экрана. Если расстояние от глаз опе-

ратора до экрана дисплея составляет 60–80 см, то высота знака должна быть

не менее 3 мм, оптимальное соотношение ширины и высоты знака составляет

3: 4, а расстояние между знаками – 15–20% их высоты. Соотношение яркости

фона экрана и символов – от 1: 2 – 1: 5 до 1: 10 – 1: 15» [22].

Рисунок 4.6 – Правильная организация положения оператора за ПЭВМ

4) Требования к шуму и вибрации в помещениях

Основными источниками шума в помещениях, оборудованных вычис-

лительной техникой, являются принтеры, плоттеры, множительная техника и

оборудование для кондиционирования воздуха, вентиляторы систем охлажде-

ния, трансформаторы.

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

ется 80 дБА, а при работе на ЭВМ – 50 дБА.

«Эквивалентные уровни звука на рабочих местах с учетом напряженно-

сти и тяжести трудового процесса представлены на рисунке 4.7.

79

Рисунок 4.7 – Эквивалентные уровни звука на рабочих местах

Уровень вибрации в помещениях допустимых значений по СН

2.2.4/2.1.8.566-96 категория 3, тип «в». Нормируемые уровни шума обеспечи-

ваются путем использования малошумного оборудования, применением зву-

копоглощающих материалов. Кроме того, необходимо использовать подвес-

ные акустические потолки.

Шумящее оборудование, уровни шума которого превышают нормиро-

ванные, должно находиться вне помещения с компьютерами.

Для снижения уровня шума стены и потолок помещений, где установ-

лены компьютеры, должны быть облицованы звукопоглощающими материа-

лами. Уровень вибрации в помещениях вычислительных центров может быть

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

изоляторы» [22].

5) Требования к пожарной безопасности

«В помещении, где располагается ПЭВМ, находится большое количе-

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

зуемые для питания ПЭВМ от сети переменного тока напряжением 220 В, раз-

80

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

гут привести к короткому замыканию, мебель из горючих материалов, носите-

ли информации (бумага и магнитная лента).

Возможно возникновение пожара и поэтому необходимо предусмотреть

меры пожарной профилактики: соблюдение противопожарных требований

при проектировании и эксплуатации систем вентиляции согласно СНиП 41-

03-2003, соблюдение условий пожарной безопасности электроустановок со-

гласно ПУЭ – 2002, наличие средств оповещения:

пожарные извещатели (линейные, тепловые, дымовые и т.д.);

автоматические установки пожаротушения (газовые централизован-

ного и модульного типа, углекислотные);

инструкции по мерам противопожарной безопасности;

план эвакуации людей и технических средств» [23].

4.4. Эргономика разрабатываемого ПО

Поскольку тема данной ВКР «Предварительная обработка потока видео-

изображений для задач определения параметров движения объектов» непо-

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

реть эргономику разрабатываемого ПО.

«Программное обеспечение должно разрабатываться в соответствии с

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

по ГОСТ Р ИСО/МЭК 9126-93.

Хороший интерфейс «человек – компьютер», дружественность про-

граммы и удобство работы с ней являются залогом успешной и долгой работы

пользователя с сохранением его здоровья. Это позволяет исключить возмож-

ные ошибки, нервные срывы и различные заболевания. Очень большое значе-

ние имеет то, в каких программных оболочках работает программа, организа-

81

ция ввода исходных данных и вывода результатов, режим ввода, время, затра-

чиваемое на ввод, решение задачи и просмотр её результатов, наличие звуко-

вого сопровождения при работе программы и подсказок.

Универсальных рекомендаций по разработке интерфейса нет, однако не-

которые показатели качества должны быть учтены согласно ГОСТ Р

ИСО/МЭК 9126-93 и принципам проектирования взаимодействия человека с

техническими средствами.

Показателями качества программного обеспечения (ПО) по представле-

нию пользователя являются:

- надёжность;

- эффективность;

- практичность.

Комплексные показатели качества включают в себя:

- практичность (понятность, обучаемость, простоту использования);

- сопровождаемость (диагностика недостатков, изменяемость, тестиру-

емость);

- адаптируемость.

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

должна производиться по изложенным ниже критериям:

- имеются ли требуемые функции в ПО;

- насколько оно надёжно и эффективно;

- является ли ПО удобным для пользователя;

- насколько просто переносится в другую среду.

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

ботке программ:

1 Принцип минимального рабочего усилия. Здесь ставится задача

минимизации затрат ресурсов со стороны пользователя. Человек-оператор

(ЧО) должен выполнять только ту работу, которая необходима, но не может

быть выполнена системой.

82

2 Принцип максимального взаимопонимания. Система должна

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

формация не должна требовать интерпретации или перекодировки, это может

значительно загрузить оперативную память пользователя.

3 Принцип минимального объёма оперативной памяти пользова-

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

4 Принцип минимального расстройства человека-оператора. Рас-

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

шении поставленной задачи или из-за появления и обнаружения ошибок. Ин-

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

должна индицироваться в строке состояния. Также система обязана быстро со-

общить об ошибках и по возможности указать случаи, где ещё они могут по-

явиться.

5 Принцип учета профессиональных навыков пользователя. При

создании интерфейса необходимо предусмотреть облик некоторого абстракт-

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

ется разработчиками. Это значит, что при разработке системы на основе неко-

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

проектируется «человеческий компонент» с учётом требований и особенно-

стей всей системы и её подсистем.

При разработке программного обеспечения уменьшение напряжения

глаз должно достигаться за счёт выбора правильных размеров символов и ра-

ционального цветового оформления» [25].

83

ВЫВОДЫ ПО ГЛАВЕ СПЕЦИАЛЬНЫЕ ВОПРОСЫ ОБЕСПЕЧЕНИЯ

БЕЗОПАСНОСТИ

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

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

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

рук при работе с клавиатурой ЭВМ. Основными факторами, влияющими

на производительность труда операторов ПЭВМ и ВДТ, являются комфорт-

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

димо соблюдать правильный режим труда и отдыха.

В данной главе были рассмотрены вредные производственные факторы,

с которыми оператор ЭВМ может столкнуться на рабочем месте, а также тре-

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

в нормативных документах.

Вывод, который следует сделать из рассмотренного выше материала, в

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

бочего места оператора, позволит сохранить хорошую работоспособность в

течение рабочего дня, повысит производительность труда, что в свою очередь

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

дукта.

84

ЗАКЛЮЧЕНИЕ

В результате написания данной ВКР были выполнены следующие

этапы:

1) Анализ методов определения параметров движения;

2) Разработка общего алгоритма определения параметров движения;

3) Реализация предварительной обработки;

4) Поиск лиц;

5) Вывод соотношений для расчетов компонентов движения;

6) Анализ влияющих факторов.

Задачу, описанную в техническом задании можно считать успешно вы-

полненной.

Данная тема является достаточно актуальной в настоящее время, по-

скольку видеоаналитика и видео используются повсеместно. Необходимо от-

метить также, что предварительная обработка является только первым этапом

в предлагаемом общем алгоритме определения параметров движения. Резуль-

таты, полученные после предварительной обработки, будут основой для даль-

нейших исследований в решении поставленной цели.

85

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Орлов С. Видеоаналитика: задачи и решения // Журнал сетевых реше-

ний/LAN: электронный журнал. – 2014 [Электронный ресурс]. URL:

http://www.osp.ru/lan/2014/06/13041879/ (дата обращения: 17.02.2017).

2. Ярышев С.Н. Цифровые методы обработки видеоинформации и видео-

аналитика: учебное пособие. - СПб: СПбГУ ИТМО, 2011. – 83 с.

3. Сакович И.О., Белов Ю.С. Обзор основных методов контурного анализа

для выделения контуров движущихся объектов // Инженерный журнал:

наука и инновации: электронный журнал. – 2014. – №12 [Электронный

ресурс]. URL: http://engjournal.ru/catalog/it/hidden/1280.html (дата обра-

щения: 25.02.2017).

4. Тропченко А.Ю. Методы вторичной обработки изображений и распо-

знавания объектов. Учебное пособие. – СПб: СПбГУ ИТМО, 2012. – 52

с.

5. @Gepard_vvk. Алгоритмы выделения контуров изображений. [Элек-

тронный ресурс]. URL: https://habrahabr.ru/post/114452/(дата обращения:

15.03.2017).

6. Титов И.О., Емельянов Г.М. Выделение контуров изображения движу-

щегося объекта // Вестник Новгородского Государственного Универси-

тета. 2010 г, вып. (№) 55. С. 27–31.

7. Стругайло В.В. Обзор методов фильтрации и сегментации цифровых

изображений // Научное издание МГТУ Им. Н.Э. Баумана «Наука и об-

разование», 2012, вып.(№) 05.С. 271–281.

8. Семашко А.C., Крылов А.С. Обработка и анализ границ объектов на ос-

нове метода активных контуров // Труды 12-й международной конфе-

ренции и выставки «Цифровая обработка сигналов и её применение»

(DSPA'2010), т. 2. Москва, 2010, с. 90−93.

86

9. Muthukrishnan R, Radha M. Алгоритмы выделения контуров для сегмен-

тации изображений, International Journal of Computer Science &

Information Technology (IJCSIT),2011, 3(6). С. 259–267.

10. Катулев А. Н., Колонсков А. А., Храмичев А. А., Ягольников С. В. Адап-

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

тико-электронным средством // Научно-технический «Оптический жур-

нал». 2014, вып. (№) 02. С. 29–39.

11. DataLink. Идентификация и распознавание объектов. [Электронный ре-

сурс].URL: http://datalink.ua/news/17-01-2013-13-36-identifikaciya-i-

raspoznavanie-obektov/ (дата обращения: 05.03.2017).

12. Локтев Д.А. Разработка и исследование методов определения парамет-

ров статичных и движущихся объектов в системе мониторинга: диссер-

тация на соискание ученой степени кандидата технических наук/

МГУПС (МИИТ), М, 2015.

13. Джулиан ИНМАН (Julian INMAN). Эффективность видеоаналитики и

правильное размещение камер // Технологии защиты: электронный жур-

нал. – 2015. – № 4 [Электронный ресурс]. URL: http://www.ak-

tivsb.ru/statii/effektivnost_videoanalitiki_i_pravilnoe_razmeshchenie_ka-

mer.html (дата обращения: 12.12.2016).

14. Мартынова Л.А., Корякин А.В., Ланцов К.В., Ланцов В.В. / Определение

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

жений // Компьютерная оптика. 2012, вып. (№) 02. С. 266–273.

15. Волыхина М.Н., Пыко С.М. Система электропитания в автономных си-

стемах жизнеобеспечения / 71 – Всероссийская научно – техническая

конференция, посвященная Дню радио: тез. докл. 71– всероссийской

науч.–техн. конф., СПб, 20–28 апр. 2016 г. / СПбГЭТУ «ЛЭТИ», СПб,

2016

16. Волыхина М. Н., Пыко С. М. Формирование структуры кадров при ви-

деокодировании по стандарту H265 (HEVC) / III Научно-Техническая

87

конференция с международным участием «НАУКА НАСТОЯЩЕГО И

БУДУЩЕГО» для студентов, аспирантов и молодых ученых: тез. докл.

III международной науч.-техн. конф., СПб, 12–13 марта. 2015 г. /

СПбГЭТУ «ЛЭТИ», СПб,2015, С. 096–097.

17. Гейдаров П.Ш. Алгоритм определения расположения и размеров объек-

тов на основе анализа изображений объектов // Компьютерная оптика.

2011, вып. (№) 02. С. 275–280.

18. Лисин А.В. Контроль не покрытых охранным телевидением участков //

Компьютерная оптика. 2011, вып. (№) 01. С. 123–127.

19. Noonv. OpenCV шаг за шагом. Обработка изображения – операторы

Собеля и Лапласа. [Электронный ресурс]. URL:

http://robocraft.ru/blog/computervision/460.html/ (дата обращения:

10.04.2017).

20. Темеров Д. Рабочее место оператора ЭВМ // Московский областной про-

мышленно экономический колледж. – 2009. [Электронный ресурс].

URL: http://revolution.allbest.ru/life/00228399_0.html (дата обращения:

23.04.2017).

21. Обеспечение безопасности при работе с компьютером / под ред. Л.А.

Муравья., Издательство ЮНИТИ-ДАНА, 2000. [Электронный ресурс].

URL: http://www.bibliotekar.ru/ecologia-5/105.htm (дата обращения:

21.04.2017).

22. Туркевич А.А. Обеспечение электромагнитной безопасности при экс-

плуатации компьютерной техники // Справочное руководство [Элек-

тронный ресурс]. URL:http://www.sbras.nsc.ru/cotreb/rabota-s-pevm (дата

обращения: 28.04.2017).

23. Требования к работе в помещениях с ЭВМ. Пожарная безопасность

[Электронный ресурс]. URL: http://www.seodiplom.ru/9-bezopasnost/tre-

bovaniya-k-rabote-v-pomescheniyah-s-evm/ (дата обращения: 26.04.2017).

88

24. Мунипов В. М., Зинченко В. П. Эргономика: человекоориентированное

проектирование техники, программных средств и среды: Учеб. М.: Изд-

во Логос, 2001. 356 с.

25. ГОСТ Р ИСО/МЭК 9126-93. Информационная технология. Оценка про-

граммной продукции. Характеристика качества и руководство по их

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

ютер [Электронный ресурс]. URL: http://docs.cntd.ru/document/gost-r-iso-

mek-9126-93 (дата обращения: 29.04.2017).

26. ГОСТ 12.0.003-2015. Система стандартов безопасности труда (ССБТ).

Опасные и вредные производственные факторы. Классификация [Элек-

тронный ресурс]. URL: http://docs.cntd.ru/document/1200136071 (дата об-

ращения: 27.04.2017).

27. Гуркин Ю.Н. Методы сжатия и архивации оцифрованного сигнала // За-

щита информации. Конфидент: электронный журнал. – 2003. – № 1

[Электронный ресурс]. URL: https://cctv-pro.com.ua/article/3264/yu--gur-

kin--metody-sjatiya-i-arhivacii-ocifrovannogo-signala-/ (дата обращения:

12.12.2016).

28. Лужков Ю.В. Разработка и исследование методов сжатия изображений

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

ция на соискание ученой степени кандидата технических наук/ СПбНИУ

ИТМО, СПб, 2009.

89

Приложение А

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

ний

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <cmath> #include <iomanip> #include "CalcSAD16x16.h" const ptrdiff_t nWidth = 1280; const int nHeight = 720; using namespace std; // Подпрограмма для расчета SAD: int CalcSAD16x16(unsigned char*pi0, int iStride0, unsigned char*pi1, int iStride1); int MotionvectorX; int MotionvectorY; unsigned int number; unsigned int numb; class Histogram { private: int kadrs; static const unsigned int z = 4; static unsigned int HYST[z]; static const unsigned int MAXHYST=0xffff; public: Histogram() // конструктор { for (int i = 0; i < z; ++i) HYST[i]=0; } void Put(int MvX, int MvY, int k) { MotionvectorX = MvX; MotionvectorY = MvY; kadrs = k; } }; // Объявление функций и переменных: int main(void) { FILE *pInpVideo, *pTestOut; unsigned char *pYFrame0, *pUFrame0, *pVFrame0,*pYFrame1, *pUFrame1, *pVFrame1,*pYFrames,*pYFramess, *pYBlock0,* pYBlock1, *pInside, *pYCurrent, *pUCurrent, *pVCurrent, *pYW; const int nHeight = 720; const ptrdiff_t nWidth = 1280; int nSize = nHeight*nWidth; int NumFrame=450; unsigned int SAD[nHeight/16][nWidth/16]; int MvX[nHeight/16][nWidth/16]; int MvY[nHeight/16][nWidth/16];

90

ptrdiff_t H=64; ptrdiff_t W=64; int MinX, MinY; unsigned int MAXHYST=0xffff; static const unsigned int z = 4; static unsigned int HYST[z]; //Выделили память под 1 кадр и 2 кадр: pYFrame0 = (unsigned char*)malloc(sizeof(unsigned char)* nSize); pUFrame0 = (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pVFrame0= (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pYFrame1 = (unsigned char*)malloc(sizeof(unsigned char)* nSize); pUFrame1 = (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pVFrame1= (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pYFrames = (unsigned char*)malloc(sizeof(unsigned char)* nSize); pYFramess = (unsigned char*)malloc(sizeof(unsigned char)* nSize); //Открыли файл: pInpVideo= fopen ("uman_1280x720.yuv","rb") ; pTestOut = fopen ("uman_1280x720_5.yuv","wb") ; //Прочитали 1-й кадр: fread (static_cast<void*> (pYFrame0), sizeof(unsigned char), (nSize), pInpVideo); fread (static_cast<void*> (pUFrame0), sizeof(unsigned char), (nSize)/4, pIn-pVideo); fread (static_cast<void*> (pVFrame0), sizeof(unsigned char), (nSize)/4, pIn-pVideo); for (int k=1; k<NumFrame; k++) { //Прочитали следующий кадр: fread (static_cast<void*> (pYFrame1), sizeof(unsigned char), (nSize), pInpVideo); fread (static_cast<void*> (pUFrame1), sizeof(unsigned char), (nSize)/4, pIn-pVideo); fread (static_cast<void*> (pVFrame1), sizeof(unsigned char), (nSize)/4, pIn-pVideo); // фильтр Гаусса float G[5][5]= { {0.00296902, 0.0133062, 0.0219382, 0.0133062, 0.00296902}, {0.0133062, 0.0596343, 0.0983203, 0.0596343, 0.0133062}, {0.0219382, 0.0983203, 0.162103, 0.0983203, 0.0219382}, {0.0133062, 0.0596343, 0.0983203, 0.0596343, 0.0133062}, {0.00296902, 0.0133062, 0.0219382, 0.0133062, 0.00296902} }; for(int i=2; i<nHeight-2;i++) { for(int j=2; j<nWidth-2;j++) { unsigned char *t_ptr = (i*nWidth + j) + pYFrame0; unsigned char *ttt_ptr = (i*nWidth + j) + pYFramess; float newP = 0; for(int k = 0; k<5; k++) { for(int l = 0; l<5; l++) { unsigned char *pixel = t_ptr + (k * nWidth + l) - (2 * nWidth) - 2; newP+= static_cast<float>(*pixel) * G[k][l]; //end of l

91

} // end of k } *ttt_ptr = static_cast <unsigned char>(newP); //end of j } //конец фильтра Гаусса end of i } //оператор Собеля int Sobel[3][3]= { {-1, 0, 1}, {-2, 0, 2}, {-1, 0, 1} }; int Sobely[3][3]= { {-1 , -2 , -1}, {0, 0 , 0 }, {1, 2, 1} }; for(int i=1; i<nHeight-1;i++) { for(int j=1; j<nWidth-1;j++) { unsigned char *t_ptr = (i*nWidth + j) + pYFramess; unsigned char *tt_ptr = (i*nWidth + j) + pYFrames; int newPSobel = 0; int newPSobely = 0; int newSobel = 0; for(int s = 0; s<3; s++) { for(int d = 0; d<3; d++) { unsigned char *pixel = t_ptr + (s * nWidth + d) - nWidth-1; newPSobel+= static_cast<int>(*pixel) * Sobel[s][d]; newPSobely+= static_cast<int>(*pixel) * Sobely[s][d]; } } newSobel= (sqrt((newPSobel*newPSobel) + (newPSobely*newPSobely)))/8; if(newSobel > 255) cout << "\n R" << endl; //выставление порога if(newSobel > 100)newSobel = 0; if(newSobel < 10 ) newSobel = 255; *tt_ptr = static_cast <unsigned char>(newSobel); } } //Поставили точку в блоках 16х16: char PIXEL=255; for (int y=0; y<nHeight; y+=16) { for (int x=0; x<nWidth; x+=16) { pYBlock0 = pYFrame0 + x + y * nWidth;

92

pYBlock1 = pYFrame1 + x + y * nWidth; //Определение положения окна поиска: pYW = pYBlock0 - static_cast<ptrdiff_t> ((W/2)+ (H/2*nWidth)); SAD[y/16][x/16]=0xFFFFF; MvX[y/16][x/16]=0; MvY[y/16][x/16]=0; //Контроль выхода за пределы кадра: if(((x-W/2)<0)||((x+W/2+16)>=nWidth)||((y-H/2)<0) ||((y+H/2+16)>=nHeight)) continue; else { for(int ii=0; ii<H; ii++) { for(int jj=0; jj<W; jj++) { unsigned int SADSearch = CalcSAD16x16((pYW+jj+ii*nWidth),nWidth,pYBlock1,nWidth); if(SADSearch<SAD[y/16][x/16]) { SAD[y/16][x/16]= SADSearch; //minSAD=SAD_search; MvX[y/16][x/16]=jj-W/2; MvY[y/16][x/16]=ii-H/2; } }//for(int jj.. }//for(int ii.. // здесь рисуем вектора по координатам char PIXELS = 255; int x0=0; unsigned char *ppixel; for(int x=x0; x<x0+MvX[y/16][x/16];x++) { ppixel = pYBlock0 + y*nWidth +x; *ppixel = PIXELS; // Поставить точку (y,x); } * pYBlock0 = PIXEL;//ставим точку * pYBlock1 = PIXEL; }//else }//for(int x .. } //for(int y .. //Записали кадр: fwrite(pYFrames, sizeof(unsigned char), nSize, pTestOut); fwrite(pUFrame0, sizeof(unsigned char), nSize/4, pTestOut); fwrite(pVFrame0, sizeof(unsigned char), nSize/4, pTestOut); //Обменялись указателями: pYCurrent = pYFrame0; pUCurrent = pUFrame0; pVCurrent = pVFrame0; pYFrame0 = pYFrame1; pUFrame0 = pUFrame1; pVFrame0 = pVFrame1; pYFrame1 = pYCurrent; pUFrame1 = pUCurrent;

93

pVFrame1 = pVCurrent; printf(" <k=%d>\n", k); } //Записали последний кадр: fwrite(pYFrames, sizeof(unsigned char), nSize, pTestOut); fwrite(pUFrame0, sizeof(unsigned char), nSize/4, pTestOut); fwrite(pVFrame0, sizeof(unsigned char), nSize/4, pTestOut); //Закрыли файл: fclose(pTestOut); fclose(pInpVideo); system("pause"); return 0; }

94

Приложение Б

Результаты работы программы предварительной обработки по-

тока видеоизображений

Рисунок Б.1 – Вывод номера обработанного и записанного кадра

Рисунок Б.2 – Исходное видеоизображение формата .yuv

95

Рисунок Б.3 – Полученное после выполнения программы видеоизображение

формата .yuv

96

Приложение В

Листинг программы выделения лиц с использованием OpenCV

#include "opencv2/objdetect.hpp" #include "opencv2/highgui.hpp" #include "opencv2/imgproc.hpp" #include <iostream> #include <stdio.h> using namespace std; using namespace cv; /* Function Headers */ void detectAndDisplay(cv::Mat tmp); /* Global variables */ String face_cascade_name = "C:/opencv3/opencvv/sources/data/haarcascades/haarcas-cade_frontalface_alt.xml"; String eyes_cascade_name = "C:/opencv3/opencvv/sources/data/haarcascades/haarcas-cade_eye_tree_eyeglasses.xml"; CascadeClassifier face_cascade; CascadeClassifier eyes_cascade; String window_name = "Capture - Face detection"; int main(void) { FILE *pInpVideo, *pTestOut,*pInpV; unsigned char *pYFrame0, *pUFrame0,*pYFrames, *pVFrame0,*pYFrame1, *pUFrame1, *pVFrame1; int nHeight = 720; int nWidth = 1280; int NumFrame=450; int nSize = nHeight*nWidth; //Выделили память под 1 кадр и 2 кадр: pYFrame0 = (unsigned char*)malloc(sizeof(unsigned char)* nSize); pUFrame0 = (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pVFrame0= (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pYFrame1 = (unsigned char*)malloc(sizeof(unsigned char)* nSize); pUFrame1 = (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); pVFrame1= (unsigned char*)malloc(sizeof(unsigned char)*(nSize/4)); //Открыли файл: pInpVideo= fopen ("uman_1280x720.yuv","rb") ; pInpV= fopen ("uman_1280x720_6.yuv","rb") ; pTestOut = fopen ("uman_1280x720_13.yuv","wb"); //Создали буффер размером в 1 кадр для люмы Mat tmp=cv::Mat(nHeight,nWidth, CV_8UC1); //-- 1. Load the cascades if( !face_cascade.load( face_cascade_name ) ){ printf("--(!)Error loading face cascade\n"); return -1; }; if( !eyes_cascade.load( eyes_cascade_name ) ){ printf("--(!)Error loading eyes cascade\n"); return -1; }; //-- 2. Read the video stream for (int j =0; j<NumFrame; j++) { //скопировали Y из файла в буффер

97

fread ((unsigned char*)&(tmp.data[0]), sizeof(unsigned char), nSize, pInpVideo); fread (static_cast<void*> (pUFrame0), sizeof(unsigned char), (nSize)/4, pInpVideo); fread (static_cast<void*> (pVFrame0), sizeof(unsigned char), (nSize)/4, pInpVideo); fread (static_cast<void*>(pYFrame1), sizeof(unsigned char), nSize, pInpV); fread (static_cast<void*> (pUFrame1), sizeof(unsigned char), (nSize)/4, pInpV); fread (static_cast<void*> (pVFrame1), sizeof(unsigned char), (nSize)/4, pInpV); //-- 3. Apply the classifier to the frame detectAndDisplay(tmp); for(int i=0; i < nHeight; i++) { for(int k=0; k <nWidth; k++) { int pxl; tmp.data[i*nWidth+k]=(pYFrame1[i*nWidth+k]<20)? 0:tmp.data[i*nWidth+k]; } } int c = waitKey(10); if( (char)c == 27 ) { break; } // escape //Записали кадр: fwrite((unsigned char*)&(tmp.data[0]), sizeof(unsigned char), nSize, pTestOut); fwrite(pUFrame0, sizeof(unsigned char), nSize/4, pTestOut); fwrite(pVFrame0, sizeof(unsigned char), nSize/4, pTestOut); } //Закрыли файл: fclose(pTestOut); fclose(pInpVideo); fclose(pInpV); return 0; } /* @function detectAndDisplay */ void detectAndDisplay(cv::Mat tmp)

{ std::vector<Rect> faces; //-- Detect faces face_cascade.detectMultiScale(tmp, faces, 1.1, 2, 0|CASCADE_SCALE_IMAGE, Size(30, 30) ); for( size_t i = 0; i < faces.size(); i++ ) { Point center( faces[i].x + faces[i].width/2, faces[i].y + faces[i].height/2 ); ellipse(tmp, center, Size( faces[i].width/2, faces[i].height/2), 0, 0, 360, Scalar( 0, 0, 0 ), 4, 8, 0 ); Mat faceROI = tmp( faces[i] ); std::vector<Rect> eyes; //-- In each face, detect eyes eyes_cascade.detectMultiScale( faceROI, eyes, 1.1, 2, 0 |CASCADE_SCALE_IMAGE, Size(30, 30) ); for( size_t j = 0; j < eyes.size(); j++ )

{ Point eye_center( faces[i].x + eyes[j].x + eyes[j].width/2, faces[i].y + eyes[j].y + eyes[j].height/2 ); int radius = cvRound( (eyes[j].width + eyes[j].height)*0.25 ); circle(tmp, eye_center, radius, Scalar( 0, 0, 0 ), 4, 8, 0 );

} }

imshow( window_name, tmp); //-- Show what you got }

98

Приложение Г

Результаты работы программы выделения лиц с использованием

OpenCV

Рисунок Г.1 – Вывод консоли после запуска программы

Рисунок Г.2 – Исходное видеоизображение формата .yuv

99

Рисунок Г.3 – Видеоизображение формата.yuv, полученное после выполне-

ния программы выделения контуров детектором границ Канни

Рисунок Г.4 – Полученное после выполнения программы видеоизображение

формата .yuv с обнаружением лиц

100

Приложение Д

Существующие методы оценки движения

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

ков и свойств. Существуют классификации по способу работы (или архитек-

туре) и по назначению (области применения алгоритма).

Классификация по способу работы алгоритма учитывает следующие его

архитектурные особенности:

1. Область поиска (объекты, блоки либо фиксированного размера, либо

с подразбиением, а также кадр целиком).

2. Класс, к которому относится движение. Чаще всего используется

класс параллельных сдвигов с ограниченным максимальным сдвигом, хотя он

может быть расширен операциями поворота и масштабирования. Здесь же

учитывается точность алгоритма - она может составлять 1 пиксел, ½ пиксела,

¼ пиксела и т.д.

3. Используемая метрика, по которой принимается решение.

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

вании методы оценки движения.

Алгоритм полного поиска (Full Search):

Этот алгоритм считается самым надежным алгоритмом оценки движе-

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

возможных вариантов из зоны поиска. Чем больше зона поиска, тем больше

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

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

глобальный экстремум функции в области поиска. Существенным недостат-

ком данного метода является высокая вычислительная сложность. Данный ме-

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

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

ность алгоритма полного поиска привела к появлению большого количества

упрощенных алгоритмов, стремящихся сократить количество обрабатываемой

101

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

блока в области поиска.

Алгоритмы поиска с «грубым квантованием» вектора движения:

Это алгоритмы, использующие свойство зрения человека, нечувстви-

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

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

центра зоны поиска перебираются все блоки, а на определенном расстоянии

от центра некоторые блоки не участвуют в поиске. Пример грубого квантова-

ния приведен на рисунке Д.1.

Рисунок Д.1 – Поиск с «грубым квантованием» вектора движения

Алгоритмы шаблонного поиска:

«Шаблоном является набор координат точек, причем координаты точек

отсчитываются от центра шаблона. На каждой итерации вычисляется коорди-

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

ции соответствия в каждой из точек шаблона. Центр шаблона на первой ите-

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

итерации выбирается та точка шаблона, в которой был достигнут минимум

функции соответствия. В качестве результата выбирается вектор, соответству-

ющий точке минимума функции соответствия на шаблоне последней итера-

ции» [11].

102

Наиболее часто используемые на практике шаблоны:

1. Квадратный шаблон поиска:

Рисунок Д.2 – Квадратный шаблон поиска

Другие варианты алгоритмов с квадратным шаблоном поиска это трех-

шаговый алгоритм поиска и четырехшаговый.

Рисунок Д.3 – Трехшаговый поиск

Рисунок Д.4 – Четырехшаговый поиск

103

2. Логарифмический шаблон поиска:

Рисунок Д.5 – Логарифмический поиск

3. Ортогональный шаблон поиска:

Гибрид трехшагового и логарифмического поисков, который получил

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

рисунке Д.6.

Рисунок Д.6 – Ортогональный поиск

4. Шестиугольный шаблон поиска (Hexagon Search):

Рисунок Д.7 – Шестиугольный поиск

104

5. Алмазный алгоритм поиска:

Алмазный алгоритм поиска (Diamond Search Algorithm) имеет такое

название, потому что шаблон поиска напоминает форму алмаза. Пример ал-

мазного поиска приведен на рисунке Д.8.

Рисунок Д.8 – Алмазный поиск

Общим признаком методов, основанных на шаблонном поиске, является

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

алгоритмов имеет недостатки: есть вероятность промаха при определении гло-

бального минимума, т.е. алгоритм может попасть в область локального мини-

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

минимума [11].

Иерархические алгоритмы поиска:

В иерархических алгоритмах поиска вектор движения ищется от грубого

на изображениях с низкими разрешениями к точному на оригинальном изоб-

ражении. Примером является – средняя пирамида, которая приведена на ри-

сунке Д.9. Пирамида строится с помощью фильтра нижних частот (Д.1), где

),( yxgL – уровень яркости пиксела с координатами ),( yx уровня L пирамиды.

))2,2((4

1),(

1

0

1

0

1

u v

LL vyuxgyxg (Д.1)

«Первый уровень будет содержать кадры минимального размера, N-й – кадры

исходного размера. Процесс оценки движения состоит из N итераций, на каж-

105

дой из которых обрабатывается пара кадров из уровня с соответствующим но-

мером (обработка идет от кадров меньшего размера к большему). На каждой

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

например, шаблонным поиском» [12]. Каждая очередная итерация производит

уточнение векторов, вычисленных на предыдущей итерации. При переходе на

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

ются векторы, обычно увеличиваются в 2n раз, для того чтобы число блоков в

кадре на каждой итерации не менялось.

Рисунок Д.9 – Схема иерархического поиска

«Достоинством алгоритмов данной группы является перебор сокращен-

ного числа векторов, т.е. повышенная вычислительная эффективность. По-

мимо этого, к достоинствам можно отнести устойчивость к шуму, поскольку

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

шумы. Однако, могут пропасть и мелкие детали, что приведет к неправиль-

ному определению движения в детализированных областях» [12].

Методы ОД, использующие векторы-кандидаты:

«Для большинства видеопоследовательностей справедливо утвержде-

ние, что векторы движения соседних блоков очень похожи, так как эти блоки

зачастую принадлежат одному движущемуся объекту. Это утверждение при-

вело к появлению целого класса методов ОД, использующих векторы-канди-

даты.

106

Основная идея алгоритмов этой группы в том, что перед вычислением

информации о движении для текущего блока формируется набор, состоящий

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

набор векторов называется набором кандидатов. В качестве вектора движения

в каждом блоке выбирается лучший вектор из набора кандидатов» [13]. Кри-

терием поиска является функция соответствия.

Яркие представители алгоритмов данной группы:

- трехмерный рекурсивный поиск (3D-Recursive Search);

- расширенный трехмерный рекурсивный поиск (Enhanced 3DRS).

Методы, использующие векторы-кандидаты, часто имеют низкую вы-

числительную сложность, но при этом обеспечивают гладкость векторного

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

времени. Недостаток заключается в медленной реакции на резкое изменение

параметров движения объектов.

«Компенсация движения на основе блоков очень популярна по многим

причинам. Этот метод достаточно прост и легко поддается программной реа-

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

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

следующие недостатки. «Реальные» объекты редко имеют четкие прямоуголь-

ные границы. Объекты часто перемещаются на нецелое число пиксельных по-

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

используя методы на основе блоков (например, деформацию объектов, их по-

вороты, изменение масштаба, т.е. приближение или удаление объектов от ви-

деокамеры, сложные движения, такие как клубы дыма)» [13].