在mmdet 3.0系列中使用visualizer进行目标检测真实框和检测框的可视化和绘制 并保存为图像

在 MMDetection 3.0 中,使用 visualizer 进行目标检测的真实框和检测框的可视化和绘制,并将结果保存为图像,是一个比较简便且高效的方法。以下是具体的实现步骤和代码示例。

步骤

加载必要的库和初始化模型。

加载测试图像和数据集。

进行推理。

使用 visualizer 绘制真实框和检测框。

保存绘制结果。

示例代码

首先,确保你的环境中安装了最新版本的 MMDetection。

bash 复制代码
pip install mmdet==3.0.0
pip install -U openmim
mim install mmdet

以下是一个完整的代码示例:

python 复制代码
import mmcv
import cv2
import numpy as np
import matplotlib.pyplot as plt
from mmdet.apis import init_detector, inference_detector
from mmdet.utils import register_all_modules
from mmdet.visualization import DetLocalVisualizer
from mmdet.datasets import build_dataset
from mmdet.datasets.pipelines import Compose

# 注册所有模块
register_all_modules()

# 配置文件和模型检查点的路径
config_file = 'path/to/your/config/file.py'
checkpoint_file = 'path/to/your/checkpoint/file.pth'

# 初始化模型
model = init_detector(config_file, checkpoint_file, device='cuda:0')

# 测试图像路径
img = 'path/to/your/test/image.jpg'

# 构建数据集
cfg = mmcv.Config.fromfile(config_file)
dataset = build_dataset(cfg.data.test)

# 获取样本数据
data = dataset[0]

# 提取图像和 ground truth boxes
img_path = data['img_metas'][0].data['filename']
gt_bboxes = data['gt_bboxes'][0].data.numpy()
gt_labels = data['gt_labels'][0].data.numpy()

# 加载图像
img = mmcv.imread(img_path)

# 绘制 ground truth boxes
visualizer = DetLocalVisualizer()
visualizer.dataset_meta = dataset.metainfo

# 创建 ground truth 数据
gt_data = {
    'bboxes': gt_bboxes,
    'labels': gt_labels
}

# 绘制 ground truth boxes
visualizer.add_datasample('ground_truth', img, gt_data, draw_gt=True)

# 推理检测
result = inference_detector(model, img)

# 绘制检测框
visualizer.add_datasample('detection', img, result, draw_pred=True, show=True)

# 保存结果图像
out_file = 'path/to/save/result_image.jpg'
visualizer.add_datasample('detection', img, result, draw_pred=True, show=False, out_file=out_file)
相关推荐
大江东去浪淘尽千古风流人物30 分钟前
【cuVSLAM】GPU 加速、多相机、实时视觉/视觉惯性 SLAM设计优势
c++·人工智能·数码相机·ubuntu·计算机视觉·augmented reality
Elastic 中国社区官方博客6 小时前
Elasticsearch:使用 Agent Builder 的 A2A 实现 - 开发者的圣诞颂歌
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
chools6 小时前
【AI超级智能体】快速搞懂工具调用Tool Calling 和 MCP协议
java·人工智能·学习·ai
郝学胜-神的一滴6 小时前
深度学习必学:PyTorch 神经网络参数初始化全攻略(原理 + 代码 + 选择指南)
人工智能·pytorch·python·深度学习·神经网络·机器学习
leobertlan6 小时前
好玩系列:用20元实现快乐保存器
android·人工智能·算法
笨笨饿6 小时前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
jr-create(•̀⌄•́)6 小时前
从零开始:手动实现神经网络识别手写数字(完整代码讲解)
人工智能·深度学习·神经网络
冬奇Lab7 小时前
一天一个开源项目(第78篇):MiroFish - 用群体智能引擎预测未来
人工智能·开源·资讯
冬奇Lab7 小时前
你的 Skill 真的好用吗?来自OpenAI的 Eval 系统化验证 Agent 技能方法论
人工智能·openai
数智工坊7 小时前
Transformer 全套逻辑:公式推导 + 原理解剖 + 逐行精读 - 划时代封神之作!
人工智能·深度学习·transformer