Terminator Vision System
Проект сложной автономной кибер-физической системы, совмещающей многоядерные вычисления и систему управления механическими частями. Система способна идентифицировать лица людей по базе данных и следить за ними посредством вращения камеры. Встроенное ПО для системы полностью создано в визуальной системе программирования собственной разработки – VIPE. Кибер-физическая система построена на основе платы Imagination Ci-20 Creator с неоднородной многоядерной системой на кристалле. Проект создан в рамках конкурса “Creator Ci20 Terminator Challenge”.
Ключевые слова: кибер-физическая система, распознавание лиц, визуальное программирование, VIPE IDE, многоядерная неоднородная система
Демонстрация работы системы TVS
Встроенное ПО
Полностью спроектировано в визуальной системе программирования VIPE. Программы разрабатываются в VIPE при помощи расширяемых предметно-ориентированных языков (DSL). DSL позволяют разрабатывать портируемое ПО как для общего назначения, так и для встраиваемых систем. Программы создаются из визуальных операторов DSL с незначительным добавлением текстового (C/C++) языка программирования для определения конкретной функциональности.
Для проекта в качестве основного был выбран DSL компьютерного зрения, основанный на библиотеке OpenCV и включающий в себя более 80 функций, которые покрывают большинство необходимого функционала для детектирования и распознавания лиц.
VIPE позволяет легко добавлять функции, например, функцию идентификации по базе данных и вывод сообщений. Также были добавлены функции для взаимодействия с Arduino при помощи библиотеки WiringX. Ниже представлена программа проекта в VIPE:
Программа может выполняться на различных платформах. Мультиплатформенные back-end инструменты VIPE позволяют осуществить портирование и запуск на платформе Creator Ci-20 по одной кнопке.
Проектирование программы для проекта TVS в VIPE, тестирование и загрузка на платформу
Таким образом в VIPE было разработано кросс-платформенное решение, которое может быть запущено в различных окружениях (универсальных и встраиваемых). Разработанное ПО включает в себя множество функций: получение потокового видео, детектирование и идентификация лиц, вывод информации о наблюдаемом объекте, управление механизмами через Arduino и т.д.
Читайте полное описание проекта + схемы + видео демонстрация работы (english)