По преддипломной практике
на тему:
«Программный модуль анализа активности хоккеистов»
Выполнил студент Группы 520601: | __________________ Чернаштан Д.Н. |
Руководитель практики от кафедры: | __________________ Никульшин Б.В. |
Руководитель практики от предприятия: | __________________ Марушко Е.Е. |
Минск 2019
СОДЕРЖАНИЕ
СОДЕРЖАНИЕ. 4
ВВЕДЕНИЕ. 3
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ.. 4
1.1 Структура предприятия. 4
1.2 Информационная система предприятия. 6
1.3 Описание объекта. 8
1.4 Описание задачи. 8
1.5 Постановка задачи. 10
ЗАКЛЮЧЕНИЕ. 12
2 ПЛАН ПРОСПЕКТ. 13
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ.. 14
ВВЕДЕНИЕ
Цель дипломного проектирования заключается в разработке программного модуля для автоматизированной системы обработки видеозаписей по хоккею на траве.
Программный модуль системы должен стать современным аналитическим инструментом, призванным помочь тренерскому штабу эффективнее управлять составом команды.
Для выполнения данной задачи необходимо пройти через несколько этапов:
– Найти существующие аналоги и рассмотреть их положительные и отрицательные стороны, либо убедиться в отсутствии таковых в открытом доступе;
– определить требования к программному модулю;
– спроектировать модуль;
– разработать и реализовать программный модуль;
Целесообразность разработки подобного приложения обосновывается необходимостью автоматизировать процесс аналитики в таком виде спорта, как хоккей на траве.
АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Структура предприятия
Штаб-квартира предприятия находился в Александрии, штат Верджиния, США. Также имеется два дочерних офиса в Харькове и Минске.
|
Организационную структуру “Softarex technologies” представляют несколько отделов. Структурная схема компании приведена на рисунке 1.1.
Рисунок 1.1 – Структура компании «Софтарекс Технолоджиес»
Отдел разработки и поставки программного обеспечения занимается решением наиболее общих задач, поставляемых менеджерами проектов и заказчиками. Основная задача – качественно и в срок справиться с написанием необходимого программного обеспечения, а также убедиться в возможности применения его в рамках поставленных условий эксплуатации.
Отдел контроля качества решает проблемы, возникающие на всех этапах разработки ПО, такие как: возникновение непредвиденных ошибок, несовместимость версий приложения и операционной системы, определение загруженности аппаратного обеспечения и т.д.
Отдел разработки пользовательского интерфейса и дизайна в основном создаёт дружественные пользователю оболочки программ. Важнейшими критериями являются лёгкость и интуитивная понятность внешнего вида приложений.
Отдел машинного обучения и компьютерного зрения, в который меня и определили на время практики, занимается различными задачами, с которыми не в силах справиться обычный алгоритмический код. Основное направление деятельности отдела – распознавание объектов на видеозаписях. Сотрудники отдела часто работают над разработкой нейронных сетей для решения каких-либо задач.
В обязанности HR-менеджмента входит поиск новых сотрудников для всех отделов, проведение с ними тренингов и технических собеседований. Таким образом, HR обязан иметь полное представление о работе всех отделов компании.
|
Отдел маркетинга и развития бизнеса – основная сила компании по продвижению уже имеющихся программных продуктов, поиску новых клиентов и т.д. На протяжении периода разработки менеджеры проектов также постоянно общаются с заказчиком, внося поправки и предложения по улучшению сотрудничества.
Руководство компании включает в себя CEO компании, генеральных директоров офисов, бухгалтеров, системных администраторов и т.д.
Информационная система предприятия
Информационная система предприятия “Softarex technologies” состоит из нескольких элементов, каждый из которых предназначен для осуществления своего набора задач.
Система учета рабочего времени – timetracker. Timetracker – программа, разработанная самим предприятием, основная задача которой состоит в удобном и автоматизированном учёте рабочего времени.
Jira – система управления проектами. Каждый работник может быть закреплён за одним либо несколькими проектами в любой момент времени. Система Jira позволяет эффективно следить за процессом разработки программного обеспечения. Администраторские права к системе имеет руководство компании, а также менеджеры и team lead проектов. Очевидно, что разработка ПО – процесс долгий и многоэтапный. В следствие чего вся работа оказывается разделённой на множество подзадач. Ежедневно работник указывает, над какой задачей он работает сегодня. Таким образом достаточно легко понять, сколько времени на какую задачу уходит, что позволяет более трезво оценивать сроки выполнения в будущем. В случае обнаружения работником необходимости введения новой подзадачи он обращается к team lead своего проекта для создания таковой в системе Jira (см. рисунок 1.2)
|
Рисунок 1.2 – Страница системы Jira
Git – система контроля версий и хранения исходного кода. Git – известная и популярная во всём мире система. Git позволяет хранить в своём репозитории код, а также восстанавливать изменения за любую точку добавления. Это очень удобно при создании проектов несколькими людьми одновременно. Каждый добавляет свои изменения, как только выполнит какую-либо подзадачу, а Git даёт возможность скачать эти обновления всем остальным участникам проекта. Также присутствует возможность слияния разных веток одного проекта. Если, допустим, два человека выполняли разные задачи, а потом перешли на другой проект, пришедший на их место работник может слить их ветки кода в одну и продолжить работу с уже имеющимся решением (см. рисунок 1.3).
Рисунок 1.3– Пример слияния веток кода на Git
Confluence – система управления документацией по проектам. Любой проект в той или иной степени должен сопровождаться документацией. Её может потребовать заказчик для каких-либо целей, также она может помочь другим разработчикам. Если на каком-то этапе разработки к проекту присоединился новый разработчик, ему будет довольно сложно понять принцип работы написанного не им кода. Техническая документация же описывает словами то, что зашифровано в коде, делая его гораздо более доступным и читаемым. Также в confluence хранятся все технические требования к проектам, как со стороны заказчика, так и со стороны разработчика. Например, как это было в случае с моим проектом, со стороны компании было выставлено требование к заказчику по необходимому качеству используемых для съёмки видеозаписей камер, так как худшее качество уже не позволит работать используемым алгоритмам, а их изменение - слишком трудоёмкая, или даже невозможная, задача (см. рисунок 2.3).
Рисунок 1.4 – Страница документации на confluence
Описание объекта
Хоккей на траве – командный вид спорта (по одиннадцать человек в каждой команде), в который играют две команды, используя клюшку и мяч.
Область спортивной аналитики включает в себя различные методы анализа эффективности спортсменов. Профессиональный хоккей на траве требует отслеживания активности каждого игрока в частности и всей команды в целом, что является нетривиальной задачей для тренерского штаба команды.
При изучении применения компьютерного зрения в области спортивной аналитики были обнаружены готовые решения для таких видов спорта, как футбол и хоккей на льду. Все найденные решения предлагают приложения для автоматического сбора и анализа информации на основе обработки видеозаписей игр, что объясняется сложностью обработки большого количества данных в режиме реального времени.
Что касается хоккея на траве, не было найдено ни одного существующего аналога, ни даже упоминания о разработке чего-то подобного.
Описание задачи
Разрабатываемое приложение должно включать в себя детальную аналитику видеозаписей с играми по хоккею на траве. При разработке необходимо учесть два аспекта:
1) Видеофайл содержит интенсивно перемещающиеся объекты
2) Извлечение информации об игроках должно вестись на протяжении всего матча.
В процессе разработки приложения следует решить следующие подзадачи:
1) Загрузка видеозаписи в приложение. Видеозапись должна соответствовать требованиям:
А) разрешение видео не менее 1920х1080.
Б) все игроки должны быть в зоне видимости камеры.
В) высота игрока (в пикселях) должна быть больше, либо равной 50 пикселям (см. рисунок 1.5).
Г) выдержка съёмки должна позволять различать мяч на тех кадрах, на которых он не скрыт от камеры игроками.
Д) видеозапись должна иметь формат mp4. Допускается сжатие кодеком H264.
Е) камера должна располагаться над одними из ворот и быть направленной в центр поля.
Ж) недопустимы повороты и перемещения камеры в процессе съёмки видео.
З) недопустимо использование зума камеры в процессе съёмки видео.
И) Камера должна располагаться на высоте 20-30 метров над уровнем поля.
Пример кадра видеозаписи показан на рисунке 1.6.
2) Возможность отметить на временной линейке фрагменты видео, не требующие обработки (время до начала игры, перерыв, время после игры).
3) Возможность указать в режиме стоп-кадра границы поля, игроков команды А и команды Б, сторону команды А и команды Б.
4) Запуск обработки видео (удаление лишних фрагментов, построение 2D отображения поля (см. рисунок 1.7), детектирование игроков, сбор информации и её запись в базу данных). Этот процесс может быть остановлен пользователем в любой момент.
5) Отобразить результаты обработки на экран.
Рисунок 1.5 – игрок на поле.
Рисунок 1.6 – кадр видеозаписи.
Рисунок 1.7 – 2D модель игрового поля.
Постановка задачи
Приложение должно разрабатываться на языке с++ и должно являться десктопным приложением для операционной системы windows. Допускается использование сторонних фреймворков и библиотек для языка с++. Хранение данных должно осуществляться при помощи СУБД firebird. Также необходимо обеспечить установку приложения с помощью установочника Wix.
Приложение должно успешно запускаться на Windows 7, Windows 8.1 и Windows 10. Компьютер, на котором будет производиться запуск приложения, должен иметь, как минимум, следующее аппаратное обеспечение: Core i5 CPU, 16 GB RAM, NVIDIA GPU GeForce 10 series с 2 GB видеопамяти, 2 TB свободного пространства на жёстком диске (рекомендуется использование SSD для большей скорости работы).
Разработка прототипа приложения должна включать следующие фазы:
1) Разработка пользовательского интерфейса.
2) Разработка модуля для загрузки видеофайла (и декодирования при необходимости) и его подготовки к покадровой обработке.
3) Разработка инструмента для выделения необходимых участков видео для обработки.
4) Разработка инструмента для показа любого кадра видео в выбранный момент времени.
5) Разработка опции хранения локально созданного проекта приложения вместе с сопутствующими данными.
6) Разработка формата хранения данных о проекте (путь к видеофайлу, информация о командах, месте проведения игры, и т.д.).
7) Разработка модуля работы с базой данных для сохранения собранной во время обработки информации.
8) Разработка алгоритма слежения за игроками во время матча. Алгоритм должен отдавать информацию о каждом выделенном на этапе предобработки игроке на каждом кадре видеозаписи.
9) Разработка модуля для конвертирования физических координат игроков в координаты 2D-модели игрового поля.
10) Разработка опции воспроизведения видеозаписи с отображёнными на ней результатами обработки. В отдельной вкладке должно быть воспроизведение отображения соответствующих координат игроков н 2D-поле для текущего кадра.
11) Разработка опции отображения карты интенсивности нахождения игроков в различных частях поля. Необходимо предусмотреть возможности отображения интенсивностей одного, нескольких, либо сразу всех игроков.
ЗАКЛЮЧЕНИЕ
В результате прохождения преддипломной практики были уточнены задачи, решаемые в дипломном проекте, был собран материал по теме дипломного проекта, проведен обзор литературных и других источников, связанных с темой дипломного проекта, было проведено ознакомление с существующими информационными технологиями, применяемыми на предприятиях и в организациях, составлен план-проспект дипломного проекта.
Также был проведён анализ областей, смежных с областью дипломного проекта, были составлены требования к системе.
ПЛАН ПРОСПЕКТ
Введение
1 Анализ предметной области
1.2 Структура предприятия
1.3 Информационная система предприятия
1.4 Описание объекта
1.5 Описание задачи
1.6 Постановка задачи
2 Решение задачи
2.2 Сущность задачи
2.3 Структура модуля
2.4 Алгоритмическое решение
3 Программная реализация модуля
3.2 Выбор программных средств реализации
3.3 Выбор применяемых технологий
3.4 Разработка программного кода
3.5 Руководство пользователя
3.6 Перспективы развития
4 Технико-экономическое обоснование разработки программного модуля анализа активности хоккеистов
4.2 Характеристика программного модуля
4.3 Расчет затрат на разработку и отпускной цены программного модуля
4.4 Расчет экономического эффекта организации-разработчика программного модуля
Заключение