118 lines
6.7 KiB
Markdown
118 lines
6.7 KiB
Markdown
# FaceSaver
|
|
|
|
Добро пожаловать в **FaceSaver** — гибкое решение на базе Python для детектирования лиц с веб-камеры, хранения уникальных изображений лиц и предотвращения дублирования за счет использования механизмов хэширования изображений.
|
|
|
|
## Оглавление
|
|
- [Описание](#описание)
|
|
- [Особенности](#особенности)
|
|
- [Требования](#требования)
|
|
- [Установка](#установка)
|
|
- [Запуск](#запуск)
|
|
- [Структура проекта](#структура-проекта)
|
|
- [Применение](#применение)
|
|
- [Поддержка и вклад](#поддержка-и-вклад)
|
|
- [Лицензия](#лицензия)
|
|
|
|
---
|
|
|
|
## Описание
|
|
|
|
**FaceSaver** использует возможности библиотеки OpenCV для обнаружения лиц в режиме реального времени и сохраняет каждое уникальное лицо в папку `faces`. Для определения уникальности лица используется библиотека [ImageHash](https://github.com/JohannesBuchner/imagehash) и алгоритм усредненного хэша (average hash).
|
|
Если обнаруженное лицо уже похоже на ранее сохраненное (с учетом заданного порога сходства), оно **не** будет сохранено повторно. Таким образом, вы получаете упорядоченную коллекцию изображений лиц без избыточных дубликатов.
|
|
|
|
---
|
|
|
|
## Особенности
|
|
1. **Реальное время**: обработка видеопотока в режиме реального времени.
|
|
2. **Уникальность**: предотвращение дублирования благодаря сравнению хэшей изображений.
|
|
3. **Гибкость**: настройка уровня чувствительности (`tolerance`) для учета небольших изменений (ракурсов, освещения и т.д.).
|
|
4. **Простота использования**: удобный запуск из бат-файла или напрямую из Python.
|
|
|
|
---
|
|
|
|
## Требования
|
|
Для работы проекта необходим Python 3.7+ и следующие пакеты:
|
|
|
|
1. [OpenCV](https://opencv.org/) (установить можно через pip: `pip install opencv-python`)
|
|
2. [Pillow](https://pillow.readthedocs.io/en/stable/) (установить: `pip install pillow`)
|
|
3. [ImageHash](https://github.com/JohannesBuchner/imagehash) (установить: `pip install imagehash`)
|
|
|
|
Также потребуется веб-камера, физическая или виртуальная.
|
|
|
|
---
|
|
|
|
## Установка
|
|
1. **Склонируйте или загрузите репозиторий**:
|
|
```bash
|
|
git clone https://github.com/ваш-аккаунт/FaceSaver.git
|
|
cd FaceSaver
|
|
```
|
|
2. **Установите зависимости**:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
> При отсутствии файла `requirements.txt` установите пакеты вручную:
|
|
> ```bash
|
|
> pip install opencv-python pillow imagehash
|
|
> ```
|
|
|
|
---
|
|
|
|
## Запуск
|
|
Доступны два основных способа запуска:
|
|
|
|
1. **Через Python**:
|
|
```bash
|
|
python main.py
|
|
```
|
|
2. **Через бат-файл (Windows)**:
|
|
- Дважды кликните по файлу `start.bat`, или
|
|
- Запустите командой:
|
|
```bash
|
|
start.bat
|
|
```
|
|
|
|
> После запуска откроется окно видеопотока с веб-камеры, где вокруг обнаруженных лиц будут отображаться прямоугольники.
|
|
|
|
---
|
|
|
|
## Структура проекта
|
|
|
|
```plaintext
|
|
FaceSaver/
|
|
│ main.py # Основной скрипт детектирования лиц
|
|
│ start.bat # Файл для быстрого запуска
|
|
│ README.md # Документация (то, что вы сейчас читаете)
|
|
│
|
|
└── faces/ # Папка для сохраненных уникальных лиц
|
|
```
|
|
|
|
---
|
|
|
|
## Применение
|
|
1. При запуске **FaceSaver** в реальном времени обрабатывает поток с вашей веб-камеры.
|
|
2. При обнаружении нового лица программа сохраняет его в папку `faces` с меткой времени, если его хэш не совпадает с уже сохранёнными.
|
|
3. Если лицо уже встречалось ранее (определяется через функцию `is_similar_hash()`), оно не сохраняется повторно, что экономит место и упрощает поиск нужных изображений.
|
|
|
|
**Пример использования**:
|
|
- Создание базы лиц для системы безопасности или учёта.
|
|
- Сбор уникальных фотографий одной и той же персоны под разными углами и освещением.
|
|
- Разработка проектов в области компьютерного зрения, где требуется де-дубликация изображений.
|
|
|
|
---
|
|
|
|
## Поддержка и вклад
|
|
Приветствуются все виды вклада в проект:
|
|
- Сообщения об ошибках (issue) в [репозитории](#) (добавьте свою ссылку).
|
|
- Предложения новых возможностей через pull-request.
|
|
- Связь с автором по электронной почте или любым удобным способом.
|
|
|
|
---
|
|
|
|
## Лицензия
|
|
**FaceSaver** распространяется на условиях [MIT License](LICENSE) (при необходимости добавьте файл LICENSE). Это означает, что вы можете свободно использовать, изменять и распространять проект в любых целях при условии сохранения оригинальных уведомлений об авторстве.
|
|
|
|
---
|
|
|
|
> _Спасибо, что используете **FaceSaver**! Мы будем рады вашей обратной связи и участию в развитии проекта._
|