def __init__(self, **config): super().__init__(**config) self._merged_labelmap = { **load_labels(config.get("labelmap_path", "/labelmap.txt")), **config.get("labelmap", {}), } cmap = plt.cm.get_cmap("tab10", len(self._merged_labelmap.keys())) self._colormap = {} for key, val in self._merged_labelmap.items(): self._colormap[val] = tuple(int(round(255 * c)) for c in cmap(key)[:3])
import threading import queue import copy import numpy as np from collections import Counter, defaultdict import itertools import pyarrow.plasma as plasma import matplotlib.pyplot as plt from frigate.util import draw_box_with_label, PlasmaFrameManager from frigate.edgetpu import load_labels from typing import Callable, Dict from statistics import mean, median PATH_TO_LABELS = '/labelmap.txt' LABELS = load_labels(PATH_TO_LABELS) cmap = plt.cm.get_cmap('tab10', len(LABELS.keys())) COLOR_MAP = {} for key, val in LABELS.items(): COLOR_MAP[val] = tuple(int(round(255 * c)) for c in cmap(key)[:3]) def zone_filtered(obj, object_config): object_name = obj['label'] if object_name in object_config: obj_settings = object_config[object_name] # if the min area is larger than the # detected object, don't add it to detected objects
import os from statistics import mean import multiprocessing as mp import numpy as np import datetime from frigate.edgetpu import LocalObjectDetector, EdgeTPUProcess, RemoteObjectDetector, load_labels my_frame = np.expand_dims(np.full((300, 300, 3), 1, np.uint8), axis=0) labels = load_labels('/labelmap.txt') ###### # Minimal same process runner ###### # object_detector = ObjectDetector() # tensor_input = np.expand_dims(np.full((300,300,3), 0, np.uint8), axis=0) # start = datetime.datetime.now().timestamp() # frame_times = [] # for x in range(0, 1000): # start_frame = datetime.datetime.now().timestamp() # tensor_input[:] = my_frame # detections = object_detector.detect_raw(tensor_input) # parsed_detections = [] # for d in detections: # if d[1] < 0.4: # break # parsed_detections.append(( # labels[int(d[0])], # float(d[1]),