- •Реферат
- •Введение
- •Постановка задачи
- •1 Аналитический обзор предметной области
- •Компьютерное зрение
- •Обзор методов детектирования объектов
- •Эмпирические методы
- •Методы характерных инвариантных признаков
- •Методы обнаружения лица по внешним признакам
- •Распознавание с помощью шаблонов, заданных разработчиком
- •Выбор алгоритма
- •Обзор методов детектирования движения
- •1.3.1 Межкадровая разность
- •1.3.2 Базовый кадр
- •1.3.3 Методы оптического потока
- •Обзор инструментальных средств для разработки программного продукта
- •Библиотека OpenCv
- •1.4.2 Среда разработки MathWorks matlab
- •1.5 Интерфейсы последовательной передачи данных
- •2 Оборудование и аппаратная реализация
- •2.1.1 Характеристики камеры
- •Передача команд по протоколу visca
- •Получение изображения с камеры
- •Работа с портом
- •3 Анализ видеоизображения. Детектор лица
- •3.1 Постановка задачи
- •3.2 Метод Виолы-Джонса
- •3.2.1 Описание алгоритма
- •3.2.2 Схема распознавания
- •3.2.3 Признаки класса
- •3.2.4 Схема обучения
- •3.2.5 Интегральное представление изображений
- •3.2.6 Обучение
- •3.2.7 Распознавание
- •3.3 Программная реализация
- •4 Анализ видеоизображения. Слежение за лицом
- •4.1Постановка задачи
- •4.2 Метод Лукаса-Канаде
- •4.2.2 Одномерный случай
- •4.2.2 Двумерный случай
- •4.2.3 Недостатки метода
- •4.3 Выбор оптимальных параметров
- •4.4 Программная реализация алгоритма
- •5 Управление поворотом камеры
- •5.1 Постановка задачи
- •5.2 Перенацеливание на заданную точку поверхности
- •5.3 Модель принятия решений
- •6 Исследование системы
- •6.1 Оценка точности перенацеливания
- •6.2 Проверка на устойчивость к смене освещения
- •6.3 Время задержки
- •6.4 Устойчивость при частичном перекрытии объекта
- •6.5 Анализ влияния шумов
- •Заключение
- •Список литературы
- •Приложение 1. Код программы
Получение изображения с камеры
Для получения изображения с камеры использовалось программное обеспечение ManyCam, которое транслировало изображение с сервера управления камерой на персональный компьютер и представляло полученный видеопоток в виде передачи с виртуальной веб-камеры. Изображение транслировалось со скоростью 30 fps.
Таким образом, общая структура аппаратной реализации комплекса, представлена на рис.8 и 9. Отличие между двумя схемами в том, что в первой будет задержка получения изображения порядка 1 секунды. Во второй схеме задержка будет значительно меньше, что означает, что работу в режиме реального времени вполне можно реализовать. При разработке и тестировке использовалась первая схема из рисунка 8. Изображение с камеры поступает на персональный компьютер и через ManyCam разрабатываемая программа будет захватывать изображение, обрабатывать его, детектировать лицо человека и следить за ним, путем передачи команд камере через интерфейс RS422.
Рис. 8 Схема подключения на тестируемом оборудовании
Рис. 9 Схема подключения на реальном оборудовании
Работа с портом
Открытие и инициализация порта
Сначала откроем выбранный com порт на чтение-запись:
serial->open(QSerialPort::ReadWrite);
Зададим необходимые параметры для передачи по протоколу VISCA:
serial->setBaudRate(QSerialPort::Baud9600);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
serial->setFlowControl(QSerialPort::NoFlowControl);
Передача/чтение данных
Передачу данных в com-порт будем осуществлять с помощью функции:
serial->write(command), где command – это массив байтов, содержащий требуемую команду.
После передачи команды в порт поставим ограничение на запись на 200 мсек. Именно столько времени необходимо для передачи команды видеокамере. Считывание данных с com-порта будем проводить с помощью метода:
connect(serial, &QSerialPort::readyRead, this, &MainWindow::readData).
По сигналу readyRead(), который означает, что данные готовы к чтению, мы переходим к слоту readData(), где и осуществляется чтение с порта:
command_read.append(serial->readAll());
QByteArray y = command_read.toHex();
Закрытие порта: serial->close();
3 Анализ видеоизображения. Детектор лица
3.1 Постановка задачи
Пусть
– изображение с камеры в момент времени
t,
которое представляет собой совокупность
изображений отдельных объектов (лиц) и
фона:
,
где
– лицо человека, F(x,y) – изображение
фона; (x,y) ∈ G –
область определения изображения.
определён
только на дискретном множестве точек
D с координатами
∈
G. При этом,
,
где
– дискретная область лица; D =
∪
∪ … ∪
∪
;
D – дискретная прямоугольная решётка,
в узлах которой определён снимок
.
Узлы решётки определяются координатами
или их номерами (i,j), в которых задаётся
цвет снимка в данной точке, что в
совокупности определяет пиксель снимка.
Таким образом, исходное изображение
можно
рассматривать как прямоугольную
целочисленную решётку P, узлы которой
являются пикселями:
P ={p(i, j) | i = 1,N, j = 1,M},
где i, j – целочисленные координаты (номера) пикселя; p(i, j)∈{0, 1} – цветовой компонент пикселя.
Задача: найти множество точек
(i,j)∈
,
для которых
.
