| You can run fine-tuned models on images using Inference. | |
| An Inference server will manage inference. Inference can be run on your local machine, a remote server, or even a Raspberry Pi. | |
| If you need to deploy to the edge, you can use a device like the Jetson Nano. If you need high-performance compute for batch jobs, you can deploy Inference to a server with a GPU. | |
| !!! tip "Tip" | |
| Follow our [Run a Fine-Tuned Model on Images](/docs/quickstart/run_model_on_image) guide to learn how to find a model to run. | |
| !!! info | |
| If you haven't already, follow our Run Your First Model guide to install and set up Inference. | |
| First, start an Inference server: | |
| ``` | |
| inference server start | |
| ``` | |
| Next, create a new Python file and add the following code: | |
| ```python | |
| from inference.models.utils import get_roboflow_model | |
| from PIL import Image | |
| model = get_roboflow_model( | |
| model_id="soccer-players-5fuqs/1" | |
| ) | |
| result = model.infer("path/to/image.jpg") | |
| print(result) | |
| ``` | |
| Replace your API key, model ID, and model version as appropriate. | |
| - [Learn how to find your API key](https://docs.roboflow.com/api-reference/authentication#retrieve-an-api-key) | |
| - [Learn how to find your model ID](https://docs.roboflow.com/api-reference/workspace-and-project-ids) | |
| Then, run the code. You will see predictions printed to the console in the following format: | |
| ```json | |
| { | |
| "predictions": [ | |
| { | |
| "class": "rock", | |
| "confidence": 0.9999997615814209, | |
| "height": 0.9999997615814209, | |
| "width": 0.9999997615814209, | |
| "x": 0.0, | |
| "y": 0.0 | |
| } | |
| ] | |
| } | |
| ``` | |
| You can plot predictions using `supervision`. You can install supervision using `pip install supervision`. Add the following code to the script you created to plot predictions from Inference: | |
| ```python | |
| import supervision as sv | |
| detections = sv.Detections.from_roboflow(results) | |
| labels = [p["class"] for p in predictions["predictions"]] | |
| box_annotator = sv.BoxAnnotator() | |
| annotated_frame = box_annotator.annotate( | |
| scene=image.copy(), | |
| detections=detections, | |
| labels=labels | |
| ) | |
| sv.plot_image(image=annotated_frame, size=(16, 16)) | |
| ``` |