description
Checkpoint-compliance rule: fire when a person's trajectory crosses BOTH the start_line and the end_line of the alcohol-test area, entering in the expected direction (y-center increasing), without ever using the test device — "using" is any frame where the person's bbox overlaps an alcohol-tool detection by more than alcohol_iou_threshold of the tool's area. Line-crossing rule built on segment-segment intersection of the track's first→last center trajectory. Fire-once per track. Confidence = 0.5·mean + 0.5·median of recent detection confidences. The legacy camera-specific truck variant (truck passing without a full stop) is not ported.
use cases
- mandatory alcohol/breathalyzer checkpoints at facility gates
- template for any two-line "passed through without doing X" compliance rule
- entry-protocol enforcement where an interaction with a device/desk is required
limitations
- needs the test device as a detectable class (alcohol_tool) in the detector
- straight first→last trajectory segment — loops inside the checkpoint can under-detect crossings
- directional check assumes entry moves downward in the image (y increasing); flip lines otherwise
config parameters
zone
| Parameter | Type | Default | Notes |
|---|---|---|---|
| start_line * | array of pair of number | [] | (exactly 4 points / 2 endpoints; empty until per-camera setup) |
| end_line * | array of pair of number | [] | (exactly 4 points / 2 endpoints; empty until per-camera setup) |
advanced
| Parameter | Type | Default | Notes |
|---|---|---|---|
| person_classes | array of string | ["person", "face"] | |
| tool_classes | array of string | ["alcohol_tool"] | |
| alcohol_iou_threshold | number | 0.1 | (min 0, max 1) |
| entry_y_tolerance | number | 10 | |
| confidence_frames | integer | 50 | (min 1) |
| min_person_confidence | number | 0.3 | (min 0, max 1) |
golden replay cases
| Case | Frames | Expected events |
|---|---|---|
| skipped-test | 9 | 1 |