def test_face_recogniser_pipeline():
    logger.info('Starting Face Recogniser Pipeline test')
    cmd_args = create_parser()
    camera_out_que = Queue()
    face_detector_out_que = Queue()
    face_encoder_out_que = Queue()
    face_recogniser_out_que = Queue()

    kill_app = Value('i', 0)

    camera = Camera(cmd_args,
                    camera_out_que,
                    log_que,
                    LOG_LEVEL,
                    kill_app,
                    draw_frames=False)
    face_detector = FaceDetector(cmd_args,
                                 camera_out_que,
                                 face_detector_out_que,
                                 log_que,
                                 LOG_LEVEL,
                                 kill_app,
                                 is_sub_proc=True)
    face_encoder = FaceEncoder(cmd_args,
                               face_detector_out_que,
                               face_encoder_out_que,
                               log_que,
                               LOG_LEVEL,
                               kill_app,
                               is_sub_proc=True)
    face_recogniser = CosineSimFaceRecogniser(cmd_args,
                                              face_encoder_out_que,
                                              face_recogniser_out_que,
                                              log_que,
                                              LOG_LEVEL,
                                              kill_app,
                                              is_sub_proc=True)
    display = Display(cmd_args,
                      face_recogniser_out_que,
                      log_que,
                      LOG_LEVEL,
                      kill_app,
                      is_sub_proc=True)

    display.start()
    face_recogniser.start()
    face_encoder.start()
    face_detector.start()
    camera.start()

    sleep(60)

    camera.stop()
    face_detector.stop()
    face_encoder.stop()
    face_recogniser.stop()
    display.stop()

    logger.info('Face Recogniser Pipeline test completed')
    que_listener.stop()
class AccessFaceVisionVideo(AccessFaceVision):

    def __init__(self, cmd_args):
        super(AccessFaceVisionVideo, self).__init__(cmd_args)
        self.camera_out_que = Queue()
        self.face_detector_out_que = Queue()
        self.face_encoder_out_que = Queue()
        self.face_recogniser_out_que = Queue()

        self.camera = Camera(cmd_args, self.camera_out_que, log_que, cmd_args.log, kill_app, draw_frames=False)
        self.face_detector = FaceDetector(cmd_args, self.camera_out_que, self.face_detector_out_que, log_que, cmd_args.log, kill_app, is_sub_proc=True)
        self.face_encoder = FaceEncoder(cmd_args, self.face_detector_out_que, self.face_encoder_out_que, log_que, cmd_args.log,kill_app, is_sub_proc=True)
        self.face_recogniser = CosineSimFaceRecogniser(cmd_args, self.face_encoder_out_que,
                                                       self.face_recogniser_out_que, None, log_que, cmd_args.log, kill_app, is_sub_proc=True)
        self.display = Display(cmd_args,self.face_recogniser_out_que, log_que, cmd_args.log, kill_app, is_sub_proc=True)

    def start(self):
        self.display.start()
        self.face_recogniser.start()
        self.face_encoder.start()
        self.face_detector.start()
        self.camera.start()

    def stop(self):
        self.camera.stop()
        self.face_detector.stop()
        self.face_encoder.stop()
        self.face_recogniser.stop()
        self.display.stop()
Exemple #3
0
def train_face_recognition_model(cmd_args, logger, log_que):

    kill_app = Value('i', 0)
    camera_out_que = Queue()
    detector_out_que = Queue()
    encoder_out_que = Queue()

    dir_reader = ImageReader(cmd_args, camera_out_que, log_que, 'info',
                             kill_app, True)
    face_detector = FaceDetector(cmd_args, camera_out_que, detector_out_que,
                                 log_que, 'info', kill_app, True)
    face_encoder = FaceEncoder(cmd_args, detector_out_que, encoder_out_que,
                               log_que, 'info', kill_app, True)
    embed_gen = EmbeddingGenerator(cmd_args, encoder_out_que, log_que, 'info',
                                   kill_app, True)

    face_detector.start()
    face_encoder.start()
    embed_gen.start()
    dir_reader.start()

    while kill_app.value != 1:
        sleep(0.2)