Files
zenai-ktc-python/env.example
T
2026-07-24 11:42:18 +07:00

126 lines
3.1 KiB
Plaintext

# =============================================================================
# ZenAI KTC — sack feeder zone counter (ByteTrack + left/right zones)
# Shared config for: counter_live_rknn.py + counter_dashboard.py
# Copy to .env on device: cp env.example .env && nano .env
# =============================================================================
# --- Core paths ---
OUTPUT_DIR=/opt/zenai-ktc-counter
DB_PATH=/opt/zenai-ktc-counter/counter.db
STATE_FILE=/opt/zenai-ktc-counter/current_counter.json
# --- Input source ---
#SOURCE=rtsp://user:pass@192.168.0.100:554/stream1
SOURCE=rtsp://10.38.30.64:8554/my_stream
OPENCV_FFMPEG_CAPTURE_OPTIONS=rtsp_transport;tcp|fflags;nobuffer|flags;low_delay
# --- RKNN model ---
MODEL_PATH=/opt/models/zenai_kac_sukawarna_20260716.rknn
IMGSZ=320
HALF=false
CORE_MASK=1
DEVICE=0
# --- YOLO decoder ---
NUM_CLASSES=4
SCORE_SIGMOID=false
# --- Detection ---
CONF=0.5
# --- ByteTrack tracking ---
TRACK_HIGH_THRESH=0.5
TRACK_LOW_THRESH=0.3
TRACK_MATCH_THRESH=0.7
TRACK_BUFFER=60
TRACK_MIN_HITS=3
# --- Display ---
SITE_NAME=ZenAi
# --- Object class names ---
CAMERA_NAME=ZenAi
OBJECT_LABEL=karung
CLASS_OBJECT=karung
OBJECT_CLASS_ID=0
# Feeder names used in journal count logs:
# Total karung di kandang_bawah_feeder_kanan: 5
FEEDER_LEFT_NAME=kandang_bawah_feeder_kiri
FEEDER_RIGHT_NAME=kandang_bawah_feeder_kanan
# Verbose tracking debug (inherit / dup / cooldown / per-frame dets)
DEBUG_TRACKING=false
# --- Feeder zones (left / right) ---
# Rectangular zones as fractions of frame width/height.
# Absolute pixel overrides: ZONE_LEFT_X1, ZONE_LEFT_Y1, ZONE_LEFT_X2, ZONE_LEFT_Y2
# (and the matching ZONE_RIGHT_*). Absolute values win when set.
#
# A sack is counted once when its centroid ENTERS a zone.
# LEFT zone → left feeder
# RIGHT zone → right feeder
ZONE_LEFT_X1_FRAC=0.02
ZONE_LEFT_Y1_FRAC=0.10
ZONE_LEFT_X2_FRAC=0.440
ZONE_LEFT_Y2_FRAC=1.00
ZONE_RIGHT_X1_FRAC=0.490
ZONE_RIGHT_Y1_FRAC=0.10
ZONE_RIGHT_X2_FRAC=0.98
ZONE_RIGHT_Y2_FRAC=1.00
# --- Counting day management ---
DAILY_CUTOFF_TIME=17:00
CUTOFF_TIME=17:00
# --- CSV export ---
EXPORT_CSV=false
CROSS_CSV=/tmp/ktc_crossings.csv
# --- Rate / performance ---
MOTION_DETECTION_ENABLED=true
MOTION_THRESHOLD=5.0
RATE_WINDOW_SEC=60
WARMUP_FRAMES=30
RECONNECT_DELAY_SEC=3
MAX_RECONNECT_ATTEMPTS=0
TRACKED_PRUNE_SEC=300
# --- ID-switch counting guards ---
DEDUP_FRAMES=15
DEDUP_PX=60
INHERIT_SEC=1.0
INHERIT_PX=60
# --- Feeder cooldown (seconds) ---
# After a sack is counted on a feeder, ignore further counts on that same feeder
# for this many seconds. 0 = disabled.
ZONE_COOLDOWN_LEFT_SEC=15
ZONE_COOLDOWN_RIGHT_SEC=15
# --- Video recording ---
RECORD_VIDEO=false
VIDEO_SEGMENT_SEC=3600
OUTPUT_FPS=15
# --- Live stream snapshot ---
LIVE_STREAM_ENABLED=true
LIVE_STREAM_FRAME_PATH=/dev/shm/zenai-ktc-counter/live_frame.jpg
LIVE_STREAM_QUALITY=75
LIVE_STREAM_EVERY_N=2
# --- Dashboard ---
SECRET_KEY=change-me-in-production
DASHBOARD_HOST=0.0.0.0
DASHBOARD_PORT=5000
FLASK_DEBUG=false
CURRENT_COUNTER_PATH=/tmp/ktc_current_counter.json
SAVE_CROSS_SNAPSHOT=true
CROSS_SNAPSHOT_DIR=/opt/zenai-ktc-snaps/snapshots
CROSS_SNAPSHOT_CLEANUP_SEC=3600
CROSS_SNAPSHOT_MAX_AGE_DAYS=7