← Все проекты
Проект / C

facex-engine/facex: FaceX — быстрая библиотека face-эмбеддингов на C без зависимостей

Превращайте фотографии лиц в векторы за 3 миллисекунды — без Python, GPU и ONNX Runtime.

FaceX — open-source библиотека на C99 для извлечения face-эмбеддингов (представлений лиц в виде векторов) на CPU. Использует модель EdgeFace-XS и собственные оптимизированные вычисления, обгоняя ONNX Runtime на 23% при той же точности (99.73% LFW). Работает...

★ 28 C Форки 3 Issue 0 Оценка 8/10 Карточка проверена

Для кого это

Разработчики edge-устройств, систем контроля доступа, киосков, а также серверных приложений, где важна скорость и офлайн-работа. Подойдёт тем, кто устал от тяжеловесных зависимостей и хочет встроить распознавание лиц в C/C++ или Go проект.

Проблема / задача

Типичные библиотеки для извлечения face-эмбеддингов требуют Python, ONNX Runtime (28 МБ) или GPU, что избыточно для встраиваемых систем, киосков и конфиденциальных развёртываний. Установка и версионирование — головная боль.

Как это работает

FaceX — это одна C-функция: загружаете модель (однократно, ~100 мс), передаёте RGB-изображение лица 112×112, получаете 512-мерный вектор. Внутри — рукописные SIMD-ядра AVX2/AVX-512, INT8-квантование, кэш-оптимизированное расположение памяти и пул потоков. Библиотека собирается в статический .a файл размером 148 КБ, всё приложение с моделью — 7 МБ. Доступны биндинги для Go и CLI-утилита.

Что видно по README

FaceX — open-source библиотека на C99 для извлечения face-эмбеддингов (представлений лиц в виде векторов) на CPU. Использует модель EdgeFace-XS и собственные оптимизированные вычисления, обгоняя ONNX Runtime на 23% при той же точности (99.73% LFW). Работает полностью офлайн, не требует GPU, Python или ONNX Runtime. Исходный код распространяется под лицензией Apache 2.0, есть примеры для C и Go, Makefile для сборки,...

Ключевые возможности

Одна функция `facex_embed` для получения эмбеддинга — минимальный APIРучные SIMD-ядра AVX2/AVX-512, INT8 GEMM и кэш-тюнинг для максимальной скоростиНулевые зависимости — только стандартная библиотека C и pthreadsРазмер библиотеки 148 КБ, полный дистрибутив с моделью 7 МББиндинги для Go через вызов CLI как подпроцессУтилита шифрования весов модели (weight_crypto) для защищённого развёртывания

Технологии

C99AVX2AVX-512SIMDINT8 quantizationpthreadsCPyTorchGo

Темы и ключи

avx-512avx2biometricsc99computer-visioncpu-inferencedeep-learningedge-aiembedded-aiface-embeddingface-recognitionface-verification

Интересный факт

На разработку оптимизированных ядер ушло шесть месяцев — каждый такт процессора выверялся вручную. В итоге библиотека на 23% быстрее ONNX Runtime без единой внешней зависимости.

С чего начать

  • Скачайте или соберите библиотеку: make lib (нужен GCC, make, pthreads).
  • Подключите include "facex.h" и слинкуйте с -lfacex -lm -lpthread.
  • Загрузите модель facex_init("edgeface_xs_fp32.bin", NULL) и вызывайте facex_embed для каждого лица.

Оценка GitRadar

Удобство
7/10
Свежесть
8/10
Перспектива
9/10
Монетизация
6/10
Общая оценка
8/10

Вердикт GitRadar

Определённо стоит попробовать, если вам нужно высокопроизводительное распознавание лиц на CPU в офлайн-режиме. Особенно полезно для встраиваемых систем, киосков, контроля доступа и конфиденциальных развёртываний. Не подходит, если вам нужна поддержка GPU или ARM.

Наблюдения по обновлениям

Проект активно развивается: есть Makefile, CLI, утилита шифрования, Go-биндинги. Постоянно улучшается производительность.

Что мы проверили

Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.

Исходный репозиторий
https://github.com/facex-engine/facex
Лицензия
Apache-2.0
Создан на GitHub
25 апреля 2026 г.
Последнее обновление репо
25 апреля 2026 г.
Последняя проверка GitRadar
25 апреля 2026 г.
Изученные файлы
README.md, Makefile, go/facex/go.mod, src/threadpool_stub.c, src/gemm_stub.c, src/threadpool.h

FAQ

Что такое FaceX?

Быстрая библиотека на C для извлечения face-эмбеддингов (векторов лиц). Работает на CPU, не требует Python, GPU или ONNX Runtime. Размер — 148 КБ, скорость — 3 мс на лицо.

Для кого подходит FaceX?

Для разработчиков edge-устройств (киоски, турникеты), серверных приложений, где важна скорость и низкая задержка, и для тех, кто хочет встроить распознавание лиц без тяжёлых зависимостей. Также подходит для Go-проектов через CLI.

Источники

  • GitHub исходный код и активность
  • README описание, ссылки, стартовые материалы

Нужна помощь с facex-engine/facex?

Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.