HR_net逐步实现过程(2.2)

1.numpy实现数组卷积操作

这里是一个矩阵,换个图试一下

import numpy as np
#输入数组
input_image=np.array([[1,2,3],[4,5,6],[7,8,9]])
#卷积核
kernel=np.array([[1,0],[0,1]])
#卷积操作
output_image=np.zeros((2,2))
for i in range(2):for j in range(2):output_image[i][j]=(input_image[i:i+2,j:j+2]*kernel).sum()
print(output_image)

1.1图像卷积,使用numpy实现卷积

深度理解卷积--使用numpy实现卷积_numpy 卷积-CSDN博客

可以参考这篇文章写的很好。

另一篇是用python实现卷积操作_python 卷积-CSDN博客

1.2json的作用是什么?

        对于简单的数据集进行分类,可以用txt的形式对标签进行存储。但是对于目标检测中,标签不仅包含分类标签,还包含了检测目标的位置信息,因此采用json这种轻量级的数据交换格式,可以将不同的信息打包成一个个模块,并将这些模块按照一定顺序存储在json文件中,读文件时只需要根据关键字对相应的模块进行解析,即可得到该模块的打包信息。

        之后就可以对json文件进行解析,有很多现成的c++/c库用于解析json文件,但是比较麻烦。自己可以找找。

2.项目文件夹内容

checkpoint、outputs、data文件夹分别用来存放模型预训练权重、模型输出结果、训练数据

2.1预训练模型推理

        在进行姿态估计前需要目标检测将不同的目标检测出来,然后再分别对不同的目标进行姿态估计。所以选择一个目标检测模型。

        这里选择 mmdetection工具箱中的faster_rcnn中的resnet50模型文件。配置文件位于

demo/faster_rcnn_r50_fpn_1x_coco-person.py

权重文件

https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco-person/'
'faster_rcnn_r50_fpn_1x_coco-person_20201216_175929-d022e227.pth'

3.模型搭建

3.1定义一个3*3的卷积

#in_planes输入特征通道数
#out_planes输出特征通道数
#stride步长,默认为1
#定义一个3*3卷积,参数包括输入特征通道数,输出特征通道数,返回一个
def conv3x3(in_planes,out_planes,stride=1):return nn.Conv2d(in_planes,out_planes,kernel_size=3,stride=stride,padding=1,bias=False)
#Conv2d对由多个输入平面组成的输入信号进行二维卷积

参考教程pytorch之torch.nn.Conv2d()函数详解-CSDN博客

class BasicBlock(nn.Module):expansion=1def __init__(self,inplanes,planes,stride=1,downsample=None):super(BasicBlock,self).__init__()#第一句话,调用父类的构造函数self.conv1=conv3x3(inplanes,planes,stride)self.bn1=nn.BatchNorm2d(planes,momentum=BN_MOMENTUM)#归一化处理。

nn.BatchNorm2d含义:【深入理解Batch Normalization(3)】pytorch——nn.BatchNorm2d()函数-CSDN博客

作用:在卷积神经网络的卷积层之后总会添加BatchNorm2d进行数据的归一化处理,这使得数据在进行Relu之前不会因为数据过大而导致网络性能的不稳定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1886_emacs_v29中的行号配置

Grey 全部学习内容汇总: GitHub - GreyZhang/editors_skills: Summary for some common editor skills I used. emacs 29中的行号显示配置 行号显示 行号显示是一个编辑器中很常见的功能,我觉得这个功能的需求度可能因人群或者个人习惯而不同。对于只…

【python、pytorch】NLP模型

自然语言处理(Natural Language Processing,简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域。 1. 文本预处理 文本预处理详情 4. RNN模型

如何给字符串字段添加索引

MySQL是支持前缀索引的,可以定义字符串的一部分作为索引,如果创建索引的语句不指定前缀长度,那么索引就会包含整个字符串。 alter table SUser add index index1(email);alter table SUser add index index2(email(6)); 如上两个创建索引的语…

完整的模型训练套路(一、二、三)

搭建神经网络 model import torch from torch import nn#搭建神经网络 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.model nn.Sequential(nn.Conv2d(3, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv2d(32, 32, 5, 1, 2),nn.MaxPool2d(2),nn.Conv…

Godot游戏引擎有啥优势

游戏开发是一个充满创造力和技术挑战的领域。选择适合的游戏引擎是开发过程中至关重要的决策。在众多的游戏引擎中,Godot以其许多的优势吸引着越来越多的开发者。下面简单的介绍一下Godot游戏引擎的优势。 免费和开源 Godot游戏引擎的免费和开源特性是优势之一。开…

动态规划day03

343. 整数拆分(第二次做还是没弄明白) 力扣题目链接(opens new window) 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: …

redis 相关面试题(一)

redis 相关面试题(一) 文章目录 redis 相关面试题(一)**面试官**:什么是缓存穿透 ? 怎么解决 ?**面试官**:好的,你能介绍一下布隆过滤器吗?**面试官**:什么是缓存击穿 …

Vue2-导航守卫

在Vue中,导航守卫是一组用于控制路由导航的钩子函数。这些钩子函数允许你在路由导航的不同阶段执行一些操作,比如在路由切换之前进行验证、处理路由变化等。 Vue提供了三种类型的导航守卫: 全局前置守卫:在路由切换之前执行&…

C语言通过ODBC函数操作Access数据库(mdb和accdb格式)(char字符数组)

编译环境:Windows XP Visual Studio 2010 数据库:Access 2010,accdb格式 本例程只使用char[]字符数组,不使用wchar_t[]字符数组,更适合C语言初学者。 如果读取字符串时,提供的字符数组空间小了&#xff0c…

【Linux】Linux 系统编程——tree 命令

文章目录 1. 命令概述2. 命令格式3. 常用选项4. 相关描述4.1 tree 命令安装 5. 参考示例5.1 创建树形目录5.2 使用 tree 命令查看树形目录 1. 命令概述 tree 命令用于在命令行界面以树状图形式显示目录及其子目录的内容。这个命令递归地列出所有子目录,并可选择显示…

如何设置 QTableView 表格每列数据的对齐方式?

要设置 QTableView 表格每列数据的对齐方式,您可以使用 QStandardItemModel 的 setData() 方法来为每个单元格设置对齐方式。以下是一个示例: // 创建数据模型和设置表头略...// 设置列对齐方式 model->setData(model->index(0, 0), Qt::AlignLef…

C#,迭代深化搜索(IDS)或迭代深化深度优先搜索(IDDFS)算法的源代码

摘要:本文介绍适合于大数据规模情况下的,新型的迭代深化深度优先搜索(IDDFS)算法的原理、实例及实现的C#源代码。 引言 常用的树(或图)遍历算法是两种: 广度优先搜索算法(BFS) 和 深度优先搜索…

EasyExcel的追加写入(新增POI、CSV)

总结:目前市面上流行的2种 EasyExcel和POI都不是真正的对物理excel文件进行追加导入。只是在缓存里面追加,最后一次性写入,并不能解决内存占用问题。 1.EasyExcel2.POI3.CSV 无非就是下面两种逻辑: 1.for循环查询数据,…

js中对数字,超大金额(千位符,小数点)格式化处理

前言 这个问题的灵感来自线上一个小bug,前两天刚看完同事写的代码,对数字类型处理的很好,之前一直都是用正则和toFixed(2)处理数字相关,后面发现使用numeral.js处理更完美。 对于下面这种数据的处理,你能想到几种方法…

燃情瞬间,智能酒精壁炉点亮户外聚会新潮流

在户外聚会中,一种备受瞩目的装饰品和功能性家居设备正逐渐崭露头角,那就是智能酒精壁炉。这种独特的户外装置不仅为聚会场合带来独特的氛围,还具有许多引人注目的优势。 其明亮的火焰不仅照亮整个场所,还散发出温暖迷人的光芒&am…

Git 大量log查看:git log --pretty=oneline

git log 是 Git 版本控制系统中的一个命令,用于展示一个或多个分支的提交历史记录。 当你在 git log 命令后面添加 --prettyoneline 选项时,它会以单行的形式显示提交历史。这意味着每个提交将会在一行内显示,而不是默认的多行显示格式。 具…

浅谈WPF之Popup弹出层

在日常开发中,当点击某控件时,经常看到一些弹出框,停靠在某些页面元素的附近,但这些又不是真正的窗口,而是页面的一部分,那这种功能是如何实现的呢?今天就以一个简单的小例子,简述如…

Python Matplotlib 库使用基本指南

简介 Matplotlib 是一个广泛使用的 Python 数据可视化库,它可以创建各种类型的图表、图形和可视化效果。无论是简单的折线图还是复杂的热力图,Matplotlib 提供了丰富的功能来满足我们的数据可视化需求。本指南将详细介绍如何安装、基本绘图函数以及常见…

FindTheIndexOfTheFirstOccurrenceInAString 【找到第一个匹配的下标】

双指针 字串的所有的字符都匹配完&#xff0c;匹配成功。 如果要与之匹配的字符串剩下的长度小于字串的长度&#xff0c;即剩下的已经不会再满足。 public int strStr(String haystack, String needle) {int index -1, i0, j0;for(i0; i<haystack.length()-needle.length(…

贪心算法Day06

#738.单调递增的数字 力扣题目链接(opens new window) 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整数&#xff0c;同时这个整数需要满足其各个位数上的数字是单调递增。 &#xff08;当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们…