T-70 เป็นโครงการ Rust ที่ได้รับแรงบันดาลใจจาก หน่วยทหารราบต่อสู้อัตโนมัติ Cyberdyne Series 70 ("เทอร์มิเนเตอร์") โปรเจ็กต์ดำเนินการตรวจสอบใบหน้ารันไทม์โดยใช้ OpenCV ผ่าน การผูก opencv-rust และรวม CascadeClassifier เข้ากับโมเดล MobileNetV2 สำหรับการตรวจจับใบหน้าและการเปรียบเทียบความคล้ายคลึงกัน ระบบได้รับการออกแบบมาให้ทำงานเป็นปฏิบัติการแบบสแตนด์อโลน ทำให้เหมาะสำหรับการปรับใช้ในสภาพแวดล้อมที่จำเป็นต้องมีการตรวจสอบใบหน้าแบบเรียลไทม์
การตรวจจับ VM : โปรเจ็กต์ประกอบด้วยตรรกะการตรวจจับเครื่องเสมือนเพื่อตรวจสอบว่าไฟล์ปฏิบัติการนั้นทำงานในสภาพแวดล้อมเสมือนจริงหรือไม่ หากตรวจพบ VM ไฟล์ปฏิบัติการจะลบด้วยตนเอง
การตรวจจับใบหน้าและการเปรียบเทียบ : ระบบจะจับภาพโดยใช้กล้องที่เชื่อมต่อ ตรวจจับใบหน้า และเปรียบเทียบการฝังจากฟีดสดกับภาพอ้างอิงเพื่อคำนวณคะแนนความคล้ายคลึงกัน
การดำเนินการอัตโนมัติ : ขึ้นอยู่กับคะแนนความคล้ายคลึงกัน ระบบสามารถรันเชลล์โค้ดได้หากพบการจับคู่
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
ซึ่งมีความสำคัญอย่างยิ่งต่อการพัฒนาระบบ T-70
T-70 ได้รับอนุญาตภายใต้ใบอนุญาต MIT
แรงบันดาลใจจากหน่วยทหารราบต่อสู้อัตโนมัติ Cyberdyne Series 70 ("เทอร์มิเนเตอร์")
ข้อมูลเพิ่มเติม: เทอร์มิเนเตอร์ Cyberdyne Series 70