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()