Example #1
0
def delete(request):
    captured = False
    while not captured:
        try:
            if request.method == 'POST':
                if request.POST.get('id'):
                    enrolled_id = request.POST.get('id')
                    obj = Details.objects.get(pk=enrolled_id)
                    os.remove("media/" + str(obj.image))
                    obj.delete()
                    kairos_face.remove_face(subject_id=str(enrolled_id),
                                            gallery_name='a-gallery')
                    messages.add_message(request, messages.SUCCESS,
                                         'Successfully deleted!')
                if request.POST.get('delete'):
                    global remove_gallery_1
                    remove_gallery_1 = kairos_face.remove_gallery('a-gallery')
                    Details.objects.all().delete()
                    messages.add_message(request, messages.SUCCESS,
                                         'Gallery deleted!')
                captured = True
            return render(request, 'delete.html')
        except kairos_face.exceptions.ServiceRequestError:
            messages.add_message(request, messages.ERROR,
                                 'Database is empty! Please enroll details')
            return render(request, 'delete.html')
        except ValueError:
            messages.add_message(request, messages.ERROR,
                                 'Please enter a valid ID')
            return render(request, 'delete.html')
        except ObjectDoesNotExist:
            messages.add_message(
                request, messages.ERROR,
                'Error occured. Either DB is empty or the ID does not exist')
            return render(request, 'delete.html')
Example #2
0
 def initKairos(self):
     # clear current Kairos gallery
     get_galleries_response = kairos_face.get_galleries_names_list()
     if self.targetGallery in get_galleries_response['gallery_ids']:
         kairos_face.remove_gallery(gallery_name=self.targetGallery)
     # initialize gallery with preset images
     if not os.path.exists('image/preset_image'):
         raise Exception
     if not os.path.exists('image/preset_face'):
         os.mkdir('image/preset_face')
     image_paths = glob.glob(os.path.join('image/preset_image/', "*"))
     for image_path in image_paths:
         image_path = image_path.replace("\\", "/")  # Windows compatible
         file_name = image_path.split("/")[2]
         person_name = file_name.split(".")[0]
         img = cv2.imread(image_path, 3)
         gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
         faces = self.faceCascade.detectMultiScale(gray, 1.3, 5)
         # zero or multiple faces detected
         if len(faces) != 1:
             print("Error: " + file_name + " " + str(len(faces)) +
                   " faces detected!\n")
         # one face detected
         else:
             (x, y, w, h) = faces[0]
             crop_img = img[y:y + h, x:x + w]
             # write cropped face image
             crop_img_path = 'image/preset_face/' + file_name
             cv2.imwrite(crop_img_path, crop_img)
             # enroll cropped face images (not preset images)
             print("Enrolling: " + crop_img_path + " => " + person_name +
                   "\n")
             enroll_face_response = kairos_face.enroll_face(
                 file='image/preset_face/' + file_name,
                 subject_id=person_name,
                 gallery_name=self.targetGallery)
             #print(enroll_face_response)
             face_id = enroll_face_response['face_id']
Example #3
0
def clear_faces(galleryName=None):
    try:
        #dict_responJSON = {}
        dict_responJSON = kairos_face.remove_gallery(galleryName)
        print(dict_responJSON)
        """
		status=Complete
		"""
        if dict_responJSON['status'] == 'Complete':
            dict_faces = {'cnt': 1}
        else:
            dict_faces = {'cnt': 0}

        dict_responJSON = dict_faces
    except Exception, err:
        if err.__class__ == kairos_face.exceptions.ServiceRequestError:
            dict_responJSON = {
                'error': err.response_msg['Errors'][0]['Message']
            }
        else:
            dict_responJSON = {'error': str(err)}
Example #4
0
     if 'Errors' in ans:
         print ans['Errors'][0]['Message']
     elif len(ans['images'][0]['candidates']) == 0:
         print "Nobody found! Time to enroll!"
         enr = kairos_face.enroll_face(
             file='image.png',
             subject_id=raw_input("What is your name: "),
             gallery_name='test')
     else:
         print "Hello " + ans['images'][0]['transaction']['subject_id'] + "!"
 except:
     #Runs if gallery not found (database dumped)
     print "Nobody found! Time to enroll!"
     try:
         enr = kairos_face.enroll_face(
             file='image.png',
             subject_id=raw_input("What is your name: "),
             gallery_name='test')
         print enr
     except:
         print "An error occurred. Please try again."
 #Drop database to redo pictures and recognition
 if raw_input("Dump database? (y/n): ") == 'y':
     try:
         kairos_face.remove_gallery('test')
         print "Gallery deleted."
     except:
         print "Gallery does not exist."
 cont = raw_input("Continue? (y/n): ")
 if cont == 'n':
     break
Example #5
0
|\t\taddPeople: {}
|\t\ttestPeople: {}'''.format(  database,
                                remove_database,
                                NumberOfFacesPerPerson,
                                NumberOfPersonsInDB,
                                verbose,
                                chillMode,
                                addPeople,
                                testPeople
                            ))
    print('-----------------------------------------------------------\n')
    #------------------------------------------------------------------------------#

    if remove_database:
        try:
            remove_gallery = kairos_face.remove_gallery(database)
        except Exception as e:
            if verbose:
                print(bcolors.FAIL + "ERROR REMOVE DB: {}".format(e) + bcolors.ENDC)
            else:
                pass

    galleries_list = kairos_face.get_galleries_names_list()
    if verbose:
        print('List of available galleries: {}\n'.format(json.dumps(galleries_list["gallery_ids"])))

    faces, NumberOfFaces = get_faces(verbose)

    peopleDB = None
    testData = []
    #print faces
Example #6
0
def remog(gname):
    '''Takes argument gname=gallery_name to be deleted'''
    #passing gallery_name to be deleted
    remove_gallery = kf.remove_gallery(gname)
Example #7
0
def clearData(galleryName):
    remove_gallery = kairos_face.remove_gallery(galleryName)