Files
FaceSaver/README.md
T
2024-12-31 10:28:02 +03:00

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**! Мы будем рады вашей обратной связи и участию в развитии проекта._