自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 欧拉角与旋转矩阵的互相转换

刚体绕X,Y,Z轴旋转θ角的公式欧拉角的定义方式有两种,第一种是,第二种是。eg:如下描述的就是ZYX欧拉角,旋转过程如下图所示:旋转矩阵为:其余12种欧拉角坐标系的定义为:世界系欧拉角也是三个角度,只不过对应的三次变换都是绕着世界坐标系旋转。RPY是roll(滚转),pitch(俯仰),yaw(偏航)的合写,分别代表了绕世界系 x,y,z三个轴的旋转。其旋转矩阵为:注: 1.三次绕固定轴旋转的最终姿态和以相反顺序三次绕运动坐标轴旋转的最终姿态相同;所以R0=R1,可以说所有欧

2023-09-14 00:34:32 1559

原创 深度图tif转点云图

u,v分别为图像坐标系下的任意坐标点。u0,v0分别为图像的中心坐标。xw,yw,zw表示世界坐标系下的三维坐标点。将深度图转换为点云通常需要相机的内部参数(内参矩阵)来完成。深度图转为点云就是坐标系的变换:图像坐标系转换为世界坐标系。变换的约束条件就是相机内参,公式为。其中x,y,z是点云坐标系,x’,y’是图像坐标系,D为深度值。R,T分别为外参矩阵的3x3旋转矩阵和3x1平移矩阵。

2023-09-09 23:01:09 733

原创 CMakeLists编译总结

这类库在编译的时候会直接整合到目标程序中,所以利用静态函数库编译成的文件会比较大,这类函数库最大的优点就是编译成功的可执行文件可以独立运行,而不再需要向外部要求读取函数库的内容;从函数库集成的角度,若要将发布的所有子库(不止一个)集成为一个动态库向外提供接口,那么就需要将所有子库编译为静态库,这样所有子库就可以全部编译进目标动态库中,由最终的一个集成库向外提供功能。从产品化的角度,发布的算法库或功能库尽量使动态库,这样方便更新和升级,不必重新编译整个可执行文件,只需新版本动态库替换掉旧动态库即可。

2023-09-06 23:44:57 548

原创 图像对比增强算法总结(粗略介绍)

算法1:AINDANE论文题目:Adaptive and integrated neighborhood-dependent approach for nonlinear enhancement of color images#include <iostream>#include <opencv2/opencv.hpp>#include "image_enhancement.h"void AINDANE(const cv::Mat& src, cv::Mat&a

2023-09-06 17:31:13 542

原创 static用法

总之,static 关键字用于定义静态成员函数,使其不依赖于类的实例,可以通过类名直接调用。这使得静态成员函数在某些情况下非常有用,特别是当你需要执行与类相关的操作,而无需创建类的实例时。3.可访问静态成员:静态成员函数可以访问类的静态成员变量和静态成员函数。在代码中,ConfigureLogger 函数是一个用于配置日志记录的工具,它可以在不创建类的实例的情况下使用。:static 用于修饰函数,其作用是使函数成为一个静态成员函数。用途:静态成员函数通常用于执行与类相关的操作,而不依赖于特定的对象状态。

2023-09-06 15:17:58 22

原创 拟合平面点云

以RANSAC平面分割为例,由于三个可以确定一个平面, 因此RANSAC会随机选择三个点来构建一个平面, 并用点云中实际上有多少个点落到这个平面上来作为评估这个平面的正确程度。这个函数返回(a,b,c,d)作为一个平面,对于平面上每个点(x,y,z)我们有ax+by+cz+d=0。该函数使用优化后点云inlier_cloud拟合平面方程,找到最优的参数值a,b,c,d。定义了一个点到一个估计平面的最大距离,这些距离内的点被认为是内点(inlier),定义了使用随机抽样估计一个平面的点的个数,

2023-08-31 18:44:03 269

原创 远程登录Ubuntu

远程登录Ubuntussh介绍原理示意图安装SSH和启用从一台linux系统远程登陆另外一台linux系统引用ssh介绍SSH为Secure Shell 的缩写,由IETF的网络工作小组(Network Working Group)所制定;SSH为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录。几乎所有UNIXLInux平台都可运行SSH。使用SSH服务,需要安装相应的服务器和客户端。客户端和服务器的关系:如果,A机器想被B机

2022-03-14 14:08:09 3621

原创 APT介绍

APT介绍unbuntu 软件管理的原理示意图Ubuntu软件操作的相关命令介绍apt是Advanced Packaging Tool的简称,是一款安装包管理工具。在Ubuntu下,我们可以使用apt命令进行软件包的安装、删除、清理等,类似于Windows中的软件管理工具。unbuntu 软件管理的原理示意图Ubuntu软件操作的相关命令sudo apt-get update更新源sudo apt-get install package安装包sudo apt-get remove packa

2022-03-11 22:19:09 1405

原创 在Ubuntu下开发一个Python程序

Ubuntu下开发Python说明在Ubuntu下开发一个Python程序1.查看python版本2.vi hello.py [编写hello.py]3.python3 hello.py [运行hello.py]引用说明安装好Ubuntu后,默认就已经安装好Python的开发环境。在Ubuntu下开发一个Python程序1.查看python版本(1)查看python版本(2)exit()执行退出2.vi hello.py [编写hello.py](1)首先更新vi(2)执行vi h

2022-03-11 20:08:35 3562

原创 Ubuntu的root

Ubuntu的root介绍给root用户设置密码并使用引用介绍安装ubuntu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上 sudo。有的时候感觉很麻烦。我们一般使用su命令来直接切换到root用户的,但是如果没有给root设置初始密码,就会抛出su :Authentication failure这样的问题。所以,我们只要给root用户设置一个初始密码就好了。给root用户设置密码并使用1.输入sudo passwd命令,设定root用户

2022-03-11 17:55:19 12704

原创 Linux 实操篇-开机、重启和用户登录注销

Linux 实操篇-开机、重启和用户登录注销关机&重启命令基本介绍注意细节用户登录和注销基本介绍使用细节引用关机&重启命令基本介绍(1)shutdown -h now立该进行关机(2)shudown -h“hello,1 分钟后会关机了”(3) shutdown -r now现在重新启动计算机注意:也可以用Xshell操作(4) halt关机,作用和上面一样.(5) reboot现在重新启动计算机(6) sync把内存的数据同步到磁盘.注意细节(1)不管

2022-01-12 23:04:32 433

原创 Vi和 Vim编辑器

Vi和 Vim编辑器vi和vim的基本介绍二级目录三级目录vi和vim的基本介绍Linux系统会内置vi 文本编辑器Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。二级目录三级目录...

2022-01-12 22:24:35 249

原创 xshell基本操作

xshell基本操作查找Linux公网IP本地ping通Linux公网xshell新建会话引用查找Linux公网IP在Linux终端里输入ifconfig命令IP为192.168.3.223本地ping通Linux公网打开本地cmd终端,输入 ping 192.168.3.223出现上面这种情况,说明网络通畅,成功连接。xshell新建会话引用2021韩顺平 一周学会Linux...

2022-01-10 21:00:21 696

原创 Linux目录结构

Linux目录结构基本介绍具体的目录结构引用基本介绍(1)linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。(2)深刻理解linux树状文件目录是非常重要的。(3)记住一句经典的话:在Linux世界里,一切皆文件(!!) (4)示意图具体的目录结构(1) /bin[常用](/usr/bin 、 /usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令。(2)/sbin(/usr/sbin 、/usr

2022-01-10 19:55:02 100

原创 安装vmtools

安装vmtools介绍安装步骤三级目录介绍1.vmtools安装后,可以让我们在 windows下更好的管理vm 虚拟机2.可以设置 windows和 centos的共享文件夹3.示意图安装步骤1.进入centos弹出光驱重新安装VMware Tools2.点击vm菜单的->install vmware tools3.centos会出现一个vm的安装包, xx.tar.gz4.拷贝到lopt5.使用解压命令tar,得到一个安装文件cd lopt[进入到opt目录]ta

2022-01-10 15:21:41 10228

原创 虚拟机快照、迁移、删除

虚拟机快照应用实例快照管理器引用如果你在使用虚拟机系统的时候(比如 linux),你想回到原先的某一个状态,也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,vmware也提供了这样的功能,就叫快照管理。应用实例1)安装好系统以后,先做一个快照A2)进入到系统。创建一个文件夹,再保存一个快照B3)回到系统刚刚安装好的状态﹐即快照A4)试试看,是否还能再次回到快照B5)示意图注意:在进行操作时,只要进行快照,就可回到任一位置。不要经常使用,会占用一定的磁盘空间。快

2022-01-07 12:14:22 2040

原创 虚拟机克隆

虚拟机克隆方法1方法2注意引用如果你已经安装了一台linux操作系统,你还想再更多的,没有必要再重新安装,你只需要克隆就可以,看演示。方法1直接拷贝一份安装好的虚拟机文件方法2使用vmware的克隆操作,注意,克隆时,需要先关闭linux系统注意将虚拟机拷贝到另外一台电脑时,可使用此电脑的VM软件直接打开引用2021韩顺平 一周学会Linux...

2022-01-07 11:45:45 548

原创 Pytorch源码学习04--训练分类器

训练分类器数据训练图像分类器加载并标准化 CIFAR10定义卷积神经网络定义损失函数和优化器训练网络保存模型测试数据测试网络在 GPU 上进行训练引用数据1.处理图像,文本,音频或视频数据时,可以使用将数据加载到 NumPy 数组中的标准 Python 包。 然后将该数组·转换为torch.*Tensor。2.对于图像,Pillow,OpenCV等包很有用;3.对于音频,请使用 SciPy 和 librosa 等包;4.对于文本,基于 Python 或 Cython 的原始加载,或者 NLTK 和

2021-12-27 00:25:12 880

原创 Pytorch源码学习03--神经网络

神经网络前提任务定义网络前提1.使用torch.nn包构建神经网络;2.nn依赖于autograd来定义模型并对其进行微分;3.nn.Module包含层,以及返回output的方法forward(input)。注:pytorch里面一切自定义操作基本上都是继承nn.Module类来实现的任务对数字图像进行分类的网络:神经网络的典型训练过程如下:1.定义具有一些可学习参数(或权重)的神经网络2.遍历输入数据集3.通过网络处理输入4.计算损失(输出正确的距离有多远)5.将梯度传播回网

2021-12-26 13:02:45 493

原创 Pytorch源码学习02--torch.autograd

Pytorch源码学习02--torch.autograd概念背景用法引用概念torch.autograd是 PyTorch 的自动差分引擎,可为神经网络训练提供支持。背景神经网络(NN)是在某些输入数据上执行的嵌套函数的集合。 这些函数由参数(由权重和偏差组成)定义,这些参数在 PyTorch 中存储在张量中。训练 NN 分为两个步骤:正向传播在正向传播中,NN 对正确的输出进行最佳猜测。 它通过其每个函数运行输入数据以进行猜测。反向传播在反向传播中,NN 根据其猜测中的误差调整其参数。

2021-12-21 12:15:25 749

原创 Pytorch源码学习01

Pytorch源码学习01什么是 PyTorch?张量张量初始化1. 直接生成张量2. 通过Numpy数组来生成张量二级目录三级目录什么是 PyTorch?PyTorch 是基于以下两个目的而打造的python科学计算框架:(1)无缝替换NumPy,并且通过利用GPU的算力来实现神经网络的加速。(2)通过自动微分机制,来让神经网络的实现变得更加容易。张量张量如同数组和矩阵一样, 是一种特殊的数据结构。在PyTorch中, 神经网络的输入、输出以及网络的参数等数据, 都是使用张量来进行描述。im

2021-12-20 23:37:58 982

原创 动手学深度学习V2---矩阵计算

动手学深度学习V2---矩阵计算标量导数亚导数梯度标量对向量求导向量求导向量对标量求导向量对向量求导矩阵求导参考标量导数亚导数梯度注:在单变量的函数中,梯度可简单理解为只是导数。函数f的梯度方向是函数f的值增长最快的方向,最陡的方向,换句话说,在一个场中,函数在某一点处的梯度即为此点方向导数最大值标量对向量求导注:x是列向量,y是标量,y对x求导为行向量向量求导向量对标量求导向量对向量求导矩阵求导参考矩阵求导本质篇矩阵求导基础篇矩阵求导进阶篇梯度矩阵计算【动

2021-08-12 11:28:02 197

原创 动手学深度学习V2---线性代数

动手学深度学习V2---线性代数线性代数标量向量矩阵线性代数实现标量向量矩阵张量张量算法的基本性质降维点积矩阵-向量积矩阵-矩阵乘法范数按特定轴求和线性代数标量标量由只有⼀个元素的张量表示向量以将向量视为标量值组成的列表。我们将这些标量值称为向量的元素(elements)或分量(components)矩阵向量将标量从零阶推⼴到⼀阶,矩阵将向量从⼀阶推⼴到⼆阶线性代数实现标量标量由只有⼀个元素的张量表示向量将向量视为标量值组成的列表可以使用下标来引用向量的任

2021-08-10 19:56:02 596

原创 动手学深度学习V2---数据操作+数据预处理

动手学深度学习V2---数据操作+数据预处理数据操作N维数组样例创建数组访问元素数据操作实现基本操作运算广播机制索引和切片节省内存转换为其他 Python 对象数据预处理实现读取数据集处理缺失值转换为张量格式感谢李沐老师,这是李沐老师的 B站号,赶紧一键三连走起哈哈哈数据操作N维数组样例N维数组是机器学习和神经网络的主要数据结构创建数组访问元素注:[::3,::2]行每隔3个取值,列每隔2个取值数据操作实现基本操作1.导入torch2.张量表示由⼀个数值组成的数组,这个数组可

2021-08-09 16:11:26 739

原创 在jupyter notebook中使用虚拟环境

在jupyter notebook中使用虚拟环境1.打开Anaconda Prompt,激活虚拟环境activate tf #这里的tf是我的虚拟环境2.安装ipykernelconda install ipykernel3.运行ipykernel指令python -m ipykernel install --name tf #tf为虚拟环境显示以下结果即安装成功4.打开jupyter notebookjupyter notebook5.点击NEW,选择tf参考文章1

2021-08-08 17:25:14 252

原创 2021-08-02

Python入门学习前言1.Python是什么2.Python的安装3.Python解释器3.1 算术计算3.2 数据类型3.3 变量3.4 列表3.5 字典3.6 布尔型3.7 if语句3.8 for语句3.9 函数3.10 保存为文件3.11 类学习前言1.Python是什么2.Python的安装3.Python解释器3.1 算术计算加法或乘法等算术计算3.2 数据类型数据类型表示数据的性质,有整数、小数、字符串等类型。Python中的type()函数可以用来查看数据类型。int类

2021-08-02 21:50:50 78

原创 数字识别

数字识别1.Lenet网络1.1 导入所需库import torchimport torch.nn as nnimport torchvision import torchvision.transforms as transforms(1)torchvision 是PyTorch中专门用来处理图像的库。这个包中有四个大类。torchvision.datasets,torchvision.models,torchvision.transforms,torchvision.utils(

2021-05-25 14:24:29 1034

原创 Python深度学习---第1章 什么是深度学习

<< Python深度学习>>第1章 什么是深度学习1.1 人工智能、机器学习与深度学习1.1.1 人工智能人工智能的简洁定义如下:努力将通常由人类完成的智力任务自动化。因此,人工智能是一个综合性的领域,不仅包括机器学习与深度学习,还包括更多不涉及学习的方法。1.1.2 机器学习在经典的程序设计(即符号主义人工智能的范式)中,人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案(见图 1-2)。利用机器学习,人们输入的是数据和从这些数据中

2021-05-06 16:23:04 3989

原创 yolov3网格

grid_y = K.tile(K.reshape(K.arange(0, stop=grid_shape[0]), [-1, 1, 1, 1]), [1, grid_shape[1], 1, 1]) grid_x = K.tile(K.reshape(K.arange(0, stop=grid_shape[1]), [1, -1, 1, 1]), [grid_shape[0], 1, 1, 1]) 其中grid为相对于feature map左

2021-01-06 09:37:15 822

原创 解决Tensorflow、keras安装时出现的不兼容问题

解决Tensorflow、keras安装时出现的不兼容问题1.创建名为tensorflow的环境,同时安装Pythonconda create --name tensorflow python=3.6

2020-12-28 15:51:30 1311

原创 给jupyter notebook配置虚拟环境

给jupyter notebook配置虚拟环境1.打开Anaconda prompt,查看安装了哪些虚拟环境conda env list2.设置清华源镜像conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --set show_channel_urls yes3.conda创建虚拟环境conda create -n jupyter_test pyt

2020-12-28 15:12:38 678 1

空空如也

空空如也

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

TA关注的人

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