Разработка программно-аппаратного комплекса для анализа видеоизображения и управления видеокамерой средствами языка C/C++ и библиотеки Open CV в среде разработки QT Creator

Тип:
Добавлен:

Введение

Данная работа посвящена разработке программно-аппаратного комплекса для анализа видеоизображения и управления движением роботизированной видеокамерой. Под анализом видеоизображения будем подразумевать обработку цифрового изображения, полученного с камеры с целью слежения (трекинга) за движением объекта.

На сегодняшний день задача трекинга объектов на видео является неотъемлемой частью многих прикладных областей, таких как построение систем видеонаблюдения, отслеживания дорожного трафика, создание интерфейсов человек-компьютер, различных программ и т.п. За последние годы было предложено множество успешных подходов к решению данной задачи. Тем не менее, многие из них накладывают определенные ограничения на обрабатываемые данные, как то статичный фон и фиксированный ракурс, знания о типе наблюдаемого объекта или даже наличие множества камер. Большая часть предлагаемых подходов уделяет мало внимания возможности проводить анализ в реальном времени, хотя и некоторые из них наоборот ориентированы на строгие ограничения по ресурсам.

Целью данной работы является разработка программно-аппаратного комплекса, особенностями которого можно считать способность обнаруживать и отслеживать объекты в режиме реального времени путем управления поворотом роботизированной камеры, которая находится в помещении. Система должна удовлетворять следующим требованиям: камера подвижна, возможен аддитивный шум при регистрации данных, скачки яркости входных растровых данных; высокая производительность при обработке в реальном времени. Программный комплекс будет реализовываться на языке C/C++ в среде разработки QT Creatorс поддержкой библиотеки компьютерного зрения Open CV. Для работы будем использовать роботизированную камеру Sony BRCH 900P, которая будет передавать изображение на персональный компьютер, через который и будет осуществляться управление камерой.

Постановка задачи.

Цель работы: создать программно-аппаратный комплекс для реализации слежения за человеком с помощью анализа видеоизображения и перемещением камеры в режиме реального времени.

На основе поставленной цели сформируем следующие задачи:

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

)Построение технической системы.

)Реализация алгоритма поиска лица человека на изображении;

)Отслеживание положения лица в режиме реального времени;

)Реализация алгоритма смещения камеры в зависимости от положения объекта на изображении;

)Оценка полученных результатов.

Требования к системе:

)Работа в режиме реального времени

)Устойчивость к смене освещения

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

)Устойчивость при частичном перекрытии объекта

)Работа с изображением плохого качества, очень низкого или очень высокого разрешения

1. Аналитический обзор предметной области

.1 Компьютерное зрение

Компьютерное зрение (машинное зрение, computer vision) - совокупность программно-технических средств, обеспечивающих считывание в цифровой форме видеоизображений, их обработку и выдачу результата в форме, пригодной для его практического использования в реальном масштабе времени.

Система компьютерного зрения (computer vision system) - комплекс программно-технических средств, обеспечивающий обработку данных, снимаемых на выходе оптико-электронных устройств, например, цифровой фотокамеры, телевизионной или видеокамеры и выдачу полученных результатов в форме, пригодной для практического применения. Важной составляющей частью является подсистема оптического распознавания образов. В 2002 году фирма Canesta продемонстрировала малогабаритную систему компьютерного зрения, работающую на принципах светового радара, способного измерять дальность до окружающих предметов и отслеживать их перемещение. В комплект входит 3D-камера со встроенной микросхемой датчика изображения (Equinox), работающего на излучение световых импульсов, прием и измерение времени возвращения отраженных сигналов; USB-интерфейс и программируемый модуль для Windows. Одной из предлагаемых разработчиками областей применения системы является дистанционное управление бытовой электроникой с помощью жестов.

Интерес к компьютерному зрению возник одним из первых в области искусственного интеллекта. Даже архитектура первой искусственной нейронной сети - перцептрона - была предложена Фрэнком Розенблаттом, исходя из аналогии с сетчаткой глаза, а ее исследование проводилось на примере задачи распознавания изображений символов.

Значимость проблемы компьютерного зрения никогда не вызывала сомнения, но одновременно ее сложность существенно недооценивалась. К примеру, легендарным по своей показательности стал случай, когда в 1966 г. один из основоположников области искусственного интеллекта, Марвин Минский, даже не сам собрался решить проблему искусственного зрения, а поручил это сделать одному студенту за ближайшее лето. При этом на создание программы, играющей на уровне гроссмейстера в шахматы, отводилось значительно большее время. Однако сейчас очевидно, что создать программу, обыгрывающую человека в шахматы, проще, чем создать адаптивную систему управления с подсистемой компьютерного зрения, которая бы смогла просто переставлять шахматные фигуры на произвольной реальной доске.

Прогресс в области компьютерного зрения определяется двумя факторами: развитие теории, методов, и развитие аппаратного обеспечения. Долгое время теория и академические исследования опережали возможности практического использования систем компьютерного зрения. Условно можно выделить ряд этапов развития теории.

К 1970-м годам сформировался основной понятийный аппарат в области обработки изображений, являющийся основой для исследования проблем зрения. Также были выделены основные задачи, специфические для машинного зрения, связанные с оценкой физических параметров сцены (дальности, скоростей движения, отражательной способности поверхностей и т. д.) по изображениям, хотя ряд этих задач все еще рассматривался в весьма упрощенной постановке для «мира игрушечных кубиков».

К 80-м сформировалась теория уровней представления изображений в методах их анализа. Своего рода отметкой окончания этого этапа служит книга Дэвида Марра «Зрение. Информационный подход к изучению представления и обработки зрительных образов».

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

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

Текущий этап наиболее интересен развитием методов автоматического построения представлений изображений в системах распознавания изображений и компьютерного зрения на основе принципов машинного обучения.

В то же время прикладные применения ограничивались вычислительными ресурсами. Ведь чтобы выполнить даже простейшую обработку изображения, нужно хотя бы один раз просмотреть все его пиксели (и обычно не один раз). Для этого нужно выполнять как минимум сотни тысяч операций в секунду, что долгое время было невозможно и требовало упрощений.

К примеру, для автоматического распознавания деталей в промышленности могла использоваться черная лента конвейера, устраняющая необходимость отделения объекта от фона, или сканирование движущегося объекта линейкой фотодиодов со специальной подсветкой, что уже на уровне формирования сигнала обеспечивало выделение инвариантных признаков для распознавания без применения каких-либо сложных методов анализа информации. В оптико-электронных системах сопровождения и распознавания целей использовались физические трафареты, позволяющие «аппаратно» выполнять согласованную фильтрацию. Некоторые из этих решений являлись гениальными с инженерной точки зрения, но были применимы только в задачах с низкой априорной неопределенностью, и поэтому обладали, в частности, плохой переносимостью на новые задачи.

Не удивительно, что на 1970-е годы пришелся пик интереса и к оптическим вычислениям в обработке изображений. Они позволяли реализовать небольшой набор методов (преимущественно корреляционных) с ограниченными свойствами инвариантности, но весьма эффективным образом.

Постепенно, благодаря росту производительности процессоров (а также развитию цифровых видеокамер), ситуация изменилась. Преодоление определенного порога производительности, необходимого для осуществления полезной обработки изображений за разумное время, открыло путь для целой лавины приложений компьютерного зрения. Следует, однако, сразу подчеркнуть, что этот переход не был мгновенным и продолжается до сих пор.

В первую очередь, общеприменимые алгоритмы обработки изображений стали доступны для спецпроцессоров - цифровых сигнальных процессоров (ЦСП) и программируемых логических интегральных схем (ПЛИС), нередко совместно использовавшихся и находящих широкое применение до сих пор в бортовых и промышленных системах.

Однако действительно массовое применение методы компьютерного зрения получили лишь менее десяти лет назад, с достижением соответствующего уровня производительности процессоров у персональных и мобильных компьютеров. Таким образом, в плане практического применения системы компьютерного зрения прошли ряд этапов: этап индивидуального решения (как в части аппаратного обеспечения, так и алгоритмов) конкретных задач; этап применения в профессиональных областях (в особенности в промышленности и оборонной сфере) с использованием спецпроцессоров, специализированные системы формирования изображений и алгоритмы, предназначенные для работы в условиях низкой априорной неопределенности, однако эти решения допускали масштабирование; и этап массового применения.

Как видно, система машинного зрения включает следующие основные компоненты:

)подсистему формирования изображений (которая сама может включать разные компоненты, например объектив и ПЗС- или КМОП-матрицу);

)вычислитель;

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

Наиболее массового применения достигают системы машинного зрения, использующие стандартные камеры и компьютеры в качестве первых двух компонент (именно к таким системам больше подходит термин «компьютерное зрение», хотя четкого разделения понятий машинного и компьютерного зрения нет). Однако, естественно, прочие системы машинного зрения обладают не меньшей значимостью. Именно выбор «нестандартных» способов формирования изображений (включая использование иных, помимо видимого, спектральных диапазонов, когерентного излучения, структурированной подсветки, гиперспектральных приборов, времяпролетных, всенаправленных и быстродействующих камер, телескопов и микроскопов и т. д.) существенно расширяет возможности систем машинного зрения. В то время как по возможностям алгоритмического обеспечения системы машинного зрения существенно уступают зрению человека, по возможностям получения информации о наблюдаемых объектах они существенно превосходят его.

Исследуя различные решения в области компьютерного зрения, можно упомянуть следующие системы:

Программно-аппаратный комплекс Axxon Next. Данное программное обеспечение применяется в сфере охранного видеонаблюдения и позволяет отслеживать перемещение объектов в пространстве и времени. Видеоаналитика фиксирует в базе данных информацию об объекте: его относительные размеры, скорость и траекторию движения, а также дату и время события. Данный функционал помогает оператору работать с системой максимально эффективно и в считанные минуты найти нужную информацию.

Подсчет людей в магазине и транспорте. Данная видеоаналитика выделяет в потоке кадров объекты (входящие и выходящие люди) и ведет подсчет потоков людей. Это мощное средство позволяет формировать информативные отчеты, крайне полезные для маркетологов. На основе этих данных можно сделать выводы о рентабельности автобусных рейсов и вносить необходимые поправки в расписание движения или маршрут. В Украине реализуется подобная система - DL-Bus. Данные системы подсчета передаются каналам GPRS, и руководство автопарка в режиме реального времени получает информацию о потоках пассажиров.

.2 Обзор методов детектирования объектов

Существующие алгоритмы обнаружения лиц можно разбить на четыре категории:

) эмпирические методы;

) методы характерных инвариантных признаков;

) распознавание с помощью шаблонов, заданных разработчиком;

) метод обнаружения по внешним признакам, обучающиеся системы.

Рассмотрим каждую категорию более подробно.

Эмпирические методы.

Эмпирический подход «базирующийся на знаниях сверху-вниз» предполагает создание алгоритма, реализующего набор правил, которым должен отвечать фрагмент изображения, для того чтобы быть признанным человеческим лицом. Этот набор правил является попыткой формализовать эмпирические знания о том, как именно выглядит лицо на изображениях и чем руководствуется человек при принятии решения: лицо он видит или нет. Самые простые правила:

центральная часть лица имеет однородную яркость и цвет;

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

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

Метод сильного уменьшения изображения для сглаживания помех, а также для уменьшения вычислительных операций предварительно подвергает изображение сильному уменьшению. На таком изображении проще выявить зону равномерного распределения яркости (предполагаемая зона нахождения лица), а затем проверить наличие резко отличающихся по яркости областей внутри: именно такие области можно с разной долей вероятности отнести к «лицу».

Метод построения гистограмм для определения областей изображения с «лицом» строит вертикальную и горизонтальную гистограммы. В областях-кандидатах происходит поиск черт лица. Данный подход использовался на заре развития компьютерного зрения ввиду малых требований к вычислительной мощности процессора для обработки изображения.

Рассмотренные выше методы имеют неплохие показатели по выявлению лица на изображении при однородном фоне, они легко реализуемы с помощью машинного кода. Впоследствии было разработано множество подобных алгоритмов. Но эти методы абсолютно непригодны для обработки изображений, содержащих большое количество лиц или сложный задний фон. Также они очень чувствительны к наклону и повороту головы.

Методы характерных инвариантных признаков.

Методы характерных инвариантных признаков, базирующиеся на знаниях снизу-вверх, образуют второе семейство способов детекирования лиц. Здесь виден подход к проблеме с другой стороны: нет попытки в явном виде формализовать процессы, происходящие в человеческом мозге. Сторонники подхода стараются выявить закономерности и свойства изображения лица неявно, найти инвариантные особенности лица, независимо от угла наклона и положения.

Основные этапы алгоритмов этой группы методов:

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

)обнаружение: границы лица, форма, яркость, текстура, цвет;

)объединение всех найденных инвариантных признаков и их верификация.

Метод обнаружения лиц в сложных сценах предполагает поиск правильных геометрических расположений черт лица. Для этого применяется гауссовский производный фильтр с множеством различных масштабов и ориентаций. После этого производится поиск соответствия выявленных черт и их взаимного расположения случайным перебором. Суть метода группировки признаков в применении второй производной гауссовского фильтра для поиска интересующих областей изображения.Далее группируются края вокруг каждой такой области при помощи порогового фильтра. А затем используется оценка при помощи байесовской сети для комбинирования найденных признаков, таким образом происходит выборка черт лица.

Методы этой группы в качестве достоинств имеют возможность распознавать лицо в различных положениях. Но даже при небольшом загромождении лица другими объектами, возникновении шумов или засветке процент достоверного распознавания сильно падает. Большое влияние также оказывает сложный задний фон изображения. Основа рассмотренных подходов - эмпирика, является одновременно их сильной и слабой стороной. Большая изменчивость объекта распознавания, зависимость вида лица на изображении от условий съемки и освещения позволяют без колебаний отнести обнаружение лица на изображении к задачам высокой сложности. Применение эмпирических правил позволяет построить некоторую модель изображения лица и свести задачу к выполнению некоторого количества относительно простых проверок. Однако, несмотря на безусловно разумную посылку - попытаться использовать и повторить уже успешно функционирующий инструмент распознавания - человеческое зрение, методы первой категории пока далеки по эффективности от своего прообраза, поскольку исследователи, решившие избрать этот путь, сталкиваются с рядом серьезных трудностей.

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

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

Шаблоны задают некий стандартный образ изображения лица, например, путем описания свойств отдельных областей лица и их возможного взаимного расположения. Обнаружение лица с помощью шаблона заключается в проверке каждой из областей изображения на соответствие заданному шаблону.

Особенности подхода:

)два вида шаблонов:

а) недеформируемые;

б) деформируемые;

) шаблоны заранее запрограммированы, необучаемы;

) используется корреляция для нахождения лица на изображении.

Метод детектирования лица при помощи трехмерных форм предполагает использование шаблона в виде пар отношений яркостей в двух областях. Для определения местоположения лица необходимо пройти всё изображение на сравнение с заданным шаблоном. Причём делать это необходимо с различным масштабом (рис. 1). Модели распределения опорных точек являются статистическими моделями, которые представляют объекты, форма которых может измениться. Их полезная особенность метода - способность выделить форму переменных объектов в пределах учебного набора с небольшим количеством параметров формы. Эта компактная и точная параметризация может использоваться для разработки эффективных систем классификации.

Рис. 1. Метод детектирования при помощи трехмерных форм

К достоинствам распознавания с помощью шаблонов можно отнести относительную простоту реализации и неплохие результаты на изображениях с не очень сложным задним фоном. А главным недостатком является необходимость калибровки шаблона вблизи с изображением лица. Большая трудоёмкость вычисления шаблонов для различных ракурсов и поворотов лица ставят под вопрос целесообразность их использования.

Методы обнаружения лица по внешним признакам.

Изображению (или его фрагменту) ставится в соответствие некоторым образом вычисленный вектор признаков, который используется для классификации изображений на два класса - лицо или не лицо. Обычно поиск лиц на изображениях с помощью методов, основанных на построении математической модели изображения лица, заключается в полном переборе всех прямоугольных фрагментов изображения всевозможных размеров и проведения проверки каждого из фрагментов на наличие лица. Поскольку схема полного перебора обладает такими безусловными недостатками, как избыточность и большая вычислительная сложность, авторами применяются различные методы сокращения количества рассматриваемых фрагментов. Основные принципы методов:

)Схоластика: каждый сканируется окном и представляется векторами ценности.

)Блочная структура: Изображение разбивается на пересекающиеся или непересекающиеся участки (Рис. 2) различных масштабов и производится оценка с помощью алгоритмов оценки весов векторов.

Рис. 2. Примеры разбиения изображения на участки

Для обучения алгоритмов требуется библиотека вручную подготовленных изображений лиц и «не лиц», любых других изображений.

Стоит отметить, что важнейшей задачей является выделение сильных классификаторов. Именно они будут иметь наивысший приоритет для проверки найденных признаков в изображении. Количество же более слабых классификаторов стоит уменьшать за счёт похожести друг на друга, а также удалении классификаторов, возникших за счёт шумовых выбросов.

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

)Искусственные нейронные сети (Neural network: Multilayer Perceptrons);

)Метод главных компонент (Princiapl Component Analysis (PCA));

3)Факторного анализа (Factor Analysis);

)Линейный дискриминантный анализ (Linear Discriminant Analysis);

)Метод опорных векторов (Support Vector Machines (SVM));

6)Наивный байесовский классификатор (Naive Bayes classifier);

)Скрытые Марковские модели (Hidden Markov model);

)Метод распределения (Distribution-based method);

9)Совмещение ФА и метода главных компонент (Mixture of PCA, Mixture of factor analyzers);

10)Разреженная сеть окон (Sparse network of winnows (SNoW));

11)Активные модели (Active Appearance Models);

12)Адаптированное улучшение и основанный на нём Метод Виолы-Джонса и др.

Рассмотрим особенности некоторых из них. На сегодняшний день метод искусственных нейронных сетей является наиболее распространенным способом решения задач распознавания лиц на изображении. Искусственная нейронная сеть (ИНС) - это математическая модель, представляющая собой систему соединённых и взаимодействующих между собой нейронов. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Технически обучение заключается в нахождении коэффициентов связей (синапсов) между нейронами.

Метод опорных векторов (Support Vector Machines) применяется для снижения размерности пространства признаков, не приводя к существенной потере информативности тренировочного набора объектов. Применение метода главных компонент к набору векторов линейного пространства, позволяет перейти к такому базису пространства, что основная дисперсия набора будет направлена вдоль нескольких первых осей базиса, называемых главными осями. Натянутое на полученные таким образом главные оси подпространство является оптимальным среди всех пространств в том смысле, что наилучшим образом описывает тренировочный набор. Это набор алгоритмов схожих с алгоритмами вида «обучение с учителем», использующихся для задач классификации и регрессионного анализа. Этот метод принадлежит к семейству линейных классификаторов. Метод опорных векторов основан на том, что ищется линейное разделение классов.

Цель тренировки большинства классификаторов - минимизировать ошибку классификации на тренировочном наборе (называемую эмпирическим риском). В отличие от них, с помощью метода опорных векторов можно построить классификатор, минимизирующий верхнюю оценку ожидаемой ошибки классификации (в том числе и для неизвестных объектов, не входивших в тренировочный набор). Применение метода опорных векторов к задаче обнаружения лица заключается в поиске гиперплоскости в признаковом пространстве, отделяющий класс изображений лиц от изображений «не-лиц». Возможность линейного разделения столь сложных классов, как изображения лиц и «не-лиц» представляется маловероятной. Однако, классификация с помощью опорных векторов позволяет использовать аппарат ядерных функций для неявного проецирования векторов-признаков в пространство потенциально намного более высокий размерности (еще выше, чем пространство изображений), в котором классы могут оказаться линейно разделимы. Неявное проецирование с помощью ядерных функций не приводит к усложнению вычислений, что позволяет успешно использовать линейный классификатор для линейно неразделимых классов.

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

Основные принципы, на которых основан метод, таковы:

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

)используются признаки Хаара, с помощью которых происходит поиск нужного объекта (в данном контексте, лица и его черт);

)используется бустинг (от англ. boost - улучшение, усиление) для выбора наиболее подходящих признаков для искомого объекта на данной части изображения;

)все признаки поступают на вход классификатора, который даёт результат «верно» либо «ложь»;

)используются каскады признаков для быстрого отбрасывания окон, где не найдено лицо.

Обучение классификаторов идет очень медленно, но результаты поиска лица очень быстры. Алгоритм хорошо работает и распознает черты лица под небольшим углом, примерно до 30 градусов. При угле наклона больше 30 градусов процент обнаружений резко падает. И это не позволяет в стандартной реализации детектировать повернутое лицо человека под произвольным углом, что в значительной мере затрудняет или делает невозможным использование алгоритма в современных производственных системах с учетом их растущих потребностей.

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

Иными словами, применительно к рисункам и фотографиям используется подход на основе сканирующего окна (scanning window): сканируется изображение окном поиска (так называемое, окно сканирования), а затем применяется классификатор к каждому положению. Система обучения и выбора наиболее значимых признаков полностью автоматизирована и не требует вмешательства человека, поэтому данный подход работает быстро.

Выбор алгоритма

Сформируем набор критериев выбора алгоритма:

)Возможность работы в режиме реального времени: .

)Высокая точность детектирования: .

)Инвариантность к малым поворотам и масштабированию объекта: .

)Инвариантность к изменению освещения сцены: .

)Возможность работы при неоднородном фоне: .

Составим системную матрицу оценки критериев (таблица 1), где положительному ответу будет соответствовать 1, а отрицательному - 0.

Таблица 1. Системная матрица оценки критериев

МетодыРабота в режиме реального времениВысокая точностьИнвариантность к малым поворотам и масштабированию объектаИнвариантность к изменению освещения сценыНеоднородный фонэмпирические методы 10000методы характерных инвариантных признаков 11100Распознавание с помощью шаблонов, заданных разработчиком 10100метод обнаружения по внешним признакам 11111

- множество методов-кандидатов.

Для каждого метода-кандидата имеется набор критериев:

Условие выбора оптимального решения:

Найдем оптимальное решение, соответствующее максимальному значению множества M:

Таким образом, метод обнаружения по внешним признакам наиболее полно удовлетворяет критериям, которые формируют требования для эффективного решения задачи детектирования лиц в данной работе.

.3 Обзор методов детектирования движения

Так как в работе нам необходимо реализовать слежение за движущимся объектом, то необходимо выбрать метод, который будем использовать. Под понятием слежения за объектом можно выделить два подхода: первый заключается в итеративном использовании методов детектирования объекта на каждом кадре, определяя таким образом смещение объекта, а второй - в детектировании движения выделенного объекта и определение его нового положения. Естественно, что второй способ будет более правильным с точки зрения вычислительных затрат. Поэтому рассмотрим существующие методы детектирования движения в видеопотоке.

Межкадровая разность.

Вычисление межкадровой разности является очень распространённым методом первичного обнаружения движения, после выполнения которого, вообще говоря, уже можно сказать, присутствует ли в потоке кадров движение. До недавнего времени многие детекторы движения функционировали именно по такому принципу. Однако такой подход даёт достаточно грубую оценку, приводя к наличию неизбежной ложной реакции детектора на шум регистрирующей аппаратуры, смену условий освещения, лёгкое качание камеры и пр. Таким образом, видеокадры должны быть предварительно обработаны перед вычислением разности между ними. Алгоритм вычисления межкадровой разности двух кадров для случая обработки цветного видео в формате RGB выглядит следующим образом:

) На вход алгоритма поступают два видео кадра, представляющие собой две последовательности байт в формате RGB.

) Производится вычисление попиксельных межкадровых разностей по следующей схеме:

,

,

,

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

)Для каждого пикселя вычисляется среднее значение между значениями трёх компонент цвета:

.

)Среднее значение сравнивается с заданным порогом. В результате сравнения формируется двоичная маска:

,

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

Таким образом, на выходе алгоритма формируется двоичная маска, одному элементу которой соответствуют три компоненты цвета соответствующего пикселя исходных двух кадров. Единицы в маске располагаются в областях, где, возможно, присутствует движение, однако на данном этапе могут быть и ложные срабатывания отдельных элементов маски, ошибочно установленных в 1. В качестве двух входных кадров могут использоваться два последовательных кадра из потока, однако возможно использование кадров с большим интервалом, например, равным 1-3 кадра. Чем больше такой интервал, тем выше чувствительность детектора к малоподвижным объектам, которые испытывают лишь крайне малый сдвиг за один кадр и могут отсекаться, будучи отнесёнными к шумовой составляющей изображения.

Достоинством данного метода является простота и нетребовательность к вычислительным ресурсам. Метод широко применялся ранее по причине того, что в распоряжении разработчиков не было достаточных вычислительных мощностей. Однако и сейчас он широко используется, особенно в многоканальных охранных системах, когда необходимо обрабатывать сигнал от нескольких камер на одной ЭВМ. Ведь трудоёмкость алгоритма имеет порядок O(n) и осуществляется всего за один проход, что очень важно для растров большой размерности, таких как 640х480 точек, 768х576 точек, с которыми часто работают современные видеокамеры.

Описывая метод межкадровых попиксельных разностей с построением маски движения, в качестве двух входных кадров мы задавали либо два соседних кадра, либо два кадра, взятых с небольшим интервалом. Однако использование этого метода оставляет возможность вычислять разность с некоторым кадром, который бы содержал исключительно неподвижные области фона (базовый кадр). Такой подход дал бы нам существенное увеличение вероятности обнаружить любой объект, как самый медленный, так и быстрый, причём именно в той точке, в которой он находился в данный момент. Иначе данный метод называется методом вычитания или сегментации фона. Работа метода полностью аналогична работе алгоритма межкадровой разности с той лишь разницей, что разность вычисляется между текущим и базовым кадром. Большой проблемой здесь является способ построения базового кадра, поскольку он должен обладать несколькими свойствами:

Если кадр представляет собой кадр реального изображения, он должен минимально отстоять по времени от текущего кадра. Заметим, что в реальных условиях это не всегда возможно по той причине, что съёмка может вестись в местах частого появления в кадре движущихся объектов, поэтому система будет очень редко фиксировать сцену с полным отсутствием в ней движения, вследствие чего она не будет иметь возможности обновлять базовый кадр достаточно часто.

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

Минимальный уровень шума. Перед обновлением базового кадра необходимо проводить фильтрацию.

Существует два подхода к построению базового кадра. Первый основан на кумулятивном его накоплении с использованием всех кадров потока. При таком способе построения базовый кадр неизбежно содержит элементы движущихся объектов, однако при вычислении разности между текущим и базовым кадром различия в интенсивности соответствующих пикселей, принадлежащих движущемуся объекту, всё же являются значительным и позволяют обнаружить движение. Плюсом такого способа является его простота. Однако при вычислении разности необходимо использовать дополнительные методы шумоподавления, поскольку порог сравнения при построении маски движения в данном случае не может быть высоким (в силу специфики базового кадра). В противном случае движение будет просто упущено, а при небольших значениях порога маска движения будет неизбежно фиксировать большое количество пикселей шума.

Второй подход выглядит более интеллектуальным, поскольку при его использовании базовый кадр строится исключительно из неподвижных областей, взятых с каждого из текущих кадров. Для этого на входе алгоритма необходимо иметь выходные данные детектора движущихся объектов от обработки предыдущего кадра. Используя эту информацию, алгоритм помечает области, где на предыдущем кадре были обнаружены движущиесяобъекты, после чего, при попиксельном копировании текущего кадра в базовый пиксели помеченных областей пропускаются. Таким образом, базовый кадр никогда не содержит никаких элементов движущихся объектов, что достигается ценой сравнительно небольшого усложнения алгоритма.

Возможен и третий подход, основанный на обновлении базового кадра текущим в те моменты, когда на текущем кадре нет движения. Однако в силу очень ограниченной применимости такого подхода (лишь для случаев малоподвижных сцен, когда само по себе движение в кадре - исключительный случай) мы его не рассматриваем.

Очевидно, что данные методы межкадровой разности не подходят для слежения за движущимся объектом, так как фон не будет стационарным в связи с движением камеры. Поэтому рассмотрим третий метод, который и будем использовать с работе.

Оптический поток (ОП) - изображение видимого движения, представляющее собой сдвиг каждой точки между двумя изображениями. По сути, он представляет собой поле скоростей (т. к. сдвиг с точностью до масштаба эквивалентен мгновенной скорости). Суть ОП в том, что для каждой точки изображения находится такой сдвиг (dx, dy), чтобы исходной точке соответствовала точка на втором изображении . Как определить соответствие точек - отдельный вопрос. Для этого надо взять какую-то функцию точки, которая не изменяется в результате смещения. Обычно считается, что у точки сохраняется интенсивность (т. е. яркость или цвет для цветных изображений), но можно считать одинаковыми точки, у которых сохраняется величина градиента, гессиан, его величина или его определитель, лапласиан, другие характеристики.

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

Тем не менее, если речь идет о видеопотоке, то, скорее всего, между двумя кадрами освещение сильно не изменится, хотя бы потому, что между ними проходит малый промежуток времени. Поэтому часто используют интенсивность в качестве функции, сохраняющейся у точки.

Есть два варианта расчета оптического потока: плотный (dense) и выборочный (sparse). Sparse поток рассчитывает сдвиг отдельных заданных точек (например, точек, выделенных некоторым feature detector'ом), dense поток считает сдвиг всех точек изображения.

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

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

В основе всех дальнейших рассуждений лежит одно очень важное и не очень справедливое предположение: значения пикселей переходят из одного кадра в следующий без изменений. Таким образом, мы делаем допущение, что пиксели, относящиеся к одному и тому же объекту, могут сместиться в какую либо сторону, но их значение останется неизменным.

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

Масса проблем связана с этим допущением, но, как ни странно, вопреки всему оно достаточно хорошо работает на практике.

На математическом языке это допущение можно записать так:

.

Где I - это функция яркости пикселей от положения на кадре и времени. Другими словами x и y - это координаты пикселя в плоскости кадра, и - это смещение, а t - это номер кадра в последовательности.

В данной работе будет использоваться именно этот метод, так как он позволяет работать при нестационарном фоне.

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

В настоящий момент существует большое количество специализированных программных библиотек компьютерного зрения как общего, так и специального назначения. Чтобы отобрать наилучшие из них, сформулирован набор предъявляемых требований:

)разнообразие решаемых задач;

)широкое распространение;

) активное развитие и поддержка продукта компанией-разработчиком либо открытым сообществом;

)высокое качество технической документации;

) высокоуровневая иерархическая структура компонентов;

)относительная простота использования;

)стабильность и удовлетворительная скорость работы;

)кроссплатформенность и переносимость.

Несмотря на упомянутое выше многообразие средств, для создания программного продукта были выбраны два наиболее полно соответствующих изложенным требованиям продукта.(open source computer vision library) - это библиотека компьютерного зрения с открытым исходным кодом. Также, она существует для некоторых других языков, например, для Java. Включает в себя различные алгоритмы компьютерного зрения, распознавания изображений и многое другое, работающих в реальном режиме времени. Все желающие могут использовать библиотеку OpenCV бесплатно, как в образовательных целях, так и в коммерческих проектах.

Она включает в себя следующие алгоритмы:

·Распознавание объектов в видеопотоке.

·Распознавание печатного и рукописного текста.

·Устранение искажений картинки.

·Выявление сходства и формы объектов.

·Слежение за перемещением объекта.

·Распознавание движений, жестов и многое другое.

Поддерживаемые платформы и инструменты для OpenCV.

Сами библиотеки:

·Windows: компиляторыMicrosoftVisualC++ (6.0, .NET 2003), Intel Compiler, Borland C++, Mingw (GCC 3.x).

·Linux: GCC (2.9x, 3.x), Intel Compiler: "./configure-make-make install", RPM (spec файлвключенвпоставку).

·Используются C и "облегченный" C++. Прагмы и условная компиляция используются очень ограниченно.

Средства GUI, захват видео:

·Windows: DirectShow, VFW, MIL, CMU1394.

·Linux: V4L2, DC1394, FFMPEG.

Документация: статический HTML.

Функциональность OpenCV:

Ядро cxcore, также частично используется в Intel Open Source Probabilistic Network Library:

·Базовые операции над многомерными числовыми массивами;

·Матричная алгебра, математические ф-ции, генераторы случайных чисел;

·DFT, DCT;

·Запись/восстановление структур данных в/из XML/YAML;

·Базовые функции 2D графики;

·Поддержка более сложных структур данных: разреженные массивы, динамически растущие последовательности, графы.

Модуль обработки изображений и компьютерного зрения CV:

·Базовые операции над изображениями (фильтрация, геометрические преобразования, преобразование цветовых пространств и т.д.);

·Анализ изображений (выбор отличительных признаков, морфология, поиск контуров, гистограммы);

·Структурный анализ (описание форм, плоские разбиения и т.д.);

·Анализ движения, слежение за объектами;

·Обнаружение объектов, в частности лиц;

·Калибровка камер, элементы восстановления пространственной структуры;

Модуль для ввода/вывода изображений и видео, пользовательского интерфейса highgui:

·Захват видео с камер и из видео файлов, чтение/запись статических изображений;

·Функции для организации простого UI (сейчас все демо приложения используют HighGUI);

Экспериментальные и устаревшие функции cvaux:

·Пространственное зрение: стереокалибрация, самокалибрация;

·Поиск стереосоответствия, клики в графах;

·Нахождение и описание черт лица;

·Сравнение форм, построение скелетонов;

·Скрытые Марковские цепи;

·Описание текстур.

Развитие библиотеки:

Стратегия смещается и расширяется - от настольных приложений HCI к более актуальным задачам (встроенные системы (камерафоны), цифровой дом, безопасность, медицинские приложения, поиск в домашних и промышленных цифровых библиотеках изображений и видео и т.д.) ;

Библиотека останется свободной;

Улучшится стабильность и скорость;

Улучшится интеграция с IPP для еще большей производительности;

Переход к более открытой модели разработки;

Перенос некоторой функциональности из прошлых и текущих исследовательских проектов.

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

Среда разработки MathWorks MATLAB.

Продукт MATLAB, разработанный компанией MathWorks, включает высокоуровневый интерпретируемый язык программирования, интерактивную среду разработки и большое количество инструментов, предназначенных для решения задач самых разных отраслей науки.

Среда разработки MATLAB обладает всеми необходимыми инструментами для ра-работки объектно-ориентированных программ, включая отладчик, профилировщик, набор встроенных средств визуализации данных, а также удобный конструктор графических интерфейсов. Код, созданный на языке MATLAB, может исполняться отдельно от среды разработки, будучи собранным в независимое приложение с помощью компоненты MATLAB Compiler.

Созданный на языке MATLAB код предназначен для исполнения в большинстве современных операционных систем общего назначения: Microsoft Windows, GNU Linux, Apple OS X на базе аппаратной архитектуры x86. Кроме того, с помощью компонентов MATLAB Coder и Embedded Coder программы на языке MATLAB могут бы транслированы в код на языках C и C++ с соблюдением стандартов ANSI/ISO и в дальнейшем скомпилированы для других архитектур (например, для встраиваемых устройств на базе процессоров ARM). Эта функция обеспечивает высокую переносимость разработанных в среде MATLAB приложений.

Кроме того, имеется возможность взаимодействия MATLAB-кода с кодом, написанным на других языках, таких как C, C++, программной платформой Microsoft .NET, а также веб-сервисами по протоколам SOAP и WSDL.

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

Наибольший интерес в данном случае представляет набор инструментов MATLAB, предназначенный для решения задач компьютерного зрения, который выделен в библиотеку Computer Vision System Toolbox. В ее состав включены следующие возможности:

)обработка изображений: методы улучшения, фильтрации, геометрических и цветовых преобразований;

)распознавание объектов: метод Виолы - Джонса, обучаемые классификаторы, средства OCR и др.;

) отслеживание объектов: фильтр Кальмана, алгоритмы CAMShift, Kanade-Lucas-Tomasi (KLT) и др.;

)обнаружение и сопоставление признаков: детекторы углов (Harris, Shi & Tomasi), дескрипторы SURF, MSER, обнаружение HOG-признаков, сопоставление призна-ков и др.;

)автоматическая калибровка камер, в том числе стереокамер;

) работа со стереоизображениями, в том числе восстановление трехмерных сцен;

) работа с видео: чтение, запись, воспроизведение, деинтерлейсинг, наложение и комбинирование кадров и т.д.;

)средства визуализации результатов обработки;

) поддержка генерации кода на языке ANSI/ISO C.

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

.5 Интерфейсы последовательной передачи данных

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

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

Физически это означает наличие определенных разъемов на оборудовании и кабельные изделия, способные обеспечить передачу информации в диспетчерский пункт. Чаще всего это:

oRS-232 (EIA-232).

oRS-422 (EIA-422).

oRS-485 (EIA-485).в названии протокола означает Recommended Standard (рекомендованный стандарт). Все три протокола относятся к физическому уровню (по модели OSI (англ. Open Systems Interconnection Basic Reference Model, базовая эталонная модель взаимодействия открытых систем)). Физический уровень является самым нижним уровнем модели OSI, т.е. поток информации передается на нижнем уровне - в двоичной системе - в виде последовательности 0 и 1.

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

1)По направлению сигнала:

- Симплексные (simplex) протоколы позволяют передавать данные только в одну сторону. Это, например, телевизионные и радио-сигналы. Используется одножильный провод с оплеткой.

Полудуплексные (half-duplex) протоколы позволяют передавать данные в обе стороны, но не одновременно. Используется двужильный провод (витая пара) с оплеткой. Пример - RS-485.

Дуплексные (full-duplex) протоколы позволяют передавать данные в обе стороны одновременно. Используется четырехжильный провод (двойная витая пара) с оплеткой. Пример - RS-232, RS-422, в некоторых случаях RS-485.

2)Сбалансированность.

- Небалансный протокол передает сигнал по одной жиле всю информацию (серию из 0 и 1). При этом сигнал подвержен наводкам и тем больше, чем длиннее провод. Пример: RS-232.

Балансный протокол передает информацию по двум жилам, т.е. используется витая пара проводов, по которым транслируется дифференциальный сигнал. По одному проводу идет оригинальный сигнал, а по второму - инверсия сигнала, а разность между ними создает передающую разность потенциалов. Это является и защитой от помех: при наводке на оба провода сигнал каждого из них деформируется, но разность сигналов остается прежней. Это позволяет значительно удлинить допустимую протяженность провода. Пример: RS-422, RS-485.

Таким образом, уже стали проясняться принципиальные отличия протоколов серии RS.

RS-232 позволяет устройствам передавать и получать информацию одновременно, но он ограничен по длине (15м).

RS-422 придуман на замену RS-232, если последний не удовлетворяет требованиям по скорости и дальности (до 10Мбит/сек на 15м и до 100кбит/сек на 1220м).

RS-485 - самый распространенный протокол с высокими характеристиками (до 10Мбит/сек на 15м и до 100кбит/сек на 1220м) и выигрывающий у RS-422 в капитальных затратах: две жилы - это дешевле четырех.

Для камеры SonyBRC передача возможна либо через RS-422, либо через RS-232, поэтому остановимся подробнее на этих двух стандартах.- это стандарт последовательной синхронной и асинхронной передачи двоичных данных между терминалом и коммуникационным устройством.был введён в 1962 году.представляет собой простой интерфейс для передачи данных между двумя объектами на расстояние до 15 метров (на практике может не достигаться). Устойчивость к помехам обеспечивается отказом от стандартного уровня сигналов 5В. От отправителя поступает последовательность 1 и 0 получателю, который их запоминает и «осознает» полученную информацию.

Существует понятие стартового бита, получив который получатель понимает, что сеанс передачи информации открыт. Далее через равные промежутки времени отправляются информационные биты. Передача пакетная, длина пакета равна одному байту.

Разъем RS-232 представляет собой 9- или 25-штырьковый трапецеидальный разъем. Изначально применялись 25 контактов, но со временем большинство устройств стало обходиться меньшим их числом и разъем «урезали».является полностью дуплексным интерфейсом (full duplex), поэтому передача данных может одновременно осуществлять в обоих направлениях. Например, подтверждение приёма пакетов данных происходит одновременно с приёмом последующих пакетов.

Максимальная дальность действия интерфейса RS-422 составляет 1200 метров. Дуплексность обеспечивается за счёт того, что используется одновременно два приёмопередатчика, один из которых работает на приём, другой - на передачу. RS-422 поддерживает создание только одномастерных сетей, в которых в качестве передатчика может выступать только одно устройство, а остальные способны лишь принимать сигнал. В отличие от устаревшего также полнодуплексного RS-232, RS-422 характеризуется большими возможностями по дальности линии 1200 метров против 15 метров и значительно большей скоростью передачи данных.

К каждому передатчику RS-422 возможно подключение до 10 приёмников. Максимальная скорость передачи данных достигает 10 Мбит/секунду. На самой большой удалённости от передатчика скорость может составлять 10 кб/с. В качестве провода используется витая пара. Для организации передачи данных на дистанции свыше 500 метров рекомендуется использовать экранированную витую пару, чтобы избежать влияния сторонних электромагнитных полей. Передача данных осуществляется посредством измерения дифференциального напряжения между двумя проводами витой пары. Оба провода симметричны по напряжению относительно земли. Рабочие напряжения: от -10 В до +10 В. Как правило используются номинальные значения +6...+8 В.

Так как, во-первых, нам необходимо передавать данные на расстояние большее 15м, а, во-вторых, передача будет осуществляться нескольким приемникам одновременно, то, очевидно, что в нашей работе мы воспользуемся интерфейсом RS-422.

2. Оборудование и аппаратная реализация

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

Характеристики камеры.

Объектом управления является роботизированная PTZ камера модели SONYBRCH900P (рис. 3), способная поворачиваться вокруг своей оси от 0 до 360 градусов.

Рис. 3. Камера SonyBRCH900P

Рассмотрим ее характеристики, которые описаны в руководстве по эксплуатации, представленные в таблице 2.

Таблица 2. Технические характеристики камеры Sony BRCH900P

Датчик изображения1/2-дюймовая CMOS матрица Exmor х3Датчик изображения (число эффективных пикселей)2,07 мегапикселя Ч3Датчик изображения (общее число пикселей)Прибл. 3,01 мегапикселяСистема сигналов60 Гц: 1080/59.94i, 720/59.94P, NTSC 50 Гц: 1080/50i, 720/50P, PALЧувствительностьF10Минимальная освещенность (50 IRE)4 лк (50 IRE, F1,9, +24 дБ)Горизонтальная четкость> 1000 твл (на выходе HD-SDI)Отношение С/Ш50 дБУсилениеАвтоматический/Ручной режим (от -3 до +24 дБ)Скорость затвора1/8000 - 1/60 с или 1/8000 - 1/50 сРегулировка экспозицииРежимы Auto (Автоматический), Manual (Ручной), Priority (Приоритет) (приоритет затвора и приоритет диафрагмы), Back light (Компенсация встречного освещения), Spot light (Местное освещение)Функция Color AE (Цветовая коррекция экспозиции)НетБаланс белогоAuto (Автоматический)/Indoor (Внутри помещения)/Outdoor (Вне помещения)/One-push (Одним нажатием на кнопку)/Manual (Ручной)Оптическое масштабирование14xЦифровое масштабирование-Система фокусировкиАвтоматический/Ручной режимГоризонтальный угол обзора59,6° (широкий угол)Фокусное расстояниеf = 5,8 - 81,2 мм F1,9 (Wide), F2,8 (Tele)Минимальное расстояние до объекта800 мм (31 Ѕ дюйма)Угол панорамирования/наклонаПанорамирование: ±170° Наклон: +90°/-30°Скорость панорамирования/наклонаПанорамирование: от 0,22° до 60°/с Наклон: от 0,22° до 60°/сПредустановки положения16Выход HD видеосигналаHD/SD-SDI (переключение) Компонентный (Y/Pb/Pr) или RGB, HD, VD или SYNCВыход SD видеосигналаКомпозитный, Y/CИнтерфейс управления камеройRS-232C/RS-422(протокол VISCA)Внешняя синхронизация ВходДаAuto ICR (Автоматически сдвигаемый режекторный ИК фильтр)НетWide-DНетСтабилизация изображенияДаImage Flip (Переворот изображения)Вкл./ Выкл.ND (нейтральный) фильтрНетColor Gain (Усиление цвета)НетColor Hue (Цветовой тон)НетColor Matrix (Цветовая матрица)Вкл./Выкл.Color Detail (Цветовые детали)Вкл./Выкл.Skintone Detail (Детали телесного тона)НетГаммаSTD1/STD2/STD3/STD4/CINE1/CINE2/CINE3/CINE4Gamma Level (Уровень гаммы)-99 ... 0 ... +99Черный-99 ... 0 ... +99Black Gamma (Гамма черного)-99 ... 0 ... +99Knee Point (Точка колена)50 ... 90 ... 109Knee Slope (Наклон колена)-99 ... 0 ... +99Knee Sat Level (Уровень насыщенности в области колена)0 ... 50 ... 99Функция помощи при автофокусировкеНетFlicker Cancel (Подавление мерцаний)Вкл./ Выкл.B&W (Черно-белое изображение)НетColor Bar (Сигнал цветных полос)Вкл./ Выкл.

Камера может управляться через пульт управления, либо через интерфейсы RS232/RS422. Так как необходимо автоматизировать управление камерой без участия человека, то управлять камерой будет реализуемая программа с персонального компьютера с помощью интерфейса RS422, который описывался в предыдущей главе. Способ передачи по данному интерфейсу осуществляться с помощью особого протокола VISCA, который поддерживают только камеры модели SONY. Рассмотри данный протокол более детально.

С помощью протокола VISCA можно обеспечить полное управление функциями камеры, например, такими как, наклон, поворот, масштабирование, увеличение/уменьшение фокусного расстояния и т.п.

Для обмена данными по протоколу VISCA необходимо задать следующие параметры соединения, которые установлены в камере:

)Скорость передачи бит в секунду: 9600 bps;

)Число бит данных: 8;

)Количество стартовых битов: 1;

)Количество стоповых битов: 1;

)Бит четности: нет. (Бит четности определяет четное или нечетное количество передаваемых единичных битов. На принимающей стороне проводится анализ этого бита, и если бит четности не соответствует количеству единичных битов, то пакет данных пересылается снова).

)Контроль потока: нет (механизм, который притормаживает передатчик данных при неготовности приёмника).

Последовательная передача данных будет реализовываться асинхронным способом. Это подразумевает использование специальных битов, маркирующих начало и конец данных - стартового (логический ноль) и стопового (логическая единица) бита. Таким образом, каждый передаваемый байт будет выглядеть, как представлено на рис. 4.

Рис. 4 Формат одного передаваемого байта в протоколе VISCA.

Управление осуществляется с

Copyright © 2018 WorldReferat.ru All rights reserved.