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()
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()
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)
def __init__(self, cmd_args): super(AccessFaceVisionImage, self).__init__(cmd_args) self.face_detector = FaceDetector(cmd_args, None, None, log_que, cmd_args.log, kill_app, is_sub_proc=False) self.face_encoder = FaceEncoder(cmd_args, None, None, log_que,cmd_args.log,kill_app, is_sub_proc=False) self.face_recogniser = CosineSimFaceRecogniser(cmd_args, None, None, self.fg_manager, log_que, cmd_args.log, kill_app, is_sub_proc=False)