Skip to content

v1.2.0 - Performance & Inference Pipeline Improvements

Latest

Choose a tag to compare

@lucacrose lucacrose released this 06 Feb 04:14

📊 Performance & Inference Pipeline Improvements (v1.2.0)

This release marks a fundamental shift in the inference architecture. By moving to a memory-native pipeline and the YOLO26 backbone, we have slashed the error rate by 50% and virtually eliminated I/O bottlenecks.

📈 Performance Benchmarks

Accuracy (Exact-Match)

Tested against the v1.1.0 baseline using $n=1300$ real-world "worst-case" user screenshots.

Version Correct Total Accuracy
v1.1.0 1258 1300 96.8%
v1.2.0 1279 1300 98.4%

The YOLO26 Advantage: The transition to the new backbone with Label Anchoring solved "trade-split" errors where the model previously struggled to distinguish between incoming and outgoing sides in tight or non-standard crops.

Inference Latency (Batch = 1, E2E)

Measured on an RTX 5070. E2E includes the full pipeline from input to structured dictionary.

Input Method Median (ms) p95 (ms)
NumPy Array / Bytes 20.5 35.0
File Path (v1.2.0) 28.0 47.4
v1.1.0 (File Path) 36.8 73.4

Note

By supporting direct byte streams, v1.2.0 treats images as uncompressed data internally. This bypasses traditional disk I/O overhead, enabling sub-25ms response times for high-frequency applications.


🛠️ Internal Improvements

  • YOLO26 Architecture: Replaced the previous detection backbone. Improved handling of box overlaps prevents duplicate item counting in cluttered trade windows.
  • Zero-Latency I/O: Added native support for bytes and np.ndarray. You can now feed the model directly from a video stream or network request without saving to disk first.
  • Fully Offline Operation: The base CLIP weights are now pulled and cached locally during the first initialization. Subsequent runs require zero internet connectivity.

🔍 Evaluation Criteria

  • Exact-Match: A "Correct" result requires every Item ID, Name, and Robux value to match the ground truth perfectly.
  • Environment: All benchmarks were performed after a 5-iteration warm-up to ensure CUDA kernels were fully resident in memory.