From d8c8ed05e8e8edf408f70b31d958089871835a6d Mon Sep 17 00:00:00 2001 From: Emiliana <38952746+emilianavt@users.noreply.github.com> Date: Sat, 26 Sep 2020 23:49:54 +0200 Subject: [PATCH] Added `--benchmark` option and disabled gaze tracking for models with negative IDs. --- facetracker.py | 24 +++++++++++++++++++++--- models/benchmark.bin | Bin 0 -> 84833 bytes tracker.py | 16 ++++++++++------ 3 files changed, 31 insertions(+), 9 deletions(-) create mode 100644 models/benchmark.bin diff --git a/facetracker.py b/facetracker.py index 3fa15a4..ed4c7e4 100644 --- a/facetracker.py +++ b/facetracker.py @@ -10,7 +10,7 @@ parser.add_argument("-i", "--ip", help="Set IP address for sending tracking data parser.add_argument("-p", "--port", type=int, help="Set port for sending tracking data", default=11573) if os.name == 'nt': parser.add_argument("-l", "--list-cameras", type=int, help="Set this to 1 to list the available cameras and quit, set this to 2 or higher to output only the names", default=0) - parser.add_argument("-a", "--list-dcaps", type=int, help="Set this to -1 to list all cameras and their available capabilities, set this to a camera id to list that camera's capabilities.", default=None) + parser.add_argument("-a", "--list-dcaps", type=int, help="Set this to -1 to list all cameras and their available capabilities, set this to a camera id to list that camera's capabilities", default=None) parser.add_argument("-W", "--width", type=int, help="Set camera and raw RGB width", default=640) parser.add_argument("-H", "--height", type=int, help="Set camera and raw RGB height", default=360) parser.add_argument("-F", "--fps", type=int, help="Set camera frames per second", default=24) @@ -43,6 +43,7 @@ parser.add_argument("--gaze-tracking", type=int, help="When set to 1, experiment parser.add_argument("--face-id-offset", type=int, help="When set, this offset is added to all face ids, which can be useful for mixing tracking data from multiple network sources", default=0) parser.add_argument("--repeat-video", type=int, help="When set to 1 and a video file was specified with -c, the tracker will loop the video until interrupted", default=0) parser.add_argument("--dump-points", type=str, help="When set to a filename, the current face 3D points are made symmetric and dumped to the given file when quitting the visualization with the \"q\" key", default="") +parser.add_argument("--benchmark", type=int, help="When set to 1, the different tracking models are benchmarked, starting with the best and ending with the fastest and with gaze tracking disabled for models with negative IDs", default=0) if os.name == 'nt': parser.add_argument("--use-dshowcapture", type=int, help="When set to 1, libdshowcapture will be used for video input instead of OpenCV", default=1) args = parser.parse_args() @@ -106,8 +107,25 @@ import time import cv2 import socket import struct +import json from input_reader import InputReader, VideoReader, DShowCaptureReader, try_int -from tracker import Tracker +from tracker import Tracker, get_model_base_path + +if args.benchmark > 0: + model_base_path = get_model_base_path(args.model_dir) + im = cv2.imread(os.path.join(model_base_path, "benchmark.bin"), cv2.IMREAD_COLOR) + results = [] + for model_type in [3, 2, 1, 0, -1]: + tracker = Tracker(224, 224, threshold=0.1, max_threads=args.max_threads, max_faces=1, discard_after=0, scan_every=0, silent=True, model_type=model_type, model_dir=args.model_dir, no_gaze=(model_type < 0), detection_threshold=0.1, use_retinaface=0, max_feature_updates=900, static_model=True if args.no_3d_adapt == 1 else False) + tracker.detected = 1 + tracker.faces = [(0, 0, 224, 224)] + total = 0.0 + for i in range(100): + start = time.perf_counter() + r = tracker.predict(im) + total += time.perf_counter() - start + print(1. / (total / 100.)) + sys.exit(0) target_ip = args.ip target_port = args.port @@ -208,7 +226,7 @@ try: first = False height, width, channels = frame.shape sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - tracker = Tracker(width, height, threshold=args.threshold, max_threads=args.max_threads, max_faces=args.faces, discard_after=args.discard_after, scan_every=args.scan_every, silent=False if args.silent == 0 else True, model_type=args.model, model_dir=args.model_dir, no_gaze=False if args.gaze_tracking != 0 else True, detection_threshold=args.detection_threshold, use_retinaface=args.scan_retinaface, max_feature_updates=args.max_feature_updates, static_model=True if args.no_3d_adapt == 1 else False) + tracker = Tracker(width, height, threshold=args.threshold, max_threads=args.max_threads, max_faces=args.faces, discard_after=args.discard_after, scan_every=args.scan_every, silent=False if args.silent == 0 else True, model_type=args.model, model_dir=args.model_dir, no_gaze=False if args.gaze_tracking != 0 and args.model >= 0 else True, detection_threshold=args.detection_threshold, use_retinaface=args.scan_retinaface, max_feature_updates=args.max_feature_updates, static_model=True if args.no_3d_adapt == 1 else False) if not args.video_out is None: out = cv2.VideoWriter(args.video_out, cv2.VideoWriter_fourcc('F','F','V','1'), args.video_fps, (width * args.video_scale, height * args.video_scale)) diff --git a/models/benchmark.bin b/models/benchmark.bin new file mode 100644 index 0000000000000000000000000000000000000000..04fb8189ecdfa56774de007d2694f1b3fd94156b GIT binary patch literal 84833 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%0DpAKLb_oWamszVt}iVifv8 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 literal 0 HcmV?d00001 diff --git a/tracker.py b/tracker.py index 0a8d296..edbe8a4 100644 --- a/tracker.py +++ b/tracker.py @@ -484,6 +484,15 @@ class FaceInfo(): self.eye_blink.append(1 - min(max(0, -self.current_features["eye_r"]), 1)) self.eye_blink.append(1 - min(max(0, -self.current_features["eye_l"]), 1)) +def get_model_base_path(model_dir): + model_base_path = resolve(os.path.join("models")) + if model_dir is None: + if not os.path.exists(model_base_path): + model_base_path = resolve(os.path.join("..", "models")) + else: + model_base_path = model_dir + return model_base_path + class Tracker(): def __init__(self, width, height, model_type=3, detection_threshold=0.6, threshold=None, max_faces=1, discard_after=5, scan_every=3, bbox_growth=0.0, max_threads=4, silent=False, model_dir=None, no_gaze=False, use_retinaface=False, max_feature_updates=0, static_model=False, feature_level=2): options = onnxruntime.SessionOptions() @@ -502,12 +511,7 @@ class Tracker(): model = "lm_modelT_opt.onnx" if model_type >= 0: model = self.models[self.model_type] - model_base_path = resolve(os.path.join("models")) - if model_dir is None: - if not os.path.exists(model_base_path): - model_base_path = resolve(os.path.join("..", "models")) - else: - model_base_path = model_dir + model_base_path = get_model_base_path(model_dir) if threshold is None: threshold = 0.6