1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/open-visual-face-search

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 14 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 23:53 bc06f2d

Поиск лиц M:N

  • Этот проект является открытым альтернативным вариантом для платформы 1: N лица Alibaba Cloud Visual Intelligence Open Platform. В проекте используются открытые модели, он поддерживает векторные хранилища opensearch (версия 1.x поддерживает milvus и proxima) с высокой степенью кастомизации.

  • Проект разработан полностью на Java, что позволяет избежать нестабильности сервиса, связанной с использованием Python.

  • 1: N осуществляется путём сбора образа лица пользователя и последующего сравнения его с огромной базой данных лиц для нахождения совпадений. Это позволяет определить "кто ты". Обычные применения включают системы контроля доступа в офисах, жилых комплексах, строительных площадках, а также системы регистрации участников мероприятий.

  • M: N представляет собой процесс распознавания всех лиц в сцене и сравнения их с базой данных лиц. Как метод динамического распознавания лиц, M:N широко используется во многих сценариях, таких как общественная безопасность, приветствие гостей, применение в робототехнике и так далее.

  • Приглашаем вас принять участие в развитии проекта. Если вам понравился проект, пожалуйста, оставьте звёздочку.

Описание проекта

  • Общая архитектурная схема

Схема потока поиска лиц* Используемые компоненты

   1. Spring Boot

   2. ONNX

   3. Opensearch

  • Глубокие нейронные сети

   1. InsightFace

   2. PCN

Обновление версии 2.1.0

    1. Улучшение модели InsightScrfdFaceDetection для повышения её стабильности при распознавании, а также добавление детектора угла лица.
    1. Добавление операции заполнения краёв для случаев, когда модель не может корректно распознать лицо из-за слишком больших размеров лица.
    1. Добавление модуля SeetaFaceOpenRecognition для извлечения черт лица, теперь поддерживаются два модуля для извлечения черт лица — InsightArcFaceRecognition и SeetaFaceOpenRecognition.
    1. Исправление ошибки, вызванной слишком маленькими размерами лица, которая приводила к проблемам с выравниванием.
    1. Добавлены модели SeetaFace6 для маскировки ключевых точек лица.
  • OnClickListener 6. Обновлены зависимости Maven для opencv, opensearch и onnxruntime.

Обновление версии 2.0.1

    1. Исправление потенциальной проблемы утечки памяти в модели PCN.

Обновление версии 2.0.0

    1. Добавлена поддержка Opensearch, удалены возможности работы с Proxima и Milvus в качестве векторных движков.
    1. Обновление: удален показатель расстояния из результатов поиска, оставлен только показатель уверенности (косинусное сходство).

Проектная документация* Онлайн-документация: Документация-2.1.0

  • Swagger-документация: запустите проект с включенным Swagger и перейдите по адресу host:port/doc.html, например http://127.0.0.1:8080/doc.html.

Поиск клиентов

  • Java зависимости, не опубликованные в центральном репозитории, требуют самостоятельной компиляции и публикации в личном репозитории
<dependency>
    <groupId>com.visual.face.search</groupId>
    <artifactId>face-search-client</artifactId>
    <version>2.1.0</version>
</dependency>
  • Другие языковые зависимости

  Используйте RESTful API: Документация-2.1.0.

Развертывание проекта

  • Docker-развертывание, директория скриптов: face-search/scripts
1. Настройте переменные окружения: FACESEARCH_VOLUME_DIRECTORY, чтобы указать текущую точку монтирования, по умолчанию используется текущий каталог.

2. Присвойте права доступа к каталогу монтирования OpenSearch:
   Создайте новый каталог: `${FACESEARCH_VOLUME_DIRECTORY:-.}/volumes-face-search/opensearch/data`
   Присвойте права доступа: `chmod 777 ${FACESEARCH_VOLUME_DIRECTORY:-.}/volumes-face-search/opensearch/data`

3. Используйте OpenSearch как векторный поисковый движок
   `docker-compose -f docker-compose-opensearch.yml --compatibility up -d`

4. Услуги доступны:
   Встроенные средства визуализации OpenSearch: `http://127.0.0.1:5601`
   Swagger-документация FaceSearch: `http://127.0.0.1:56789/doc.html`
  • Компиляция проекта и создание образа Docker
1. Минимальная версия Java должна быть 11; установите Maven для компиляции и Docker.
2. Клонируйте проект
   `git clone https://gitee.com/open-visual/face-search.git`
3. Соберите проект
   `cd face-search && sh scripts/docker_build.sh`
```* Параметры развертывания| Параметр               | Описание           | Значение по умолчанию | Допустимые значения                                                                                   |
 | ---------------------- | ------------------: | :-------------------: | ------------------------------------------------------------------------------------------------------- |
 | VISUAL_SWAGGER_ENABLE                         | Включить Swagger         | true                                      |                                                                                                           |
 | SPRING_DATASOURCE_URL                         | Адрес базы данных        |                                             |                                                                                                           |
 | SPRING_DATASOURCE_USERNAME                    | Имя пользователя базы данных | root                                       |                                                                                                           |
 | SPRING_DATASOURCE_PASSWORD                    | Пароль базы данных       | root                                       |                                                                                                           |
 | VISUAL_ENGINE_OPENSEARCH_HOST                 | Адрес OpenSearch         |                                             |                                                                                                           |
 | VISUAL_ENGINE_OPENSEARCH_PORT                 | Порт OpenSearch          | 9200                                       |                                                                                                           |
 | VISUAL_ENGINE_OPENSEARCH_SCHEME               | Протокол OpenSearch      | https                                      |                                                                                                           |
 | VISUAL_ENGINE_OPENSEARCH_USERNAME             | Имя пользователя OpenSearch | admin                                       |                                                                                                           || VISUAL_ENGINE_OPENSEARCH_PASSWORD             | Пароль для OpenSearch       | admin                                      |                                                                                                           |
 | VISUAL_MODEL_FACEDETECTION_NAME                | Название модели детектирования лиц | InsightScrfdFaceDetection | PcnNetworkFaceDetection, InsightScrfdFaceDetection |
 | VISUAL_MODEL_FACEDETECTION_BACKUP_NAME         | Название запасной модели детектирования лиц | PcnNetworkFaceDetection | PcnNetworkFaceDetection, InsightScrfdFaceDetection |
 | VISUAL_MODEL_FACEKEYPOINT_NAME                 | Название модели ключевых точек лица | InsightCoordFaceKeyPoint | InsightCoordFaceKeyPoint                           |
 | VISUAL_MODEL_FACEALIGNMENT_NAME                | Название модели выравнивания лица | Simple106pFaceAlignment | Simple106pFaceAlignment, Simple005pFaceAlignment   |
 | VISUAL_MODEL_FACERECOGNITION_NAME              | Название модели извлечения признаков лица | InsightArcFaceRecognition | InsightArcFaceRecognition, SeetaFaceOpenRecognition                        |### Оптимизация производительности* В проекте для повышения эффективности распознавания лиц используются основная и вспомогательная модели детекции лиц. На данный момент реализованы две модели детекции лиц — Insightface и PCN. По умолчанию в контейнере Docker основной сервис представляет собой модель Insightface, а вспомогательный сервис — модель PCN. Insightface имеет высокую скорость работы, но плохо справляется с распознаванием сильно повернутых лиц. В то время как PCN способна распознавать сильно повернутые лица, но работает медленнее. Если все изображения представляют собой фронтальные портреты, рекомендуется использовать Insightface в качестве основной модели и PCN в качестве вспомогательной. Информацию о том, как выполнить переключение, можно найти в разделе параметров развертывания.

### Демонстрация проекта

* Версия 2.1.0 тестовых примеров: face-search-test [тестовый пример FaceSearchExample](https://gitee.com/open-visual/face-search/blob/master/face-search-test/src/main/java/com/visual/face/search/valid/exps/FaceSearchExample.java)

* ![Описание входного изображения](scripts/images/validate-2.0.0.jpg)

### Распознавание актеров (лучше всего открывать с мобильного устройства)
* [http://actor-search.divenswu.com](http://actor-search.divenswu.com)
* ![Описание входного изображения](scripts/images/actor-search.jpg)

### Общение

* Группа общения в DingTalk (уже распущена)

    Подпишитесь на официальный WeChat-аккаунт и отправьте сообщение "DingTalk group"* Группа общения в WeChat

    Подпишитесь на официальный WeChat-аккаунт и отправьте сообщение "WeChat group"

* Официальный WeChat-аккаунт: подписаться, это самое большое поддержка для меня

![Официальный WeChat-аккаунт](scripts/images/%E5%85%AC%E4%BC%97%E5%8F%B7-%E5%BE%AE%E4%BF%A1.jpg)

### Открытый исходный код фронтенда проекта: благодарю `HeX` за открытое использование
* [https://gitee.com/hexpang/face-search-web](https://gitee.com/hexpang/face-search-web)

### Приглашаю вас посетить мои другие открытые проекты
* [Распознавание номерных знаков: https://gitee.com/open-visual/open-anpr](https://gitee.com/open-visual/open-anpr)

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/open-visual-face-search.git
git@api.gitlife.ru:oschina-mirror/open-visual-face-search.git
oschina-mirror
open-visual-face-search
open-visual-face-search
master