- •Аннотация
- •Summary
- •Реферат
- •Перечень демонстрационных графических материалов
- •Содержание
- •Введение
- •Анализ технического задания
- •1.1.1 Принцип сканирующего окна
- •1.1.2Интегральное представление изображений
- •1.1.3 Признаки Хаара
- •1.1.5 Бустинг
- •2 Методы дистантного сопоставления с эталоном
- •4.3 Классы и функции используемые в работе
- •4.3.1 Класс VideoCapture
- •4.3.2 Класс CascadeClassifier
- •4.3.3 Класс calcImageHash
- •4.3.4 Класс cFaceBase
- •4.3.5 Функция calcHammingDistance
- •4.3.6 Функция HashWithMinHammDis
- •5.2 Мероприятия по улучшению условий труда
- •5.3 Организационные меры профилактики
- •5.4 Технические меры профилактики
- •5.5 Санитарно-гигиенические меры профилактики
- •5.6 Психологические меры профилактики
- •5.6 Пожарная безопасность
- •5.7 Защита окружающей среды
- •Заключение
- •Список использованных источников
- •Приложение а Код программы cvFaceHash
- •Код подпрограммы cvHashCalc
4.3.1 Класс VideoCapture
Класс для захвата видео из видео файлов или камер.
Методы и описания:
get(int propId) - Возвращает в указанный VideoCapture свойства. Примечание: ВCAPI, когда заканчивается работа с видео, освобождаетCvCaptureструктуру вместе сcvReleaseCapture(), или используетPrtчтобы вызватьcvReleaseCapture() автоматически в деструктуре;
grab() – захватывает следующий кадр из видео файла или устройства записи. Основное применение функции в среде с несколькими камерами, особенно когда камеры не имеют синхронизацию оборудования. То есть, вы называете VideoCapture.grab () для каждой камеры, и после этого вызвать медленный метод VideoCapture.retrieve () для декодирования и получить кадр с каждой камеры;
isOpened() – возвращает True, если захватывает видео или устройство записи;
open(intdevice) – открывает файл с видео или захваченное устройство записи;
release() – закрывает видео или устройство записи;
retrieve(Matimage) – декодирует и возвращает захваченный видеокадр;
retrieve(Matimage,intchannel) - декодирует и возвращает захваченный видеокадр;
set (int propId, double value) – устанавливает свойства VideoCapture.
Пример получения видео фрейма с камеры приведен на рисунке 12:
Рисунок 12. - пример получения видео фрейма с камеры
В данном случае captureDeviceпринимает в качестве параметра идентификатор камеры.
4.3.2 Класс CascadeClassifier
Класс, реализующий алгоритм Виолы – Джонса на основе каскада Хаара. Обучение проходит путем разделение на два типа образцов: отрицательные и положительные. Отрицательные образцы соответствуют необъектным изображениям. Положительные образцы соответствуют изображению с обнаруженными объектами. Данное обучение уже реализовано в OpenCVбиблиотеке «haarcascade_frontalface_alt.xml».
Параметры haarcascade_frontalface_alt.xml:
data<cascade_dir_name>
Описание, где будет храниться классификатор;
vec<vec_file_name>
Veс-файл с положительными образцами (созданныйopencv_createsamplesутилитой);
bg <background_file_name>
Описание фонового файла;
numPos <number_of_positive_samples>
numNeg <number_of_negative_samples>
Количество положительных/отрицательных образцов используемых для обучения классификатора каждого этапа;
numStages <number_of_stages>
Количество каскадных этапов обучения;
precalcValBufSize <precalculated_vals_buffer_size_in_Mb>
Размер буфера для предварительного вычисления значений признаков (в Мб);
precalcIdxBufSize <precalculated_idxs_buffer_size_in_Mb>
Размер буфера для предварительного вычисления индекса признаков. Чем больше памяти выделено, тем быстрее процесс обучения;
baseFormatSave
Этот параметр является актуальным в случае каскада Хаара. Если данный параметр будет использован, то каскад будет сохранен в старом формате;
Параметры каскада:
stageType <BOOST(default)>
Тип этапа. Только расширенный классификатор поддерживает данный тип этапа на данный момент;
featureType <{HAAR(default), LBP}>
Типы черт лица: HAAR– черты лица Хаара,LBP– локальные бинарные структуры;
w <sampleWidth>
h <sampleHeight>
Размер обучающих выборок (в пикселях). Должны быль равны тому значению, которые использовались при создании обучающих выборок(opencv_createsamples утилита);
Параметры расширенного классификатора:
bt <{DAB, RAB, LB, GAB(default)}>
Тип расширенных классификаторов:DAB - дискретный AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB - легкий AdaBoost;
minHitRate <min_hit_rate>
Минимальное значение совпадений для каждого этапа классификатора. Общее значение совпадений можно определить как (min_hit_rate^number_of_stages);
maxFalseAlarmRate <max_false_alarm_rate>
Максимальная значение ложных срабатываний для каждого этапа классификатора. Общее значение ложных срабатываний можно определить как (max_false_alarm_rate^number_of_stages);
maxDepth <max_depth_of_weak_tree>
Максимальная высота древа принятия решений;
maxWeakCount <max_weak_tree_count>
Минимальная высота дерева принятия решений для каждого этапа каскада;
Параметры признаков Хаара:
mode <BASIC (default) | CORE | ALL>
Выбор признаков Хаара используемых в процессе обучения. BASICиспользуются только вертикальные черты, в то время какALLиспользует полный набор: вертикальные и повернутые на 45 градусов набор черт.
Пример результата выглядит так, как показано на рисунке 13:
Рисунок 13 – Обнаружение лица в видеопотоке