Система поиска заданных образцов в видеопотоке
Заказчик: Крупный европейский телекоммуникационный холдинг, занимающийся телевизионными рейтингами
Описание проекта: Заказчику было необходимо автоматизировать мониторинг видеотрафика и обеспечить его анализ по заданным параметрам. В ходе проекта разработано программное решение с реализацией возможности индексирования видеозаписей, алгоритмов поиска заданных образцов (fingerprint) в видеопотоке, а также поиска в видеофайлах. В состав программного комплекса, разработанного специалистами РЕЛЭКС, вошли:
Сервис создания заданий на обработку видеофайлов. Отслеживает появление новых файлов в заданной папке и создает задачу на обработку каждого файла.
Поисковая машина. Обрабатывает один видеофайл – ищет в нем ролики, удовлетворяющие заданным шаблонам. Шаблоном является ролик любого размера. Алгоритм поиска устойчив к помехам вещания, пропускам кадров, незначительным изменениям кадров. Параллельно могут быть запущены несколько процессов поисковой машины.
Приложение для администрирования: добавление новых образцов, индексирование, привязка образцов к тематике, описанию.
Приложение для просмотра и редактирования результатов анализа.
Отдельной задачей, решённой в проекте, стало обеспечение устойчивой работы алгоритмов в условиях наличия помех вещания. Система обеспечивает аналитическую обработку видеотрафика в автоматическом режиме, оставляя оператору только функции верификации результатов анализа.
Использовались технологии: C++, OpenCV, ffmpeg, DirectShow, boost, Log4cpp, CrashRpt, MFC, ODBC, MS SQL, MSDE, NSIS.
Программный шлюз для согласования протоколов передачи данных
Заказчик: Один из крупнейших разработчиков и изготовителей навигационной аппаратуры в России
Описание проекта: Перед Заказчиком стояла задача создания программного средства для согласования различных протоколов информационного обмена.
Для решения этой задачи специалисты РЕЛЭКС разработали:
Программный шлюз для работы как с реальными коммуникационными устройствами, так и с программным эмулятором. Конфигурирование согласования протокола и преобразования информационных сообщений выполнялось посредством XML. При работе с протоколами на основе XML строилась объектная модель при помощи библиотеки CodeSynthesis XSD. В качестве парсера XML использовалась библиотека Xerces-C++. Информационный обмен выполнялся в сетях Ethernet. В качестве транспорта использовался протокол UDP. Для гарантированной доставки UDP пакетов была использована библиотека UDP.
Программный эмулятор с поддержкой настраиваемых пользовательских сценариев для его тестирования.
Систему передачи голосовых сообщений при помощи технологии VoIP. Система голосовой связи была построена на базе свободной библиотеки Linphone.
Использовались технологии: C++, Qwidgets, QML, QtCreator, Linux, Google Protocol Buffers, Log4cpp, Cppcheck.