Hygiene for JavaCV + DJL vision pipelines on Kotlin/JVM: camera discovery and probing, frame-skip policy for heavy inference, downscale-before-detection. Replaces the Python jbaruch/vision-pipeline-foundations tile.
94
93%
Does it follow best practices?
Impact
99%
1.86xAverage score across 3 eval scenarios
Passed
No known issues
A Tessl plugin encoding hygiene for JavaCV + DJL vision pipelines on Kotlin/JVM — the Kotlin equivalent of jbaruch/vision-pipeline-foundations, which targets Python OpenCV.
| Kind | Name | Purpose |
|---|---|---|
| Skill | camera-setup-javacv | Open and warm up OpenCVFrameGrabber reliably. Probe pattern that skips virtual cameras (Insta360, Snap, OBS, Continuity) that hijack low indices on macOS. Includes brightness-based detection of "open succeeded but frames are black". |
| Skill | frame-skip-policy-kotlin | Run heavy inference (Haar, DJL face_feature, ViT emotion) at a fraction of capture rate. Every 3rd frame for face recognition, every 30th for emotion. Includes the 4× downscale pattern that makes Haar both faster AND less false-positive-prone. |
| Rule | vision-pipeline-foundations-kotlin-rules | Camera setup, frame skip, coroutine architecture, anti-patterns. |
OpenCVFrameGrabber(0) on macOS frequently opens a virtual camera (Insta360 Link, Continuity Camera) instead of the physical webcam. The grabber succeeds, frames flow, detection runs against… nothing. The probe pattern in this plugin avoids that.
And: running face detection at full 30 fps + emotion classification at 30 fps wastes 3–10× CPU for zero perceptible improvement. The frame-skip policy here puts detection at ~10 Hz and emotion at ~1 Hz — matched to how fast those signals actually change in the real world.
tessl install jbaruch/vision-pipeline-foundations-kotlinMIT — see LICENSE.