🚀 Added
🎥 🎥 Multiple video sources 🤝 `InferencePipeline`
Previous versions of the `InferencePipeline` could only support a single video source. However, from now on, you can pass multiple videos into a single pipeline and have all of them processed! Here is a demo:
<video src="https://github.com/roboflow/inference/assets/146137186/0cf8338a-7fe4-4e07-83c4-600abbeb7c10"></video>
Here's how to achieve the result:
python
from inference import InferencePipeline
from inference.core.interfaces.stream.sinks import render_boxes
pipeline = InferencePipeline.init(
video_reference=["your_video.mp4", "your_other_ideo.mp4"],
model_id="yolov8n-640",
on_prediction=render_boxes,
)
pipeline.start()
pipeline.join()
There were a lot of internal changes made, but the majority of users should not experience any breaking changes. Please visit our [📖 documentation](https://inference.roboflow.com/using_inference/inference_pipeline/) to discover all the differences. If you are affected by the changes we needed to introduce, here is the [🔧 migration guide](https://inference.roboflow.com/using_inference/inference_pipeline/#migrate-to-changes-introduced-in-v0918).
Barcode detector in `workflows`
Thanks to chandlersupple, we have ability to detect and read barcodes in `workflows`.
<p align="center">
<img src="https://github.com/roboflow/inference/assets/146137186/5b9d2374-f90b-4c08-9b03-8b7b4f0b4ff4" width=480 />
</p>
Visit our [📖 documentation](https://inference.roboflow.com/workflows/detect_barcodes/) to see how to bring this step into your workflow.
🌱 Changed
Easier data collection in `inference` 🔥
We've introduced a new parameter handled by the `inference` server (including hosted `inference` at Roboflow platform). This parameter, called `active_learning_target_dataset`, can now be added to requests to specify the Roboflow project where collected data should be stored.
Thanks to this change, you can now collect datasets while using [Universe](https://universe.roboflow.com/) models. We've also updated [Active Learning 📖 docs](https://inference.roboflow.com/enterprise/active-learning/active_learning/)
python
from inference_sdk import InferenceHTTPClient, InferenceConfiguration
prepare and set configuration
configuration = InferenceConfiguration(
active_learning_target_dataset="my_dataset",
)
client = InferenceHTTPClient(
api_url="https://detect.roboflow.com",
api_key="<YOUR_ROBOFLOW_API_KEY>",
).configure(configuration)
run normal request and have your data sampled 🤯
client.infer(
"./path_to/your_image.jpg",
model_id="yolov8n-640",
)
Other changes
* Add `inference_id` to batches created by AL by robiscoding in https://github.com/roboflow/inference/pull/319
* Improvements in 📖 documentation regarding `RGB vs BGR` topic by probicheaux in https://github.com/roboflow/inference/pull/330
🔨 Fixed
Thanks to contribution of hvaria 🏅 we have two problems solved:
* Ensure Graceful Interruption of Benchmark Process - Fixing for Bug 313: in https://github.com/roboflow/inference/pull/325
* Better error handling in inference CLI: in https://github.com/roboflow/inference/pull/328
New Contributors
* chandlersupple made their first contribution in https://github.com/roboflow/inference/pull/311
**Full Changelog**: https://github.com/roboflow/inference/compare/v0.9.17...v0.9.18