mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-26 19:06:11 +01:00
9df5927ac5
* zoom in/out in search for lost objects * predicted box should not be empty * clean up and update zoom logic * only zoom if enabled * more cleanup * check for valid velocity when zooming * only try absolute zoom in if obj area has changed * zoom logic * don't enqueue lost object zoom if already at limit * don't disable motion boxes during ptz moves * velocity threshold based on move coefficients * fix area zoom logic * disable debug zoom * don't process objects if ptz moving * recalc with exponent * change exponent * remove lost object zooming * increase distance threshold for stationary object * increase distance threshold constant * only zoom out if nonzero * camera name in all debug logging * add camera name to debug logging * camera variable name consistency * update calibration behavior and docs * docs and better zooming * more sensible target values * docs wording * fix velocity threshold variable * zooming tweaks and remove iou for current objects * debug and docs * get valid velocity * include zero * additional debug statements * add zoom hysteresis * zoom on initial move if relative * only update target box if we actually zoom * merge dev * use getattr instead of get * increase distance threshold * reverse logic * get_camera_status after preset move to store zoom * final tweaks and docs * use constants and catch possible debug exception * adjust zoom factor exponent * don't run motion estimation when calling preset * adjust dimension threshold * use numpy for velocity estimate calcs * more numpy conversion * fix numpy shapes * numpy zeros dimension * more zoom out conditions * fix velocity bug * ensure init has been called in debug view * ensure onvif init if enabling by mqtt * change default hysteresis values * recalc relative zoom value * zoom out value * try to zoom when object isn't moving * try zoom when tracked object is not moving * don't try to zoom every time * negate zoom out condition when needed * hysteresis constants for absolute zooming * update zoom conditions * don't recalc target box on zoom only * zoom out if above area threshold * don't print zooming debug for stationary obj * revamp zooming to use area moving average * zooming tweaks and expose property * limit zoom with max target box * use calibration to determine zoom levels * zoom logic fix * docs * add tapo c200 camera * fix initial absolute zoom * small zoom logic fix * better invalid velocity checks * fix test * really fix test this time
70 lines
1.8 KiB
Python
70 lines
1.8 KiB
Python
CONFIG_DIR = "/config"
|
|
DEFAULT_DB_PATH = f"{CONFIG_DIR}/frigate.db"
|
|
MODEL_CACHE_DIR = f"{CONFIG_DIR}/model_cache"
|
|
BASE_DIR = "/media/frigate"
|
|
CLIPS_DIR = f"{BASE_DIR}/clips"
|
|
RECORD_DIR = f"{BASE_DIR}/recordings"
|
|
EXPORT_DIR = f"{BASE_DIR}/exports"
|
|
BIRDSEYE_PIPE = "/tmp/cache/birdseye"
|
|
CACHE_DIR = "/tmp/cache"
|
|
YAML_EXT = (".yaml", ".yml")
|
|
FRIGATE_LOCALHOST = "http://127.0.0.1:5000"
|
|
PLUS_ENV_VAR = "PLUS_API_KEY"
|
|
PLUS_API_HOST = "https://api.frigate.video"
|
|
|
|
# Attribute & Object Consts
|
|
|
|
ATTRIBUTE_LABEL_MAP = {
|
|
"person": ["face", "amazon"],
|
|
"car": ["ups", "fedex", "amazon", "license_plate"],
|
|
}
|
|
ALL_ATTRIBUTE_LABELS = [
|
|
item for sublist in ATTRIBUTE_LABEL_MAP.values() for item in sublist
|
|
]
|
|
LABEL_CONSOLIDATION_MAP = {
|
|
"car": 0.8,
|
|
"face": 0.5,
|
|
}
|
|
LABEL_CONSOLIDATION_DEFAULT = 0.9
|
|
|
|
# Audio Consts
|
|
|
|
AUDIO_DURATION = 0.975
|
|
AUDIO_FORMAT = "s16le"
|
|
AUDIO_MAX_BIT_RANGE = 32768.0
|
|
AUDIO_SAMPLE_RATE = 16000
|
|
AUDIO_MIN_CONFIDENCE = 0.5
|
|
|
|
# Regex Consts
|
|
|
|
REGEX_CAMERA_NAME = r"^[a-zA-Z0-9_-]+$"
|
|
REGEX_RTSP_CAMERA_USER_PASS = r":\/\/[a-zA-Z0-9_-]+:[\S]+@"
|
|
REGEX_HTTP_CAMERA_USER_PASS = r"user=[a-zA-Z0-9_-]+&password=[\S]+"
|
|
|
|
# Known Driver Names
|
|
|
|
DRIVER_ENV_VAR = "LIBVA_DRIVER_NAME"
|
|
DRIVER_AMD = "radeonsi"
|
|
DRIVER_INTEL_i965 = "i965"
|
|
DRIVER_INTEL_iHD = "iHD"
|
|
|
|
# Record Values
|
|
|
|
MAX_SEGMENT_DURATION = 600
|
|
MAX_PLAYLIST_SECONDS = 7200 # support 2 hour segments for a single playlist to account for cameras with inconsistent segment times
|
|
|
|
# Internal Comms Topics
|
|
|
|
INSERT_MANY_RECORDINGS = "insert_many_recordings"
|
|
REQUEST_REGION_GRID = "request_region_grid"
|
|
|
|
# Autotracking
|
|
|
|
AUTOTRACKING_MAX_AREA_RATIO = 0.5
|
|
AUTOTRACKING_MOTION_MIN_DISTANCE = 20
|
|
AUTOTRACKING_MOTION_MAX_POINTS = 500
|
|
AUTOTRACKING_MAX_MOVE_METRICS = 500
|
|
AUTOTRACKING_ZOOM_OUT_HYSTERESIS = 1.2
|
|
AUTOTRACKING_ZOOM_IN_HYSTERESIS = 0.9
|
|
AUTOTRACKING_ZOOM_EDGE_THRESHOLD = 0.05
|