PaddleX提供了一系列模型预测和结果分析的可视化函数。
paddlex.det.visualize(image, result, threshold=0.5, save_dir='./')
将目标检测/实例分割模型预测得到的Box框和Mask在原图上进行可视化
- image (str): 原图文件路径。
- result (str): 模型预测结果。
- threshold(float): score阈值,将Box置信度低于该阈值的框过滤不进行可视化。默认0.5
- save_dir(str): 可视化结果保存路径。若为None,则表示不保存,该函数将可视化的结果以np.ndarray的形式返回;若设为目录路径,则将可视化结果保存至该目录下。默认值为'./'。
import paddlex as pdx model = pdx.load_model('xiaoduxiong_epoch_12') result = model.predict('xiaoduxiong.jpeg') pdx.det.visualize('xiaoduxiong.jpeg', result, save_dir='./') # 预测结果保存在./visualize_xiaoduxiong.jpeg
paddlex.det.draw_pr_curve(eval_details_file=None, gt=None, pred_bbox=None, pred_mask=None, iou_thresh=0.5, save_dir='./')
将目标检测/实例分割模型评估结果中各个类别的准确率和召回率的对应关系进行可视化,同时可视化召回率和置信度阈值的对应关系。
- eval_details_file (str): 模型评估结果的保存路径,包含真值信息和预测结果。默认值为None。
- gt (list): 数据集的真值信息。默认值为None。
- pred_bbox (list): 模型在数据集上的预测框。默认值为None。
- pred_mask (list): 模型在数据集上的预测mask。默认值为None。
- iou_thresh (float): 判断预测框或预测mask为真阳时的IoU阈值。默认值为0.5。
- save_dir (str): 可视化结果保存路径。默认值为'./'。
注意:eval_details_file的优先级更高,只要eval_details_file不为None,就会从eval_details_file提取真值信息和预测结果做分析。当eval_details_file为None时,则用gt、pred_mask、pred_mask做分析。
方式一:分析训练过程中保存的模型文件夹中的评估结果文件
eval_details.json,例如模型中的eval_details.json。import paddlex as pdx eval_details_file = 'insect_epoch_270/eval_details.json' pdx.det.draw_pr_curve(eval_details_file, save_dir='./insect')方式二:分析模型评估函数返回的评估结果。
import os
# 选择使用0号卡
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
from paddlex.det import transforms
import paddlex as pdx
model = pdx.load_model('insect_epoch_270')
eval_dataset = pdx.datasets.VOCDetection(
data_dir='insect_det',
file_list='insect_det/val_list.txt',
label_list='insect_det/labels.txt',
transforms=model.eval_transforms)
metrics, evaluate_details = model.evaluate(eval_dataset, batch_size=8, return_details=True)
gt = evaluate_details['gt']
bbox = evaluate_details['bbox']
pdx.det.draw_pr_curve(gt=gt, pred_bbox=bbox, save_dir='./insect')
预测框的各个类别的准确率和召回率的对应关系、召回率和置信度阈值的对应关系可视化如下:
.png)
paddlex.seg.visualize(image, result, weight=0.6, save_dir='./')
将语义分割模型预测得到的Mask在原图上进行可视化
- image (str): 原图文件路径。
- result (str): 模型预测结果。
- weight(float): mask可视化结果与原图权重因子,weight表示原图的权重。默认0.6。
- save_dir(str): 可视化结果保存路径。若为None,则表示不保存,该函数将可视化的结果以np.ndarray的形式返回;若设为目录路径,则将可视化结果保存至该目录下。默认值为'./'。
import paddlex as pdx model = pdx.load_model('cityscape_deeplab') result = model.predict('city.png') pdx.det.visualize('city.png', result, save_dir='./') # 预测结果保存在./visualize_city.png
paddlex.slim.visualize(model, sensitivities_file)
利用此接口,可以分析在不同的eval_metric_loss参数下,模型被裁剪的比例情况。可视化结果纵轴为eval_metric_loss参数值,横轴为对应的模型被裁剪的比例
- model: 使用PaddleX加载的模型
- sensitivities_file: 模型各参数在验证集上计算得到的参数敏感度信息文件
点击下载示例中的模型和sensitivities_file
import paddlex as pdx model = pdx.load_model('vegetables_mobilenet') pdx.slim.visualize(model, 'mobilenetv2.sensitivities', save_dir='./') # 可视化结果保存在./sensitivities.png