如何使用FiftyOne保存叠加检测框的可视化成品图像?
FiftyOne有内置的标注可视化导出能力,无需手动下载或者借助第三方工具转存,以下是两种常用实现方案:
方法1:单样本灵活导出
适合需要自定义单样本导出逻辑的场景,使用draw_labeled_image接口实现:
import fiftyone as fo import fiftyone.utils.annotations as foua # 加载你已经处理好的数据集 dataset = fo.load_dataset("你的数据集名称") # 可选:配置可视化样式,匹配你在FiftyOne界面看到的效果 draw_config = foua.DrawConfig({ "bbox_linewidth": 2, # 检测框粗细 "text_size": 14, # 标签文字大小 "bbox_alpha": 0.8, # 检测框透明度 "show_confidence": True # 是否显示检测置信度 }) # 遍历样本逐个导出 for sample in dataset.iter_samples(): # 生成带检测框的图像,label_fields填你存储人物检测结果的字段名 annotated_img = foua.draw_labeled_image( sample, label_fields=["person_detections"], config=draw_config ) # 保存到本地路径 save_path = f"./标注后图像/{sample.filename}" fo.utils.image.write_image(annotated_img, save_path)
方法2:全数据集批量导出
如果需要统一导出整个数据集的带标注可视化结果,直接调用数据集内置方法即可,代码更简洁:
dataset.draw_labels( export_dir="./标注后图像", label_fields=["person_detections"], # 填你存储人物检测结果的字段名 config=draw_config, # 可视化配置,可选 overwrite=True )
如果确实有其他流程需要,也可以先将检测结果导出为COCO、VOC等标准标注格式,再通过OpenCV、Pillow等图像库自行绘制标注框,但上述内置方法已经可以覆盖绝大多数场景,无需额外开发。
内容的提问来源于stack exchange,提问作者figbar
相关产品推荐
相关产品推荐

