自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (10)
  • 收藏
  • 关注

原创 PointNet2(一)分类

选择该最远点的索引作为第1次迭代(注意从第0次迭代开始),然后还是与每一个点进行比较,计算距离,如果距离小于distance中的距离,则让该距离小的值填充distance中对应位置,最后,在选择该轮中distance中的最大值所对应的索引作为 farthest。看这一行参数,表示,最远点采样采集512个点作为中心点,开始聚组,球半径分别为,0.1,0.2,0.3,在每一个半径中选择16个点,32个点和128个点。最终每一个组中,每一个点,都采样到了相同个数(nsample个)的点,

2024-09-15 23:59:14 1065

原创 PVN3D(一)代码框架

2.N*1792特征 投入到三个网络中,一个是特征点偏移探测网络,一个是实例分割网络,一个是中心偏移网络。后两个网络特征经过投票聚类,得到了实例级的点云目标,然后结合关键点投票,得到关键点位置;按照论文图上的流程,特征提取,实例分割、特征提取、偏移提取,loss计算、meanshift,RT计算等找到了位置,整体上构成了整个训练和RT计算的流程。深度图的特征,通过pointnet++提取,然后把两个特征连接起来。mesh_kps是模型上提取的3D特征点,是真值点。2.2 深度学习框架。

2024-09-04 21:46:18 333

原创 halcon(二)控制语句

有for-endfor,while, repeat, assign, assign_at, insert, :=, if-elseif-else-endif,try-catch-throw-end,注释等,涵盖了目前大部分控制语句。1.学习了halcon相关控制语句的代码。

2024-08-23 23:02:19 151

原创 点云(一)计算FPFH特征并显示

计算FPFH特征并显示。

2024-08-18 10:07:39 104

原创 立体相机镜面重建(二)双目立体镜面重建

该点与 步长点、右相机投影中心构成了一个反射光路,就可以根据这三个点计算在右相机下的该点在左相机中的法线了。4.把该按步长计算出来的三维点,根据左右相机的变换关系,变换到右相机坐标系下,然后投影到右相机中,得到带畸变的图像点,使用该图像点内插出来相位值,并对应到屏幕上该点的屏幕坐标。3.按照1中所计算的方向线,以一定的步长计算三维点,由于该点在左相机坐标系下,可以根据该点的方向、屏幕坐标在左相机坐标系下的坐标点 计算该点的法向了。1.用标定板的格网点 在左相机的像素点 计算出来的镜面点。

2024-08-12 22:55:40 327

原创 立体相机镜面重建(一)镜面标定

1.相机标定的时候,标定板的精度一定要高一点,如果不高,我发现在标定过程中,如果相机标定误差是镜面标定误差的3倍的时候,优化出来的镜子大小和相机到镜子之间的距离也会发现严重的失真,发生等比例缩放【笑哭】,一直找不到问题,后来发现是这个问题。(4)使用相机到虚像的旋转和平移矩阵,以及屏幕到相机的旋转、平移矩阵,计算剩下n张图像的镜面距离和法向。(5)全局优化,优化(屏幕到相机的旋转和平移矩阵,每一个图像下的镜子法向和相机中心到镜子的距离)(1)使用购买的棋盘格或者圆点标定板对单目相机标定,或者双目相机标定。

2024-08-10 22:28:01 473

原创 经典网络(一)resnet

因此需要 用conv(in_channel,out_channel, kernel_size =1, padding =0, stride =2)来改变通道数和图像长宽。#nn.Linear(512,numClass) 512*10,最后得到10类,选择最大的一个数字作为目标判别出来的类。#每一个layer有两层迭代,第一层迭代具有降采样和通道变换,第二层的时候,没有降采样,也没有通道数量的改变。# 如果stride=1,则长和宽是不变的,输出的长和宽是多大,输出的就是多大。

2024-07-22 23:33:58 446

原创 pytorch学习(十七)pycharm安装requirement.txt中的配置

最后,如果在pip install过程中,出现了某个安装包的版本无法找到,则查看其报错中所提供的可以找到的版本,选择一个版本号比较邻近的版本进行下载。在github上下载别人的代码后,一般和自己本地的环境是不一致的,这时候就需要配准环境。1)在github上下载该代码,使用pycharm打开该代码文件。python xx.py来执行一下看看会不会报什么错误。3.如果出现错误,无法执行,则换源。2.配置requirement。2)为代码创建一个虚拟环境。

2024-07-21 20:32:11 373

原创 pytorch学习(十六)conda和pytorch的安装

在安装了cuda驱动后,用everything查找到nvidia-smi,exe这个文件所在的目录,cd到包含nvidia-smi.exe的目录下,如图,查看cuda version发现版本是10.2下载pytorch的时候就下载10.2的就可以了。conda create -n (env-name虚拟环境名子) python=pythonxx(比如python3.7)可以看到下面这个界面,如果没有与cuda version版本一致的版本的pytorch,就需要点击下图中的安装以前的版本。

2024-07-21 20:21:25 559

原创 pytorch学习(十五)二维卷积和转置卷积

卷积爆喊了stride步长,padding是否加边,groups是否完全计算,kernel_size卷积核的大小,等尺寸,不同的尺寸组合,可以让图像在卷积后保持原来的形状,也可以让图像的通道数增加。具体参数的意义可以跟着代码来看,其中conv2d在本博客中分析的相对详细,转置卷积的padding没有测试。话有一个是转置卷积,当kernel_size核stride设置为一致的时候,可以扩大倍数的升采样。

2024-07-21 19:48:28 142

原创 pytorch学习(十四)层结构容器

本篇文章列举了nn.Sequential,nn.ModuleList,nn.ModuleDict三个容器的使用方法,并且还学习了一种使用类封装模块的方法。通过本篇博客的学习,你将学习到三个容器和使用类构建容易的方法。1.nn.Sequential第一种方法直接列出每一层结构,第二种方法通过add_module的方式堆叠层,第三种方法使用字典的方式对层进行组织,第四种方法通过LIST列表的方式先堆叠层,然后再用sequential来骄傲如每一层,*表示拆散成一个一个的。import torch

2024-07-21 18:49:09 309

原创 pytorch学习(十三)torch维度变换

包含了flatten、view reshape transpose permute squeeze unsqueeze cat stack;在琢磨一遍之后就比较好理解了。

2024-07-20 23:52:27 430

原创 pytorch学习(十二)c++调用minist训练的onnx模型

在实际使用过程中,使用python速度不够快,并且不太好嵌入到c++程序中,因此可以把pytorch训练的模型转成onnx模型,然后使用opencv进行调用。所需要用到的库有:opencv。

2024-07-20 22:32:36 549

原创 pytorch学习(十一)checkpoint

当训练一个大模型数据的时候,中途断电就可以造成已经训练几天或者几个小时的工作白做了,再此训练的时候需要从epoch=0开始训练,因此中间要不断保存(epoch,net,optimizer,scheduler)等几个内容,这样才能在发生意外之后快速恢复工作。min_loss_val 定义成全局的变量之后,应该在用到的函数中,使用global min_loss_val再次定义,否则会报错误。通过本博客的学习,你将学会最优模型保存和模型自动加载的方法。

2024-07-20 21:00:33 191

原创 pytorch学习(十)优化函数

优化函数主要有,SGD, Adam,RMSProp这三种,并且有lr学习率,momentum动量,betas等参数需要设置。3.大家copy代码后,可以调一调batch_size,lr,momentum,betas等参数。通过测试,发现每一次的结果都不一样,每一次结果的显示图也不一样。因为shuffle=True。代码参考《python深度学习-基于pytorch》,改了一下网络结构,其他没变化。通过这篇文章,可以学到pytorch中的优化函数的使用。

2024-07-20 19:39:05 196

原创 pytorch学习(九)激活函数

Leaky ReLU激活函数。#Sigmoid激活函数。#Softmax激活函数。

2024-07-19 23:27:09 258

原创 pytorch学习(八)Dataset加载分类数据集

item就是所要取数据的索引,这个函数主要是返回一个训练数据(比如一个图像),和一个结果数据,比如(该图像的分类结果是一个ant),因此用到刚os.listdir所列出的文件名字,用os.path.join加入路径,得到图像的绝对路径,用PIL导入图像,并给label赋值,返回图像和;一直报错,查找原因,发现是该数据集中的图像存在两个问题,第一个是大小不一,第二个貌似通道个数也不一致。可以直接len(os.listdir所列出的文件名的数组),就可以得到数据集的长度。4)第三个要实现的就是数据集的长度。

2024-07-19 22:52:46 557

原创 pytorch学习(七)torchvision.datasets的使用

网络上已经有公开的数据集,并且这些数据集被整合到了torchvision.datasets中,使用自带的函数可以直接下载。结果为 torch.Size([3, 32, 32])

2024-07-19 21:10:59 241

原创 pytorch学习(六)transforms使用

中心裁剪、数据标准化、缩放、裁剪、旋转、仿射、反转、填充、噪声添加、灰度变换、线性变换、亮度饱和度以及对比度变换等。1.Transforms可以对训练图像进行预处理,以提高模型的稳定性,提高泛化能力。

2024-07-19 20:43:51 238

原创 pytorch学习(五)tensorboard使用

2.2图像实现的方法是add_image,第一个仍然是给显示框起个名字,第二个是图像,可以按住ctrl, 把光标放在add_image上,可以看到显示类型,有HWC,CHW等,如果是HWC,则需要使用dataformats指明格式。0,1,2就表示的是第0,1,2次。意思就是第0次显示img1,第1次显示img,第二次显示img1。2.1标量实现的方法是add_scalar,第一个参数是给显示框起个名称,第二个参数是一个标量(也就是一个数值),第三个参数是第几次。然后安装tensorboard。

2024-07-18 23:09:05 236

原创 pytorch学习(三)cpu-gpu训练

在训练模型的时候,不可避免的要使用GPU进行加速,但是我们一般加载或者创建生成的数据都是处于CPU上,怎么把数据加载到GPU上呢?初次学习需要注意的是 :直接使用x.to(device)是不能把x数据加载到GPU上,必须使用x=x.to(device)1.首先看变量的CPU和GPU转换。2.训练过程中如何转换呢?主要是数据和模型的转换。

2024-07-17 23:14:53 187

原创 pytorch学习(四)绘制loss和correct曲线

这一次学习的时候静态绘制loss和correct曲线,也就是在模型训练完成后,对统计的数据进行绘制。以minist数据训练为例子。

2024-07-17 23:13:27 328

原创 pytorch学习(二)模型加载保存

模型参数加载保存的三种参数。

2024-07-16 23:29:00 98

原创 pytorch学习(一)argparse

2. required 为True的时候必须要初始化。3. nargs课代表List。

2024-07-15 23:23:41 255

原创 ubuntu18.04上遇到的一些bug修复

在安装完nvidia驱动之后,重启屏幕一直处在黑屏状态,然后就用上一篇博客中的方法在reboot中卸载了nvidia,可以进入桌面了,在使用pcl库做一些算法的时候,编译过程中遇到了这个问题。然后把libGL.so拷贝到/usr/lib/x86_64-linux-gnu中。使用这一行代码找到所有libGL.so库文件,然后。编译pcl程序,成功。

2024-07-15 15:48:48 409

原创 ubuntu18.04安装显卡驱动后无法进入桌面的解决办法

reboot相当于是重启,重启后选择ubuntu, 不用选高级模式。然后就进入界面,可以正常操作了。1.第一步 进 安开机键进入 1 开机进入 选项界面,选择高级模式(ubuntu 高级选项)2.第二步 进去以后选择一个括号里面带recovery mode的选项,数字选最高最大的。我没有尝试完美恢复的方法,只尝试了卸载nvidia显卡的方法。3.然后弹出一个框,按上下键选择root 点击enter键。4.进入到了一个命令行中,按回车进入到自己的用户名下。5.输入命令卸载显卡驱动。

2024-07-13 16:54:08 430

原创 ubuntu 上vscode +cmake的debug调试配置方法

ubuntu vscode c++ 引用了PCL库ceres库,但是不用配置库的 调试方法

2024-07-10 14:10:40 508

原创 记录ceres的一个变化

ceres想要固定一个参数块和想要固定参数块中的一部分参数的调用方法。

2024-07-09 11:27:09 436

原创 平面法向的角度表示以及坐标系变换

f为在当前帧坐标系下的平面参数(nx,ny,nz,d). f'为在世界坐标系下的平面参数,T表示的是当前帧在世界坐标系下的位姿。经过这个变换就可以把当前帧中平面参数变换到世界坐标系下。1.根据法线计算法线的垂直角sint和法线在水平投影与x轴的夹角phi。2.根据角度计算法线。

2024-07-08 15:52:33 177

原创 python基础知识(闲暇时间)

作为自己线下学习python的空间博客,有时间就写python代码,测试好之后写到这个上边。

2024-07-01 08:54:46 152

原创 自组装mid360便捷化bag包采集设备

找到 ws_livox/src/livox_ros_driver2/launch_ROS1中的 msg_MID360.launch文件,设置rosbag_enable为true,就可以同时启动数据采集和包录制了。背着主机+电池,屏幕固定在mid360的支架上,qt程序开机自启动,启动后,点击launch开始,就可以开始采集数据了,然后手指点击关闭触屏中的终端,一个包包就录制完毕了。采集mid360数据的过程中,发现了头疼的问题,得一手拿着电脑,一手拿着mid360来采集,实在是累胳膊。

2024-06-28 14:19:38 1145 2

原创 mid360配置lio-sam、point-lio和faster-lio(faster-lio未敢配置)

由于要把gcc升级到版本9,害怕升级后原有的代码会出现错误,因此暂时这个先不做实验了。也先不安装和配置了。下载能支持mid360的lio-sam版本到 ws_livox/src中,直接编译,就可以成功。最终可以重建出来了三维场景,但是在重建过程中,一卡一卡的,不知道是啥问题。以及播之前我才记得Mid360的包,就可以到结果。一、使用mid360配置lio-sam。下载并编译point-lio。三、faster-lio。二、point-lio。

2024-06-26 15:37:29 856

原创 激光SLAM平面点的提取、使用学习

提取面的方式,使用了1)就是点投影到了range图上,对比该点和上一个点的垂直角,如果小于一定角度,则认为是地面点。同样用的是 extract_initial_seeds 和 estimate_plane 这两个函数,然后计算点到平面之间距离,使用满足距离约束的点来迭代拟合平面。extract_initial_seeds :提取出来小于z阈值的该bin中的点,并求得这些点的均值,然后求取小于该均值的bin点。在优化的时候,也非直接使用平面-平面的约束,还是从点线距和点面距的角度来计算位姿变换。

2024-06-25 16:11:29 423

原创 fast lio 运行mid360采集的数据,并保存每一帧的点云PCD和位姿

表示通过激光雷达和IMU之间的变换矩阵,把当前激光雷达帧数据变换到 当前IMU位姿下。2)pcd_save_interval需要设置为1(设置为1,表示每一帧保存一次,如果设置为2,就表示每两帧合并成一个pcd文件保存一次),为了和pose对应上,这里就设置为1.因为feats_undistort是经过IMU补偿之后的点呀,所以保存的PCD是无畸变的鸭。首先我们看到在map_incremental中存在一个保存每一帧PCD文件的代码,因此想利用改代码。一. 改每一帧无畸变点云的PCD的保存代码。

2024-06-21 16:25:19 866

原创 ubuntu18.04编译 BALM

BALM的 ubuntu18.04的编译和实践

2024-06-20 21:06:51 438

原创 ubuntu18.04 编译HBA 并实例运行

通过本篇博客,将会学习gtsam, 高版本的cmake安装, ceres安装,以及一个编译问题的解决,最终编译成功HBA,并使用hba进行数据处理。

2024-06-20 20:22:49 866

原创 mid360采集bag数据包以及bag包的基础操作

通过学习本篇文章,可以学到:mid360数据采集,以及播包并使用fast-lio进行重建,同时也列举了一些rosbag的常见操作命令

2024-06-20 09:41:28 521

原创 ubuntu18.04 配置 mid360并测试fast_lio

1)首先找到mid360_config.json,在src/Livox_ros_driver2/config文件夹中,host_net_info的子项cmd_data_ip, push_msg_ip, point_data_ip,imu_data_ip这四个都改成192.168.1.50。一般可以用来接9-27v的电源,推荐接12v的电源转换器,或者接14.4v的电源转换器。2)然后把lidar_configs子项 ip 改为192.168.1.1xx,其中xx为 mid360上的SN码后两位。

2024-06-12 09:27:40 1495

原创 ros与硬件的交互

学习ros与硬件的交互,硬件主要包含(相机,激光雷达,IMU,RTK/GNSS,小车,无人机)

2024-06-04 09:39:45 173 1

原创 fast-lio2代码学习

学习激光slam系统,包含公式推到,代码阅读,算法,消息等,以及最终能够适配一个激光雷达头,完成独立重建。

2024-05-29 20:19:00 280

Morphology0.4.rar

浅墨的形态学处理代码 ,可以清晰地看到 各种方法的 运算连接过程,

2016-02-23

利用photoshop+perfecticon制作 程序图标

利用photoshop+perfecticon制作 程序图标,详细的教程,本人的制作流程. 附图

2015-10-22

好用的进度条

很好用的进度条!可以添加简单的文字,进行文字和进度显示

2015-10-07

opengl库 完整版

里面对.h文件,lib文件,dll文件分别存放有利于您进行配置.

2015-03-29

OpenCV教程-基础篇

OpenCV教程-基础篇,是学习图像处理编程的入门必备利器.值得拥有!

2015-01-30

ICP最邻近点迭代法

ICP最邻近点迭代法的论文,清晰地描述了ICP的流程和思想

2015-01-30

flann-1.7.1-vs2010-x86

flann-1.7.1-vs2010-x86 32位, 这好似一个很好用的库.

2015-01-30

CloudCompare_v2.6.1.beta_bin_x86

CloudCompare_v2.6.1.beta_bin_x86 32位可用,直接点exe,无须安装, 绿色环保安全,显示点云效果很好,请放心使用

2015-01-27

空空如也

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

TA关注的人

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