Т-70 — это проект Rust, вдохновленный автоматическим боевым пехотным подразделением Cyberdyne Series 70 («Терминатор»). Проект выполняет проверку лица во время выполнения с использованием OpenCV через привязки opencv-rust и интегрирует CascadeClassifier с моделями MobileNetV2 для обнаружения лиц и сравнения сходства. Система предназначена для работы в качестве автономного исполняемого файла, что делает ее идеальной для развертывания в средах, где важна проверка лица в режиме реального времени.
Обнаружение виртуальных машин : проект включает логику обнаружения виртуальных машин, позволяющую определить, работает ли исполняемый файл в виртуализированной среде. Если виртуальная машина обнаружена, исполняемый файл автоматически удаляется.
Обнаружение и сравнение лиц : система захватывает изображения с помощью подключенной камеры, распознает лица и сравнивает встраивания из прямой трансляции с эталонным изображением для вычисления оценки сходства.
Автоматизированное действие : на основании оценки сходства система может запустить шеллкод, если совпадение найдено.
main.rs
: основная точка входа в проект.
Модули :
camera
: обрабатывает инициализацию и ввод камеры.
classifier
: управляет инициализацией классификатора обнаружения лиц.
face_detection
: отвечает за обнаружение лиц и обработку эталонного изображения.
similarity
: вычисляет баллы сходства между обнаруженными лицами и эталонными лицами.
Внешние функции :
Такие функции, как GetProcessCountViaSnapShot
, GetUniqueUserCountViaSnapshot
и VmDetection
, интегрированы в проект для расширенных функций среды выполнения.
Этот проект зависит от следующего:
OpenCV : В частности, требуется статически скомпилированная версия библиотеки OpenCV.
opencv-rust привязки : предоставляет привязки Rust к OpenCV. Дополнительную информацию можно найти в репозитории opencv-rust на GitHub.
Перед сборкой проекта убедитесь, что OpenCV скомпилирован статически. Следуйте документации OpenCV для настройки статически скомпилированной версии библиотеки в вашей системе.
В каталоге scripts
вы найдете сценарии Python, которые помогают загружать автономные версии моделей MobileNetV2 и CascadeClassifier. Они необходимы для запуска компонентов обнаружения и сравнения лиц.
После компиляции OpenCV и загрузки моделей вы можете собрать проект с помощью Cargo:
сборка груза -- выпуск
После сборки проекта вы можете запустить исполняемый файл, чтобы запустить процесс обнаружения и проверки лиц:
./target/release/T-70.exe
Особая благодарность twistedfall за поддержку проекта opencv-rust
, который имел решающее значение для разработки системы Т-70.
Т-70 лицензируется по лицензии MIT.
Вдохновлен автоматическим боевым пехотным подразделением Cyberdyne Series 70 («Терминатор»).
Дополнительная информация: Терминатор Cyberdyne Series 70.