T-70 은 Cyberdyne Series 70 Automated Fighting Infantry Unit ("The Terminator")에서 영감을 받은 Rust 프로젝트입니다. 이 프로젝트는 opencv-rust 바인딩을 통해 OpenCV를 사용하여 런타임 얼굴 검증을 수행하고 얼굴 감지 및 유사성 비교를 위해 CascadeClassifier를 MobileNetV2 모델과 통합합니다. 이 시스템은 독립 실행형 실행 파일로 실행되도록 설계되어 실시간 얼굴 확인이 필수적인 환경에 배포하는 데 이상적입니다.
VM 감지 : 프로젝트에는 실행 파일이 가상화된 환경에서 실행되고 있는지 확인하는 가상 머신 감지 로직이 포함되어 있습니다. VM이 감지되면 실행 파일이 자동 삭제됩니다.
얼굴 감지 및 비교 : 시스템은 연결된 카메라를 사용하여 이미지를 캡처하고, 얼굴을 감지하고, 라이브 피드의 임베딩을 참조 이미지와 비교하여 유사성 점수를 계산합니다.
자동화된 작업 : 유사성 점수를 기반으로 일치하는 항목이 발견되면 시스템은 쉘코드를 실행할 수 있습니다.
main.rs
: 프로젝트의 주요 진입점입니다.
모듈 :
camera
: 카메라 초기화 및 입력을 처리합니다.
classifier
: 얼굴 인식 분류기의 초기화를 관리합니다.
face_detection
: 얼굴을 감지하고 참조 이미지를 처리하는 역할을 담당합니다.
similarity
: 감지된 얼굴과 참조 얼굴 간의 유사성 점수를 계산합니다.
외부 기능 :
GetProcessCountViaSnapShot
, GetUniqueUserCountViaSnapshot
및 VmDetection
과 같은 기능이 고급 런타임 기능을 위해 프로젝트에 통합되었습니다.
이 프로젝트는 다음에 따라 달라집니다.
OpenCV : 특히 OpenCV 라이브러리의 정적으로 컴파일된 버전이 필요합니다.
opencv-rust 바인딩 : OpenCV에 Rust 바인딩을 제공합니다. 자세한 내용은 opencv-rust GitHub 저장소를 확인하세요.
프로젝트를 빌드하기 전에 OpenCV가 정적으로 컴파일되었는지 확인하세요. 시스템에 정적으로 컴파일된 라이브러리 버전을 설정하려면 OpenCV 설명서를 따르세요.
scripts
디렉터리에는 MobileNetV2 및 CascadeClassifier 모델의 오프라인 버전을 다운로드하는 데 도움이 되는 Python 스크립트가 있습니다. 이는 얼굴 감지 및 비교 구성 요소를 실행하는 데 필요합니다.
OpenCV가 컴파일되고 모델이 다운로드되면 Cargo를 사용하여 프로젝트를 빌드할 수 있습니다.
화물 빌드 --릴리스
프로젝트를 빌드한 후 실행 파일을 실행하여 얼굴 감지 및 확인 프로세스를 시작할 수 있습니다.
./target/release/T-70.exe
T-70 시스템 개발에 중요한 opencv-rust
프로젝트를 유지해 주신 Twistedfall에게 특별히 감사드립니다.
T-70은 MIT 라이선스에 따라 라이선스가 부여됩니다.
Cyberdyne Series 70 Automated Fighting Infantry Unit("터미네이터")에서 영감을 받았습니다.
추가 정보: Cyberdyne 시리즈 70 터미네이터