Что такое FaceX?
Быстрая библиотека на C для извлечения face-эмбеддингов (векторов лиц). Работает на CPU, не требует Python, GPU или ONNX Runtime. Размер — 148 КБ, скорость — 3 мс на лицо.
FaceX — open-source библиотека на C99 для извлечения face-эмбеддингов (представлений лиц в виде векторов) на CPU. Использует модель EdgeFace-XS и собственные оптимизированные вычисления, обгоняя ONNX Runtime на 23% при той же точности (99.73% LFW). Работает...
Разработчики 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-утилита.
FaceX — open-source библиотека на C99 для извлечения face-эмбеддингов (представлений лиц в виде векторов) на CPU. Использует модель EdgeFace-XS и собственные оптимизированные вычисления, обгоняя ONNX Runtime на 23% при той же точности (99.73% LFW). Работает полностью офлайн, не требует GPU, Python или ONNX Runtime. Исходный код распространяется под лицензией Apache 2.0, есть примеры для C и Go, Makefile для сборки,...
На разработку оптимизированных ядер ушло шесть месяцев — каждый такт процессора выверялся вручную. В итоге библиотека на 23% быстрее ONNX Runtime без единой внешней зависимости.
Определённо стоит попробовать, если вам нужно высокопроизводительное распознавание лиц на CPU в офлайн-режиме. Особенно полезно для встраиваемых систем, киосков, контроля доступа и конфиденциальных развёртываний. Не подходит, если вам нужна поддержка GPU или ARM.
Проект активно развивается: есть Makefile, CLI, утилита шифрования, Go-биндинги. Постоянно улучшается производительность.
Карточка собрана по данным GitHub, README и структуре репозитория. Это не официальная документация проекта.
Быстрая библиотека на C для извлечения face-эмбеддингов (векторов лиц). Работает на CPU, не требует Python, GPU или ONNX Runtime. Размер — 148 КБ, скорость — 3 мс на лицо.
Для разработчиков edge-устройств (киоски, турникеты), серверных приложений, где важна скорость и низкая задержка, и для тех, кто хочет встроить распознавание лиц без тяжёлых зависимостей. Также подходит для Go-проектов через CLI.
Если проект подходит под ваш сценарий, можем помочь с установкой, интеграцией, доработкой или аккуратным форком под вашу инфраструктуру.