Inference or prediction of a task returns a list of `Results` objects. Alternatively, in the streaming mode, it returns a generator of `Results` objects which is memory efficient. Streaming mode can be enabled by passing `stream=True` in predictor's call method.
Inference or prediction of a task returns a list of `Results` objects. Alternatively, in the streaming mode, it returns
a generator of `Results` objects which is memory efficient. Streaming mode can be enabled by passing `stream=True` in
predictor's call method.
!!! example "Predict"
!!! example "Predict"
=== "Getting a List"
=== "Getting a List"
```python
```python
inputs = [img, img] # list of np arrays
inputs = [img, img] # list of np arrays
results = model(inputs) # List of Results objects
results = model(inputs) # List of Results objects
for result in results:
for result in results:
boxes = result.boxes # Boxes object for bbox outputs
boxes = result.boxes # Boxes object for bbox outputs
masks = result.masks # Masks object for segmenation masks outputs
masks = result.masks # Masks object for segmenation masks outputs
probs = result.probs # Class probabilities for classification outputs
probs = result.probs # Class probabilities for classification outputs
...
```
```
=== "Getting a Generator"
=== "Getting a Generator"
```python
```python
inputs = [img, img] # list of np arrays
inputs = [img, img] # list of numpy arrays
results = model(inputs, stream=True) # Generator of Results objects
results = model(inputs, stream=True) # generator of Results objects
for result in results:
boxes = result.boxes # Boxes object for bbox outputs
for r in results:
masks = result.masks # Masks object for segmenation masks outputs
boxes = r.boxes # Boxes object for bbox outputs
probs = result.probs # Class probabilities for classification outputs
masks = r.masks # Masks object for segmenation masks outputs
...
probs = r.probs # Class probabilities for classification outputs
```
```
## Working with Results
## Working with Results
Results object consists of these component objects:
Results object consists of these component objects:
- `results.boxes` : It is an object of class `Boxes`. It has properties and methods for manipulating bboxes
- `Results.boxes` : `Boxes` object with properties and methods for manipulating bboxes
- `results.masks` : It is an object of class `Masks`. It can be used to index masks or to get segment coordinates.
- `Results.masks` : `Masks` object used to index masks or to get segment coordinates.
- `results.prob` : It is a `Tensor` object. It contains the class probabilities/logits.
- `Results.prob` : `torch.Tensor` containing the class probabilities/logits.
Each result is composed of torch.Tensor by default, in which you can easily use following functionality:
Each result is composed of torch.Tensor by default, in which you can easily use following functionality:
```python
```python
results = results.cuda()
results = results.cuda()
results = results.cpu()
results = results.cpu()
results = results.to("cpu")
results = results.to("cpu")
results = results.numpy()
results = results.numpy()
```
```
### Boxes
### Boxes
`Boxes` object can be used index, manipulate and convert bboxes to different formats. The box format conversion operations are cached, which means they're only calculated once per object and those values are reused for future calls.
`Boxes` object can be used index, manipulate and convert bboxes to different formats. The box format conversion
operations are cached, which means they're only calculated once per object and those values are reused for future calls.
- Indexing a `Boxes` objects returns a `Boxes` object
- Indexing a `Boxes` objects returns a `Boxes` object
```python
```python
boxes = results.boxes
results = model(inputs)
boxes = results[0].boxes
box = boxes[0] # returns one box
box = boxes[0] # returns one box
box.xyxy
box.xyxy
```
```
- Properties and conversions
- Properties and conversions
```
```python
boxes.xyxy # box with xyxy format, (N, 4)
boxes.xyxy # box with xyxy format, (N, 4)
boxes.xywh # box with xywh format, (N, 4)
boxes.xywh # box with xywh format, (N, 4)
boxes.xyxyn # box with xyxy format but normalized, (N, 4)
boxes.xyxyn # box with xyxy format but normalized, (N, 4)