【OpenMMLab AI训练营第二期】Class7:MMDetection代码课

mmdetection特征图可视化 mmdetection对特征图进行可视化 思路:在前向传播时将四个stage的特征图返回出来 1.two_stage.py修改 我修改的地方都用 # for visualization 标出来了,目前处于注释状态,使用时把这部分取消注释,原文件相应的部分进行注释 import torch import torch.nn as nn # from mmdet.core import bbox2result, bbox2roi, build_assigner, build_sampler from ..bu 阅读详情

MMDetection版本变化

MMDetection3.0通过更细粒度的模块解耦,进一步拆解出了数据、模型、评测等抽象,并对这些接口进行了统一设计。通过对MMEngine和MMCV的重新适配,使得MMDetection的速度和精度得到提高。

环境配置

# Check nvcc version
!nvcc -V
# Check GCC version
!gcc --version

# # 安装 mmengine 和 mmcv 依赖
# # 为了防止后续版本变更导致的代码无法运行,我们暂时锁死版本
# !pip install -U "openmim==0.3.7"
# !mim install "mmengine==0.7.1"
# !mim install "mmcv==2.0.0"

# # Install mmdetection
# !rm -rf mmdetection
# # 为了防止后续更新导致的可能无法运行,特意新建了 tutorials 分支

# 之前的课程配置过内容,所以就不重新配置环境了,重新clone一下代码库
!git clone -b tutorials https://github.com/open-mmlab/mmdetection.git
%cd mmdetection

%pip install -e .

打印环境信息

from mmengine.utils import get_git_hash
from mmengine.utils.dl_utils import collect_env as collect_base_env

import mmdet

# 环境信息收集和打印
def collect_env():
    """Collect the information of the running environments."""
    env_info = collect_base_env()
    env_info['MMDetection'] = f'{mmdet.__version__}+{get_git_hash()[:7]}'
    return env_info


if __name__ == '__main__':
    for name, val in collect_env().items():
        print(f'{name}: {val}')

准备数据集

! rm -rf cat_dataset*
! wget https://download.openmmlab.com/mmyolo/data/cat_dataset.zip
! unzip cat_dataset.zip -d cat_dataset && rm cat_dataset.zip 

下载好的数据集已经是COCO格式的了,可以对数据进行可视化

import os
import matplotlib.pyplot as plt
from PIL import Image

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

original_images = []
images = []
texts = []
plt.figure(figsize=(16, 5))

image_paths= [filename for filename in os.listdir('cat_dataset/images')][:8]

for i,filename in enumerate(image_paths):
    name = os.path.splitext(filename)[0]

    image = Image.open('cat_dataset/images/'+filename).convert("RGB")
  
    plt.subplot(2, 4, i+1)
    plt.imshow(image)
    plt.title(f"{filename}")
    plt.xticks([])
    plt.yticks([])

plt.tight_layout()

得到以下结果
在这里插入图片描述

from pycocotools.coco import COCO
from PIL import Image
import numpy as np
import os.path as osp
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon

def apply_exif_orientation(image):
    _EXIF_ORIENT = 274
    if not hasattr(image, 'getexif'):
        return image

    try:
        exif = image.getexif()
    except Exception:
        exif = None

    if exif is None:
        return image

    orientation = exif.get(_EXIF_ORIENT)

    method = {
        2: Image.FLIP_LEFT_RIGHT,
        3: Image.ROTATE_180,
        4: Image.FLIP_TOP_BOTTOM,
        5: Image.TRANSPOSE,
        6: Image.ROTATE_270,
        7: Image.TRANSVERSE,
        8: Image.ROTATE_90,
    }.get(orientation)
    if method is not None:
        return image.transpose(method)
    return image


def show_bbox_only(coco, anns, show_label_bbox=True, is_filling=True):
    """Show bounding box of annotations Only."""
    if len(anns) == 0:
        return

    ax = plt.gca()
    ax.set_autoscale_on(False)

    image2color = dict()
    for cat in coco.getCatIds():
        image2color[cat] = (np.random.random((1, 3)) * 0.7 + 0.3).tolist()[0]

    polygons = []
    colors = []

    for ann in anns:
        color = image2color[ann['category_id']]
        bbox_x, bbox_y, bbox_w, bbox_h = ann['bbox']
        poly = [[bbox_x, bbox_y], [bbox_x, bbox_y + bbox_h],
                [bbox_x + bbox_w, bbox_y + bbox_h], [bbox_x + bbox_w, bbox_y]]
        polygons.append(Polygon(np.array(poly).reshape((4, 2))))
        colors.append(color)

        if show_label_bbox:
            label_bbox = dict(facecolor=color)
        else:
            label_bbox = None

        ax.text(
            bbox_x,
            bbox_y,
            '%s' % (coco.loadCats(ann['category_id'])[0]['name']),
            color='white',
            bbox=label_bbox)

    if is_filling:
        p = PatchCollection(
            polygons, facecolor=colors, linewidths=0, alpha=0.4)
        ax.add_collection(p)
    p = PatchCollection(
        polygons, facecolor='none', edgecolors=colors, linewidths=2)
    ax.add_collection(p)

    
coco = COCO('./cat_dataset/annotations/test.json')
image_ids = coco.getImgIds()
np.random.shuffle(image_ids)

plt.figure(figsize=(16, 5))

# 只可视化 8 张图片
for i in range(8):
    image_data = coco.loadImgs(image_ids[i])[0]
    image_path = osp.join('./cat_dataset/images/',image_data['file_name'])
    annotation_ids = coco.getAnnIds(
            imgIds=image_data['id'], catIds=[], iscrowd=0)
    annotations = coco.loadAnns(annotation_ids)
    
    ax = plt.subplot(2, 4, i+1)
    image = Image.open(image_path).convert("RGB")
    
    # 这行代码很关键,否则可能图片和标签对不上
    image=apply_exif_orientation(image)
    
    ax.imshow(image)
    
    show_bbox_only(coco, annotations)
    
    plt.title(f"{filename}")
    plt.xticks([])
    plt.yticks([])
        
plt.tight_layout()    

在这里插入图片描述

修改配置文件

主要是修改类别数量、学习率等等。
修改配置文件需要注意几个问题:
自定义数据集中最重要的是 metainfo 字段,用户在配置完成后要记得将其传给 dataset,否则不生效(有些用户在自定义数据集时候喜欢去 直接修改 coco.py 源码,这个是强烈不推荐的做法,正确做法是配置 metainfo 并传给 dataset)
如果用户 metainfo 配置不正确,通常会出现几种情况:(1) 出现 num_classes 不匹配错误 (2) loss_bbox 始终为 0 (3) 出现训练后评估结果为空等典型情况
MMDetection 提供的学习率大部分都是基于 8 卡,如果你的总 bs 不同,一定要记得缩放学习率,否则有些算法很容易出现 NAN。

在配置完成之后,可以先进行可视化来测试整个数据流,从而判断这个配置文件是否是有效的。


from mmdet.registry import DATASETS, VISUALIZERS
from mmengine.config import Config
from mmengine.registry import init_default_scope
import matplotlib.pyplot as plt
import os.path as osp

cfg = Config.fromfile('./cat_dataset/cat_rtmdet_config.py')

init_default_scope(cfg.get('default_scope', 'mmdet'))

dataset = DATASETS.build(cfg.train_dataloader.dataset)
visualizer = VISUALIZERS.build(cfg.visualizer)
visualizer.dataset_meta = dataset.metainfo

plt.figure(figsize=(16, 5))

# 只可视化前 8 张图片
for i in range(8):
   item=dataset[i]

   img = item['inputs'].permute(1, 2, 0).numpy()
   data_sample = item['data_samples'].numpy()
   gt_instances = data_sample.gt_instances
   img_path = osp.basename(item['data_samples'].img_path)

   gt_bboxes = gt_instances.get('bboxes', None)
   gt_instances.bboxes = gt_bboxes.tensor
   data_sample.gt_instances = gt_instances

   visualizer.add_datasample(
            osp.basename(img_path),
            img,
            data_sample,
            draw_pred=False,
            show=False)
   drawed_image=visualizer.get_image()

   plt.subplot(2, 4, i+1)
   plt.imshow(drawed_image[..., [2, 1, 0]])
   plt.title(f"{osp.basename(img_path)}")
   plt.xticks([])
   plt.yticks([])

plt.tight_layout()    

得到以下结果
在这里插入图片描述
这是通过马赛克数据增强后的可视化结果。

模型训练和测试推理

训练

python tools/train.py cat_dataset/cat_rtmdet_config.py

测试和推理

# 测试并保存结果
python tools/test.py ipynb/cat_dataset/cat_rtmdet_config.py work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth --show-dir results

会在 work_dir/cat_rtmdet_config/当前时间戳/results/ 下生成测试图片,下面对前 8 张图片进行可视化。

import os
import matplotlib.pyplot as plt
from PIL import Image

%matplotlib inline

plt.figure(figsize=(20, 20))

# 你如果重新跑,这个时间戳是不一样的,需要自己修改
root_path='../work_dirs/cat_rtmdet_config/20230613_210036/results/'
image_paths= [filename for filename in os.listdir(root_path)][:4]

for i,filename in enumerate(image_paths):
    name = os.path.splitext(filename)[0]

    image = Image.open(root_path+filename).convert("RGB")
  
    plt.subplot(4, 1, i+1)
    plt.imshow(image)
    plt.title(f"{filename}")
    plt.xticks([])
    plt.yticks([])

plt.tight_layout()

在这里插入图片描述
左边是GT,右边是预测值。

推理过程

python demo/image_demo.py ipynb/cat_dataset/cat.jpg ipynb/cat_dataset/cat_rtmdet_config.py --weights work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth 

在这里插入图片描述

可视化分析

这里需要用到MMYOLO中提供的脚本和功能,因为MMYOLO是基于MMDetection开发的,所以不存在迁移的问题。
可视化分析包括特征图可视化以及类似Grad CAM等可视化分析手段。

安装MMYOLO

git clone -b tutorials https://github.com/open-mmlab/mmyolo.git
mim install mmyolo
cd mmyolo
pip install -e .

特征图可视化

对上面的cat的图片进行可视化分析,但是这张图片分辨率太大,会导致程序崩溃,所以先进行缩放处理。

import cv2


img = cv2.imread('mmdetection/ipynb/cat_dataset/cat.jpg')

# print(img.shape)
h,w=img.shape[:2]
resized_img = cv2.resize(img, (640, 640))
cv2.imwrite('mmdetection/ipynb/cat_dataset/cat_resize.jpg', resized_img)

1.可视化backbone输出的3个通道

!python demo/featmap_vis_demo.py \
      ../mmdetection/ipynb/cat_dataset/cat_resize.jpg \
      ../mmdetection/ipynb/cat_dataset/cat_rtmdet_config.py \
      ../mmdetection/work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth  \
      --target-layers backbone  \
      --channel-reduction squeeze_mean

在这里插入图片描述
上图中绘制的3个输出特征图对应大中小输出特征图。由于本次训练的backbone实际上没有参与训练,从上图可以看到,大物体cat是在小特征图进行预测,这符合目标检测分层检测思想。

2.可视化neck输出的3个通道

!python demo/featmap_vis_demo.py \
      ../mmdetection/ipynb/cat_dataset/cat_resize.jpg \
      ../mmdetection/ipynb/cat_dataset/cat_rtmdet_config.py \
      ../mmdetection/work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth  \
      --target-layers neck  \
      --channel-reduction squeeze_mean

在这里插入图片描述
从上图可以看出,由于neck是参与训练的,并且FPN间的信息融合导致输出特征图更加聚集

Grad-Based CAM可视化

由于目标检测的特殊性,这里实际上可视化的并不是CAM而是Grad Box AM。使用前需要先安装grad-cam库

pip install grad-cam

1.查看neck输出的最小输出特征图的Grad CAM

!python demo/boxam_vis_demo.py \
      ../mmdetection/ipynb/cat_dataset/cat_resize.jpg \
      ../mmdetection/ipynb/cat_dataset/cat_rtmdet_config.py \
      ../mmdetection/work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth  \
      --target-layers neck.out_convs[2]

在这里插入图片描述

2.查看neck输出的最大输出特征图的Grad CAM

!python demo/boxam_vis_demo.py \
      ../mmdetection/ipynb/cat_dataset/cat_resize.jpg \
      ../mmdetection/ipynb/cat_dataset/cat_rtmdet_config.py \
      ../mmdetection/work_dirs/cat_rtmdet_config/best_coco_bbox_mAP_epoch_30.pth  \
      --target-layers neck.out_convs[0]

在这里插入图片描述
这一层是空白的原因是,因为cat是大物体,而这一层是训练小目标的,所以没有对猫进行训练,所以梯度为0。

MMdetection实现热力图可视化 7.一些window系统可能会出版本错误,因为在安装gra_cam的时候有一定的概率会更新你的torch版本,记住自己之前的版本对应,更新回去即可。5.目前支持RetinaNet, Faster RCNN, Mask RCNN 和 YOLOX。输入命令 pip install gra_cam即可,等待下载完成就可以直接可视化热力图了。3.将det_cam_visualizer.py文件放到mmdet\utils\目录中。1.下载两个文件,一会上传(先备份一下自己的环境,防止后续出错) 阅读详情

相关推荐

MMEngine之介绍、结构、应用示例、常见用法(一)

主要Runner 调用以下组件来完成训练和推理循环:数据集:负责在训练、测试和推理任务中构建数据集,并将数据输入模型。在使用中,它由 PyTorch DataLoader 包装,该加载器启动多个子进程来加载数据。Model:接受数据并输出训练过程中的损失;在测试和推理任务期间接受数据并执行预测。在分布式环境中,模型由模型包装器(例如,MMDistributedDataParallel)包装。

qq_41627642的博客 6815

mmdetection里进行特征图可视化

    在mmdetection里实现简单的特征可视化代码,不是像Grad-CAM算法那样对分类或检测进行可视化,而是就特征层里的最大像数值,我们认为是重要的,将其可视化出来。一般测试的时候用,能够可视化模型的预测效果。训练阶段可以看看,但没太大效果。 ..................

weixin_41311686的博客 9636

torchvision detection/ mmdetection目标检测模块特征可视化

pytorch: 1.9.0 torchvision: 0.10 mmdetection: 2.15.0 mmcv: 1.3.10 测试图片(图片大小:720x1280): 之前博主写过一篇pytorch模型特征可视化的博文:pytorch卷积网络特征图可视化 ,本篇博文想记录一下目标检测模型的特征图可视化,这个在很多OD的论文上都可以看到CAM图,其实操作起来和前面博文介绍的基本一致,主要是看选取哪层conv的输出作为特征,然后经过颜色转换后叠加到原图去,获取特征图的方法主要用到钩子函数,顾名思义,将特征

ouening的博客 7590

mmdetection特征图可视化!

mmdetection特征图可视化!测试了好多,就师哥给的好用!

qq_45720073的博客 2594

grad-cam-implementation:卷积神经网络Grad CAM算法的实现

类激活图 通过可视化对于这些模型的预测(或视觉解释)“重要”的输入区域,可以使基于卷积神经网络(CNN)的模型更加透明的技术。 使用VinBigData图像和Inception架构的示例

实战指南:如何用Kamailio+FreeSWITCH搭建高并发企业通信系统(附配置模板)

本文提供了一份实战指南,详细介绍了如何利用Kamailio与FreeSWITCH构建高并发企业通信系统。通过将Kamailio作为高性能SIP信令平面处理路由与负载均衡,FreeSWITCH作为媒体与应用平面负责通话与业务逻辑,实现信令与媒体分离的电信级架构。文章深入解析了架构设计、核心配置、集群部署与性能优化,并附有配置模板,旨在帮助企业构建可水平扩展、高可用的通信解决方案。

dell8的博客 364

【OpenMMLab AI训练营第二期】Class1: OpenMMLab概述

又是子豪兄来做讲解,记得本科时候做树莓派相关的内容的时候就看到了子豪兄的很多分享,后来在接触CV的过程中也看了不少子豪兄分享的干货。再次膜拜一下大佬。此前也算接触过MM相关的库,但是这次整体的介绍还是给了很多启发,以下就按照自己的理解来写一些感悟吧。如果在记录的过程中有错误的地方,也请大家指出。欢迎讨论!

lostcorner的博客 839

6.5 构网型储能系统的协同控制策略

本文系统阐述了构网型储能系统的协同控制策略,重点分析了多机组群协同运行面临的功率分配不均、动态响应失配等挑战。研究提出了改进型下垂控制与虚拟阻抗法、基于一致性算法的分布式协同控制等解决方案,探讨了构网型储能与同步发电机在惯性响应、一次调频等方面的协同机制,以及与跟网型电源在电压支撑、阻抗重塑等方面的互补作用。文章构建了分层控制架构,为实现多类型电源的全局优化运行提供了技术路径,对提升高比例新能源电力系统的稳定性具有重要意义。

技术工作者 1004

AI 实战训练营(Class 1)OpenMMLab 概述

OpenMMLab诞生于2018年,是一个由中国开发者主导,有国际影响力的人工智能·计算机视觉开源算法体系。OpenMMLab累计开源超过30个算法库、2400个预训练模型,涵盖图像识别分类、目 标检测、图像分割、姿态估计、视频理解、OCR、3D目标检测、3D人体姿态估计、模 型轻量化、自监督、少样本、光流、预训练、多模态、AIGC、推理部署等等计算机 视觉任务,在Github上累计获得十万颗star,超过了Pytorch。

qq_42866033的博客 692

四类九种移位寄存器总结(循环(左、右、双向)移位寄存器、逻辑和算术移位寄存器、串并转换移位寄存器、线性反馈移位寄存器LFSR|verilog代码|Testbench|仿真结果)

移位寄存器有哪些分类呢? 按移位方向分类:①单向移位寄存器(包括左移、右移)②双向移位寄存器 按循环方式分类:①循环移位寄存器②非循环移位寄存器 按部位的不同分类:①逻辑移位寄存器②算术移位寄存器 按输入输出方式分类:①串入串出②串入并出③并入串出④并入并出

Loudrs的博客 1万+

别再只盯着报点率了:聊聊电容触摸屏算法里那些不为人知的‘软实力’

本文深入探讨了电容触摸屏算法中常被忽视的‘软实力’,包括环境噪声干扰、信号衰减补偿和多物理场耦合等核心挑战。通过对比消费电子与工业场景的算法需求,揭示了触摸算法在不同应用中的技术分野。文章还提供了实用的算法评估方法和前沿发展趋势,帮助开发者全面了解电容触摸屏技术的隐秘战场。

weixin_42524276的博客 389

OpenMMLab AI 实战训练营 CLASS5 MMDetection教学

在 OpenMMLab 项目中,所有这些项目都涵盖在一个配置文件中,一个配置文件定义了一个完整的训练 过程。− 训练策略 梯度下降算法、学习率参数、batch_size、训练总轮次、学习率变化策略等等。− 数据集 用什么数据训练模型:数据集划分、数据文件路径、数据增强策略等等。− 一些辅助功能 如打印日志、定时保存checkpoint等等。− optimizer、lr_config 等字段定义训练策略。− load_from 字段定义与训练模型的参数文件。− 模型结构 模型有几层、每层多少通道数等等。

m0_74046692的博客 156

从零构建:用Simulink搭建固定翼无人机六自由度模型的避坑指南

本文详细介绍了使用Simulink从零构建固定翼无人机六自由度动力学模型的完整流程和避坑指南。重点解析了模型架构设计、气动力计算、参数配置、仿真求解器选择等关键环节的常见问题与解决方案,帮助开发者快速建立准确可靠的无人机控制系统仿真模型。

hhh00的博客 999

【OpenMMLab AI训练营第二期】Class6:目标检测与MMDetection

目标检测是在给定的图片中用矩形框框出所有感兴趣物体同时预测物体类别的过程。图像分类和目标检测的异同目标检测在生活中有非常广泛的应用,例如人脸识别、智慧城市、自动驾驶等。也可作为其他下游视觉任务的基础,例如OCR、姿态识别等等。

lostcorner的博客 341

一文解释电路中常用电子元器件应用和选型01

电容和二极管是电路中最常用的两个电子元器件,种类和系列众多,这里简单总结一下应用场景和选型方式 电容(Capacitor) 电容的种类(20种以上)和应用非常广泛,但是我经常遇到的无非就是下面这几种: 应用 1.隔直流。 2.旁路(去耦) 3.耦合 4.滤波 5.温度补偿 6.计时 7.调谐 8.整流 9.储能 种类 1. 陶瓷电容 2. 云母电容 3. 铝电解电容 4. 钽

weixin_43904073的博客 2237

芒果YOLOv12改进108:基于QARep提出多种<独家原创结构>:ReNLANQARep, QARep, CSCQARep, C3QARep, C2fQARep等,即插即用提升小目标检测

芒果YOLOv12改进108:基于QARep提出多种<独家原创结构>:ReNLANQARep, QARep, CSCQARep, C3QARep, C2fQARep等,即插即用提升小目标检测

包括YOLOv5、YOLOv7、YOLOv8等模型改进 755

AI实战训练营(Class 7)MMDetection安装配置

plt . figure(figsize =(16 , 5)) # 只可视化前 8 张图片 for i in range(8) : item = dataset [ i ] img = item [ 'inputs' ] . permute(1 , 2 , 0) . numpy() data_sample = item [ 'data_samples' ] . numpy() gt_instances = data_sample . gt_instances。

qq_42866033的博客 219

【DRAM存储器六十一】LPDDR5介绍--LPDDR5/5X/4/4X IO结构

简述LPDDR5/5X/4/4X IO结构及等效电路下的VREF理论值计算

highman110的博客 483

【OpenMMLab AI训练营第二期】Class3: RTMPose

结合MMDetection、MMPose、MMDeploy等算法库来实现三角板关键点检测。其中采用了两阶段来结合两个不同任务来共同完成三角板关键点检测。首先使用目标检测,分别训练Faster RCNN和RTMDet-Tiny对图像、视频进行检测。然后使用RTMPose-s来进行关键点检测。最后可以通过将模型转为ONNX格式来部署模型到终端上进行推理。

lostcorner的博客 502

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OpenMMLab AI实战训练营 CLASS3 模型学习

1. 标注一个数据集2.定义损失函数:用于评估单个预测结果的“好坏”程度3.求解一个最优化问题,寻找使得总损失最小的参数Θ ∗。

m0_74046692的博客 170

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

mmdetection可视化

1.https://blog.youkuaiyun.com/l7H9JA4/article/details/107421408

weixin_43489950的博客 2684

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

满足你一切需求的 MMYOLO/MMDet 可视化 (一)

可视化在深度学习时代算是核心需求,借助可视化功能,研究者可以快速定位分析模型以及排查问题。在 OpenMMLab 2.0 时代,MMEngine 对常用的可视化需求进行了设计和实现,其具备如下功能:

qq_39967751的博客 6906

[MMDET]YOLO可视化特征图不匹配问题

问题:在MMDetectoin中,YOLO可视化特征图时可能会导致不匹配的问题

kuyugoing的博客 737

如何结合Grad-CAM进行mmdetection的特征可视化

在mmdetection的github项目中找到一些CAM的相关内容如何 从 Pull Request 下载变更文件1.访问的链接是一个 Pull Request(#7987)的文件差异页面。可以打开 PR 页面: → https://github.com/open-mmlab/mmdetection/pull/79872.点击 “Files changed” 标签页3.找到需要下载的文件,点击右上角的 … → “View file”4.在文件页面点击 “Raw” 按钮,再保存或下载。

yangsn0719的博客 508

【OpenMMLab AI实战营第二期】MMDetection安装与使用

MMDetection 是一个目标检测工具箱,包含了丰富的目标检测、实例分割、全景分割算法以及相关的组件和模块,下面是它的整体框架:MMDetection 由 7 个主要部分组成,apis、structures、datasets、models、engine、evaluation 和 visualization。apis 为模型推理提供高级 API。structures 提供 bbox、mask 和 DetDataSample 等数据结构。

JeffDing 1106
上一篇: 【OpenMMLab AI训练营第二期】Class6:目标检测与MMDetection
下一篇: 【OpenMMLab AI训练营第二期】Class8:语义分割和MMSegmentation
lostcorner
博客等级 码龄9年 9粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值