Spaces:
Running
Running
| """ | |
| Custom ByteTrack configuration optimized for Indian traffic conditions. | |
| Tuning rationale (vs Ultralytics defaults): | |
| - Lower thresholds: Indian roads have heavy occlusion (autos behind buses) | |
| - Higher track_buffer: Vehicles disappear behind large vehicles for longer | |
| - Looser match_thresh: Apparent shape changes during partial occlusion | |
| Reference: https://docs.ultralytics.com/modes/track/ | |
| """ | |
| import os | |
| import tempfile | |
| _YAML_CONTENT = """# UrbanFlow — ByteTrack config for Indian heterogeneous traffic | |
| # Base: https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/trackers/bytetrack.yaml | |
| tracker_type: bytetrack | |
| track_high_thresh: 0.20 | |
| track_low_thresh: 0.08 | |
| new_track_thresh: 0.20 | |
| track_buffer: 45 | |
| match_thresh: 0.75 | |
| fuse_score: true | |
| """ | |
| _CONFIG_PATH = os.path.join(tempfile.gettempdir(), "urbanflow_bytetrack.yaml") | |
| def get_tracker_path(): | |
| """Write custom YAML once and return its path.""" | |
| if not os.path.exists(_CONFIG_PATH): | |
| with open(_CONFIG_PATH, "w") as f: | |
| f.write(_YAML_CONTENT) | |
| print(f"[tracker] Custom ByteTrack config written: {_CONFIG_PATH}") | |
| return _CONFIG_PATH | |