# 评估

## 概述

LuxonisTrain 提供了有效评估已训练模型的工具。这意味着您可以测试模型来收集性能指标，也可以推理以直观地检查模型预测。

## 测试

要评估模型的性能，您可以运行各种测试以获取准确率、精确率、召回率等指标。这些指标有助于您了解模型在测试数据集上的表现。

您可以在不同的数据集视图（如训练、验证或测试）上评估已训练模型，以全面了解其性能。

测试结果也会记录到 [跟踪](https://docs.luxonis.com/software-v3/ai-inference/model-source/training/luxonis-train/training.md) 部分中配置的位置。

### CLI

```bash
luxonis_train test --config configs/detection_light_model.yaml \
                   --view val                                  \
                   --weights path/to/checkpoint.ckpt
```

### Python API

```python
from luxonis_train import LuxonisModel

model = LuxonisModel("configs/detection_light_model.yaml")
model.test(weights="path/to/checkpoint.ckpt")
```

> **注意：**
> 通过使用 TestOnTrainEnd 回调，可以在训练结束时自动启动测试过程。

## 推理

推理涉及使用模型对新数据进行预测。这允许您直观地检查模型的性能并观察其生成的预测结果。

要使用 LuxonisTrain 对图像、数据集或视频进行推理，您可以使用 CLI 或 Python API 对已训练模型进行推理。

### CLI

#### 在数据集视图上进行推理

```bash
luxonis_train infer --config configs/detection_light_model.yaml \
                    --view val                                  \
                    --weights path/to/checkpoint.ckpt
```

#### 在视频文件上进行推理

```bash
luxonis_train infer --config configs/detection_light_model.yaml \
                    --weights path/to/checkpoint.ckpt           \
                    --source-path path/to/video.mp4
```

#### 在图像目录上进行推理

```bash
luxonis_train infer --config configs/detection_light_model.yaml \
                    --weights path/to/checkpoint.ckpt           \
                    --source-path path/to/images
```

#### 在单张图像上进行推理

```bash
luxonis_train infer --config configs/detection_light_model.yaml \
                    --weights path/to/checkpoint.ckpt           \
                    --source-path path/to/image.jpg
```

### Python API

```python
from luxonis_train import LuxonisModel

model = LuxonisModel("configs/detection_light_model.yaml")

# 在数据集视图上进行推理
model.infer(weights="path/to/checkpoint.ckpt", view="val")

# 在视频文件上进行推理
model.infer(weights="path/to/checkpoint.ckpt", source_path="path/to/video.mp4")

# 在图像目录上进行推理并保存结果
model.infer(
    weights="path/to/checkpoint.ckpt",
    source_path="path/to/images",
    save_dir="path/to/save_directory",
)
```

## 标注

LuxonisTrain 还可以使用模型预测对一个图像目录进行标注，并创建一个新的 LDF 数据集。当您想从已训练模型中引导标注时，这非常有用。

### CLI

```bash
luxonis_train annotate --config configs/detection_light_model.yaml \
                       --weights path/to/checkpoint.ckpt           \
                       --source-path path/to/images
```

### Python API

```python
from luxonis_train import LuxonisModel

model = LuxonisModel("configs/detection_light_model.yaml")
dataset = model.annotate(
    dir_path="path/to/images",
    dataset_name="annotated_dataset",
    weights="path/to/checkpoint.ckpt",
)
```

生成的 dataset 以 LuxonisDataset 对象返回，因此可以直接检查、导出或在后续训练运行中重复使用。

通过同时使用测试和推理，您可以全面了解模型性能，并进行必要的调整以提高其准确性和可靠性。
