Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ.docx
Скачиваний:
130
Добавлен:
01.06.2015
Размер:
1.85 Mб
Скачать

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 – Обнаружение лица в видеопотоке