AnchorGenerator类简介

MONAI 3D目标检测官方demo实践与理解(二)模型理解 在上一节介绍了MONAI的3D目标检测案例,以及如何运行训练代码。MONAI 3D目标检测官方demo实践与理解(一)项目搭建,训练部分的运行本篇主要是对该项目的模型进行理解。 阅读详情

Pytorch中的AnchorGenerator

在pytorch中, AnchorGenerator主要用于生成候选框,该类存储在torchvision/models/detection/rpn.py中。

#创建AnchorGenerator类
from torchvision.models.detection.rpn import AnchorGenerator
generator = AnchorGenerator()

该类继承于nn.Module, 因此包含forward属性
要获得generator首先要有一个3通道的图像,以及图像对应的features
首先生成一幅伪图像

#利用随机函数创建图像, 生成1幅600×800的3通道图像
import torch
image = torch.randn(1,3, 600, 800)   

然后生成该图像对应的features

#利用resnet与金字塔的结合模型生成图像的特征图 
import torchvision
from torchvision.models.detection.backbone_utils import BackboneWithFPN

#创建一个50层的resnet
resnet = torchvision.models.resnet.resnet50(pretrained=False)    
#给该resnet加上FeaturePyramidNetword
#layer1..layer4分别是resnet中的卷积层的属性名
return_layers = {'layer1': '0', 'layer2': '1', 'layer3': '2', 'layer4': '3'}
#inchannels_stage2是layer1..layer4卷积层输出的通道数
in_channels_stage2 = resnet.inplanes // 8
in_channels_list = [
        in_channels_stage2,
        in_channels_stage2 * 2,
        in_channels_stage2 * 4,
        in_channels_stage2 * 8,
    ]
out_channels = 256  #金字塔层输出的通道数
#生成与金字塔相融合的resnet网络模型
resnet_fpn = BackboneWithFPN(resnet, return_layers, in_channels_list, out_channels)

至此我们创建好了用于生成特征向量的的模型。
接下来将image转成向量

#获得特征向量
features = resnet_fpn(image)

下面来看一下features的样子

print(type(features))
for key in features:
	print(key,"的大小:",features[key].shape)

得到的输出结果如下:

<class 'collections.OrderedDict'>
0 的大小: torch.Size([1, 256, 150, 200])
1 的大小: torch.Size([1, 256, 75, 100])
2 的大小: torch.Size([1, 256, 38, 50])
3 的大小: torch.Size([1, 256, 19, 25])
pool 的大小: torch.Size([1, 256, 10, 13])

可以看到输出的feature是OrderedDict类型,共包含了5个特征图
下面将图像和特征图输入到AnchorGenerator中
由于AnchorGenerator.foword的输入参数分别是ImageList和List类型,我们需要对上面对应的变量进行转换

from torchvision.models.detection.image_list import ImageList
#对image进行转换
#ImageList第一个参数是tensor类型,第二个参数是List[Tuple[int, int]]类型
#当包含多幅图像时,第二个参数应分别累出每幅图像的大小:list([(600,800),(600,800),(600,800),])
imglist = ImageList(image, list([(600,800)]))

#转换feature为list类型
flist = list(features.values())

最后看一下生成anchors

#最后将imglist和flist输入AnchorGenerator
anchors = generator(imglist,flist)

print(type(anchors))
print(len(anchors))
print(anchors[0][1:10,:])

输出结果:

<class 'list'>
1
tensor([[-64., -64.,  64.,  64.],
        [-45., -91.,  45.,  91.],
        [-87., -45.,  95.,  45.],
        [-60., -64.,  68.,  64.],
        [-41., -91.,  49.,  91.],
        [-83., -45.,  99.,  45.],
        [-56., -64.,  72.,  64.],
        [-37., -91.,  53.,  91.],
        [-79., -45., 103.,  45.]])

为什么anchor中好多负数?

Pytorch torchvision构建Faster-rcnn(三)----Region Proposal Network RPN是two-stage的标志性结构,并且其本身也是一个二分类的目标检测网络,因此在faster-rcnn的整个网络结构中能看到anchor的使用,回归和分类等操作,这里讲具体介绍一下。 整个rpn部分代码在torchvison/models/detection/rpn.py中,其中定义了RPNHead,AnchorGenerator,RegionProposalNetwork三个模块。 目... 阅读详情

相关推荐

OpenPCDet系列 | 5.4.1 DenseHead中的AnchorGenerator锚框生成模块

然后再加上anchor高度的一半也就是1.56 // 2 = 0.78,z轴的位置信息就被更新为1,这个就是anchor的具体在z轴上的位置。下面就是某个grid位置的anchor配置信息,可以看见一个位置的一类anchor会有两个方向的尺寸位置一样的配置。思路上是比较清晰的,具体的细节就是各种anchor信息在各位置的拼接处理。ps:这里的anhcor的z轴位置信息还回加上anchor的高度,以汽车类别为例,由于每个anchor的z轴gird位置设置为。函数来进行具体的anchor生成。

Clichong 1022

MMDet逐行解读之AnchorGenerator

文章目录前言1、base_anchors的生成2、grid_anchors的生成总结 前言   本篇主要介绍mmdet/core/anchor/anchor_generator.py文件下的AnchorGenerator类。以RetinaNet的配置作为说明。 anchor_generator_cfg = dict( type='AnchorGenerator', octave_base_scale=4, # base_anchor的大小 scales_per_octa

wulele2的博客 7719

class AnchorGenerator:def generate_anchors测试

首先对于初始化来讲self.cell_anchors,遍历zip(sizes, aspect_ratios),传入generate_anchors中,对于generate_anchors来讲,其得到的参数实际为size=(128, 256, 512),aspect_ratio=(0.5, 1.0, 2.0)。第一次传入(32,)和(0.5, 1.0, 2.0),)生成前三个。遍历一圈,生成15个。此时对每一个位置来讲共生成。......

qq_45583898的博客 212

5 -【Faster R-CNN】之 AnchorGenerator 代码精读

anchor 的作用:anchor 是用来做辅助计算的,用于和 (上节课说的,由RPN Head 计算出的)bounding box regression 一起,计算出 预测的 候选框的坐标信息。** 我理解 bounding box regression 是一个 相对位置信息,且是一个系数。

weixin_37804469的博客 1587

Faster RCNN网络源码解读(Ⅵ) --- RPN网络代码解析(上)RPNHead类与AnchorsGenerator类解析

Faster RCNN网络源码解读(Ⅵ) --- RPN网络代码解析(上)RPNHead类与AnchorsGenerator类解析

qq_41694024的博客 1097

各种逻辑漏洞

注册:短信轰炸验证码安全问题密码爆破邮箱轰炸用户任意注册、批量注册用户名枚举XSS(有框的地方就可以尝试插XSS)登录:短信轰炸、验证码安全问题、密码爆破、邮箱轰炸SQL注入撞库抓包把password字段修改为空值发送认证凭证替换、比如返回的数据包中包含账号,修改账号就能登录到其他账号Cookie仿冒修改返回包的相关数据,可能会登陆到其他的用户找回密码:短信邮箱轰炸、短信邮箱劫持重置任意用户账户密码、验证码手机用户未统一验证直接跳过验证步骤。

shirlly_的博客 2091

anchor_size, aspect_ratio, anchors以及torchvision 中 AnchorGenerator 解读

在一些目标检测的算法中,常常会看到关于如何生成 anchors 的描述,涉及到多尺寸目标检测的时候,就需要有不同大小的anchors作为proposal。转换后的 width_b, height_b 满足以下关系。

RessCris的博客 1152

elementui中el-select和el-tree实现下拉树形多选功能

elementui中el-select和el-tree实现下拉树形多选功能

weixin_49203377的博客 6556

【MMDet Note】MMDetection中AnchorGenerator代码理解与解读

mmdetection/mmdet/core/anchor/anchor_generator.py中AnchorGenerator类的关键代码解读

weixin_47691066的博客 1830

5分钟搞定Conflux钱包注册:Fluent钱包从安装到转账全流程指南

本文提供Conflux公链上Fluent钱包的完整注册和使用指南,涵盖从安装、助记词备份到CFX转账的全流程。特别强调安全操作要点,包括助记词保管和网络选择,帮助用户5分钟内快速掌握这款国产公链钱包的核心功能,确保数字资产安全。

weixin_29181861的博客 243

MOOS-ivp 实验三 MOOS简介(1)

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例

weixin_44151170的博客 7434

python的anchor函数_AnchorGenerator类简介

Pytorch中的AnchorGenerator在pytorch中, AnchorGenerator主要用于生成候选框,该类存储在torchvision/models/detection/rpn.py中。#创建AnchorGenerator类from torchvision.models.detection.rpn import AnchorGeneratorgenerator = AnchorG...

weixin_39816024的博客 1751

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1911

〖MMDetection〗解析文件:mmdet/models/task_modules/prior_generators/anchor_generator.py 之 AnchorGenerator

mmdetection源码解析

sinat_39783664的博客 882

三极管稳压电路仿真分析

Z1的负极连接到三极管的基极,三极管发射极E是输出,形成了一个射极跟随器,也就是说,E极的电压随着B电压变化而变化,但BE之间有一个压降,一般硅管0.7V左右,假设B极是6.7V,那E极就是6.7-0.7=6V,所以就有一个公式VOUT=Vz-Vbe,可以根据VOUT来选择合适的稳压管。从稳压管的SPEC中我们可以看到,Vz@Izt这个参数,指在Izt=20mA时,稳压管的稳压值Vz=5.1V,也就是说流过稳压管的电流在20mA以上,稳压效果最佳。三极管导通之后,E点电压会升高,当升高到Vbe。

U_YAO的博客 2321

lgv20刷twrp_LG港版v20 root

这是LG港版v20 root,整理了一下有关LG港版v20的官方固件包了,有没有需要的呢,这里把固件包整理一下也是方便大家以后好下载了,因此有一些机友还是不知道在哪里下载官方的rom包,在这里说的固件rom包也就是原版的系统包了,大家可以放心的使用,这些系统包也都是支持线刷的,大家下载下来解压出来根据里面的相关教程来操作就可以了,很简单的,如果你也需要的话就一起来看看吧。软件提示注意!! 此过程会...

weixin_33212263的博客 5387

mmdetection框架解读——anchor生成机制

anchor是一组先验框,在faster rcnn中被提出,再次记录mmdetection anchor生成思路。 mmdet中的AnchorGenerator类负责生成anchor,该类构造函数接收三个参数:base size,ratios,scales base size:anchor大小 ratios:anchor 高宽比 scales:anchor缩放比例 每一处生成ratios*scal...

silence2015的专栏 4140

HyperLynx(十四)高级分析技术

如果没有查找到该模型,可使用菜单命令“Setup”→“Options”→“Directories”,打开“Set Directories”对话框,单击“Edit”按钮,在“Select Directories for IC-Model Files”对话框中将路径“…在“Assign Models”对话框中的“Port”栏找到“OUTM”端口,在其对应的“Circuit Connection”栏中选择“txout”项。将端口R75连接到“Gnd”。同样,将“EMP”连接到“V”,完成预加重设置。...

小幽余生不加糖 4948

【夜深人静读MM】MMDetection中AnchorGenerator学习笔记

mmdetection中anchor生成的讲解

Gorgeous_wxd 473

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

mmdetection学习之anchor_generator

什么是mmdetection就不介绍了,自己可取baidu或者google 文件:mmdet/core/anchor/anchor_generator.py 在文件中定义了一个detector产生预选框的类。 程序具体如下。 import torch class AnchorGenerator(object): def __init__(self, base_size, sc...

qq_29212757的博客 3044

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

叹为观止-FasterRCNN锚点(框)生成(tf.2x)

这是自己学习gitub上FasterRCNN 代码的一点理解,本人菜鸡,欢迎指教。 这是源码地址 百度网盘 提取码:dntu import tensorflow as tf from detection.utils.misc import calc_img_shapes,calc_batch_padded_shape class AnchorGenerator: def __init__(se...

thebeautyofmath的博客 675

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

anchor说人话解释

现有128,64,32,16,8,这5个尺度的特征图,128对应的是4,所以生成的基础anchor是大小为4的,可以通过scales放大anchor的倍数,通过ratios来改变anchor的长宽比,一组anchor共有3*5=15个anchor,这5个尺度的特征图共生成(128*128+64*64+32*32+16*16+8*8)*15个anchor。不同尺度的特征图对应不同的strides,低层次的特征图对应小的strides,高层次的特征图对应大的strides。

qq_43654794的博客 477

torchvision源码解读——Faster-RCNN

概述 torchvision是用pytorch写成的著名的计算机视觉库,这篇博客介绍经典的目标检测算法Faster-RCNN,而torchvision中的Faster-RCNN选取的特征提取网络是ResNet-50,并且还加上了后来的研究成果FPN(特征金子塔) ...

graviton的博客 657

(二十一)mmdetection源码解读:faster_rcnn_r50_fpn.py详解rpn_head

一、model配置文件->rpn_head 二、rpn_head详解 1、anchor_generator->AnchorGenerator 2、bbox_coder->DeltaXYWHBBoxCoder 3、oss_cls->CrossEntropyLoss 4、loss_bbox->L1Loss

m0_37737957的博客 1906

【OpenPCDet】1. 理解 anchor 生成

文章目录一. 代码二. 结果1. anchor 中心2. anchor三. 理解 OpenPCDet 中 anchor 的生成是在 anchor_generator.py 这个文件中,仔细看一下,这部分是完全独立的,因此我们可以测试一下这部分,看一下生成的 anchor 到底 ‘长’ 什么样子,以及返回值是什么,方便加深理解。 不多说,先上代码,自己稍微改了一点,加了一些画图的代码 一. 代码 import torch from easydict import EasyDict import pdb im

qq_35632833的博客 1760

mmdetection中的anchor部分的代码理解和注释

/home/wuchenxi/mmdetection/mmdet/models/anchor_heads/anchor_head.py from future import division import numpy as np import torch import torch.nn as nn from mmcv.cnn import normal_init from mmdet.core i...

oldsix666的博客 3649
下一篇: pytorch中的numel函数
alexsci
博客等级 码龄15年 7粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值