Update README.md
This commit is contained in:
1 parent
3005d40384
commit
8b19595cf3
1 file changed
+100
-23
@@ -1,40 +1,117 @@
|
|||||||
# Проект "E.D.I.T.H. - распознавание лиц с веб-камеры"
|
# FaceSaver
|
||||||
|
|
||||||
![E.D.I.T.H.]
|
Добро пожаловать в **FaceSaver** — гибкое решение на базе Python для детектирования лиц с веб-камеры, хранения уникальных изображений лиц и предотвращения дублирования за счет использования механизмов хэширования изображений.
|
||||||
|
|
||||||
## Описание проекта
|
## Оглавление
|
||||||
|
- [Описание](#описание)
|
||||||
|
- [Особенности](#особенности)
|
||||||
|
- [Требования](#требования)
|
||||||
|
- [Установка](#установка)
|
||||||
|
- [Запуск](#запуск)
|
||||||
|
- [Структура проекта](#структура-проекта)
|
||||||
|
- [Применение](#применение)
|
||||||
|
- [Поддержка и вклад](#поддержка-и-вклад)
|
||||||
|
- [Лицензия](#лицензия)
|
||||||
|
|
||||||
Проект E.D.I.T.H. (Even Dead, I'm The Hero) посвящен распознаванию лиц с использованием веб-камеры. Он назван в честь искусственного интеллекта из фильма "Человек-паук: Вдали от дома", который предоставляет доступ к спутниковой сети Stark Industries.
|
---
|
||||||
|
|
||||||
### Возможности
|
## Описание
|
||||||
|
|
||||||
1. **Распознавание лиц**: Программа сканирует видеопоток с веб-камеры и автоматически обнаруживает лица на кадрах.
|
**FaceSaver** использует возможности библиотеки OpenCV для обнаружения лиц в режиме реального времени и сохраняет каждое уникальное лицо в папку `faces`. Для определения уникальности лица используется библиотека [ImageHash](https://github.com/JohannesBuchner/imagehash) и алгоритм усредненного хэша (average hash).
|
||||||
2. **Сохранение лиц**: Обнаруженные лица сохраняются в отдельную папку "faces" с уникальным временным отметками и номером лица.
|
Если обнаруженное лицо уже похоже на ранее сохраненное (с учетом заданного порога сходства), оно **не** будет сохранено повторно. Таким образом, вы получаете упорядоченную коллекцию изображений лиц без избыточных дубликатов.
|
||||||
3. **Уникальность лиц**: Проверка на уникальность лиц перед сохранением осуществляется с помощью хэширования изображений лиц.
|
|
||||||
4. **Интерфейс**: В реальном времени отображает видеопоток с выделенными прямоугольниками вокруг обнаруженных лиц.
|
|
||||||
|
|
||||||
## Настройка проекта
|
---
|
||||||
|
|
||||||
### Установка зависимостей
|
## Особенности
|
||||||
|
1. **Реальное время**: обработка видеопотока в режиме реального времени.
|
||||||
|
2. **Уникальность**: предотвращение дублирования благодаря сравнению хэшей изображений.
|
||||||
|
3. **Гибкость**: настройка уровня чувствительности (`tolerance`) для учета небольших изменений (ракурсов, освещения и т.д.).
|
||||||
|
4. **Простота использования**: удобный запуск из бат-файла или напрямую из Python.
|
||||||
|
|
||||||
Для корректной работы проекта требуется Python 3.x и следующие библиотеки:
|
---
|
||||||
|
|
||||||
```bash
|
## Требования
|
||||||
pip install opencv-python Pillow imagehash
|
Для работы проекта необходим 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. **Хэр-каскады OpenCV**: Убедитесь, что у вас есть файл `haarcascade_frontalface_default.xml`, который используется для обнаружения лиц. Он поставляется вместе с библиотекой OpenCV.
|
## Применение
|
||||||
|
1. При запуске **FaceSaver** в реальном времени обрабатывает поток с вашей веб-камеры.
|
||||||
2. **Создание папки для лиц**: Программа автоматически создаст папку "faces" в корневом каталоге проекта, если её нет.
|
2. При обнаружении нового лица программа сохраняет его в папку `faces` с меткой времени, если его хэш не совпадает с уже сохранёнными.
|
||||||
|
3. Если лицо уже встречалось ранее (определяется через функцию `is_similar_hash()`), оно не сохраняется повторно, что экономит место и упрощает поиск нужных изображений.
|
||||||
|
|
||||||
## Первый запуск
|
**Пример использования**:
|
||||||
|
- Создание базы лиц для системы безопасности или учёта.
|
||||||
|
- Сбор уникальных фотографий одной и той же персоны под разными углами и освещением.
|
||||||
|
- Разработка проектов в области компьютерного зрения, где требуется де-дубликация изображений.
|
||||||
|
|
||||||
1. Запустите скрипт `face_recognition.py`.
|
---
|
||||||
2. При первом запуске программа запросит доступ к веб-камере.
|
|
||||||
3. Для выхода нажмите клавишу 'q'.
|
## Поддержка и вклад
|
||||||
|
Приветствуются все виды вклада в проект:
|
||||||
|
- Сообщения об ошибках (issue) в [репозитории](#) (добавьте свою ссылку).
|
||||||
|
- Предложения новых возможностей через pull-request.
|
||||||
|
- Связь с автором по электронной почте или любым удобным способом.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Лицензия
|
## Лицензия
|
||||||
|
**FaceSaver** распространяется на условиях [MIT License](LICENSE) (при необходимости добавьте файл LICENSE). Это означает, что вы можете свободно использовать, изменять и распространять проект в любых целях при условии сохранения оригинальных уведомлений об авторстве.
|
||||||
|
|
||||||
Этот проект лицензируется по лицензии [MIT](LICENSE).
|
---
|
||||||
|
|
||||||
|
> _Спасибо, что используете **FaceSaver**! Мы будем рады вашей обратной связи и участию в развитии проекта._
|
||||||
Reference in new issue
Block a user