T-70は、Cyberdyne シリーズ 70 自動戦闘歩兵部隊(「ターミネーター」) からインスピレーションを得た Rust プロジェクトです。このプロジェクトは、 opencv-rust バインディングを通じてOpenCV を使用してランタイム顔検証を実行し、顔検出と類似性比較のためにCascadeClassifier をMobileNetV2モデルと統合します。このシステムはスタンドアロンの実行可能ファイルとして実行するように設計されているため、リアルタイムの顔認証が不可欠な環境での展開に最適です。
VM 検出: プロジェクトには、実行可能ファイルが仮想化環境で実行されているかどうかを判断するための仮想マシン検出ロジックが含まれています。 VM が検出されると、実行可能ファイルは自己削除されます。
顔の検出と比較: システムは、接続されたカメラを使用して画像をキャプチャし、顔を検出し、ライブ フィードからの埋め込みを参照画像と比較して類似性スコアを計算します。
自動アクション: 類似性スコアに基づいて、一致が見つかった場合、システムはシェルコードを実行できます。
main.rs
: プロジェクトのメイン エントリ ポイント。
モジュール:
camera
: カメラの初期化と入力を処理します。
classifier
: 顔検出分類器の初期化を管理します。
face_detection
: 顔を検出し、参照画像を処理します。
similarity
: 検出された顔と参照顔の間の類似性スコアを計算します。
外部関数:
GetProcessCountViaSnapShot
、 GetUniqueUserCountViaSnapshot
、 VmDetection
などの関数は、高度なランタイム機能のためにプロジェクトに統合されています。
このプロジェクトは以下に依存します。
OpenCV : 具体的には、静的にコンパイルされたバージョンの OpenCV ライブラリが必要です。
opencv-rust bindings : OpenCV に Rust バインディングを提供します。詳細については、opencv-rust GitHub リポジトリを確認してください。
プロジェクトをビルドする前に、OpenCV が静的にコンパイルされていることを確認してください。システム上で静的にコンパイルされたバージョンのライブラリをセットアップするには、OpenCV のドキュメントに従ってください。
scripts
ディレクトリには、MobileNetV2 および CascadeClassifier モデルのオフライン バージョンのダウンロードに役立つ Python スクリプトがあります。これらは、顔の検出および比較コンポーネントを実行するために必要です。
OpenCV がコンパイルされ、モデルがダウンロードされたら、Cargo を使用してプロジェクトをビルドできます。
カーゴビルド --release
プロジェクトをビルドした後、実行可能ファイルを実行して顔の検出と検証のプロセスを開始できます。
./target/release/T-70.exe
T-70 システムの開発にとって重要なopencv-rust
プロジェクトを維持してくれたツイストフォールに特に感謝します。
T-70 は MIT ライセンスに基づいてライセンスされています。
Cyberdyne シリーズ 70 自動戦闘歩兵部隊 (「ターミネーター」) からインスピレーションを受けています。
詳細情報: Cyberdyne シリーズ 70 ターミネーター