avatar
Articles
34
Tags
34
Categories
2

主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者
在发之泽
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者

在发之泽

mmd_hook
Created2023-11-17
MMCV核心组件:Hook 0 摘要
mmd_hook
Created2023-11-17
MMDetection3D:注册模型 train.py的开头中,已经开始注册必要的模块了 from mmcv import Config from mmdet import __version__ from mmdet.datasets import build_dataset from mmdet.apis import (train_detector, init_dist, get_root_logger, set_random_seed) from mmdet.models import build_detector 看mmdet文件夹下的__init__.py,以及datasets , apis , models 下的__init__.py文件,发现: mmdet.__init__py: from .backbones import * # noqa: F401,F403 from .necks import * # noqa: F401,F403 from .roi_extractors import * # n ...
Registry
Created2023-11-16
Registry Registry 类可以提供一种完全相似的对外装饰函数来管理构建不同的组件,例如 backbones、head 和 necks 等等,Registry 类内部其实维护的是一个全局 key-value 对。通过 Registry 类,用户可以通过字符串方式实例化任何想要的模块。 Registry 类最大好处是:解耦性强、可扩展性强,代码更易理解。 回到 Registry 类本身,有如下几种用法: # 0. 先构建一个全局的 CATS 注册器类 CATS = mmcv.Registry('cat') # 通过装饰器方式作用在想要加入注册器的具体类中 #=============================================================== # 1. 不需要传入任何参数,此时默认实例化的配置字符串是 str (类名) @CATS.register_module() class BritishShorthair: pass # 类实例化 CATS.get('BritishShorthair')(* ...
PETR_code_note
Created2023-11-16|-技术 -笔记
PETR code note cfg = Config.fromfile(args.config) #从args更新读取的config文件,args优先级>cfg优先级,args定义了cfg文件中没有定义的work_dir等参数,还有一部分需要覆盖cfg的参数 cfg.merge_from_dict() 合并字典到配置 通过 cfg.merge_from_dict 函数接口可以实现对字典内容进行合并,典型用法如下: cfg_file = osp.join(data_path, 'config/a.py') cfg = Config.fromfile(cfg_file) input_options = {'item2.a': 1, 'item2.b': 0.1, 'item3': False} cfg.merge_from_dict(input_options) # 原始 a.py 内容为: item1 = [1, 2] item2 = {'a': 0} item3 = True item4 = 'test' # 进行合并后, cfg 内容 item1 = [1, 2] ...
PETR
Created2023-11-16|-技术 -笔记
PETR初学习 前言 当前基于BEV的纯视觉3D检测中,划分的方式有很多,按照单目、环视、视觉+Lidar的融合等等。然后,从2D到3D的投影方式也有不同方式来划分,比如IPM方式、Lifg-Splat、MLP、Transformer等。 目前主流的方法中,按照BEV特征的构建方式来划分,主要可以分为两大方向: 1、LSS框架,例如BEVDet等采用2D向3D的投影方式,先Lift->再Splat; 2、BEVFormer和DETR3D的框架,采用3D空间点向2D空间查询的方式。 而PETR提出了一种新的2D和3D的融合方式,也可以另算第三种方法,其不是简单的2D到3D投影,也不是3D到2D的查询,是直接将3D位置空间变换成和2D特征相同尺度的特征,然后将2D和3D特征融合后得到新的特征。 关于DETR和PETR3D的网络框架: DETR框架,单图片2D目标检测,首先采用CNN网络提取图片特征,然后加入2D position encoding,送入到transformer decoder结构中预测2D目标位置和类别; DETR3D,multi-view环视图像的3D目标检 ...
MMDetection整体构建流程二
Created2023-11-15
MMDetection 整体构建流程(二) 本文核心内容是按照抽象到具体方式,从多个层次进行训练和测试流程深入解析,从最抽象层讲起,到最后核心代码实现,希望帮助大家更容易理解 MMDetection 开源框架整体构建细节 一、第一层整体抽象 上图为 MMDetection 框架整体训练和测试抽象流程图。按照数据流过程,训练流程可以简单总结为: 给定任何一个数据集,首先需要构建Dataset类,用于迭代输出数据 在迭代输出数据的时候需要通过数据pipeline对数据进行各种处理,最典型的处理流是训练中的数据增强操作,测试中的数据预处理等 通过Sampler采样器可以控制Dataset输出的数据顺序,最常用的是随机采样器RandomSampler。由于Dataset中输出的图片大小不一样,为了尽可能减少后续组成batch时pad的像素个数,MMDetection引入了分组采样器GroupSampler和DistributedGroupSampler,相当于在RandomSampler基础上额外新增了根据图片宽高比进行group功能 将Sampler和Dataset都输入给DataLoa ...
mmdetection3d
Created2023-11-15
MMDetection3D 整体框架介 [TOC] 一、前言 由于3D本身数据的复杂性和MMDetection3D支持任务(电云D检测、单目3D检测、多模态3D检测和点云3D语义分割等)和场景(室内和外)的多样性,整个框架结构相对复杂,门槛高,这里对MMDetection3D整个框架进行整体的了解,包括设计流程,核心组件,数据集处理方法等。 整个框架的代码库目录结构如下: # MMDetection3D 代码目录结构,展示主要部分 mmdetection3d | |- configs # 配置文件 |- data # 原始数据及预处理后数据文件 |- mmdet3d | |- ops # cuda 算子(即将迁移到 mmcv 中) | |- core # 核心组件 | |- datasets # 数据集相关代码 | | ...
mmdetection整体构建流程
Created2023-11-15
MMDetection 整体构建流程 一、摘要 众所周知,目标检测算法比较复杂,细节比较多,难以复现,而我们推出的 MMDetection 开源框架则希望解决上述问题。目前 MMdetection 已经复现了大部分主流和前沿模型,例如 Faster R-CNN 系列、Mask R-CNN 系列、YOLO 系列和比较新的 DETR 等等,模型库非常丰富,star 接近 13k,在学术研究和工业落地中应用非常广泛。 本文主要是从整体框架构建角度来解析,不会涉及到具体算法和代码,希望通过本文讲解: MMDetection 整体构建流程和思想 目标检测算法核心组件划分 目标检测核心组件功能 二、目标检测算法抽象流程 按照目前目标检测的发展,可以大概归纳为如下所示: img 注意上面仅仅写了几个典型算法而已,简单来说目标检测算法可以按照 3 个维度划分: 按照 stage 个数划分,常规是 one-stage 和 two-stage,但是实际上界限不是特别清晰,例如带 refine 阶段的算法 RepPoints,实际上可以认为是1.5 stage 算法,而 Cascade R-CN ...
Attention:从NLP到CV再到BEV
Created2023-11-09|-技术 -笔记
一、Transformer Transformer源于17年谷歌的文章Attention Is All You Need“” Transformer最开始应用于NLP领域的机器翻译任务。 它是一个编码器-解码器结构:编码器将原始语言的句子作为输入并生成基于注意力的表征,解码器则关注编码信息并以自回归方式生成翻译的句子。 Transformer中最重要的是Attention机制。 Attention(注意力)机制如果浅层的理解,跟他的名字非常匹配。他的核心逻辑就是「从关注全部到关注重点」。 Attention机制的实质其实就是一个寻址(addressing)的过程,如下图所示:给定一个和任务相关的查询Query向量 q,通过计算与Key的注意力分布并附加在Value上,从而计算Attention Value,这个过程实际上是Attention机制缓解神经网络模型复杂度的体现:不需要将所有的N个输入信息都输入到神经网络进行计算,只需要从X中选择一些和任务相关的信息输入给神经网络。 举个例子: 图书管(source)里有很多书(value),为了方便查找,我们给书做了编号(key) ...
Attention
Created2023-11-09|-技术 -笔记
一、注意力机制:Attention 1.1什么是注意力机制? 我们先来看一张图片 那么,大家的目光是更多注意在美少女古河渚身上,还是花草风景身上呢?可能对于热爱动漫的人来说他会关注logo------CLANNAD 1和主人公古河渚,对于喜欢花的人来说可能更关注樱花,对于喜欢制服的人来说可能更关注jk装...... 再举几个例子: 看人-->看脸 看文章-->看标题 看段落-->看开头 注意力机制其实是源自于人对于外部信息的处理能力。由于每一时刻接受的信息都是无比庞大且复杂万分的,远远超过了人脑的处理能力,因此人在处理信息的时候,会将注意力放在需要关注的信息上,对于其他无关的外部信息进行过滤,这种处理方式被称为注意力机制。 通俗而言,注意力对于人而言可以理解为“关注度”,对于没有感情的机器而言就是赋予多少权重(0-1间的小数),越重要的地方或者越相关的地方就赋予越高的权重。 1.2如何运用注意力机制? 1.2.1 Query、Key和Value 首先,三者概念: 查询(Query):是指查询的范围,自主提示,即主观意识的特征向量 键(Key):是被对比的项, ...
1234
avatar
haseka
这是我的博客
Articles
34
Tags
34
Categories
2
Follow Me
Announcement
This is my Blog
Recent Post
Carla学习2023-12-15
embedding2023-12-07
Petr_3D坐标生成2023-12-05
FPN2023-11-29
pytorch_nn_module__call__2023-11-27
Categories
  • -技术 -笔记7
  • -技术 -笔记 -综述1
Tags
MMDataParallel coordinate batch -BEV -DETR embedding MMDetection3D mmd3d -BEV -BEVFormer PETR log -Attention 数据提取 xmind MMDetection runner MMD Carla -BEV -Attention DataLoader nn.Module FPN Registry Sampler -BEV -DETR -code __call__ BEV registry model MMD3D pytorch 模型搭建 code -BEV -PETR -BEV -综述 hook
Archives
  • December 20233
  • November 202331
Info
Article :
34
UV :
PV :
Last Update :
©2020 - 2023 By haseka
Framework Hexo|Theme Butterfly