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