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

Автор работы: Пользователь скрыл имя, 13 Декабря 2013 в 00:41, дипломная работа

Краткое описание

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

Содержание

Введение ........................................................................................................................................- 4 -
1. Обеспечение пожарной безопасности средствами видеонаблюдения ................................- 5 -
1.1 Обзор существующих методов предотвращения пожара ...............................................- 5 -
1.1.1 Современные сенсорные детекторы...........................................................................- 5 -
1.1.2 Противопожарные видеодетекторы............................................................................- 6 -
1.2 Обнаружение огня в потоке кадров...................................................................................- 8 -
1.2.1 Выделение подозрительных областей........................................................................- 9 -
1.2.2 Частотно-временной анализ ......................................................................................- 12 -
1.2.3 Пространственный анализ.........................................................................................- 15 -
1.2.4 Анализ выпуклости ....................................................................................................- 17 -
1.2.5 Структура огня............................................................................................................- 18 -
1.2.6 Алгоритм роста региона ............................................................................................- 18 -
1.2.7 Фильтрация .................................................................................................................- 19 -
1.3 Недостатки существующих подходов.............................................................................- 19 -
2. Разработка детектора огня .....................................................................................................- 20 -
2.1 Пространственно-временной анализ...............................................................................- 20 -
2.2 План алгоритма .................................................................................................................- 21 -
2.3 Графическая схема алгоритма .........................................................................................- 24 -
2.4 Тестирование .....................................................................................................................- 26 -
Заключение..................................................................................................................................- 33 -
Список использованной литературы ..........................................

Прикрепленные файлы: 1 файл

diplom (16).pdf

— 2.22 Мб (Скачать документ)
Page 1
Министерство образования Российской Федерации
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет информатики
Кафедра теоретических основ информатики
УДК 681.03
ДОПУСТИТЬ К ЗАЩИТЕ В ГАК
Зав. кафедрой, проф., д.т.н.
________________ Ю.Л. Костюк
«___» ___________ 2008 г.
ОБНАРУЖЕНИЕ ОГНЯ В ЦИФРОВОМ ВИДЕОПОТОКЕ ДЛЯ
СИСТЕМ ВИДЕОНАБЛЮДЕНИЯ
Дипломная работа
Научный руководитель,
аспирант ФИнф ТГУ
Ю.Э. Абдуллин
Исполнитель,
студ. гр. 1431
А.В. Карсаков
Электронная версия дипломной работы помещена
в электронную библиотеку. Файл
Администратор
Томск – 2008

Page 2

Реферат
Дипломная работа 36 с., 26 рис., 14 источников, 1 прил.
ВИДЕОПОТОК, СИСТЕМЫ ВИДЕОНАБЛЮДЕНИЯ РЕАЛЬНОГО ВРЕМЕНИ, ДЕТЕКТОР
ОГНЯ, ВЕЙВЛЕТ ПРЕОБРАЗОВАНИЕ, ФИЛЬТР, СТАТИЧЕСКАЯ БИБЛИОТЕКА,
VIRTUAL DUB
Объект исследования: семейство алгоритмов обнаружения пламени.
Цель работы: исследование методов выделения пламени в видеопотоке, способов
ускорения процесса анализа, разработка программного детектора огня, удовлетворяющего
требованиям систем видеонаблюдения.
Метод исследования: практический эксперимент, теория сложности алгоритмов.
Результат работы: проведен обзор материала на заданную тему, разработана
статическая библиотека, содержащая класс, обеспечивающий необходимый функционал для
работы метода обнаружения огня, написана программа, демонстрирующая работу метода.
Основные характеристики: библиотека представляет собой обычную статическую
Windows-библиотеку, которую можно подключать к любому Win32 проекту и использовать
весь инструментарий. На основе библиотеки реализован VirtualDub-фильтр, который можно
использовать в программе VirtualDub. В качестве входных данных фильтру поступают
видеокадры с возможным наличием огня, на выходных кадрах отмечается найденное пламя
и состояние тревоги. Фильтр совместим с другими VirtualDub-фильтрами.
Область применения: библиотека готова к использованию и может применяться для
разработки новых приложений.
- 2 -

Page 3

Оглавление
Введение ........................................................................................................................................- 4 -
1. Обеспечение пожарной безопасности средствами видеонаблюдения ................................- 5 -
1.1 Обзор существующих методов предотвращения пожара ...............................................- 5 -
1.1.1 Современные сенсорные детекторы...........................................................................- 5 -
1.1.2 Противопожарные видеодетекторы............................................................................- 6 -
1.2 Обнаружение огня в потоке кадров...................................................................................- 8 -
1.2.1 Выделение подозрительных областей........................................................................- 9 -
1.2.2 Частотно-временной анализ ......................................................................................- 12 -
1.2.3 Пространственный анализ.........................................................................................- 15 -
1.2.4 Анализ выпуклости ....................................................................................................- 17 -
1.2.5 Структура огня............................................................................................................- 18 -
1.2.6 Алгоритм роста региона ............................................................................................- 18 -
1.2.7 Фильтрация .................................................................................................................- 19 -
1.3 Недостатки существующих подходов.............................................................................- 19 -
2. Разработка детектора огня .....................................................................................................- 20 -
2.1 Пространственно-временной анализ...............................................................................- 20 -
2.2 План алгоритма .................................................................................................................- 21 -
2.3 Графическая схема алгоритма .........................................................................................- 24 -
2.4 Тестирование .....................................................................................................................- 26 -
Заключение..................................................................................................................................- 33 -
Список использованной литературы ........................................................................................- 34 -
Приложение А. Руководство программиста ............................................................................- 35 -
- 3 -

Page 4

Введение
Пожар был и остается одним из самых страшных бедствий в жизни человека. На
протяжении многих веков люди боролись с этим явлением. Но, как известно, лучшее
решение проблемы – это не допустить, чтобы проблема возникла вообще. Внимание данной
работы направлено на охранную деятельность, на изучение и разработку способа
обнаружения пламени в цифровом видеопотоке, который позволил бы быстро, точно и с
низкими затратами вычислительных ресурсов определять наличие огня на изображении.
Подразумевается, что система будет работать в реальном времени сразу на нескольких
видеопотоках, поэтому значимость вышеуказанных характеристик очень важна:
• чем раньше тревога будет поднята, тем меньший ущерб нанесёт пожар;
• чем меньше ресурсов будет требовать обработка видеопотока, тем дешевле будет
стоимость охранной системы, и тем больший контроль территории можно
обеспечить;
• чем меньше количество ложных тревог, тем больше доверие пожарной службы к
системе;
Дополнительно приходиться учитывать факторы реального мира: размер
изображения, качество аппаратуры (хуже качество – больше шумов), погодные условия,
время суток, смена освещения (фары машин, фонари, облака). Всё это мешает
удовлетворению основных требований и играет против разработчиков.
На сегодняшний день наиболее распространены сенсорные противопожарные
датчики, которые реагируют на присутствие в воздухе веществ, обычно образующихся в
процессе горения. Но это накладывает ограничения на их использование, такие детекторы
неэффективны на открытых пространствах, а также качество их работы сильно зависит от
расстояния до источника огня. Подход видеоанализа позволяет контролировать большие и
открытые территории.
В первой части работы представлены обзоры по современным сенсорным детекторам
и существующим подходам в видеоанализе, даны перечни сильных и слабых сторон обеих
категорий. Рассказано об особенностях огня, за счёт которых его можно распознать в потоке
видеокадров. Каждый подход использует какую-либо одну характеристику огня, поэтому
эффективным будет только использование комбинаций методов.
Вторая часть работы посвящена разработке детектора огня. Представлен метод,
разработанный самостоятельно, который в комбинации с остальными методами значительно
улучшает качество обнаружения. Представлены план алгоритма и его графическая схема. В
разделе Тестирование продемонстрированы возможности разработанного детектора.
- 4 -

Page 5

1. Обеспечение пожарной безопасности средствами
видеонаблюдения
1.1 Обзор существующих методов предотвращения пожара
Данный раздел содержит короткое описание известных способов предотвращения
пожара, разделённых в категории по роду используемой аппаратуры. Даны ключевые
особенности каждой категории.
Следует сразу заметить, что обычные сенсорные противопожарные датчики способны
обнаруживать как огонь, так и дым, внимание же данной работы направлено на
обнаружение огня. Это существенно может снизить полезность разработки по вполне
понятным причинам: при пожаре пламя может долгое время не попадать в поле зрения
видеокамеры, например, из-за больших объемов дыма или пламя скрыто за каким-то
объектом. Поэтому в будущем планируется расширить способности детектора до
обнаружения огня и/или дыма.
1.1.1 Современные сенсорные детекторы
Обычные точечные детекторы огня и дыма широко используются в зданиях. Вот
существующие типы подобных детекторов наиболее распространенных на сегодняшний
день [1-2]:
• Ионный – используется излучающий элемент (как правило, изотоп америция-241
и плутоний 239), излучение которого ионизирует молекулы воздуха в
чувствительной камере. Под действием электрического поля образующиеся
положительные и отрицательные ионы создают ток, величина которого постоянно
контролируется. При поступлении в чувствительную камеру дыма происходит
уменьшение тока из-за объединения части ионов на поверхности частиц дыма.
При снижении величины тока до порогового уровня происходит активизация
извещателя (см. рис. 1).
• Оптический – основан на эффекте ослабления мощности инфракрасного светового
излучения при его прохождении сквозь задымлённое пространство от излучателя
до приёмника.
• Воздухозаборные – постоянно втягивают воздух через сеть мелкокалиберных
трубок; воздух проходит через чувствительное оптическое устройство, (чаще
всего это сплошной стационарный лазер) позволяющее обнаруживать мельчайшие
продукты горения.
• Комбинированные и др.
- 5 -

Page 6

Рис. 1. Внутри обычного ионного дымового детектора. Чёрное округлое устройство
справа – ионизационная камера, белая слева – пьезоэлектрический извещатель.
Для повышения надежности обычно используют комбинированный набор детекторов.
Как видно из описания принципа работы точечных детекторов, их практически
невозможно применять на открытых пространствах или в помещениях больших
размеров. Пока частицы, образующиеся в ходе процесса горения, не достигнут сенсоров
детектора, тревога не будет поднята. Если же пробовать применять оптический детектор
на открытых пространствах, то будет огромное количество шумов – пыль, туман, дождь,
что неминуемо приведёт к ложной тревоге.
Национальное Противопожарное Агентство настоятельно рекомендует заменять
сенсорные детекторы каждые 10 лет, поскольку их электронная начинка стареет, и
повышается чувствительность к шумам, следовательно, возрастает вероятность ложной
тревоги [2].
Учитывая всё вышесказанное, можно подвести итог. Сильные стороны сенсорных
детекторов:
• очень точны, способны обнаруживать тление;
• очень низкая вероятность появления ложных тревог.
Слабые стороны:
• неспособность работать на открытых пространствах или в помещениях
больших размеров;
• необходимый период обновления оборудования меньше, чем у
видеодетекторов;
• сложность установки – в зависимости от размеров помещения, может
понадобиться более, чем один детектор;
1.1.2 Противопожарные видеодетекторы
Первые разработки по обнаружению огня и дыма в потоке видеокадров начались в
первой половине 90-х годов. Методы современного видеоанализа можно разделить на
три категории по роду используемого видеопотока – это методы обработки:
• термального видео;
• цветного видео;
• чёрно-белого видео.
- 6 -

Page 7

1.1.2.1 Термальные видеодетекторы
Термальные видеокамеры генерируют тепловое изображение объектов реального
мира. Чем большую температуру имеет точка в области обзора камеры, тем ярче будет на
кадре соответствующий ей пиксель (см. рис. 2).
(a)
(b)
Рис. 2. (a) обычный радиатор с раскалёнными обогревательными элементами
(б) изображение, сгенерированное термальной камерой.
Такие камеры невосприимчивы к влиянию кондиционеров или жаркой обстановке в
помещении, способны улавливать инфракрасное или ультрафиолетовое излучение на
достаточно большом расстоянии. Помимо обычного огня, термальные видеодетекторы
быстро и надежно распознают тлеющий огонь, что является очень важным качеством в
раннем обнаружении [3], а также, благодаря логике, задаваемой программным
обеспечением, обладают отличной устойчивостью к шумам (иным нагретым предметам,
присутствующим на сцене).
Однако с помощью термальных видеокамер очень сложно добиться достойных
результатов в области обнаружения дыма, поскольку дым имеет не столь контрастную с
окружающим миром температуру. Поэтому потребуется очень точная и, следовательно,
дорогая аппаратура. Как вариант решения данной проблемы термальные детекторы
используют совместно с сенсорными детекторами [3].
Сильные стороны термальных видеодетекторов:
• способность быстро и точно распознавать тлеющий огонь;
• устойчивость к шумам;
• возможность распознавать огонь на достаточно большом расстоянии.
Слабые стороны:
• дороговизна аппаратуры;
• неспособность обнаруживать дым.
- 7 -

Page 8

1.1.2.2 Детекторы, использующие цветное или чёрно-белое видео
Основой современных систем видеонаблюдения являются цветные и чёрно-белые
видеокамеры, с помощью которых собирается необходимая информация о событиях в
реальном мире. Автоматизированные охранные системы видеонаблюдения уже широко
распространены по всему миру, поэтому интеграция противопожарных детекторов не
будет дорогостоящей, поскольку не придётся закупать новую аппаратуру, достаточно
установить соответствующий программный модуль. Помимо этого, при нормальной
эксплуатации оборудования оно способно прослужить десятки лет.
Как и в случае использования термальных камер, детектору не нужно ждать, пока
частицы сопровождающие горение достигнут месторасположения самого детектора. Это
даёт возможность отслеживать огонь на больших расстояниях и на открытом воздухе.
Использование цветного видео имеет некоторые преимущества перед чёрно-белым.
Так, например, информация о цвете даёт возможность более быстро определять похожие
на огонь объекты на сцене. При использовании чёрно-белого видео приходится
обрабатывать большее количество кадров в секунду, чтобы проверить достаточную
частоту мерцания подозрительного яркого объекта на сцене [5], следовательно, с
несколько большими вычислительными затратами ресурсов.
Но есть и некоторые трудности при использовании цветного видео. Полученное
изображение подвержено гораздо большему влиянию шумов, особенно в тёмное время
суток. Ночью света очень мало, поэтому чтобы получить нормальную картинку,
увеличивается выдержка – время сбора информации о цвете пикселей. При увеличении
выдержки увеличивается количество помех, которые успевают за этот более длинный
временной интервал воздействовать на матрицу видеокамеры [4], на цветных камерах
шумы более сильные. Серьезной проблемой являются движущиеся объекты на сцене,
окрашенные в схожий с огнём цвет, поскольку детектор может принять их за пламя. Это
может быть солнце, свет от фар машин или фонарей, ярко одетые люди и т.д.
Можно подвести краткий итог. Видеодетекторы обладают рядом преимуществ перед
обычными сенсорными детекторами:
• возможность работать на открытых пространствах и в больших помещениях;
• меньше расходов на интеграцию в современные телесистемы;
• большее время эксплуатации.
Учитывая всё вышесказанное, можно заключить, что противопожарные
видеодетекторы могут стать конкурентно способной альтернативой обычным точечным
детекторам, если будут удовлетворять следующим требованиям:
• низкая вероятность ложной тревоги (устойчивость к шумам)
• высокая скорость обработки
• раннее обнаружение огня
1.2 Обнаружение огня в потоке кадров
Основным отличием огня на сцене обычно является мерцание – постоянное
изменение границ языков пламени. На использовании этой особенности построено
большинство детекторов. Помимо этого, могут использоваться следующие
- 8 -

Page 9

характеристики: яркость огня для чёрно-белого видео, определённый диапазон цвета для
цветного видео, стационарность огня, форма.
1.2.1 Выделение подозрительных областей
Под термином «подозрительная область» понимается некоторая область на сцене,
которая имеет похожие на огонь характеристики, в дальнейшем эти зоны подвергаются
более тщательному анализу. Разделение пространства сцены позволяет не тратить
ресурсы вычислительной системы на обработку зон, не представляющих никакого
интереса. Обычно используются подходы межкадровой разности или фонового кадра,
для выделения движения, поскольку огонь всегда изменяет свою форму; либо фильтр по
цвету или яркости, так как в реальных условиях огонь чаще всего ярче своего окружения,
но возможны и исключения, например, пламя на фоне снега. Нужно заметить, что
разработанный детектор в подобной ситуации всё равно сработает правильно. Для
повышения надёжности методы фильтрации по яркости (цвету) и межкадровой разности
могут комбинироваться.
1.2.1.1 Цветовой фильтр
В ходе статистических исследований на множестве различных изображений, было
получено статистическое распределение для компонент цвета огня в пространстве RGB
[5] (см. рис. 3).
Рис. 3 Распределение цвета для огненных пикселей:
(a) плоскость r-g (b) плоскость r-b (c) плоскость g-b.
- 9 -

Page 10

Используя эти данные, был построен набор правил, по которым можно определить,
окрашен ли пиксель в огненный цвет или нет [6]:
mean
R
y
x
R
>)
,(
,
(1)
)
,
(
)
,
(
)
,
(
y
x
B
y
x
G
y
x
R
>
>
,
(2)

=
=
K
i
i
i
mean
y
x
R
K
R
1
)
,
(
1
,
(3)
где R
mean
– среднее от красного канала по всему изображению не огненных пикселей,
K – количество пикселей изображения, x и y – координаты пикселя. Компоненты цвета
нормализуются:
)
(
B
G
R
R
r
+
+
=
,
)
(
B
G
R
G
g
+
+
=
,
)
(
B
G
R
B
b
+
+
=
.
(4)
И в заключении проверяется принадлежность значений компонент к требуемому
цветовому диапазону (см. рис.4):
1.0251
2.0771g
-
r
0.9913
-0.9889g
r
0.0759
-
1.1403g
r
+

+


(5.a)
0.5063
0.5427b
-
r
0.1707
95.3478b
r
0.95824
1.8813b
-
r
+

+

+

(5.b)
0.6207
-
191.9565b
g
0.4954
-0.4608b
g
0.0482
0.8459b
g

+

+

(5.c)
Пиксели изображения, прошедшие все этапы фильтра заносятся в карту огненно
окрашенных пикселей, которая в дальнейшем используется при дополнительных
проверках.
При использовании черно-белого видео для нахождения подозрительных зон обычно
задается некоторый порог яркости, и если яркость пикселя его превышает, то он
заносится в карту. В качестве порога лучше использовать некоторый параметр, который
чувствителен к изменениям на сцене, например, средняя яркость изображения. Это
позволит снизить уровень шума.
1.2.1.2 Межкадровая разность
При помощи межкадровой разности выделяются различия между i и i+N кадрами. Как
говорилось выше, языки пламени изменяют свою форму во времени, поэтому если огонь
присутствует на сцене, то результат операции выделит пиксели, в которых присутствует
движение [5] (см. рис. 4). Подробнее об этой операции в [6].
- 10 -

Page 11

Рис. 4 Верхний ряд – кадры исходного видео; нижний ряд – результат операции
бинаризированной межкадровой разности.
Любое видео не лишено шумов и посторонних движущихся объектов, они тоже будут
выделяться. Для увеличения надёжности в [5] предлагается использовать временную
вариацию цвета пикселей:
1
|))
(
(
))
(
(
|
)
(
2
1


=

=

n
x
I
G
x
I
G
x
Diff
n
i
i
i
,
(6)
где I
i
(x) i-й кадр, функция G(I
i
(x)) возвращает (R+B+G)/3 для соответствующего
пикселя x, если изображение цветное, иначе используется исходная яркость пикселя.
Поскольку возможны колебания яркости пикселей из-за глобального движения (тряска
камеры, движение посторонних объектов, зашумлённое изображение), используется
вариация яркости пикселей фона:


=
=
=
0
,
0
,
1
)
(
d
FireColore
x
d
FireColore
x
x
Diff
FireDiff
AverageNon
,
(7)
Функция FireColored(x), возвращает единицу, если пиксель имеет огненный цвет,
иначе – ноль. Следующим образом снижается влияние глобального шума:
FireDiff
AverageNon
x
Diff
x
FireDiff

=
)
(
)
(
.
(8)
Наибольшую FireDiff(x) будут получать пиксели, в которых присутствует движение.
К примеру, на рис.5 солнце имеет целевой цвет, но за отсутствием колебания, вариация
яркости будет близкой к нулю.
- 11 -

Page 12

Рис. 5. Солнце не дало ложной тревоги, хотя и имеет цвет огня.
1.2.1.3 Базовый кадр
Базовый кадр строится из неподвижных областей сцены и постоянно обновляется [6].
В дальнейшем, посредством операции межкадровой разности текущего кадра и базового,
можно получить маску движения. Но результат будет более качественный в сравнении с
обычной межкадровой разностью, так как при этом подходе влияние шумов значительно
уменьшается. К примеру, смена освещения не будет провоцировать ложную тревогу.
Однако построение базового кадра требует отдельных затрат ресурсов.
1.2.2 Частотно-временной анализ
Используется дискретное вейвлет-преобразование (ДВП) [7-11]. Существуют методы,
в которых частотно-временной анализ (ЧВА) использует быстрое преобразование Фурье
(БПФ), но его трудоемкость порядка O(NlogN), тогда как ДВП имеет линейную
трудоёмкость. Помимо этого БПФ обладает еще некоторыми слабыми сторонами [11].
ДВП применяется для получения подсигналов исходного сигнала, которые в
дальнейшем будут проверяться на количество «скачков», количества точек пересечений
полученной функции с абсциссой (см. рис. 7, 8). В данном контексте сигналом будет
яркость пикселя на заданных координатах i-го кадра, представленная массивом целых
чисел. Каждый скачок означает рост или спад яркости относительно её предыдущего
значения. Для пикселей, принадлежащих границам языков пламени, характерно высокое
количество скачков.
Итак, сигнал раскладывается с помощью высокочастотного (high-pass) фильтра и
низкочастотного (low-pass). В результате получаются детализирующие коэффициенты
(после ВЧ-фильтра) и коэффициенты аппроксимации (после НЧ-фильтра). Затем к
полученным коэффициентам аппроксимации ДВП применяется снова (см. рис. 6). В
результате получаются два подсигнала d
n
[k,l] и e
n
[k,l].
- 12 -

Page 13

Рис. 6. Схема разложения исходного сигнала на подсигналы с применением фильтров.
В [10] для высокочастотного фильтра предлагается использовать коэффициенты h =
{-0.25, 0.5, -0.25}, для низкочастотного l = {0.25, 0.5, 0.25}. Более подробно данный
процесс можно записать следующим образом:
;2
;
];
,
[
],
[
],
[
],
[
2
2
1
1
0
=
+
+
+
+
+
=
+
+
i
j
l
k
x
h
l
k
x
h
l
k
x
h
l
k
d
i
i
i
j
(9.a)
Сигнал d
n
[k,l] получен. Применяем низкочастотный фильтр, получаем коэффициенты
аппроксимации 1-го уровня:
;2
;
];
,
[
],
[
],
[
],
[
2
2
1
1
0
=
+
+
+
+
+
=
+
+
i
j
l
k
x
l
l
k
xl
l
k
x
l
l
k
tmp
i
i
i
j
(9.b)
Применив формулу (9.a) к полученным коэффициентам аппроксимации, получим e
n
[k,l].
Диаграмма пикселя, принадлежащего границам пламени, продемонстрирована на
рис.7. На рис.8 представлено поведение пикселя, через который на сцене прошёл
человек. Как видно из диаграмм, огненный пиксель показывает гораздо большее
количество скачков, на основании их количества делается вывод о роде пикселя: если
количество скачков на обеих диаграммах больше заданных порогов, значит пиксель
огненный.
Но в реальных условиях данная проверка не всегда точна. Например, в ночных
условиях возможен сильный шум, большое количество подвижных объектов – в
частности, автомобилей с включенными фарами, что создаёт дополнительные колебания
яркости и усложняет процесс обнаружения огня, увеличивая вероятность возникновения
ложной тревоги.
- 13 -

Page 14

Рис. 7. Полученные диаграммы для пикселя, принадлежащего огню:
(a) история яркости пикселя на исходном изображении
(b) подсигнал d
n
[k,l] (c) подсигнал e
n
[k,l].
- 14 -

Page 15

Рис. 8. Полученные диаграммы для схоже окрашенного пикселя:
(a) история яркости пикселя на исходном изображении
(b) подсигнал d
n
[k,l] (c) подсигнал e
n
[k,l].
1.2.3 Пространственный анализ
На данном этапе проверяются пространственные вариации яркости пикселей
подозрительного региона. Допустим, что каким-то образом получены прямоугольные
границы, внутри которых подозревается наличие огня. Огонь характеризуется наличием
достаточно больших пространственных вариаций яркости. Применяется двумерное
дискретное преобразование [10].
Предположим, что имеем изображение размером NxN (рис. 9,а). Первоначально
каждая из N строк изображения делится (фильтруется) на низкочастотную (НЧ) и
высокочастотную (ВЧ) половины (по формулам (9.a) и (9.b) с использованием тех же
коэффициентов). В результате получается два изображения размером NxN/2 (рис. 9,б).
Далее каждый столбец делится точно также, в итоге получается четыре изображения
размером N/2xN/2 (рис. 9, в) [7].
- 15 -

Page 16

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

+
+
=
l
k
hh
hl
lh
l
k
x
l
k
x
l
k
x
MxN
v
,
2
2
2
|]
,
[
|
|]
,
[
|
|]
,
[
|
1
(10)
На рис.11 и 12 демонстрируется, как отличаются пространственные вариации яркости
огненного и шумового регионов.
- 16 -

Page 17

(a) (b)
Рис. 10. (a) исходное изображение, на котором выделена подозрительная по цвету зона
(b) сумма по модулю коэффициентов двумерного ДВП,
,
подозрительного региона.
|]
,
[
|
|]
,
[
|
|]
,
[
|
l
k
x
l
k
x
l
k
x
hh
hl
lh
+
+
(a)
(b)
Рис. 11. (a) исходное изображение, на котором выделена подозрительная зона
(b) сумма по модулю коэффициентов двумерного ДВП,
,
подозрительного региона.
|]
,
[
|
|]
,
[
|
|]
,
[
|
l
k
x
l
k
x
l
k
x
hh
hl
lh
+
+
1.2.4 Анализ выпуклости
Чаще всего огонь имеет невыпуклую форму. Вертикальными и горизонтальными
линиями образуется сетка не более 5х5, охватывающая подозрительный регион на
бинарной карте огня. Если хотя бы три последовательных пикселя на линии принадлежат
фону, значит, регион нарушает условие выпуклости, и это неконтролируемый огонь.
Конечно, данный критерий не может быть определяющим, но он может применяться для
снижения вероятности ложной тревоги [10].
- 17 -

Page 18

1.2.5 Структура огня
В [13] предлагается использовать структуру огня. Регион огня характеризуется
наличием пикселей со спектром определенных цветов и пикселями, цвет которых
частично зависит от окружения. Отсюда, пламя условно можно разделить на два
элемента: ядро – самая яркая часть пламени, и корона – то, что окружает ядро, имеет
менее яркий цвет. Колец яркости у ядра может быть несколько, как и самих ядер может
быть больше одного (см. рис. 12).
Рис. 12. Структура пламени: (a) одно ядро (b) два ядра.
Когда подозрительные на огонь регионы выделены, производится проверка: хотя бы
половина пикселей короны должна достаточно отличаться от пикселей ядра. Это
позволит отсекать такие шумы, как блики от металлов либо стекол.
1.2.6 Алгоритм роста региона
Алгоритм роста региона применяется в тех случаях, когда необходимо выделить как
можно больше огненных пикселей, поскольку далеко не все пиксели могут пройти все
проверки. Суть алгоритма в том, чтобы добавлять пиксели в карту Fire, у которых
подходящий цвет, и они стоят рядом с уже добавленными в карту Fire пикселями.
FireColorProb(x) – функция, возвращающая некоторую оценку похожести пикселя на
огненный. Проверка по цвету происходит с параметром dist, который растет с каждой
итерацией. Чем больше номер текущей итерации, тем меньше шансов у пикселя быть
добавленным в карту. Алгоритм закончит расширение, когда не будет ни одного нового
добавления. На рис.15 приведена схема алгоритма на псевдоязыке [12].
Рис. 13. Схема алгоритма роста огненного региона.
- 18 -

Page 19

1.2.7 Фильтрация
Видеопоток всегда зашумлён в разной степени, и это может тем или иным образом
спровоцировать ложную тревогу. Для снижения уровня ложных тревог может
применяться фильтрация самого видеопотока либо фильтрация полученной бинарной
карты огня.
В качестве фильтрации видеопотока может применяться межкадровая, линейная,
медианная или умеренная фильтрация [6]. Но как показали опыты, при серьёзных
зашумлениях эффект от их использования незначительный.
Бинарные операции эрозии и дилатации применяются к карте огня. Операция эрозии
позволит убрать с карты пиксели, имеющие недостаточное количество соседей, такие
пиксели чаще всего возникают из-за шумов. Затем, чтобы восстановить пиксели,
принадлежащие пламени, применяется операция дилатации [5, 14]. Но это совсем не
обязательно, если нас не интересует точное количество огненных пикселей на
изображении. Как показали практические исследования, при наличии сильных
зашумлений данный подход также не даёт достаточных результатов.
1.3 Недостатки существующих подходов
После проведения обзора для реализации были выбраны подходы в порядке убывания
предполагаемой эффективности. Для определения подозрительных зон было решено
использовать фильтр по яркости пикселей и банк межкадровых разностей с шагом в N
кадров (см. п.1.2.1.2). Использование фильтра по яркости давало возможность работать
как с цветным, так и с чёрно-белым видео. Использование банка межкадровых разностей
позволяло значительно снизить количество двигающихся шумовых пикселей, а шаг в N
кадров позволял получить лучшие различия для межкадровой разности, чем обычная
межкадровая разность.
Любой огонь характеризуется мерцанием, тогда как форма не всегда содержит
вариации яркости (п.1.2.3), а структурное деление (п.1.2.5) может соответствовать
шумовым объектам. Поэтому следующий реализованный подход был ЧВА (см. п.1.2.2).
Но на данном этапе реализации возникла проблема: ЧВА давал ложную тревогу на
ролики с двигающимися яркими объектами (см. рис.15). Ни один из изученных подходов
не имел способности обрабатывать подобные ситуации. Для решения данной проблемы
был разработан и реализован собственный подход пространственно-временного анализа
(ПВА).
Рис. 14. Фары машин спровоцировали ложную тревогу.
- 19 -

Page 20

2. Разработка детектора огня
2.1 Пространственно-временной анализ
Разработанный подход использует результат работы частотно-временного анализа,
описанного в п.1.2.2. Метод ПВА снижает количество ложных тревог, причиной которых
становятся движущиеся объекты (фары машин, ярко одетые люди), а также отдельные
шумовые огненные пиксели, полученные в результате ЧВА, находящиеся далеко от
основной массы огненных пикселей. Суть метода сводится к группировке огненных
пикселей по критерию удалённости друг от друга, и трассировке полученной группы в
некотором промежутке времени. Если группа не исчезает до конца проверочного периода
и не смещается в пространстве, то группа пикселей считается огнём. Далее следует
подробное описание.
1. Инициализация центров масс (ЦМ).
a. Пространство изображения делится на квадратные секторы. Их
количество и размеры могут вычисляться в зависимости от разрешения
кадра либо задаваться константами (см. рис.13).
b. Для каждого сектора подсчитывается его вес – количество огненных
пикселей, полученных на этапе ЧВА.
c. Выбирается зона с максимальным весом, координаты всех пикселей,
принадлежащих данной зоне усредняются, и полученный центр масс
заносится в соответствующий список, количество входящих в него
точек тоже сохраняется. Этап повторяется до тех пор, пока не останутся
зоны с количеством пикселей меньше порога.
d. Центры масс, находящиеся на расстоянии меньше, чем порог,
сливаются в один, координаты нового ЦМ рассчитываются в
соответствии с весом исходных точек.
2. Трассировка центров масс.
a. В списке историй центров масс, полученных на предыдущем кадре,
ищется самый ближайший для ЦМ, полученного на текущем кадре.
Если минимальное расстояние меньше порога, то соответствие найдено,
и координаты текущего ЦМ записывается в соответствующую историю,
время жизни обновленной истории увеличивается. Если соответствия
нет, создаётся новая история.
b. Время жизни историй, не получивших обновление на данном шаге,
уменьшается. Если время жизни уменьшается до нуля, история
удаляется.
c. Те истории, чья длинна достигла порога проверяются на смещение.
Вычисляются среднее арифметическое по координатам истории. Если
среднее расстояние между полученной точкой и точками в истории
меньше порога, считается, что сдвига не было, а значит, данная группа
пикселей, из которой был инициализирован ЦМ, является огнем. Иначе
это шум, и тревога не поднимается. В независимости от результата,
проверяемая история очищается, последняя точка становится первой,
время жизни сокращается в несколько раз.
- 20 -

Page 21

(a)
(b)
Рис. 15. (a) Исходное изображение (b) изображение, разделённое на сектора, красными
крестами обозначены пиксели, прошедшие ЧВА.
(a)
(b)
Рис. 16. (a) Исходное изображение, в ведре находится горящая бумага (b) жёлтыми крестами
обозначена история ЦМ, бирюзовый крест – последний в истории.
2.2 План алгоритма
Шаг 0. Инициализация (FireDetector::Initialize)
На данном шаге выделяется память для всех объектов, необходимых для работы
алгоритма, задаются пороги и параметры. Ниже приведено описание объектов, без которых
понимание работы алгоритма считается затруднительным. Все объекты класса CIplImage.
• ppFramesBuffer – массив указателей на CIplImage, содержит N
1
последних кадров,
используется для получения лучших межкадровых разностей, благодаря этому
буферу разность вычисляется между i и i+N
1
кадрами;
• pCur, pPrev – указатели на текущий и предыдущий кадр с шагом N
1
, указывают на
кадры из ppFramesBuffer;
- 21 -

Page 22

• ppDiffBank – массив указателей на CIplImage, содержит межкадровые разности;
• pDiff – карта движения, содержит среднее арифметическое межкадровых разностей из
ppDiffBank;
• pFireColored – содержит бинарную карту пикселей текущего кадра, имеющих
достаточную яркость, чтобы считаться подозрительными на огонь;
• pColoredAndDiffMap – бинарная карта, содержит пиксели, имеющие достаточное
значения в картах pDiff и pBrightBank;
• pStatisticMap – содержит оценку времени, которое пиксель является похожим на
огонь, говоря иначе, сколько времени пиксель находился в карте
pColoredAndDiffMap;
• ppFreqStatistic – массив указателей на CIplImage, содержит последние N
3
кадра, эти
кадры необходимы для волнового анализа подозрительных на огонь пикселей;
• presult – бинарная карта, содержит огненные пиксели, то есть те, которые прошли все
этапы проверки.
Шаг 1. Предобработка (FireDetector::MeetNewFrame)
1. Текущий кадр преобразовывается в оттенки серого цвета, если он таковым не
является.
2. Текущий кадр в оттенках серого заносится в буферы ppFramesBuffer и
ppFreqStatistic.
3. Обновляются указатели на текущий i-й и предыдущий i-N
1
кадры pCur и pPrev.
Шаг 2. Выделение пикселей, похожих на огонь
1. Вычисление бинарной маски pFireColored (FireDetector::BrightFilter)
a. Вычисляется среднее арифметическое от яркости пикселей текущего кадра
(FireDetector::GetMeanBright).
b. Пиксели, имеющие яркость больше средней, заносятся в карту
pFireColored.
2. Обновление банка межкадровых разностей . (FireDetector::RefreshDiffBank)
Вычисляется абсолютная попиксельная разность между кадрами pCur и pPrv,
значение заносится в соответствующий кадр массива ppDiffBank.
3. Вычисление карты движения pDiff (FireDetector::CalcDiff)
Вычисляется среднее арифметическое между всеми соответствующими
пикселями хранилища ppDiffBank, полученное значение заносится на
соответствующую позицию в карту pDiff (см. п. 1.2.1.2).
4. Вычисление шумового порога (FireDetector::CalcAverageDiff)
a. Вычисляется среднее арифметическое _averageDiff между значениями
карты pDiff.
b. Вычисляется минимальный порог для шума _minDiff =
_multiplier*_averageDiff, которое не должно быть ниже установленной
константы. Если значение _minDiff всё-таки меньше, то _minDiff
принимает значение этой константы.
- 22 -

Page 23

5. Вычисление карты пикселей, похожих на огонь
(FireDetector::IntersectionDiffAndColored)
В карту pColoredAndDiffMap заносятся те пиксели, у которых pDiff[x] >
_minDif и pFireColored[x] = 1. Это позволяет отсекать шумовые пиксели,
движение или цвет в которых возникает из-за неидеального качества аппаратуры.
Шаг 2. Статистический анализ (FireDetector::Statistic)
1. Обновляется карта pStatisticMap: если пиксель имеет достаточное движение и
подходящий цвет, то есть pColoredAndDiffMap [x] = 1, то для соответствующего
пикселя значение pStatisticMap[x] увеличивается на 2, иначе значение понижается
на 1. Подобный подход даёт возможность быстро достигать порога, даже если
пламя пропадает на несколько кадров.
2. Если значение pStatisticMap[x] превышает заданный порог, то он подвергается
частотно-волновому анализу (см. п.1.2.2).
a. С помощью формул (9.a) и (9.b) и истории яркости пикселя, хранящейся в
ppFreqStatistic, строятся две диаграммы _diagHigh и _diagLowHigh.
b. Производится анализ диаграммы _diagHigh: каждые два соседних элемента
перемножаются, и если полученное значение меньше нуля, значит, было
пересечение абсциссы, и счётчик скачков увеличивается на 1.
c. Если количество скачков превышает установленный порог для первого
преобразования, то аналогичным образом проверяется вторая диаграмма.
d. Если количество скачков и на второй диаграмме превышает порог,
анализируемый пиксель отмечается как огненный.
Шаг 3. Пространственно-временной анализ(FireDetector::SpatialTemporaryAnalysis)
1. Изображение делится на квадратные секторы с весом, равным количеству
огненных пикселей внутри него, полученных на предыдущем шаге.
2. Из каждого сектора, вес которого больше порога, инициализируется центр масс
входящих в него точек.
3. Полученные центры масс объединяются, если находятся на расстоянии меньшем,
чем заданный порог. Новые координаты вычисляются пропорционально весам
исходных точек.
4. Текущие ЦМ проверяются на соответствие с центрами масс, полученными на
предыдущих шагах. При наличии соответствия ЦМ добавляется в историю, иначе
инициализируется новая история. Те истории, что не получили обновления,
уменьшают свое время жизни. Если оно падает до нуля, история удаляется.
5. Если история достигает пороговой длинны, она проверяется на смещение.
Вычисляется средняя точка по всем точкам истории. Если среднее расстояние
между полученной точкой и точками истории превышает порог, значит это шум.
Иначе эта группа пикселей является огнём. Вне зависимости от результата
история очищается.
- 23 -

Page 24

2.3 Графическая схема алгоритма
Легенда:
Эллипсы – кадры, буферы, карты и бинарные маски (объекты класса CIplImage);
Прямоугольники – функции;
Черная стрелка – связывает функцию и объект, в котором он будет участвовать;
Красная стрелка – указывает на результат работы метода;
Синяя пунктирная стрелка указывает на функцию, результат работы которой
зависит от параметров, полученных в ходе работы другой функции;
- 24 -

Page 25

Рис. 17. Графическая схема алгоритма.
- 25 -

Page 26

2.4 Тестирование
Работа детектора тестировалась на множестве видеороликов с различным качеством
изображения и событиями на сцене. Тестирование проводилось на платформе с процессором
AMD Sempron(tm) 3000+, операционная система - Microsoft Windows XP.
Обозначения:
Синий прямоугольник в левом нижнем углу – индикатор поднятой тревоги;
Жёлтый крест – центр масс, принадлежащий какой-либо истории;
Бирюзовый крест – последний ЦМ в текущей истории;
Красный крест – центр масс огненных пикселей (т.е. прошедший все проверки);
Пример #1.
Файл: ShorterIsyamNight.avi (320x240, 25 fps);
Условия: закрытое помещение, на сцене ведро с горящей бумагой, проходящий человек;
Уровень шума: низкий;
Среднее время обработки кадра: 12.8741 мс.
(a)
(b)
Рис. 18. (a) Несколько кадров назад огонь был обнаружен, трассировка продолжается
(b) детектор не сработал на проходящего человека, только на огонь.
Пример #2.
Файл: FireNightNoise.avi (704x576, 25 fps);
Условия: открытое пространство, ночь, на сцене ведро с горящим материалом;
Уровень шума: очень высокий;
Среднее время обработки кадра: 49.7856 мс.
- 26 -

Page 27

(a)
(b)
Рис. 19. Детектор реагирует на горящее ведро, зажигалку человека, блики на мокром
асфальте. Несмотря на сильное зашумление, не было ни одного ложного обнаружения.
- 27 -

Page 28

Пример #3.
Файл: fire1.avi (320x240, 15 fps);
Условия: открытое пространство, день, на сцене ведро с горящей соломой;
Уровень шума: высокий;
Среднее время обработки кадра: 10.5912 мс.
(a)
(b)
(c)
Рис. 20. (a) Исходное изображение (b) кадр с шумовыми центрами масс (c) пешеход на сцене.
Из-за сильного уровня зашумления порог чувствительности принимает большое
значение. Видео имеет низкую частоту кадров, что затрудняет этап частотно-временного
анализа. Сам огонь очень часто меняет положение, это не позволяет статистической карте
набрать необходимые значения. Фон с огнём находятся в маленьком контрасте. Из-за
совокупности всех этих факторов детектор не распознал огонь, но и ложных срабатываний
не было.
Пример #4.
Файл: fBackYardFire.avi (320x240, 10 fps);
Условия: открытое пространство, день, на сцене горящий картон;
Уровень шума: средний;
Среднее время обработки кадра: 13.6456 мс.
- 28 -

Page 29

Рис. 21. В процессе работы ложных срабатываний не наблюдалось.
Пример #5.
Файл: controlled1.avi (400x256, 15 fps);
Условия: открытое пространство, день, на сцене горящий лес, идущие люди;
Уровень шума: низкий;
Среднее время обработки кадра: 26.1783 мс.
Рис. 22. Детектор выделяет огонь, на проходящих мимо людей не реагирует, через
несколько кадров будет поднята тревога.
- 29 -

Page 30

Пример #6.
Файл: 40m_PanFire_20060824.avi (320x240, 29 fps);
Условия: открытое пространство, день, на сцене вдалеке ведро с горящим материалом;
Уровень шума: низкий;
Среднее время обработки кадра: 11.6790 мс.
Рис. 23. Детектор не среагировал.
Пламя на изображении очень маленькое и появлялось не достаточно продолжительное
время, чтобы пройти все этапы отсечения шумов.
Пример #7.
Файл: CarLights1.avi (320x240, 10 fps);
Условия: открытое пространство, ночь, движущиеся машины, с включенными фарами;
Уровень шума: сильный;
Среднее время обработки кадра: 14.9709 мс.
- 30 -

Page 31

(a)
(b)
Рис. 24. (a) Проезжающая машина (b) свет от фар не спровоцировал тревогу.
Пример #8.
Файл: CarLights2.avi (320x240, 10 fps);
Условия: открытое пространство, ночь, движущиеся машины, с включенными фарами,
идущий человек в яркой одежде;
Уровень шума: высокий;
Среднее время обработки кадра: 18.2387 мс.
(a)
(b)
Рис. 25 (a) Детектор сработал на идущего человека (b)снова на человека и на фары машины.
Следует заметить, что данные условия очень сложные. Помимо шума изображения, на
сцене много движущихся объектов. Детектор сработал на человека, поскольку одежда имела
достаточную яркость, и все центры масс были в одной области. Реакция на фары машины
произошла из-за пересечения истории центров масс грузовика с историей ЦМ легковой
машины, едущей навстречу.
Пример #8.
Файл: a2_mecl.avi (720x288, 25 fps);
Условия: открытое пространство, день, движущиеся машины, блики, идущие пешеходы,
движущаяся листва деревьев, колеблющиеся флаги;
- 31 -

Page 32

Уровень шума: низкий;
Среднее время обработки кадра: 30.0873 мс.
Рис. 26. Ни одной ложной тревоги.
- 32 -

Page 33

Заключение
Целью дипломной работы было создание видеодетектора огня, обладающего
устойчивостью к шумам, способностью быстро обнаруживать пламя и не требующего
больших затрат ресурсов вычислительной системы. Для этого был проведен широкий
обзор материала на тему обнаружения огня. Предполагалось на основе существующих
методов разработать детектор, включающий в себя подходы, которые в комбинации дают
наилучший результат. Полученный результат не удовлетворял требованиям по качеству и
устойчивости, поэтому был разработан собственный подход пространственно-
временного анализа, который значительно улучшил качество выделения огня при очень
низком увеличении затрат ресурсов.
В ходе исследований было обнаружено, что поведение огня некоторым образом
похоже на поведение дыма: наблюдаются мерцания, но с разной частотой. Помимо этого,
в ходе обзора по основной теме, было найдено множество статей по выделению дыма в
видеопотоке, использующие и некоторые другие его характеристики. Отсюда можно
предположить, что расширение возможностей детектора до обнаружения дыма не
составит больших трудностей.
Разработанный детектор представляет собой статическую Windows-библиотеку,
содержащую весь необходимый функционал для разработки приложений по
обнаружению огня.
Как показали практические опыты, детектор обладает хорошей устойчивостью к
посторонним шумам. Наилучшую устойчивость к движению посторонних объектов
показывает при большой частоте смены кадров, около 25 кадров в секунду и выше, а
также при низком шуме аппаратуры. Детектор может использовать как цветное, так и
черно-белое видео. Скорость работы вполне приемлемая для автоматизированных систем
видеонаблюдения. Еще одним плюсом детектора является отсутствие пользовательских
настроек, детектор стабильно работает с одним набором параметров. В дальнейшем
планируются более тщательные тесты, затем, возможно, низкоуровневая оптимизация и
интеграция детектора.
- 33 -

Page 34

Список использованной литературы
1. Пожарный оповещатель [Электронный ресурс]. – Википедия, свободная
энциклопедия. – Режим доступа:
http://wikipedia.tomsk.ru/ru.wikipedia.org/wiki/Пожарный_оповещатель, свободный.
2. Fire Detector [Электронный ресурс]. – Википедия, свободная энциклопедия. – Режим
доступа: http://wikipedia.tomsk.ru/en.wikipedia.org/wiki/Fire_detector, свободный.
3. D. Kozeki. Smoldering Fire Detection by Image-processing. National Research Institute of
Fire and Disaster, Tokyo, Japan. 2001г.
4. Светочувствительная матрица [Электронный ресурс]. – Википедия, свободная
энциклопедия. – Режим доступа:
http://wikipedia.tomsk.ru/ru.wikipedia.org/wiki/Матрица_(фото), свободный.
5. T. Celik, H. Demirel, H. Ozkaramanli. Automatic Detection in Video Sequences
[Электронный ресурс]. – 2004г. – Режим доступа:
http://www.eurasip.org/Proceedings/Eusipco/Eusipco2006/papers/1568981622.pdf,
свободный.
6. Абдуллин Ю.Э. Обнаружение и трассировка движущихся объектов в потоке
видеоданных. ТГУ. Дипломная работа. 2004 г.
7. Яковлев А. Н. Введение в вейвлет-преобразования. Новосибирский Государственный
Технический Университет, учебное пособие. 2003г.
8. Дискретное Вейвлет-преобразование [Электронный ресурс]. – Википедия, свободная
энциклопедия. – Режим доступа:
http://wikipedia.tomsk.ru/ru.wikipedia.org/wiki/Дискретное_вейвлет-преобразование,
свободный.
9. B. Ugur Toreyin, R. Gokberk Cinbis, Yigithan Dedeoglu, A. Enis Cetin. Fire Detection in
Infrared Video Using Wavelet Analysis [Электронный ресурс]. – 2007г. – Режим
доступа: http://www.ee.bilkent.edu.tr/ugur/oe2007.pdf, свободный.
10. B. Ugur Toreyin, Yigithan Dedeoglu, Ugur Gudukbay, A. Enis Cetin. Computer Vision
Based System for Real-time Fire and Flame Detection [Электронный ресурс]. – 2006г. –
Режим доступа: http://www.ee.bilkent.edu.tr/ugur/patreclet2006.pdf, свободный.
11. Yiğithan Dedeoğlu, B. Uğur Töreyin, Uğur Güdükbay, A. Enis Çetin. Real-time Fire and
Flame Detection in Video [Электронный ресурс]. – 2005г. – Режим доступа:
http://www.ee.bilkent.edu.tr/ugur/icassp2005.pdf, свободный.
12. Yigithan Dedeoglu. Moving Object Detection, Tracking and Classification for Smart Video
Survilliance. – The Department of Computer Engineering and the Institute of Engineering
and Science of Bilkent University. – 2004г., с. 63 – 71.
13. Che-Bin Liu and Narendra Ahuja. Vision Based Fire Detection [Электронный ресурс]. –
2004г. – Режим доступа: http://vision.ai.uiuc.edu/newpubs/icpr04_fire.pdf, свободный.
14. Walter Phillips III, Mubarak Shah, Niels da Vitoria Lobo. Flame Recognition in Video.
School of Electrical Engineering and Computer Science University of Central Florida.
1999г.
- 34 -

Page 35

Приложение А. Руководство программиста
Статическая библиотека и приложение были разработаны в среде Microsoft Visual C++
.NET. Библиотека FDL (Fire Detection Library) содержит один класс CFireDetector,
предоставляющий
всю
необходимую
функциональность.
Ниже
перечислены
использованные в алгоритме методы класса и их краткое описание.
int Process( CIplImage * const pSrc );
Принимает на вход кадры видео, содержит в себе весь необходимый набор функций и
их нужную последовательность, для выделения огня.
int MeetNewFrame( CIplImage * const pSrc );
Занимается рутиной: увеличивает счётчики, расставляет указатели.
int MakeDecision( CIplImage * const pSrc );
Вызывается в самом конце алгоритма. На основе значений параметров принимает
решение о тревоге.
int Initialize( CIplImage * const pFirstFrame );
Вызывается при открытии нового потока кадров, устанавливает размер всех
внутренних переменных класса, выделяет память.
int Reset();
Вызывается при закрытии ролика, чистит всю выделенную память.
int BrightFilter( CIplImage * const pSrc , CIplImage *pDst );
Составляет карту подозрительно окрашенных пикселей.
int GetMeanBright( CIplImage * const pSrc );
Находит среднюю яркость кадра.
int RefreshDiffBank();
Вычисляет межкадровую разность и добавляет её в хранилище.
int CalcDiff();
Высчитывает карту движения из всех имеющихся межкадровых разностей.
int IntersectionDiffAndColored();
Объединяет карты движения и подозрительно окрашенных пикселей текущего кадра.
int Statisitc( CIplImage * const pStatMap, CIplImage * const pFireMap );
Выполняет статистический анализ по цвету и движению пикселей.
- 35 -

Page 36

int CreateDiagrams( int cx, int cy, CIplImage ** const ppStat );
Создаёт частотные диаграммы применением ДВП к истории яркости подозрительного
пикселя.
int AnalyzeDiagrams();
Анализирует частотно-временные диаграммы.
int SpatialTemporaryAnalysis();
Содержит необходимые функции для работы пространственного-временного анализа.
int SquareMark();
Размечает зоны по количеству содержащихся в них огненных точек.
int CreationCentersOfMass();
Создает центры масс из имеющихся огненных точек.
int Merge();
Объединяет близкорасположенные центры масс.
int RefreshHistory();
Ищет соответствие между полученными и уже имеющимися ЦМ.
int CheckShifts();
Проверяет ЦМ на движение в пространстве.
- 36 -

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