Files
UfaHack2024/README.md
2024-03-30 08:00:40 +03:00

3.0 KiB
Raw Blame History

UfaHack2024

Face Hackaton UfaHack2024 in UFA

Реализация модели

f

Программный продукт создан с помощью фреймворка для Python Socket, CatBoost, CustomTkinter, а также приложение написанное на Kotin для клиента на Android

  • Реализация с CUDA технологиями
  • Андройд приложение
  • Классифкатор на основе градиентного бустинга
  • Очищенный и подготовленный датасет
  • Возможность работать удаленно
  • Возможность обработки в реальном времени

Gold features

  • Алгоритм определения "замыленных" фотографий opencv методами
  • Очистка датасета от фотографий, где присутствует более 2 человек
  • Пакетная обработка видео, ускоряющее обнаружениие лица на одном кадре за 5ms
  • Выделение face embeddings моделью facenet, которые используются для классификации человека алгоритмом градиентного бустинга "catboost"
  • Обучение нескольких моделей для разных категорий

Установка зависимостей

pip install catboost, customtkinter, deepface, socket, opencv-python, opencv-contrib-python, pandas, imutils, mtcnn

Quick start

cd UfaHack2024 
cd notebooks/apps
python main.py

Код реализации сервера

import socket

s = socket.socket()
host = "192.168.120.244"
port = 12345
s.bind((host, port))
s.listen(5)

while True:
    con, addr = s.accept()
    with open('FDJ.jpg', 'wb') as f:
        while True:
            print(1)
            data = con.recv(4096)
            if not data:
                break
            f.write(data)
    con.close()

Код реализации клиента

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('192.168.120.244', 12345)) # Подключаемся к серверу.
s.sendall('Hello, Habr!'.encode('utf-8')) # Отправляем фразу.
data = s.recv(1024) # Получаем данные из сокета.
print(data.decode())
while True:
    data = s.recv(4096)
    if not data:
        break
    print("Received response: " + data.decode())

s.close()

Для обучения модели исползовали CatBoost