AutoAttendance / setup.py
mahfuj735's picture
Upload folder using huggingface_hub
a420b85 verified
"""
Quick Start Guide - Run this first!
Sets up the project and guides you through initial steps
"""
import os
import sys
import subprocess
def check_dependencies():
"""Check if all required packages are installed"""
print("=" * 60)
print("CHECKING DEPENDENCIES")
print("=" * 60)
required_packages = {
'cv2': 'opencv-python',
'numpy': 'numpy',
'pandas': 'pandas',
'PIL': 'Pillow',
'dotenv': 'python-dotenv',
'insightface': 'insightface',
'onnxruntime': 'onnxruntime',
'fastapi': 'fastapi',
'uvicorn': 'uvicorn'
}
missing = []
for import_name, package_name in required_packages.items():
try:
__import__(import_name)
print(f"βœ“ {package_name} is installed")
except ImportError:
print(f"βœ— {package_name} is NOT installed")
missing.append(package_name)
if missing:
print("\nInstalling missing packages...")
cmd = f"pip install {' '.join(missing)}"
subprocess.run(cmd, shell=True)
print("Installation complete!")
return len(missing) == 0
def setup_directories():
"""Create necessary directories"""
print("\n" + "=" * 60)
print("SETTING UP DIRECTORIES")
print("=" * 60)
directories = [
'data',
'data/faces',
'data/training',
'data/attendance',
'data/unknown_faces',
'models'
]
for directory in directories:
os.makedirs(directory, exist_ok=True)
print(f"βœ“ Created/verified: {directory}")
def setup_env_file():
"""Setup .env file"""
print("\n" + "=" * 60)
print("SETTING UP ENVIRONMENT FILE")
print("=" * 60)
if os.path.exists('.env'):
print("βœ“ .env file already exists")
return
if os.path.exists('.env.example'):
with open('.env.example', 'r') as f:
content = f.read()
with open('.env', 'w') as f:
f.write(content)
print("βœ“ Created .env from template")
else:
print("ℹ️ .env.example not found (not required)")
def show_next_steps():
"""Display next steps"""
print("\n" + "=" * 60)
print("NEXT STEPS")
print("=" * 60)
print("""
1. COLLECT TRAINING DATA:
python data_collection.py
- Enter person's name when prompted
- Position face in front of camera
- Press 'c' to capture, 'q' to finish
- Collect at least 80 samples per person
2. TRAIN THE MODEL:
python train_model.py
- Takes a few minutes depending on data size
- Registers InsightFace embeddings in models/attendance.sqlite3
3. RUN THE ATTENDANCE SYSTEM:
python main.py
- Press 'q' to quit
- Press 's' to export attendance report
4. CHECK RESULTS:
- Attendance records saved in: data/attendance/
- Excel file: data/attendance/attendance.xlsx
- Log file: attendance.log
TIPS:
- Collect faces at different angles and lighting
- Use a well-lit environment
- Ensure camera is working before starting
- Position face 20-50cm from camera for best results
""")
def test_camera():
"""Test if camera is working"""
print("\n" + "=" * 60)
print("TESTING CAMERA")
print("=" * 60)
try:
import cv2
cap = cv2.VideoCapture(0)
if cap.isOpened():
print("βœ“ Camera is working!")
ret, frame = cap.read()
if ret:
print(f"βœ“ Frame captured: {frame.shape}")
cap.release()
else:
print("βœ— Camera not detected!")
print(" Try changing CAMERA_ID in config.py")
except Exception as e:
print(f"βœ— Error testing camera: {e}")
def main():
"""Main setup wizard"""
print("\n")
print("β•”" + "=" * 58 + "β•—")
print("β•‘" + " " * 58 + "β•‘")
print("β•‘" + " FACE RECOGNITION ATTENDANCE SYSTEM - SETUP WIZARD".center(58) + "β•‘")
print("β•‘" + " " * 58 + "β•‘")
print("β•š" + "=" * 58 + "╝")
# Check dependencies
if not check_dependencies():
print("\n⚠️ Some dependencies could not be installed")
print("Please run: pip install -r requirements.txt")
sys.exit(1)
# Setup directories
setup_directories()
# Setup environment
setup_env_file()
# Test camera
test_camera()
# Show next steps
show_next_steps()
print("\n" + "=" * 60)
print("SETUP COMPLETE! βœ“")
print("=" * 60)
print("\nFor detailed information, see SETUP_GUIDE.md")
if __name__ == "__main__":
main()