自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 torch中 squeeze 和 unsqueeze 的不同用法

如果维度是 1 ,那么,1 仅仅起到扩充维度的作用,而没有其他用途,因而,在进行降维操作时,为了加快计算,是可以去掉这些 1 的维度。在多维张量中,如果某一个维度是1,那么这个维度是为了扩充维度,所以为了加快计算,进行降维操作时可以去掉1的维度。不指定维度,则会将所有为1 的维度全部降维,保留不是1 的维度。. dim 选择需要降维的维度,默认是None。torch.unsqueeze 是为了升维。dim: 指定在某个维度进行升维。. input:输入的张量。input: 插入的张量。

2023-12-14 15:59:43 836

原创 为什么每次optimizer.zero_grad()

因此,通过在每个训练步骤开始时调用 optimizer.zero_grad(),我们确保每一次参数更新都只考虑了从最新数据计算出的梯度,这样每次更新都是独立的,与前一次迭代的数据无关。如果不清零梯度,当第二个批次的数据来临时,计算出的梯度 ∇w2∇w2​ 和 ∇b2∇b2​ 将会加到 ∇w1∇w1​ 和 ∇b1∇b1​ 上,因此更新会基于 ∇w1+∇w2∇w1​+∇w2​ 和 ∇b1+∇b2∇b1​+∇b2​。这意味着你的模型是基于之前所有数据的累积信息进行更新的,而不是只基于最新数据。

2023-12-04 15:06:36 398

原创 labelImg

使用labelimg框图闪退报错(TypeError: arguments did not match any overloaded call)PyQt5:是用于创建GUI应用程序的跨平台工具包,它将Python与Qt库融为一体。Lxml:是一个Python库,使用它可以轻松处理XML和HTML文件。在绘制矩形框的时候,这里如果python版本过高,会报错,所以这里python版本设置为3.10以下,3.9比较好。在anaconda虚拟环境中安装labelImg。进入conda虚拟环境DL2中。

2023-11-21 17:21:08 120

原创 光斑直径的定义方法

【代码】光斑直径的定义方法。

2023-11-16 10:54:51 202

原创 瑞利长度(Rayleigh length)

在光学,特别是激光学中,我们设鞍腰部(如图中所示的最低处)为A,其横截面面积为a,沿光的传播方向,当横截面面积因为散射达到2a时,我们设此处为B,瑞利长度或者瑞利射程正是指从A到B的长度(即图中所示ZR)。相关参数是共轭焦距,b,其长度是两倍的瑞利长度。当光波按高斯模型传播的时候,瑞利长度则显得非常重要。

2023-11-13 17:02:52 344

原创 Python系列 | 常见的特殊属性与特殊方法

Python系列 | 常见的特殊属性与特殊方法

2023-11-12 20:56:33 29

原创 pytorch中对nn.BatchNorm2d()函数的理解

机器学习中,进行模型训练之前,需对数据做归一化处理,使其分布一致。在深度神经网络训练过程中,通常一次训练是一个batch,而非全体数据。每个batch具有不同的分布产生了internal covarivate shift问题——在训练过程中,数据分布会发生变化,对下一层网络的学习带来困难。Batch Normalization强行将数据拉回到均值为0,方差为1的正太分布上,一方面使得数据分布一致,另一方面避免梯度消失。

2023-11-10 21:19:11 643

原创 深度学习经典网络:GoogleNet

Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示在未使用这种方式的网络里,我们一层往往只使用一种操作,比如卷积或者池化,而且卷积操作的卷积核尺寸也是固定大小的。但是,在实际情况下,在不同尺度的图片里,需要不同大小的卷积核,这样才能使性能最好,或者或,对于同一张图片,不同尺寸的卷积核的表现效果是不一样的,因为他们的感受野不同。

2023-11-07 15:49:41 204

原创 感受野(Receptive Field)理解和计算

在卷积神经网络中,感受野(Receptive Filed)是经过神经网络后生成的指特征图上的某个像素点所对应输入图像的区域。针对上面的图,经过conv2 卷积神经网络后,生成了22 的特征图,针对这个22 特征图的一个像素来说,它是由conv1 生成的特征图做第一个22 的卷积得到的。而经过conv1生成的特征图的22 的这个区域是由于conv1 对Raw image做了四次卷积运算得到的。所以conv2 特征图的一个像素对应原图的范围是5。

2023-11-02 16:23:22 74

原创 均值、方差、标准差

在统计学中,为了区分"样本(抽样)概念"和"总体概念",将均值区分为样本均值和总体均值,而它们的实际大小是相同的.总体均值:μN∑i1N​Xi​​样本均值:xˉn∑i1n​Xi​​。

2023-10-31 16:14:09 81

原创 总体标准差、样本标准差、标准误差

我们之前学的标准差,指的是总体标准差,但是在现实中,由于样本数量很大,且都具有随机性,我们不可能得到全部的样本,所以要计算出总体标准差是不现实的。通常情况下,我们只能从某个事物中进行抽样,然后从抽样样本中估计总体标准差。

2023-10-30 19:33:23 425

原创 Matplotlib详解(plt 和ax分别是什么)

如果将Matplotlib绘图和我们平常画画相类比,可以把Figure想象成一张纸(一般被称之为画布),Axes代表的则是纸中的一片区域(当然可以有多个区域,这是后续要说到的subplots),下面是一张更形象一点的图。这时就需要做点注释。首先,我们应该要了解一张用Matplotlib画出来的图的具体构造,引用一张官方的图。

2023-10-29 16:23:20 457

原创 Python中json的用法

Json本质上一个带有特定格式的字符串,json是一种在各个编程语言中流通的数据格式,负责不同编程语言的数据传递和交互。国际通用语言-英语中国56个民族的通用语言-普通话JSON的特定格式如下一种是也可以是这种列表格式的json内元素只能是字典。

2023-10-28 15:49:31 134

原创 Python中的*args 和 **kwargs

args 不定参数(不定的意思是指,预先并不知道,函数使用者会传递多少个参数给你)*args 是用来发送一个非键值对的可变数量的参数列表给一个函数。*args 的用法:当传入的参数个数未知,且不需要知道参数名称时。

2023-10-27 20:08:09 158

原创 tqdm 显示进度条模块

如果想对进度条进行更加详细的定制,可以实例化一个tqdm类的实例,然后使用它的方法来更好地发挥作用。

2023-10-26 17:30:38 164

原创 深度学习中的epoch, batch 和 iteration

mnist 数据集有60000张图片作为训练数据,10000张图片作为测试数据。假设现在选择 ==Batch_Size =100 ==对模型进行训练。实际上,梯度下降的几种方式的根本区别就在于上面公式中的Bathch_Size 不同,

2023-10-26 15:43:21 362

原创 Pytorch:model.train()和model.eval()用法和区别,以及model.eval()和torch.no_grad()的区别

model.train()的作用是启用。如果模型中有BN层(Batch Normalization)和Dropout,需要在训练时添加model.train()。model.train()是保证BN层能够用到每一批数据的均值和方差。对于Dropout,model.train()是随机取一部分网络连接来训练更新参数。

2023-10-25 17:04:11 739 1

原创 PyTorch模型的保存与加载

通过model.parameters()这个生成器来访问所有参数。通过model.state_dict()来为每一层和它的参数建立一个映射关系并存储在字典中,其键值由每个网络层和其对应的参数张量构成。

2023-10-24 17:12:59 122

原创 多通道图片的卷积过程

如果输入图片是三维的(三个channel),例如(8,8,3),那么每一个filter的维度就是(3,3,3),每一个filter的channel要与图片的channel数目一样。所以求卷积的过程是将每个通道分别求卷积,然后将三个通道相加得到最后的特征图。最后特征图的维度的最后一个channel与利用了多少个filter有关。同时有4个filter图中的输入图像是(8,8,3),filter有4个,大小均为(3,3,3),得到的输出为(6,6,4)。

2023-10-24 16:08:10 112

原创 【pytorch 中 torch.max 和 torch.argmax 的区别】

troch.max 和 torch.argmax 的用法

2023-10-18 15:59:50 958

原创 【无标题】

D:\Anaconda3\condabin\conda.bat 这个文件。然后选择你需要的虚拟环境。然后加载环境就可以解决了。

2023-05-04 19:51:03 55

原创 【无标题】

卷积积分

2022-11-01 11:02:55 107

原创 世界坐标系、相机坐标系和图像坐标系的转换

2022-01-20 20:47:07 3660

原创 张正友相机标定数学原理

2022-01-19 00:50:58 2538 1

原创 双目视觉三维重建

三维重建

2022-01-13 17:37:38 6786

原创 仿射变换和透视变换(射影变换)的关系和区别

标题仿射变换和透视变换(射影变换)的关系和区别仿射变换和透视变换更直观的叫法可以叫做“平面变换”和“空间变换”或者“二维坐标变换”和“三维坐标变换”。如果这么命名的话,其实很显然,这俩是一回事,只不过一个是二维坐标(x,y),一个是三维坐标(x,y,z)。也就是:仿射变换:透视变换:从另一个角度也能说明三维变换和二维变换的意思,仿射变换的方程组有6个未知数,所以要求解就需要找到3组映射点,三个点刚好确定一个平面。透视变换的方程组有8个未知数,所以要求解就需要找到4组映射点,四个点就刚好确定了一个

2021-11-09 13:50:01 4642 2

原创 相机标定原理步骤

1.为什么要相机标定? 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。 【1】进行摄像机标定的目的:求出相机的内、外参数,以及畸变参数。 【2】标定相机后通常是想做两件事:一个是由于每个镜头的畸变程度各不相同,通过相机标定可以校正这种镜头畸变矫正畸变,生成矫正后的图像;另一个是根据获得的图像重构三维场景。 摄像机标定过程,简单的可以简单的描述为通过标定板,

2021-03-26 10:55:27 650

原创 相机标定

相机标定讲解参考博客:相机标定(Camera calibration)原理、步骤(http://blog.csdn.net/lql0716/article/details/71973318?locationNum=8&fps=1)相机标定内容详解 (转载自祥的博客)(http://blog.csdn.net/humanking7/article/details/44756073)张正友标定介绍(http://blog.csdn.net/heroacool/article/details

2021-03-26 10:50:25 187

原创 2021-01-18

一、四个坐标系统1. 四个坐标系简介:***世界坐标系(Xw,Yw,Zw):***也称真实或现实世界坐标系,或全局坐标系。它是客观世界的绝对坐标,由用户任意定义的三维空间坐标系。一般的3D场景都用这个坐标系来表示。**摄像机坐标系(xoy):**以小孔摄像机模型的聚焦中心为原点,以摄像机光轴为oz 轴建立的三维直角坐标系。x,y 一般与图像物理坐标系的X,Y平行。**图像物理坐标系:**其原点为透镜光轴与成像平面的交点,X 与Y 轴分别平行于摄像机坐标系的x与y 轴,是平面直角坐标系,单位为毫米。

2021-01-18 17:24:15 507

原创 图像旋转算法原理-- 旋转矩阵

2020-12-26 17:06:37 3473

原创 仿射变换以及其变换矩阵的理解

文章目录写在前面写在前面仿射变换:平移、旋转、放缩、剪切、反射变换矩阵形式变换矩阵的理解与记忆变换矩阵的参数估计参考写在前面2D图像常见的坐标变换如下图所示:这篇文章不包含透视变换(projective/perspective transformation),而将重点放在仿射变换(affine transformation),将介绍仿射变换所包含的各种变换,以及变换矩阵该如何理解记忆。仿射变换:平移、旋转、放缩、剪切、反射仿射变换包括如下所有变换,以及这些变换任意次序次数的组合:

2020-12-24 15:46:13 1918 1

原创 cv2.findContours()返回函数详解

对于cv2.findContours() 函数,相信很多人都在使用,利用其进行轮廓的寻找,之后利用cnt[num],对第num个轮廓进行操作,但是该函数返回的三个参数具体表示的是什么呢?下面就进行详细介绍,为了能够使读者更加深入的理解,利用下面的例程进行具体分析。Python程序如下:improve cv2improve numpy as npimg=cv2.imread('test.jpg')imgray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)ret,th

2020-12-23 20:33:52 11261 5

原创 【opencv】copyTo与mask(掩码)操作

**概述**Mat矩阵类的成员函数中copyTo()函数有两种原型,第一种是:image.copyTo(imageROI),作用是把image的内容复制粘贴到imageROI上;第二用法是:image.copyTo(imageROI,mask)。 作用是把mask和image重叠以后把mask中像素值为0的点对应的image中的同位置点变为0,而不为0的点保持不变。第二种办法最常用的一个场...

2020-03-15 13:10:08 760

原创 【opencv】opencv之RNG

RNG类是一个随机数产生类此类用于产生随机数rng.uniform(1, 3); 在[1,3)区间,随机生成一个整数#include "stdafx.h"#include<iostream>#include "opencv2/highgui/highgui.hpp" using namespace cv;using namespace std; RNG rn...

2020-03-12 01:26:06 545

原创 【opencv】卷积与自定义线性滤波和卷积边缘处理

一:卷积:卷积的数学原理因为卷积的概念还是比较容易理解的,所以在这里,我们来详细讲一下卷积的数学原理。首先我们先来看一下卷积的定义:在泛函分析中,卷积、旋积或摺积(英语:Convolution)是通过两个函数f 和g 生成第三个函数的一种数学算子,表征函数f 与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。通过定义,我们再来理解一下卷积这个名词(注:只是为了帮助大家理解,这是我的...

2020-03-11 18:22:37 357 1

原创 【opencv】形态学操作应用-提取水平与垂直线

**原理方法:**图像形态学操作时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感、另外一些对象不敏感,这样就会让敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作 – 膨胀与腐蚀,使用不同的结构元素实现对输入图像的操作、得到想要的结果。膨胀,输出的像素值是结构元素覆盖下输入图像的最大像素值腐蚀,输出的像素值是结构元素覆盖下输入图像的最小像素值...

2020-03-07 17:53:13 160

原创 【opencv】阈值操作函数对比 threshold()和adaptiveThreshold()

阈值化操作在图像处理中是一种常用的算法,比如图像的二值化就是一种最常见的一种阈值化操作。opencv2和opencv3中提供了直接阈值化操作cv::threshold()和自适应阈值化操作cv::adaptiveThreshold()两种阈值化操作接口,这里将对这两个接口进行介绍和对比。1、直接阈值化——cv::threshold()阈值化操作的基本思想是,给定一个输入数组和一个阈值,数组中的...

2020-03-06 23:57:54 416

原创 【opencv】形态学操作(2)开操作,闭操作,形态学梯度,顶帽,黑帽。

本章的主角是morphologyEx函数,它利用基本的腐蚀和膨胀技术,来执行更加高级的形态学变换。opencv中提供的API:void morphologyEx(src, dst, int op, InputArray kernel, Point ancho, int iterations=1, int borderType=BORDER_CONSTANT, const Scalar&...

2020-03-06 23:28:47 864

原创 【opencv】形态学操作(1)腐蚀与膨胀

形态学操作(1)腐蚀与膨胀。简单来讲,形态学操作就是基于形状的一系列图像处理操作。通过将 结构元素 作用于输入图像来产生输出图像。最基本的形态学操作有二:腐蚀与膨胀(Erosion 与 Dilation)。 他们的运用广泛:消除噪声分割(isolate)独立的图像元素,以及连接(join)相邻的元素。寻找图像中的明显的极大值区域或极小值区域。通过以下图像,我们简要来讨论一下膨胀与腐蚀操...

2020-03-06 16:22:03 192

原创 图像高频和低频

一、图像高频信号和低频信号的理解1.1 图像中的低频信号和高频信号也叫做低频分量和高频分量。简单一点说,图像中的高频分量,指的是图像强度(亮度/灰度)变化剧烈的地方,也就是我们常说的边缘(轮廓);图像中的低频分量,指的是图像强度(亮度/灰度)变换平缓的地方,也就是大片色块的地方。人眼对图像中的高频信号更为敏感。 图像的高低频是对图像各个位置之间强度变化的一种度量方法。低频分量:主要对整副图像的强...

2020-03-05 23:04:33 2274 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除