自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (6)
  • 收藏
  • 关注

原创 python:根据旋转平移矩阵求取原始点云或者转换后点云

根据旋转平移矩阵求取原始点云或者转换后点云

2024-04-24 16:01:19 926 1

原创 python:使用scipy及numpy对三维空间点进行插值并可视化

使用scipy及numpy对三维空间点进行插值并可视化

2024-04-22 21:16:50 434

原创 pyquaternion和scipy库实现四元数、欧拉角和旋转平移矩阵之间相互转换

下面是一个例子,展示了如何在scipy中转换四元数、欧拉角和旋转平移矩阵之间的互换。请注意,欧拉角的顺序在这里被设定为’xyz’。您可以根据实际情况选择不同的顺序。

2024-03-29 15:45:04 492

原创 python setup.py develop运行报错解决办法

解决办法:指定一个新的安装路径。

2023-12-20 10:21:53 738

原创 L2级辅助驾驶系统一般功能

自动泊车辅助(Automated Parking Assist,APA) :通过传感器检测车辆周围环境,自动控制方向盘、加速踏板和制动踏板,实现自动泊车。盲区监测(Blind Spot Detection,BSD):通过传感器监测车辆周围的盲区,警告驾驶员有其他车辆或物体在盲区内。拥堵辅助(Traffic Jam Assist,TJA):在拥堵交通中,帮助驾驶员保持车辆在车道内行驶,自动加速、刹车和转向。自动远光灯(High Beam Assist,HBA):根据前方车辆的距离和方向自动控制车辆的远光灯。

2023-12-06 15:39:04 564

原创 CUDA中的原子操作

CUDA中的原子操作主要包括原子加(atomicAdd)、原子减(atomicSub)、原子与(atomicAnd)、原子或(atomicOr)、原子异或(atomicXor)、原子最小值(atomicMin)和原子最大值(atomicMax)等。在CUDA中,原子操作是一种同步方法,用于在多个线程之间共享数据。原子操作具有原子性、独占性和排他性,可以确保多个线程对共享资源的并发访问不会同步出错。原子操作用于对共享内存中的数据进行原子性读写操作,以避免多个线程同时访问同一个内存地址造成的数据竞争问题。

2023-12-05 21:23:21 1009 1

原创 Error: loaded state dict contains a parameter group that doesn’t match the size of optimizer’s group

在这个示例中,我们检查了 optimizer 的 state_dict 和 checkpoint 的 state_dict 尺寸是否匹配。如果它们匹配,我们就可以使用。来加载 optimizer 的 state_dict。否则,我们打印一个错误信息来指示尺寸不匹配。您需要根据您的实际场景来修改示例代码。这个错误通常是由于加载的模型权重和当前模型的结构不一致导致的。通过手动去除偏差参数后,我们可以成功地进行优化。通过对比可以发现,模型的权重中没有。,而优化器中的参数组却包含了。

2023-11-24 16:09:57 1728

原创 python 批量将图片存入excel单元格内

以上代码会将指定目录下所有的.jpg或.png文件存储到Excel单元格中,并将单元格大小调整为适应图片大小。需要注意的是,如果目录下有其他类型的文件,程序会抛出异常并停止运行。可以根据实际情况调整程序逻辑和异常处理方式。以下是一个示例程序,可以实现将指定目录下的所有图片存储到Excel单元格内。注意需要安装openpyxl库和Pillow库。

2023-11-23 14:21:00 1634

原创 OpenCV将两张图片拼接成一张图片

【代码】OpenCV将两张图片拼接成一张图片。

2023-11-22 16:16:06 3174 1

原创 Fine tuning 和 Pretrained

Fine tuning和Pretrained都是深度学习中常用的概念。Pretrained指的是在一个大型数据集上预先训练好的模型,例如ImageNet数据集上的ResNet、VGG等模型都可以视为Pretrained模型。这些模型已经经过了大量的训练和调整,并且在许多不同的图像识别任务中表现出色。因此,我们可以使用这些训练好的模型来加速我们的训练和提高我们的准确性。Fine tuning指的是在预先训练好的模型的基础上,将整个模型或部分模型进行微调。

2023-11-20 16:12:20 174

原创 pytorch中常见loss函数归纳(二分类、多分类、检测、分割、回归)

PyTorch中的loss函数源码通常可以在torch.nn.functional模块中找到。这些函数接受模型的输出和真实标签作为输入,并计算出模型预测的误差,从而帮助优化器调整模型参数。二分类任务只有两个类别,如判断一张图片是猫还是狗。常用的损失函数有:(1)BCELoss(Binary Cross Entropy Loss):二分类交叉熵损失函数,适合输出为概率值的情况。

2023-11-15 17:27:15 1190

原创 OHEM在线难例挖掘原理及在代码中应用

在传统的训练过程中,模型会在训练集中遇到大量易于分类的样本,而只有少量的难以分类的样本。在以上代码中,我们首先定义了一个交叉熵损失函数,然后在每个batch的训练过程中,按照损失值从大到小排序,并选择损失值排名前50%的样本作为难例样本。具体来说,OHEM在每个batch的训练中选择一定数量(通常为batch size的1/2)的难例样本,这些难例样本的损失函数被优先考虑。因此,模型会更加关注难以分类的样本,在训练过程中逐渐学会处理难例样本的能力,提高模型的泛化性能。在代码中,我们首先定义了模型,并使用。

2023-11-08 16:26:44 287

原创 基于关键点的车道线检测

以下是提供的几种基于关键点的车道线检测方案思路,并不代表具体的任务方案。

2023-11-01 14:39:03 1443 11

原创 自适应卷积和可变形卷积区别

两种方法的效果和速度并没有绝对的优劣之分,而是取决于具体的应用场景和模型架构。一般来说,自适应卷积比可变形卷积更容易优化,因为它只需要学习卷积核的形状和大小,而不需要学习采样和偏移。但是,在处理高度变形目标时,可变形卷积通常比自适应卷积效果更好。自适应卷积和可变形卷积都是对传统卷积进行改进,以解决传统卷积在处理变形目标时的不足。

2023-10-30 15:50:57 572

原创 基于 ResNet18 架构使用 deformable convolution的车道线检测

下面是一个基于关键点的车道线检测网络的 PyTorch 代码示例,其中使用了 deformable convolution。该代码示例基于 ResNet18 架构,可以根据实际情况进行修改。输出的结果应该为 (1, 1, 1, 1)。可以根据实际情况进行调整和优化,来达到更好的性能。其中,deformable_conv2d_compute 函数是 deformable convolution 的计算函数。其中,DeformConv2d 是一个 deformable convolution 的实现类。

2023-10-27 16:32:31 733 1

原创 深度学习中常用的激活函数有sigmoid、tanh、ReLU、LeakyReLU、PReLU、GELU等。

深度学习中常用的激活函数有sigmoid、tanh、ReLU、LeakyReLU、PReLU等。

2023-10-19 14:00:05 562

原创 KNN(k-Nearest Neighbor)算法原理

KNN(K-Nearest Neighbors,K近邻算法)是一种基本的分类和回归算法,它的原理非常简单直观,即通过计算待分类数据点与已有数据集中所有数据点的距离,选择其中距离最小的K个数据点(最近邻),并把它们的类别作为待分类数据点的类别进行分类。KNN算法基于一个假设:与一个样本最相似的其他k个样本的类别可以用来预测该样本的类别。这个代码实现的KNN类可以接受一个超参数K和训练数据集(X_train,y_train),并且能够对给定的测试数据集X做出预测。结果将打印出测试集上的准确度分数。

2023-10-17 15:53:49 199

原创 多头注意力(Multi-Head Attention)和交叉注意力(Cross-Attention)是两种常用的注意力机制的原理及区别

在类的初始化函数中,我们需要设置注意力头数num_heads,以及每个注意力头的k维度k_dim和v维度v_dim。在前向传播函数中,我们使用全连接层将x1投影到k_dim * num_heads维度,x2投影到k_dim * num_heads和v_dim * num_heads的空间,再将结果按注意力头和k_dim/v_dim维度进行调整。注意力计算完成后,将得分与v相乘,再将结果按注意力头和v_dim维度进行调整,最终使用全连接层将结果投影会in_dim维度,即可得到多头注意力计算的结果。

2023-10-16 21:14:07 17821 1

原创 深度学习中常用的注意力模块及其原理和作用

深度学习中常用的注意力模块及其原理和作用,以及相应的PyTorch代码示例。

2023-10-16 17:39:46 1171

原创 分类任务中softmax+argmax和直接argmax得到的结果有什么异同?

从输出结果可以看出,softmax+argmax和argmax的结果是一样的,但是softmax+argmax得到的结果是归一化后的概率值。因为矩阵中的每个值都大于0,因此softmax不会改变矩阵中元素的相对大小。在实际应用中,softmax可能会对结果产生影响并产生不同的输出。

2023-08-31 10:59:09 589

原创 python:使用tkinter&pyqt搭建可视化工具

然后我们创建了左右两个垂直布局,以及一个“上一张”和一个“下一张”按钮,并将这些按钮添加到左侧布局中。您可以根据需要修改路径和窗口大小等参数,并在 showPrevImage() 和 showNextImage() 方法中添加您自己的代码,以实现显示前一张和后一张图像的功能。在 showPrevImage() 和 showNextImage() 方法中,我们将显示前一张和后一张图像的代码留为 TODO,并在两个按钮上分别连接这两个方法。然后,我们创建了一个垂直布局,将水平布局和两个按钮放置在该布局中。

2023-08-31 10:36:50 590

原创 python: lidar点云转BEV投影及pillar/voxel

【代码】python: lidar点云转BEV投影及pillar/voxel。

2023-08-05 17:02:01 497

原创 onnx.helper修改onnx模型融合多层为自定义节点并以constant形式加载权重参数到onnx

在进行模型融合时,我们通常需要将多个模型的层合并为一个自定义节点,以提高模型推理效率和减少推理时间。其中,'custom_node’为自定义节点的名称,'input_tensor’为输入节点名称,'output_tensor’为输出节点名称,value_list为节点属性列表。

2023-06-03 17:56:12 747

原创 ONNX模型及自定义plugin的动态链接库转TensorRT模型推理

ONNX是一种用于表示机器学习模型的格式,而TensorRT是一个高性能的推理引擎,用于在NVIDIA GPU上进行推理。自定义plugin则是指在TensorRT中自定义一些操作(如卷积、ReLU等),以提高模型推理效率。首先,需要定义一个继承自ITensorRT接口的plugin类,实现其对应的虚函数,例如前向计算函数和反向传播函数等。在实现以上步骤时,需要注意TensorRT的版本和系统配置。使用TensorRT的Python API或C++ API,将ONNX模型转换为TensorRT引擎。

2023-06-03 16:58:59 756 2

原创 实现PyTorch/ONNX自定义节点操作的TensorRT部署

这样,我们就获得了带有自定义操作的ONNX模型。

2023-05-29 22:27:17 1345 1

原创 鬼影、雨雪天气点云噪声处理

以下是一个简单的雨水、雪花等噪声点云处理的算法和对应的C++代码:这里使用了PCL库,需要安装和配置好PCL库才能编译运行。代码中的注释应该可以帮助你理解如何实现这一算法。在雨雪天气中,点云噪点通常是由于雨滴或雪花的撞击和反射造成的,它们会被误认为是点云数据中的有效点。处理点云噪点的一种方法是使用统计学滤波器,例如高斯滤波器、中值滤波器或平均值滤波器。这些滤波器都可以根据周围点云数据的统计信息来过滤掉噪点。

2023-05-28 16:24:52 2086 2

原创 UKF跟踪算法原理及C++代码实现

其原理是通过对观测到的状态信息进行加权处理来计算系统的实际状态值。在上面的代码中,我们首先定义了状态变量和观测变量的维度,以及sigma点的个数和权重。利用系统状态的均值和协方差矩阵来构造一组sigma点,包括系统状态及其方差范围内的其他可能状态。根据预测状态的sigma点和权重,计算预测状态的均值和协方差矩阵。利用预测状态的均值和协方差矩阵,通过观测方程来计算观测值的sigma点。根据观测值的sigma点和权重,计算观测值的均值和协方差矩阵。根据预测状态的协方差矩阵和观测值的协方差矩阵,计算卡尔曼增益。

2023-05-28 15:29:19 1706

原创 基于C++的UKF代码示例,跟踪三次多项式曲线

这是一个简单的示例代码,可以根据需要进行修改和扩展。

2023-05-28 15:21:17 1249

原创 TensorRT API将多个engine文件及plugin合并为一个engine文件

在代码示例中,我们使用两个IRuntime实例加载两个engine文件,获取其中的输入和输出张量,并创建一个新的engine文件。然后,我们使用IBuilder创建一个新的网络,并将两个engine文件的输入和输出张量添加到新的网络中。代码会创建一个新的engine,该engine从两个输入绑定开始,然后遍历两个engine的所有层,将它们复制到新的engine中,最后以两个输出绑定结束。使用TensorRT API获取两个engine文件的输入和输出张量名称,并创建一个新的engine文件。

2023-05-27 22:00:57 1251

原创 ONNX模型修改为自定义节点

首先,需要将ONNX模型中的节点修改为自定义节点。要实现这一点,您需要了解自定义节点的定义和如何在ONNX中使用它们。ONNX定义了一个自定义运算符的接口,您可以使用该接口定义自己的运算符,并将其编译为ONNX模型可以识别的格式。具体步骤如下:定义自定义节点的运算符:您需要将自定义节点定义为一个具有输入和输出的函数。函数应该遵循ONNX规范中定义的接口。编写生成自定义节点的代码:您需要编写代码来生成ONNX模型中的自定义节点。生成代码通常基于ONNX运算符定义,使用您定义的自定义节点。

2023-05-27 12:59:26 1509

原创 RANSAC原理及二次/三次多项式曲线拟合

RANSAC(RANdom SAmple Consensus)是一种经典的模型拟合算法,用于从一组杂乱的数据中找出最佳的模型。它的基本思想是随机选取一定数量的数据点,使用这些数据点来拟合模型,然后将所有数据点带入模型中,统计符合模型的数据点数量,如果符合数量超过阈值,则认为这些数据点符合这个模型,即它们是局内点(inlier)。重复以上过程,多次迭代之后,找到的最佳模型是拟合最优的模型,符合该模型的数据点就是局内点。RANSAC算法通常用于处理含有噪声或者异常数据的拟合问题,例如点云配准、图像匹配等问题。

2023-05-27 12:49:50 3859 5

原创 PyTorch修改为自定义节点

要将网络修改为自定义节点,需要在该节点上实现新的操作。在 PyTorch 中,可以使用torch.onnx模块来导出 PyTorch 模型的 ONNX 格式,因此我们需要修改函数来实现新的操作。首先,创建一个新的OpSchema对象,该对象定义了新操作的名称、输入和输出张量等属性。然后,可以定义函数来实现新操作的计算。在上面的示例中,我们首先使用装饰器创建了MyCustomOp类,并实现了forward和symbolic函数,这些函数定义了新操作的计算方式和 ONNX 格式的表示方法。然后,我们使用。

2023-05-27 12:40:18 1796

原创 CUDA:网格(Grid)、线程块(Block)和线程(Thread)

Grid是最高级别的线程组织方式,Block位于Grid下一层,表示一个线程块,Thread是最小的线程单位,Block中包含一定数量的Thread。CUDA的基本运算单元是线程(Thread),线程被组织成线程块(Thread Block),线程块又被组织成网格(Grid)。在CUDA中,一个计算任务被分成多个线程,并且这些线程被组合成一个或多个线程块,线程块被组合成一个或多个网格,以执行并行计算。中,每个线程块中的每个线程都会计算一个数组中的元素的和,最终得到结果数组。是要执行的CUDA函数名。

2023-05-26 21:39:09 2269

原创 C ++中实现ResNet34代码

ResNet是一个深度残差神经网络,其基础结构是由多个残差块(Residual block)堆叠而成的。每个残差块包含两个卷积层和一个跳跃连接(shortcut connection),跳跃连接负责绕过这两个卷积层,直接连接两个卷积层的输入和输出,从而允许信息在深度网络中跳过某些层。请注意,这只是一个示例,实际上,ResNet34模型包含更多的层,每个层都需要设计相应的卷积核和步长。您可能需要花费更多的时间来实现一个完整的模型。实现ResNet34需要实现一些基本的模块,如卷积层、残差块等。

2023-05-26 21:25:53 538 1

原创 C++智能指针的介绍和代码示例

unique_ptr是一种独占式智能指针,它管理的是一个对象的唯一拥有权,同一时间只能有一个unique_ptr指向它。weak_ptr是一种弱引用智能指针,它指向一个由shared_ptr管理的对象,但是并不增加该对象的引用计数。shared_ptr是一种共享式智能指针,它可以有多个指针指向同一个对象。C++智能指针是一种特殊的指针类型,它能够自动管理动态创建的对象的内存。C++标准库提供了三种类型的智能指针:unique_ptr、shared_ptr和weak_ptr。

2023-05-26 21:02:05 109

原创 PyTorch C++ API 实现ResNet34 网络

这是一个基于 PyTorch C++ API 实现的简单示例,欢迎参考。

2023-05-26 20:57:39 198

原创 C++中虚函数、纯虚函数和多态的关系

它们都重写了该函数以实现多态,然后在。在这个代码示例中,我们创建了一个。对象的地址,然后分别调用它们的。函数,从而实现多态性。基类,它有一个虚函数。类型的指针,用于存储。

2023-05-26 20:55:09 62

原创 C++继承多态函数重载

在上面的示例代码中,子类 Dog 继承了父类 Animal 的成员函数 eat,并且重写了这个函数。在上面的示例代码中,我们定义了三个名称相同的函数 print,它们分别接受 int、double 和 const char* 类型的参数,这就是函数重载的体现。在继承中,子类可以继承父类的成员变量和成员函数,并且可以在子类中重写父类的成员函数。函数重载是 C++ 中的一个重要概念,它允许我们定义多个函数,它们在名称相同的情况下可以接受不同数量或类型的参数。函数进行了重载,分别定义了。在上面的代码中,我们对。

2023-05-26 20:50:46 1835

原创 C/C++读取txt文件中的float数据并用指针存储

在上面的代码中,我们使用了fopen()函数来打开example.txt文件,并将其存储在fp指针中。如果文件打开成功,则使用fgets()函数从文件中读取每行数据,并将其存储在缓冲区buffer中,最后将其输出到控制台。读取完所有数据后,我们使用fclose()函数关闭文件并释放资源。请注意,如果文件不存在或无法打开,fopen()函数将返回NULL。在这种情况下,我们使用条件语句来输出错误信息并退出程序。

2023-05-26 20:36:54 2214

原创 KdTree原理及实现

在左子矩形中,我们选择y坐标在中间的点(即第2个点,也就是坐标为(2, 3)的点)作为左子节点,并将左子矩形划分为两个子矩形:一个左子矩形(包含第1个数据点)和一个右子矩形(包含第2个数据点)。在右子矩形中,我们选择y坐标在中间的点(即第5个点,也就是坐标为(8, 2)的点)作为右子节点,并将右子矩形划分为两个子矩形:一个左子矩形(包含第4个数据点)和一个右子矩形(包含第6个数据点)。最后返回最近邻点即可。每个单元格根据其所属的维度选择一个坐标轴,将其划分为两个子单元格,并将数据点存储在相应的子单元格中。

2023-05-26 20:24:39 1818

基于深度学习的激光雷达点云车道线检测

提供完整的工程代码(C++/CUDA),以及测试数据、权重文件等。有需要可以csdn私信

2023-04-18

lidar lane track

lidar lane track

2022-12-15

点云车道线标注工具,根据开源修改

激光点云车道线标注工具,python版

2022-12-05

Python implements pointcloud RVIZ visualization with intensity.

Python implements pointcloud RVIZ visualization with intensity values and RGB color information. python编程利用ros自带的rviz可视化工具,将xyzi及xyzrgb点云数据进行可视化,以及用marker可视化一些形状特征的点云。

2022-08-19

RANSAC for line fitting

RANSAC for line fitting

2022-04-26

对三维空间中的一些线面等的讲解

Chapter 1 : 3-Dimensional Space Chapter 2 : Partial Derivatives Chapter 3 : Applications of Partial Derivatives Chapter 4 : Multiple Integrals Chapter 5 : Line Integrals Chapter 6 : Surface Integrals

2022-04-25

基于激光雷达点云多条车道线分割拟合

基于激光雷达点云多条车道线分割拟合

2022-04-25

autoware架构图

autoware架构图

2021-04-03

Autoware_TierIV_Academy_v1.1.pdf

autoware无人驾驶系统说明手册

2021-04-03

Autoware_QuickStart_v1.1.pdf

autoware用户手册英文版

2021-04-03

空空如也

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

TA关注的人

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