mmdetection数据处理pipline结果可视化

  • 仅查看训练图像并计算std与mean
  • 查看训练图像并显示bbox

参考《mmdetection 和 mmclassification的dataloader可视化》,除部分参数需要修改或额外设置外,服务器上运行会调用openCV窗口的mmcv.imshow函数会出现错误,本人将其更改为用plt显示。

仅查看训练图像并计算std与mean

import mmcv
import numpy as np
from mmcv import Configfrom mmdet.datasets import build_dataloader, build_dataset
import matplotlib.pyplot as pltimport os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"cfg = Config.fromfile('skin_model_main.py')
# print(cfg)
# cfg.gpu_ids = [0]
cfg.gpu_ids = range(0, 1)
cfg.seed = Noneimg_list = []# Build dataset
dataset = build_dataset(cfg.data.train)
# prepare data loadersdata_loader = build_dataloader(dataset,cfg.data.samples_per_gpu,cfg.data.workers_per_gpu,# cfg.gpus will be ignored if distributednum_gpus=len(cfg.gpu_ids),dist=False,seed=cfg.seed)
print('build_dataloader finished')for i, data_batch in enumerate(data_loader):# print(list(data_batch.keys()))print(i)img_batch = data_batch['img']._data[0]# print(img_batch._data)gt_label = data_batch['gt_labels']._data[0]for batch_i in range(len(img_batch)):img = img_batch[batch_i]gt = gt_label[batch_i]mean_value = np.array(cfg.img_norm_cfg['mean'])std_value = np.array(cfg.img_norm_cfg['std'])img_hwc = np.transpose(img.numpy(), [1, 2, 0])img_numpy_float = mmcv.imdenormalize(img_hwc, mean_value, std_value)img_numpy_uint8 = np.array(img_numpy_float, np.uint8)img_cal = img_numpy_uint8[np.newaxis, :, :, :]img_list.append(img_cal)# print(gt.numpy())# XXX: 该函数会调用cv2.imshow导致报错# mmcv.imshow(img_numpy_uint8, 'img', 0)# plt.imshow(img_numpy_uint8)# plt.show()
means, stdevs = [], []imgs = np.concatenate(img_list, axis=0)
for i in range(3):pixels = imgs[:, :, :, i].ravel()  # 拉成一行means.append(np.mean(pixels))stdevs.append(np.std(pixels))# BGR --> RGB , CV读取的需要转换,PIL读取的不用转换
means.reverse()
stdevs.reverse()print("normMean = {}".format(means))
print("normStd = {}".format(stdevs))

查看训练图像并显示bbox

import mmcv
import numpy as np
from mmcv import Configfrom mmcv.visualization import Color, color_valfrom mmdet.datasets import build_dataloader, build_dataset
import matplotlib.pyplot as pltimport cv2
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"cfg = Config.fromfile('skin_model_main.py')
# print(cfg)
# cfg.gpu_ids = [0]
cfg.gpu_ids = range(0, 1)
cfg.seed = None# Build dataset
dataset = build_dataset(cfg.data.train)
# prepare data loadersdata_loader = build_dataloader(dataset,cfg.data.samples_per_gpu,cfg.data.workers_per_gpu,# cfg.gpus will be ignored if distributednum_gpus=len(cfg.gpu_ids),dist=False,seed=cfg.seed)
print('build_dataloader finished')for i, data_batch in enumerate(data_loader):# print(list(data_batch.keys()))img_batch = data_batch['img']._data[0]gt_label = data_batch['gt_labels']._data[0]gt_bbox = data_batch['gt_bboxes']._data[0]for batch_i in range(len(img_batch)):img = img_batch[batch_i]labels = gt_label[batch_i].numpy()bboxes = gt_bbox[batch_i].numpy()mean_value = np.array(cfg.img_norm_cfg['mean'])std_value = np.array(cfg.img_norm_cfg['std'])img_hwc = np.transpose(img.numpy(), [1, 2, 0])img_numpy_float = mmcv.imdenormalize(img_hwc, mean_value, std_value)img_numpy_uint8 = np.array(img_numpy_float, np.uint8)# print(labels)# 参考mmcv.imshow_bboxesassert bboxes.ndim == 2assert labels.ndim == 1assert bboxes.shape[0] == labels.shape[0]assert bboxes.shape[1] == 4 or bboxes.shape[1] == 5# colors = ['green', 'red', 'blue', 'cyan', 'yellow', 'magenta', 'white', 'black']class_names=Nonescore_thr=0bbox_color='green'text_color='green'font_scale=1thickness=3img = np.ascontiguousarray(img_numpy_uint8)if score_thr > 0:assert bboxes.shape[1] == 5scores = bboxes[:, -1]inds = scores > score_thrbboxes = bboxes[inds, :]labels = labels[inds]bbox_color = color_val(bbox_color)text_color = color_val(text_color)for bbox, label in zip(bboxes, labels):bbox_int = bbox.astype(np.int32)left_top = (bbox_int[0], bbox_int[1])right_bottom = (bbox_int[2], bbox_int[3])cv2.rectangle(img, left_top, right_bottom, bbox_color, thickness=thickness)label_text = class_names[label] if class_names is not None else f'cls {label}'if len(bbox) > 4:label_text += f'|{bbox[-1]:.02f}'cv2.putText(img, label_text, (bbox_int[0], bbox_int[1] - 2),cv2.FONT_HERSHEY_COMPLEX, font_scale, text_color)plt.imshow(img)plt.show()

【mmdetection】mmdetection数据处理pipline结果可视化相关推荐

  1. java编写数据处理excel的可视化jar包程序

    编写数据处理excel的可视化jar包程序 采用excel的处理模版: https://github.com/Crab2died/Excel4J 涉及到的几个功能点的需求,excle数据的读取(可以获 ...

  2. mmdetection里进行特征图可视化

    文章目录 @[TOC](文章目录) 前言 1.特征可视化 2.为了在mmdetection使用可视化 效果图 前言     在mmdetection里实现简单的特征可视化代码,不是像Grad-CAM算 ...

  3. Python二手房价格预测(二)——数据处理及数据可视化

    系列文章目录 数据获取部分:Python二手房价格预测(一)--数据获取 文章目录 系列文章目录 一.数据清洗 二.数据可视化 总结 一.数据清洗 1.先导入需要的库: import pandas a ...

  4. 爬虫案例—京东数据爬取、数据处理及数据可视化(效果+代码)

    一.数据获取 使用PyCharm(引用requests库.lxml库.json库.time库.openpyxl库和pymysql库)爬取京东网页相关数据(品牌.标题.价格.店铺等) 数据展示(片段): ...

  5. 数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析

    分析师:Enno 案例数据集是在线零售业务的交易数据,采用Python为编程语言,采用Hadoop存储数据,采用Spark对数据进行处理分析,并使用Echarts做数据可视化.由于案例公司商业模式类似 ...

  6. Li‘s 核磁共振影像数据处理-19-FSL界面可视化操作介绍

    讲解视频内容请移步Bilibili: https://space.bilibili.com/542601735 入群讨论请加v hochzeitstorte 请注明"核磁共振学习" ...

  7. PyTorch—计算机视觉目标检测 mmdetection

    一.前言 商汤和港中文联合开源了 mmdetection-基于 PyTorch 的开源目标检测工具包. 工具包支持 Mask RCNN 等多种流行的检测框架,读者可在 PyTorch 环境下测试不同的 ...

  8. MMDetection框架入门教程(一):Anaconda3下的安装教程(mmdet+mmdet3d)

      本博客基于下列文档整理得到,有兴趣的同学可以直接阅读原文. GitHub - MMDetection GitHub - MMCV GitHub - MmDetection3D 官方说明文档 - M ...

  9. (七)深度学习实战 | MMDetection笔记(4)

    文章目录 1. 简介 2. 文件操作 2.1 加载和解析文件 2.2 加载文本文件并将结果转化成列表或字典 3. 图像操作 3.1 图像的读/写/显示 3.2 颜色空间的转换 3.3 图像其他操作 4 ...

最新文章

  1. 黑客演示通过空中电视信号DVB-T攻击智能电视机
  2. Bootstrap 表格
  3. CentOS防火墙操作实例(启动、停止、开、闭端口)
  4. Bootstrap 编码规范之编辑工具配置
  5. Hadoop Exception in createBlockOutputStream
  6. 2019 Go 开发者路线图,请收下这份指南!
  7. 基于编辑方法的文本生成(下)
  8. Vue Element校验validate
  9. Unity3D_(插件)小地图自刷新制作Minimap小地图
  10. vmware workstation 12安装ubuntu kylin 16.04虚拟机
  11. DFRobot for Arduino 中级套件
  12. SecureCRT8.3.3软件包百度网盘
  13. 深度 | 蚂蚁金服DASFAA论文带你深入了解GBDT模型
  14. HTML5七夕情人节表白网页制作【唯美3D相册】HTML+CSS+JavaScript
  15. 总结吴恩达 ChatGPT Prompt 免费课程
  16. C语言程序设计——函数 梅森尼数形如2^i-1的素数,称为梅森尼数。编程计算并输出指数i在[2,n]中的所有梅森尼数,并统计这些梅森尼数的个数,其中n的值由键盘输入,并且n的值不能大于50。
  17. Orica 如何维护安全、质量、管理风险、高标准的客户服务和员工福利所需的大量文档和内容
  18. R语言图形编辑器GUI开发环境RStudio安装(Windows操作系统下、RStudio开发环境安装)
  19. spring cloud gateway - 日志
  20. FreeRTOS队列原理

热门文章

  1. linux php整合mysql_linux下Apache、php3、MySQL的整合
  2. 电脑故障扫描修复软件_非常时期不出门,自己在家修电脑,三例常见电脑故障排除方法。...
  3. python遍历字典与for循环运用方法
  4. springboot配置文件加载顺序_「SpringBoot系列」配置文件加载优先级解析
  5. eigen3.3.8帮助文档下载 chm_惠普7500A驱动下载-惠普hp 7500A打印机驱动下载 v28.8官方版...
  6. android 崩溃日志捕获,安卓Java崩溃的捕获和日志记录
  7. Python中if判断语句在只有一个break子句时可以写在一行
  8. 【干货】js判断url是否是合法http/https
  9. [转]我们都是花栗鼠
  10. 【QCustomPlot】1.1 - Qt .qch帮助文档导入使用