Skip to content

Глава 3. Программное обеспечение TrackingCam

Программное обеспечение для работы с модулем на текущий момент предлагается для 2х операционных систем — Windows и Ubuntu и представляет собой интерфейс для задания распознаваемых образов, настройки телекамеры и портов ввода-вывода, захвата изображения и иллюстрации работы алгоритмов .

Общий вид интерфейса TrackingCamApp

Рассмотрим каждый из элементов интерфейса подробнее:

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

Окно Image приложения TrackingCamApp

Окно Line Blobs приложения TrackingCamApp

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

Окно Blobs приложения TrackingCamApp

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

Для настроек модуля существует отдельное окно . В нем: Number of patterns to process — количество цветовых шаблонов, которые модуль будет отслеживать. Модуль способен отслеживать одновременно до 10 различных объектов, обладающих различающимися друг от друга характеристиками — цветом, формой, размером.

Pattern selected for setting up — выбор шаблона для настройки. Какой шаблон выбран (светится) тот в данный момент доступен для настройки.

Окно настройки TrackingCam приложения TrackingCamApp

Параметры для настройки распознавания области следующие:

Настройки цвета для бинаризации.

Value — яркость. Ncb — синяя цветоразность. Ncr — красная цветоразность

Настройки морфологии.

Area — площадь пятна в пикселах. Например, 10^2 — означает площадь 100 пикс Circularity — округлость, [0 — угловатая фигура, многоугольник, 100 — круг] Inertia — вытянутость, [0 — длинная узкая фигура, 100 — круг] Convexity — выпуклость [0 — внутри габаритного периметра пятна много полостей, 100 — выпуклый многоугольник] Space — площадь фигуры, ограниченной габаритным многоугольником Size — минимальная ширина (W) и высота (H) Gaps — максимальные разрывы по X и Y между пикселями при объединении в пятна

Окно Sync приложения TrackingCamApp

Кнопки вверху.

Connect — кнопка подключения к модулю Need->> — под ней скрывается кнопка записи настроек в модуль, но она становится активной после синхронизации настроек в приложении и в модуле кнопкой Sync

При выборе режима синхронизации возможны следующие операции:

  • Можно загрузить сохраненные настройки из модуля
  • Можно загрузить текущие настройки приложения в модуль
  • Загрузить настройки из файла
  • Сохранить настройки в файл
  • Выход из диалогового окна

В случае выбора режима — загрузить текущие настройки в модуль, в главном окне настроек станет активная кнопка Save вместо кнопки Need. Кнопка Setup IO — позволяет выполнить настройку интерфейса модуля для обмена данными .

Окно Interface Setup приложения TrackingCamApp

Для настройки доступны такие параметры как режим работы UART, скорость обмена данными, адрес (ID) под которым модуль будет видеться в сети устройств Dynamixel, API которым будут выдаваться результаты обработки наружу и напряжение на портах — 3.3 или 5В.

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

Окно Object Detector приложения TrackingCamApp

В режиме распознавания объектов модуль может распознавать до 5 различных объектов.

Основные элементы окна.

Type (number of nodes) — число узлов, из которых может состоять объект Size measure — мера размера базового узла Node 0 указывает, что будет пониматься под размером узла при описании структуры. Нужна, чтобы задавать относительный размер связей. Max axis — большая диагональ габаритного многоугольника пятна. Width — габаритная ширина пятна. Height — габаритная высота. Area — площадь пятна. Convex area — площадь габаритного многоугольника пятна. Print — вывести информацию обо всех найденных объектах в консоль. Output — настройка вывода данных через порт Dynamixel. Sorting criteria — критерий, по которому объекты сортируются в выходной таблице: Similarity — по степени соответствия шаблону, наиболее похожие объекты первыми. Type, similarity — сначала по типу (объекты, соответствующие шаблону 0 первыми), а объекты одинакового типа уже по соответствию. Output size measure — мера размера всего объекта, которая выводится в таблицу. Close — выход из окна.

Объект может состоять из 3х пятен с обозначенными между собой связями. Настройки параметров пятен осуществляются путем выбора соответствующего узла объекта , а параметры самого объекта задаются во окне Object setup .

Окно Node setup приложения TrackingCamApp

Окно Object setup приложения TrackingCamApp

Все параметры узлов и связей настраиваются с помощью нескольких бегунков:

Goal — целевое значение, при совпадении с которым считается, что степень соответствия объекта шаблону максимальна (100% или 255). Min и max используются не только как пороговое значение, но и при расчете степени соответствия. Например, если Goal = 90, Max = 200, а реальное значение 150, то степень соответствия параметру:

S(parameter):(15090)/(20090)=55

Weight — весовой коэффициент при расчете общей степени соответствия узла или связи шаблону. Если вес параметра равен 0, то параметр не учитывается в подсчете соответствия, но все равно проверяются его min и max. Общий коэффициент соответствия узла S_node рассчитывается как взвешенное среднее коэффициентов соответствия всех активных параметров:

S(node)=S(parameter1)Weight1+...+S(parameterN)WeightN255

Параметры базового узла Node 0.

Type — допустимый номер шаблона одноцветной области.

Например, [0, 2] будет означать, что узлом могут становиться пятна типов 0, 1 или 2.

Cx и Cy положение объекта.

Size (мера размера) — абсолютная величина размера базового узла в соответствии с выбранной мерой. Например, Size (Area) — площадь области.

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

Angle — абсолютный угол поворота узла Node 0. Угол поворота пятна рассчитывается как угол наклона его большей диагонали к горизонту в диапазоне [0°, 180°], т.к. у диагонали нет направления.

Параметры вторичных узлов.

Type, Circularity, Inertia и Convexity — аналогичны базовому узлу.

8 ../.. (второй бегунок) — задает отношение размера узла к размеру базового узла, а его название меняется в соответствии с заданной мерой размера. Например 8 AX1/AX0

— отношение больших диагоналей 1-го и базового узла. Цифра 8 означает, что модулю задается отношение, умноженное на 8.

Ang1-Ang01 — угол поворота узла Node 1 относительно связи Link01.

L abs — абсолютная длина связи в пикс. в квадрате. Квадрат остается потому, что модуль не извлекает квадратный корень при расчете длины гипотенузы по теореме Пифагора. (8 x L/N0size)^2 — характеризует отношение длины связи к размеру базового узла (в соответствии с заданной мерой). Если мерой узла являются величины с размерностью первой степени: ширина, высота, диагональ и т. д., то они при расчете возводятся в квадрат.

Ang — абсолютный угол поворота связи [0 — слева направо, 360° — справа налево].

Ang to node — относительный угол между связью и большей диагональю базового узла.

L abs, ang — аналогично базовой связи.

(8 x L/L01)^2 — относительная длина связи в сравнении с длиной базовой связи.

Ang from base — относительный угол наклона связи к базовой связи.

Что касается параметров настройки объекта, то они следующие:

Node 0, 1, 2 — минимальная допустимая степень соответствия каждого узла.

Link 01, 02, 12 — минимальная допустимая степень соответствия каждой связи.

Overall — минимальная допустимая общая степень соответствия.

Общая степень соответствия объекта S_overall рассчитывается в свою очередь как среднее взвешенное коэффициентов соответствия всех узлов S_node и связей S_link: Soverall=Snode0Weight0+...+Slink12Weight12255ч

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

Окно Palette приложения TrackingCamApp

В дополнению ко всему вышеуказанному имеется терминал , в который выводится:

  • Информация об однотонной области при клике на нее в окне Blobs.
  • Информация обо всех объектах при нажатии кнопки Print в меню объектов.
  • Системная информация.

Окно терминала приложения TrackingCamApp

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