Для запуска интерфейса необходимо открыть проект “project_seti-master” в IDE, запустить файл main.py
Интерфейс состоит из функциональных компонентов, которые:
Интерфейс имеет следующую структуру:
core/adding_users - файл, необходимый для одиночной или пакетной загрузки данных.
core/default_values - файл, содержащий основные пути.
core/show_users - файл, содержащий все необходимые функции для вывода списка списка загруженных данных, их редактирование и удаление.
tmp/output.png - готовый для передачи в OBS титр
tmp/photo.png - последний скрин
tmp/title.png -шаблон титра
data/backgroud.png - фон интерфейса
data/setup_odbs.png- скриншот для инструкции настройки OBS
main.py - основной файл проекта, содержащий функции для первоначального запуска интерфейса
Интерфейс служит для распознавания людей, добавление данных о людях, удаление/изменение загруженных данных.
main – создает основное окно
Входные данные: нет
Выходные данные: нет.
Описание: происходит запуск интерфейса, открывается основное окно
4.2 Файл adding_users.py
upload_new – создает окно для добавления данных о новом человеке
Входные данные: нет
Выходные данные: нет.
Описание: происходит запуск окна, отвечающего за выбор типа загрузки новых данных (пакетная или одиночная).
oneandonly - загрузка данных об одном человеке
Входные данные: нет
Выходные данные: нет.
Описание: добавляет поле ввода и кнопку для выбора файла в текущее окно
package - пакетная загрузка
Входные данные: нет
Выходные данные: нет.
Описание: добавляет поле ввода и кнопку для выбора папки в текущее окно
sent_user - отправка данных на сервер
Входные данные: image_path: str (пусть до файла/папки), fio: str (фио нового человека), info: str = "" (данные о новом человеке)
Выходные данные: нет.
Описание: происходит отправка новых данных на сервер.
show_all - создает окно для вывода и редактирования данных о добавленных людях
Входные данные: нет
Выходные данные: нет.
Описание: запускает окно, в котором выводятся все данные обо всех загруженных людях и есть возможность удалять и изменять данные о них.
delete_data - удаляет данные о конкретном человеке
Входные данные: нет
Выходные данные: нет.
Описание: происходит удаление данных о человеке с сервера
update_data - создает окно для редактирования данных о загруженных людях
Входные данные: нет
Выходные данные: нет
Описание: происходит создания окна, где пользователь может изменить данные о человеке
process_stream - начало распознавания человека с фотографии
Входные данные: нет
Выходные данные: нет
Описание: происходит взаимодействие с функциями по распознаванию человека и созданию титра
detect_user - передача фотографии на сервер
Входные данные: file_path: str = def_values.STREAM_SCREENSHOT_PATH (путь, по которому автоматически сохраняется скриншот, полученный с устройства)
Выходные данные: результат POST-запроса
Описание: происходит передача на сервер скриншета, полученного с устройства
begin_work - создает окно с инструкцией для OBS
Входные данные: нет
Выходные данные: нет
Описание: создает и выводит окно с инструкцией (скриншотом), что нужно настроить в OBS для отображения полученных титров
run - распознавание людей в кадре и создание титров
Входные данные: нет
Выходные данные: нет
Описание: отправляет скриншоты на сервер и при получении данных о человеке (когда он распознан) вывод окно-уведомление о том, что пользователь распознался, и создает соответствующий титр.
API для работы автотитровaлки. Нужна для того, чтобы:
Запускать проект можно простым скриптом - ./run_docker.sh
Для миграций базы данных в проекте присутствует alembic.
Используется сервер YandexCloud, достаточно хороший - 6 ядер CPU, 18 ГБ оперативной памяти, 120 ГБ SSD.