Skip to content

AiNight#4 Сервис для поиска лиц в базе

Notifications You must be signed in to change notification settings

deevroman/AiNight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1c465c9 · May 22, 2021

History

43 Commits
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021
Apr 11, 2021

Repository files navigation

AiNight

Deploy

О решении

С помощью OpenCV выделяем лица на фото. После с помощью библиотеки face_recognition получаем вектор из 128 чисел, кодирующий лицо. Postgresql поддерживает данный тип данных и умеет эффективно работать с ним, а именно быстро искать максимально схожий вектор, т.е. лицо. Получив такой вектор от искомого лица и сделав сделав запрос на получение максимально схожего вектора получаем искомого человека. Собственно всё

Засыпает при бездействии, поэтому первый раз отвечает долго

Варианты запуска:

Jupyter notebook:

Откройте NotebookDemo.ipynb. Если будете использовать Google Colab смените среду выполнения на GPU.

Heroku

Нажмите на кнопку "Deploy to Heroku". Установка ~15 минут. Если приложение пишет, что не удалось сбросить базу, поробуйте ещё раз или обратитесь по адресу /welcome

Локально

Убедитесь, что порт 80 не занят apache/nginx/и т.п.

pip install -r requirements.txt
python wsgi_local.py  

На сервере

Можно на также как и локально, но это ненадёжно.

Примерный процесс установки:

pip install virtualenv
cd AiNight
virtualenv env
source env/bin/activate
pip install -r requirements.txt
sudo apt-get install nginx
sudo vim /etc/systemd/system/AiNight.service

Далее везде вместо USER пользователь под которым вы хотите запускать сервис

Запишите туда:

[Unit]
Description=wsgi for AiNight
After=network.target
[Service]
User=USER
Group=www-data
WorkingDirectory=/home/USER/AiNight
Environment="PATH=/home/USER/AiNight/env/bin"
ExecStart=/home/USER/AiNight/env/bin/uwsgi --ini uWSGI.ini
[Install]
WantedBy=multi-user.target
systemctl start AiNight
systemctl enable AiNight
sudo vim /etc/nginx/sites-available/AiNight

Запишите туда:

server {
    listen 0.0.0.0:8080;
    location / {
        client_max_body_size 5000M;
        client_body_buffer_size 50000k;
        include uwsgi_params;
        uwsgi_pass unix:/home/USER/AiNight/AiNight.sock;
    }
}
ln -s /etc/nginx/sites-available/AiNight /etc/nginx/sites-enabled
systemctl restart nginx

Troubleshooting:

  • Библиотека face_recognition не поддерживает Windows. Используйте Linux/macOS
  • Установка dlib долгая и нужно быть готовым, что вам может не хватить ОЗУ

About

AiNight#4 Сервис для поиска лиц в базе

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages