Update README.md

This commit is contained in:
kromskii2 authored and GitHub committed 2024-12-31 10:28:02 +03:00
1 parent 3005d40384
commit 8b19595cf3
1 file changed
+98 -21
+98 -21
View File
@@ -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. **Распознавание лиц**: Программа сканирует видеопоток с веб-камеры и автоматически обнаруживает лица на кадрах.
2. **Сохранение лиц**: Обнаруженные лица сохраняются в отдельную папку "faces" с уникальным временным отметками и номером лица.
3. **Уникальность лиц**: Проверка на уникальность лиц перед сохранением осуществляется с помощью хэширования изображений лиц.
4. **Интерфейс**: В реальном времени отображает видеопоток с выделенными прямоугольниками вокруг обнаруженных лиц.
**FaceSaver** использует возможности библиотеки OpenCV для обнаружения лиц в режиме реального времени и сохраняет каждое уникальное лицо в папку `faces`. Для определения уникальности лица используется библиотека [ImageHash](https://github.com/JohannesBuchner/imagehash) и алгоритм усредненного хэша (average hash).
Если обнаруженное лицо уже похоже на ранее сохраненное (с учетом заданного порога сходства), оно **не** будет сохранено повторно. Таким образом, вы получаете упорядоченную коллекцию изображений лиц без избыточных дубликатов.
## Настройка проекта
---
### Установка зависимостей
## Особенности
1. **Реальное время**: обработка видеопотока в режиме реального времени.
2. **Уникальность**: предотвращение дублирования благодаря сравнению хэшей изображений.
3. **Гибкость**: настройка уровня чувствительности (`tolerance`) для учета небольших изменений (ракурсов, освещения и т.д.).
4. **Простота использования**: удобный запуск из бат-файла или напрямую из Python.
Для корректной работы проекта требуется Python 3.x и следующие библиотеки:
---
## Требования
Для работы проекта необходим 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
pip install opencv-python Pillow imagehash
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
```
### Подготовка к запуску
> После запуска откроется окно видеопотока с веб-камеры, где вокруг обнаруженных лиц будут отображаться прямоугольники.
1. **Хэр-каскады OpenCV**: Убедитесь, что у вас есть файл `haarcascade_frontalface_default.xml`, который используется для обнаружения лиц. Он поставляется вместе с библиотекой OpenCV.
---
2. **Создание папки для лиц**: Программа автоматически создаст папку "faces" в корневом каталоге проекта, если её нет.
## Структура проекта
## Первый запуск
```plaintext
FaceSaver/
│ main.py # Основной скрипт детектирования лиц
│ start.bat # Файл для быстрого запуска
│ README.md # Документация (то, что вы сейчас читаете)
│
└── faces/ # Папка для сохраненных уникальных лиц
```
1. Запустите скрипт `face_recognition.py`.
2. При первом запуске программа запросит доступ к веб-камере.
3. Для выхода нажмите клавишу 'q'.
---
## Применение
1. При запуске **FaceSaver** в реальном времени обрабатывает поток с вашей веб-камеры.
2. При обнаружении нового лица программа сохраняет его в папку `faces` с меткой времени, если его хэш не совпадает с уже сохранёнными.
3. Если лицо уже встречалось ранее (определяется через функцию `is_similar_hash()`), оно не сохраняется повторно, что экономит место и упрощает поиск нужных изображений.
**Пример использования**:
- Создание базы лиц для системы безопасности или учёта.
- Сбор уникальных фотографий одной и той же персоны под разными углами и освещением.
- Разработка проектов в области компьютерного зрения, где требуется де-дубликация изображений.
---
## Поддержка и вклад
Приветствуются все виды вклада в проект:
- Сообщения об ошибках (issue) в [репозитории](#) (добавьте свою ссылку).
- Предложения новых возможностей через pull-request.
- Связь с автором по электронной почте или любым удобным способом.
---
## Лицензия
**FaceSaver** распространяется на условиях [MIT License](LICENSE) (при необходимости добавьте файл LICENSE). Это означает, что вы можете свободно использовать, изменять и распространять проект в любых целях при условии сохранения оригинальных уведомлений об авторстве.
Этот проект лицензируется по лицензии [MIT](LICENSE).
---
> _Спасибо, что используете **FaceSaver**! Мы будем рады вашей обратной связи и участию в развитии проекта._