diff --git a/README.md b/README.md index da0cb04..2274348 100644 --- a/README.md +++ b/README.md @@ -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 и следующие библиотеки: +--- -```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. - -2. **Создание папки для лиц**: Программа автоматически создаст папку "faces" в корневом каталоге проекта, если её нет. +## Применение +1. При запуске **FaceSaver** в реальном времени обрабатывает поток с вашей веб-камеры. +2. При обнаружении нового лица программа сохраняет его в папку `faces` с меткой времени, если его хэш не совпадает с уже сохранёнными. +3. Если лицо уже встречалось ранее (определяется через функцию `is_similar_hash()`), оно не сохраняется повторно, что экономит место и упрощает поиск нужных изображений. -## Первый запуск +**Пример использования**: +- Создание базы лиц для системы безопасности или учёта. +- Сбор уникальных фотографий одной и той же персоны под разными углами и освещением. +- Разработка проектов в области компьютерного зрения, где требуется де-дубликация изображений. -1. Запустите скрипт `face_recognition.py`. -2. При первом запуске программа запросит доступ к веб-камере. -3. Для выхода нажмите клавишу 'q'. +--- + +## Поддержка и вклад +Приветствуются все виды вклада в проект: +- Сообщения об ошибках (issue) в [репозитории](#) (добавьте свою ссылку). +- Предложения новых возможностей через pull-request. +- Связь с автором по электронной почте или любым удобным способом. + +--- ## Лицензия +**FaceSaver** распространяется на условиях [MIT License](LICENSE) (при необходимости добавьте файл LICENSE). Это означает, что вы можете свободно использовать, изменять и распространять проект в любых целях при условии сохранения оригинальных уведомлений об авторстве. -Этот проект лицензируется по лицензии [MIT](LICENSE). +--- + +> _Спасибо, что используете **FaceSaver**! Мы будем рады вашей обратной связи и участию в развитии проекта._