e4feb686edee755a8cebe2cacaf5d7b91ecec597
UfaHack2024
Hackaton UfaHack2024 in UFA
Реализация модели
Программный продукт создан с помощью фреймворка для 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
Description
Languages
Jupyter Notebook
95.7%
Python
4.2%