自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 重构(4)

一些词汇,创建(create,init,load),销毁(destroy,release,uninit,deinit),动词(get,fetch,load,read,write,find、serach,receive,pull),(set, write,put,push),更新(update,reset,refresh),添加/移除(add,remove,append,insert,delete);启动/停止(start,open,launch, close,stop,finish);

2025-01-22 18:04:26 950

原创 重构(3)get的不同场景的变种

1.直接从对象或者数据结构中得到数据,直接用get。2.通过计算获取的数据,采用calc。3.数据库查找得到的数据。4.从配置文件中加载数据。5.网络请求获得数据。

2025-01-22 15:10:10 84

原创 重构(2)判断型函数和判断型变量的命名

前缀词+名词+动词(is/can/has。+something + verb)前缀词+名词(is/can/has。+something + verb)表示是否含有的状态---has/include/contains;表示是否应该的状态---should/needs;主要是针对返回值是bool类型的变量。表示是否符合的状态--- is;表示是否能够的状态---can;几个判断的词汇,分别是,

2025-01-22 14:59:22 403

原创 重构(1)if-else

分为五个部分,分别是卫语句、条件合并、表驱动、简单工厂模式、策略模式;

2025-01-22 14:45:51 454

原创 记录一些资源

生成之后,可以打印成A4纸。

2024-11-10 16:34:02 247

原创 arduino通过串口控制产生高低电平

在用Serial.parseInt()、Serial.readstring等函数的时候发现总是有1秒左右的延迟,这两个都是阻塞式函数,为的是让数据流传输过来完。如果用Serial.read的时候read和read之间也要有时间间隔,防止数据流还没有流过来,导致read出来的是乱码。经过测试发现可以满足要求,写入串口再读出来,1000次耗时在0.7秒左右,平均一次耗时在0.7毫秒,整体上来说满足实际需求。delayMicroseconds(200)的时候,1000次耗时0.7秒。1)延迟要有一定时间。

2024-10-26 19:45:25 377

原创 win10装机 vs+qt+cuda

安装顺序:先安装vs,再安装cuda,再安装QT,再安装QT插件。

2024-10-03 21:33:10 437

原创 Pvnet(一)结构

cur_hyp_pts就是根据idx中的i*2,2*i+1索引,对应的coords和direct,也就是每一个点就有一个点位置和一个方向,计算交叉点就得到了cur_hpy_pts。或者可以理解为该像素点点和该像素点对应的方向 是否是 该特征点的内点。在这里面net就是Resnet18_8s,使用Resnet18_8s提取出来了seg_pred, vertex_pred,其中seg_pred表示分割出来的像素, vertex_pred表示每个分割出来的像素点的方向(理想情况下为指向真值特征/像素点的方向)。

2024-09-22 11:57:04 824 1

原创 PointNet2(一)分类

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

2024-09-15 23:59:14 1379

原创 PVN3D(一)代码框架

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

2024-09-04 21:46:18 433

原创 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 207

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

计算FPFH特征并显示。

2024-08-18 10:07:39 171

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

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

2024-08-12 22:55:40 409

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

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

2024-08-10 22:28:01 557

原创 经典网络(一)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 478

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

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

2024-07-21 20:32:11 1118 1

原创 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 622

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

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

2024-07-21 19:48:28 191

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

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

2024-07-21 18:49:09 341

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

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

2024-07-20 23:52:27 502

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

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

2024-07-20 22:32:36 606

原创 pytorch学习(十一)checkpoint

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

2024-07-20 21:00:33 500

原创 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 228

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

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

2024-07-19 23:27:09 334

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

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

2024-07-19 22:52:46 647

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

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

2024-07-19 21:10:59 318

原创 pytorch学习(六)transforms使用

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

2024-07-19 20:43:51 266

原创 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 367

原创 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 336

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

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

2024-07-17 23:13:27 589

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

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

2024-07-16 23:29:00 118

原创 pytorch学习(一)argparse

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

2024-07-15 23:23:41 302

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

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

2024-07-15 15:48:48 454

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

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

2024-07-13 16:54:08 1149

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

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

2024-07-10 14:10:40 663

原创 记录ceres的一个变化

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

2024-07-09 11:27:09 492

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

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

2024-07-08 15:52:33 311

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

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

2024-07-01 08:54:46 174

原创 自组装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 1392 6

原创 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 2189 8

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关注的人

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