Этот проект является открытым альтернативным вариантом для платформы 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
host:port/doc.html
, например http://127.0.0.1:8080/doc.html
.<dependency>
<groupId>com.visual.face.search</groupId>
<artifactId>face-search-client</artifactId>
<version>2.1.0</version>
</dependency>
Используйте RESTful API: Документация-2.1.0.
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`
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)
* 
### Распознавание актеров (лучше всего открывать с мобильного устройства)
* [http://actor-search.divenswu.com](http://actor-search.divenswu.com)
* 
### Общение
* Группа общения в DingTalk (уже распущена)
Подпишитесь на официальный WeChat-аккаунт и отправьте сообщение "DingTalk group"* Группа общения в WeChat
Подпишитесь на официальный WeChat-аккаунт и отправьте сообщение "WeChat group"
* Официальный WeChat-аккаунт: подписаться, это самое большое поддержка для меня

### Открытый исходный код фронтенда проекта: благодарю `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 )