init: project skeleton with pyproject.toml, config, tracker.yaml, README

This commit is contained in:
jetson committed 2026-09-16 13:12:59 +07:00
1 parent 43a959d0b0
commit 7fb017488c
7 files changed
+124

No files matched your search

+13
View File
@@ -0,0 +1,13 @@
# Video processing
UPLOAD_DIR=./uploads
OUTPUT_DIR=./output
MODELS_DIR=./models
# Web UI
WEB_HOST=0.0.0.0
WEB_PORT=9000
SECRET_KEY=change-me
# Detection defaults
SACK_CONF=0.4
TRUCK_CONF=0.5
+37
View File
@@ -0,0 +1,37 @@
# Python
__pycache__/
*.py[cod]
*.so
env/
venv/
.venv/
# Environment & state
.env
*.db
# Media & outputs (gitignored per global constraints)
*.mp4
*.avi
*.mkv
*.jpg
*.jpeg
*.png
output/
uploads/
# TensorRT engines are Jetson build artifacts — rebuildable
*.engine
# Model weights are reused from karung_counter_semarang and stay local
models/
# Test artifacts
.pytest_cache/
.coverage
# IDE & OS
.idea/
.vscode/
.DS_Store
Thumbs.db
+21
View File
@@ -0,0 +1,21 @@
# Feedmill Recounter
AI video analysis tool for counting objects (sacks, boxes) in feedmill videos.
Built on top of [karung_counter_semarang](https://git.proit.id/andrew/karung-counting-feedmill-semarang).
## Features
- **CLI**: Process videos from the command line with any model + class filter
- **Web UI**: Upload videos, select models, download annotated output (port 9000)
- **Multiple Models**: Run multiple model configurations on the same video for comparison
- **Class Filtering**: Choose which classes to count (sack, box, truck)
- **Annotated Output**: Download MP4 videos with detection overlays for human review
## Quick Start
```bash
pip install -e ".[dev]"
recounter --list-models --models-dir ./models
recounter-web
# Open http://localhost:9000
```
+26
View File
@@ -0,0 +1,26 @@
# Custom FastTrack config tuned for sack counting:
# - track_buffer=60: hold lost tracks for 60 frames (~2.4s at 25fps)
# to survive worker occlusion
# - new_track_thresh=0.3: harder to spawn duplicate IDs
# - track_low_thresh=0.05: recover faint detections behind workers
# - active_occ_to_lost_thresh=15: tolerate 15 occluded frames
# - occ_reappear_window=60: re-find tracks after long occlusion
# - enlarge_bbox_occ=1.15: widen search region during occlusion
tracker_type: bytetrack
track_high_thresh: 0.20
track_low_thresh: 0.05
new_track_thresh: 0.30
track_buffer: 60
match_thresh: 0.85
fuse_score: true
# Occlusion handling (FastTrack-specific)
reset_velocity_offset_occ: 5
reset_pos_offset_occ: 3
enlarge_bbox_occ: 1.15
dampen_motion_occ: 0.4
active_occ_to_lost_thresh: 15
occ_cover_thresh: 0.6
occ_reappear_window: 60
init_iou_suppress: 0.65
+27
View File
@@ -0,0 +1,27 @@
[build-system]
requires = ["setuptools>=68.0"]
build-backend = "setuptools.build_meta"
[project]
name = "feedmill-recounter"
version = "0.1.0"
description = "AI video analysis tool for counting objects in feedmill videos"
requires-python = ">=3.10"
dependencies = [
"ultralytics",
"opencv-python",
"numpy",
"shapely",
"flask",
"python-dotenv",
]
[project.optional-dependencies]
dev = ["pytest"]
[project.scripts]
recounter = "cli:main"
recounter-web = "app:main"
[tool.pytest.ini_options]
testpaths = ["tests"]
View File
Whitespace-only changes.
View File
Whitespace-only changes.