Spaces:
Sleeping
Sleeping
| import os | |
| # Main Config | |
| APP_CONFIG = { | |
| "YOLO_MODEL_PATH" : "./models/yolov8n.pt", | |
| "VOCAL_MODEL_PATH" : "./models/Chicken_CNN_Disease_Detection_Model.pth", | |
| "AUDIO_ANALYSIS_DURATION_S" : 30, | |
| "AUDIO_ANALYSIS_INTERVAL_S" : 60 | |
| } | |
| # Processing Config | |
| TUNING = { | |
| # How Video Processed | |
| "YOLO_IMG_SIZE" : 512, | |
| "DETECTION_INTERVAL_FRAMES" : 24, | |
| "FRAME_READER_BUFFER_SIZE" : 5, | |
| "FRAME_READER_FPS" : 15, | |
| # How Streaming Processed | |
| "WEBSOCKET_TARGET_FPS" : 8, | |
| "WEBSOCKET_JPEG_QUALITY" : 40, # JPEG quality ( 0-100 ) | |
| "WEBSOCKET_DISPLAY_MAX_WIDTH" : 640 | |
| } | |
| # Inactivity Config | |
| INACTIVITY_CFG = { | |
| "EMA_ALPHA" : 0.2, | |
| "ENTER_THRESH_NORM_SPEED" : 0.02, | |
| "EXIT_THRESH_NORM_SPEED" : 0.05, | |
| "MIN_DURATION_S" : 120, # (7200) 2 Hours inactive of an object before flag as inactive | |
| "MAX_UNSEEN_GAP_S" : 1.5 | |
| } | |
| # Density Clustering Config | |
| DENSITY_DBSCAN_CFG = { | |
| "EPS_PX" : 60.0, # Max pixels between to object to be called neighbors | |
| "MIN_NEIGHBORS" : 4 # Min objects required to form a dense cluster | |
| } | |
| # Database Config | |
| DATA_STORAGE = { | |
| "SQLITE_DB_PATH": "/tmp/data/metrics.sqlite", | |
| "DB_RETENTION_DAYS": 1, # For Prototype only | |
| "DB_WRITE_BUFFER_SIZE": 100, | |
| "DB_WRITE_INTERVAL_S": 5, | |
| } | |
| # Visual Config | |
| VISUALS = { | |
| "COLOR_DETECTED" : (0, 255, 0), # Green | |
| "COLOR_DENSE" : (0, 165, 255), # Orange | |
| "COLOR_INACTIVE": (0, 0, 255), # Red | |
| } | |
| # Notifier Config | |
| NOTIFIER = { | |
| "ENABLE_TELEGRAM_NOTIFICATIONS" : os.environ.get("ENABLE_TELEGRAM_NOTIFICATIONS", "n").lower().startswith("y"), | |
| "SENSOR_DATA_JSON_PATH" : "/tmp/data/sensor_data.json", | |
| "TELEGRAM_BOT_TOKEN": os.environ.get("TELEGRAM_BOT_TOKEN", ""), | |
| "TELEGRAM_CHAT_ID": os.environ.get("TELEGRAM_CHAT_ID", ""), | |
| "INACTIVE_PERCENTAGE_THRESHOLD": 0.15, # The percentage threshold of inactive objects | |
| "UNHEALTHY_HISTORY_LENGTH": 5, # The number of recent data points to be stored in the history | |
| "UNHEALTHY_ALERT_THRESHOLD": 5, # The number of consecutive "unhealthy" statuses required within the history | |
| "DENSITY_COUNT_THRESHOLD": 5 # The number of Unique Density before alret was sent | |
| } |