Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: cannot import name 'test' from 'test' #12

Open
Shreyas-Shetty-02 opened this issue Jan 14, 2024 · 2 comments
Open

Error: cannot import name 'test' from 'test' #12

Shreyas-Shetty-02 opened this issue Jan 14, 2024 · 2 comments

Comments

@Shreyas-Shetty-02
Copy link

error :from test import test
ImportError: cannot import name 'test' from 'test'

import os.path
import datetime
import pickle

import tkinter as tk
import cv2
from PIL import Image, ImageTk
import face_recognition

import util
from test import test
from pathlib import Path

class App:
def init(self):
self.main_window = tk.Tk()
self.main_window.geometry("1200x520+350+100")

    self.login_button_main_window = util.get_button(self.main_window, 'login', 'green', self.login)
    self.login_button_main_window.place(x=750, y=200)

    self.logout_button_main_window = util.get_button(self.main_window, 'logout', 'red', self.logout)
    self.logout_button_main_window.place(x=750, y=300)

    self.register_new_user_button_main_window = util.get_button(self.main_window, 'register new user', 'gray',
                                                                self.register_new_user, fg='black')
    self.register_new_user_button_main_window.place(x=750, y=400)

    self.webcam_label = util.get_img_label(self.main_window)
    self.webcam_label.place(x=10, y=0, width=700, height=500)

    self.add_webcam(self.webcam_label)

    self.db_dir = './db'
    if not os.path.exists(self.db_dir):
        os.mkdir(self.db_dir)

    self.log_path = './log.txt'

def add_webcam(self, label):
    if 'cap' not in self.__dict__:
        self.cap = cv2.VideoCapture(0)

    self._label = label
    self.process_webcam()

def process_webcam(self):
    ret, frame = self.cap.read()

    self.most_recent_capture_arr = frame
    img_ = cv2.cvtColor(self.most_recent_capture_arr, cv2.COLOR_BGR2RGB)
    self.most_recent_capture_pil = Image.fromarray(img_)
    imgtk = ImageTk.PhotoImage(image=self.most_recent_capture_pil)
    self._label.imgtk = imgtk
    self._label.configure(image=imgtk)

    self._label.after(20, self.process_webcam)

def login(self):

    label = test(
            image=self.most_recent_capture_arr,
            model_dir='S:\Youtube python\new\spoof',
            device_id=0
            )

    if label == 1:

        name = util.recognize(self.most_recent_capture_arr, self.db_dir)

        if name in ['unknown_person', 'no_persons_found']:
            util.msg_box('Ups...', 'Unknown user. Please register new user or try again.')
        else:
            util.msg_box('Welcome back !', 'Welcome, {}.'.format(name))
            with open(self.log_path, 'a') as f:
                f.write('{},{},in\n'.format(name, datetime.datetime.now()))
                f.close()

    else:
        util.msg_box('Hey, you are a spoofer!', 'You are fake !')

def logout(self):

    label = test(
            image=self.most_recent_capture_arr,
            model_dir='S:\Youtube python\new\spoof',
            device_id=0
            )

    if label == 1:

        name = util.recognize(self.most_recent_capture_arr, self.db_dir)

        if name in ['unknown_person', 'no_persons_found']:
            util.msg_box('Ups...', 'Unknown user. Please register new user or try again.')
        else:
            util.msg_box('Hasta la vista !', 'Goodbye, {}.'.format(name))
            with open(self.log_path, 'a') as f:
                f.write('{},{},out\n'.format(name, datetime.datetime.now()))
                f.close()

    else:
        util.msg_box('Hey, you are a spoofer!', 'You are fake !')


def register_new_user(self):
    self.register_new_user_window = tk.Toplevel(self.main_window)
    self.register_new_user_window.geometry("1200x520+370+120")

    self.accept_button_register_new_user_window = util.get_button(self.register_new_user_window, 'Accept', 'green', self.accept_register_new_user)
    self.accept_button_register_new_user_window.place(x=750, y=300)

    self.try_again_button_register_new_user_window = util.get_button(self.register_new_user_window, 'Try again', 'red', self.try_again_register_new_user)
    self.try_again_button_register_new_user_window.place(x=750, y=400)

    self.capture_label = util.get_img_label(self.register_new_user_window)
    self.capture_label.place(x=10, y=0, width=700, height=500)

    self.add_img_to_label(self.capture_label)

    self.entry_text_register_new_user = util.get_entry_text(self.register_new_user_window)
    self.entry_text_register_new_user.place(x=750, y=150)

    self.text_label_register_new_user = util.get_text_label(self.register_new_user_window, 'Please, \ninput username:')
    self.text_label_register_new_user.place(x=750, y=70)

def try_again_register_new_user(self):
    self.register_new_user_window.destroy()

def add_img_to_label(self, label):
    imgtk = ImageTk.PhotoImage(image=self.most_recent_capture_pil)
    label.imgtk = imgtk
    label.configure(image=imgtk)

    self.register_new_user_capture = self.most_recent_capture_arr.copy()

def start(self):
    self.main_window.mainloop()

def accept_register_new_user(self):
    name = self.entry_text_register_new_user.get(1.0, "end-1c")

    embeddings = face_recognition.face_encodings(self.register_new_user_capture)[0]

    file = open(os.path.join(self.db_dir, '{}.pickle'.format(name)), 'wb')
    pickle.dump(embeddings, file)

    util.msg_box('Success!', 'User was registered successfully !')

    self.register_new_user_window.destroy()

if name == "main":
app = App()
app.start()

Please help me with this urgently
This is my graduation project please help

@computervisioneng
Copy link
Owner

Follow the instructions in the readme file for the spoofing feature.

@jojomaquiling
Copy link

you can find the test file on the anti-spoofing link that was given on the README file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants