v0.50.5
roboflow/inferencev0.50.5Jun 16, 2025by grzegorz-roboflow
AI Summary
Major feature release introducing ONVIF sink for PTZ camera control and significant performance optimizations across the library.
Key Highlights
- Introduced ONVIF sink to control PTZ cameras with Follow and Preset modes.
- Speed up `load_blocks` function by 409%.
- Speed up `RFDETRObjectDetection.postprocess` by 11%.
- Added `DEVICE_ID` environment variable support for resource details.
New Features
- ONVIF PTZ camera control
- Performance speedups (409%, 11%)
- Device ID environment variable support
Full Release Notes
# Onvif sink <table> <tr> <td width="20%"><img src="https://github.com/user-attachments/assets/3482ac7c-ae73-451a-9928-ec2958c0cf26" /></td> <td width="20%"><img src="https://github.com/user-attachments/assets/75ac5aa6-992b-4962-a663-2a243005a40d" /></td> <td width="60%"><img src="https://github.com/user-attachments/assets/7c4cd4e6-8271-459e-9e6d-c990ed4ecd12" /></td> </tr> </table> Inference users can now control PTZ cameras! **ONVIF** block allows a workflow to control an ONVIF capable PTZ camera to follow a detected object. Block can operate in two modes: * **Follow:** The object it follows is the maximum confidence prediction out of all predictions passed into it. To follow a specific object, use the appropriate filters on the predictiion object to specify the object you want to follow. Additionally if a tracker is used, the camera will follow the tracked object until it disappears. Additionally, zoom can be toggled to get the camera to zoom into a position. The tracking block uses the ONVIF continuous movement service. Tracking is adjusted on each successive workflow execution. If workflow execution stops, and the camera is currently moving, the camera will continue moving until it reaches the limits and will no longer be following an object. * **Move to Preset:** The camera can also move to a defined preset position. The camera must support the GotoPreset service. PID tuning is necessary for this block to avoid having the camera overshoot and hunt. Having a significant lag between the camera movement and video (using a lazy buffer consumption strategy) can make tuning extremely difficult. Using an eager buffer consumption strategy is recommended. Increasing the dead zone can also help, but can affect zooming. Change by @lou-roboflow in https://github.com/roboflow/inference/pull/1348 # ⚡ Speed-ups (with https://github.com/codeflash-ai) * ⚡️ Speed up function `load_blocks` by 409% in PR #1348 (`ONVIF_Sink`) by @codeflash-ai in https://github.com/roboflow/inference/pull/1349 * ⚡️ Speed up function `receive_socket_data` by 16% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1177 * ⚡️ Speed up method `BlockManifest.describe_outputs` by 1,091% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1181 * ⚡️ 11% (0.11x) speedup for `RFDETRObjectDetection.postprocess` in `inference/models/rfdetr/rfdetr.py` by @aseembits93 in https://github.com/roboflow/inference/pull/1217 # 🧑🏭 Maintanence * Bump the pip group across 2 directories with 1 update by @dependabot in https://github.com/roboflow/inference/pull/1356 * if DEVICE_ID env is set, store it in resource_details by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1358 * Make model unsupported message more descriptive by @bigbitbus in https://github.com/roboflow/inference/pull/1357 * add benchmark configuration and case for codeflash by @KRRT7 in https://github.com/roboflow/inference/pull/1254 * Fix/add default fallback to class replacement by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1359 # Documentation updates * Fix typo: `prometeus` -> `prometheus` by @iurisilvio in https://github.com/roboflow/inference/pull/1353 * remove trailing space in hyperlink text by @afomi in https://github.com/roboflow/inference/pull/1346 * fix small typo by @afomi in https://github.com/roboflow/inference/pull/1345 # 🏅 New Contributors * @aseembits93 made their first contribution in https://github.com/roboflow/inference/pull/1217 * @afomi made their first contribution in https://github.com/roboflow/inference/pull/1346 **Full Changelog**: https://github.com/roboflow/inference/compare/v0.50.4...v0.50.5