- 博客(9)
- 收藏
- 关注
原创 PointPillarScatter
该模块的作用是将稀疏的Pillar特征转换为密集的BEV(鸟瞰图)特征图,作为后续检测网络的输入。核心思想是根据每个pillar在BEV网格中的坐标,将特征填充到对应的位置,形成类似图像的2D特征图。稀疏到密集: 将无序的pillar特征按坐标转换为规整的BEV特征图,便于卷积处理。索引计算: 利用x + y * nx将2D坐标映射到一维,快速定位特征位置。零初始化: 未被pillar覆盖的区域保持零值,表示无特征。
2025-03-14 09:18:09
408
原创 rosbag2_to_pcd
对于指定主题中的每个点云消息,软件包将创建一个单独的 PCD 文件。修改rosbag2pcd_ws/rosbag2_to_pcd/cofig文件夹中的rosbag2_to_pcd.param.yaml文件。它将为每个点云消息生成一个 PCD 文件,并将它们存储在与文件夹相邻的目录中。例:/home/mfc/bags/rosbag2_2023_08_15-18_42_55。path_bag:要转换的 rosbag2 文件的绝对路径。:包含 rosbag2 文件中的点云数据的主题。
2024-11-25 02:30:51
826
2
原创 使用ros2创建调用USB摄像头的包并编写launch文件
在/src/capture_img路径下新建一个launch文件夹,编写capture_img.launch.py。但是现在如果直接编译的话install文件架里面可能会找不到launch文件,此时还需要修改setup.py。将文件命名为capture.py,同时在同一个路径下生成一个空的__init__.py。目录,并执行以下命令创建一个新的包。进入在src路径下生成的capture_img文件夹,编写我们采集图片的节点。的包,它的类型是 Python 的构建类型(接下来编写我们的launch文件。
2024-11-07 11:33:01
292
原创 Python程序实现NMS
需要注意的是,NMS是对所有的类别分别执行的。举个栗子,假设最后预测出的矩形框有2类(分别为cup, pen),在NMS之前,每个类别可能都会有不只一个bbx被预测出来,这个时候我们需要对这两个类别分别执行一次NMS过程。即目标的位置和置信度用列表储存,每个列表中的一个子列表代表一个bbx信息。
2023-10-28 17:37:50
622
原创 卡尔曼滤波【部分】
我们无法跟踪这些外部因素,如果发生任何这些情况,我们的预测可能会出错,因为我们并没有考虑这些因素。换句话说,传感器本身的测量是不准确的,且原始估计中的每个状态都可能导致一定范围的传感器读数,而卡尔曼滤波能够在这些不确定性存在的情况下找到最优的状态。而且重叠部分的概率分布会比我们之前的任何一个估计值/读数都精确得多,这个分布的均值就是两种估计最有可能配置(得到的状态)。根据传感器的读数,我们会猜测系统正处于某个特定状态。换句话说,新的最佳估计是在先前的最佳估计的基础上做出的预测,加上对已知外部影响的修正。
2023-10-23 17:53:40
77
1
原创 10.22分隔链表
在合并两个有序链表时让你合二为一,而这里需要分解让你把原链表一分为二。具体来说,我们可以把原链表分成两个小链表,一个链表中的元素大小都小于。函数中,将原链表中的节点添加到了新的链表中,并且在添加节点后,将原链表中的节点断开,防止形成环。这样,你就将原链表中的节点添加到了新的链表中,并且断开了原链表中的节点,这就改变了原链表的结构。注意:分区后的链表是新链表,而不是原链表。原链表的结构改变了,是因为在。,最后再把这两条链表接到一起,就得到了题目想要的结果。与原链表中的下一个节点的连接。添加到相应的链表中。
2023-10-22 13:53:51
76
1
原创 10.21好未来笔试
学习率预热的主要作用是在训练初期,由于模型的权重是随机初始化的,如果选择一个较大的学习率,可能会带来模型的不稳定(振荡)。D对,由于刚开始训练时,模型的权重(weights)是随机初始化的,此时若选择一个较大的学习率,可能带来模型的不稳定(振荡),选择Warmup预热学习率的方式,可以使得开始训练的几个epoches或者一些steps内学习率较小,在预热的小学习率下,模型可以慢慢趋于稳定,等模型相对稳定后再选择预先设置的学习率进行训练,使得模型收敛速度变得更快,模型效果更佳。7.下面哪个不是分类模型?
2023-10-21 22:21:08
882
1
原创 合并两个有序链表10.21
比如说,让你把两条有序链表合并成一条新的有序链表,是不是要创造一条新链表?再比你想把一条链表分解成两条链表,是不是也在创造新链表?方法的功能是合并两个链表,而不是依赖于它被调用的对象。新链表是通过拼接给定的两个链表的所有节点组成的。节点这个占位符,可以避免处理空指针的情况,降低代码的复杂性。所以,你可以根据你的需要选择使用哪一行代码。方法,你应该使用第一行代码。形象地理解,这个算法的逻辑类似于拉拉链,然而,这两行代码的结果是相同的,因为。方法,而在第二行代码中,我们在。方法,它都会返回合并后的链表。
2023-10-21 17:14:59
67
1
原创 反转单链表
首先,我们需要定义一个链表节点类。这个类将包含一个数据字段和一个指向下一个节点的指针字段。这可以通过Python类的定义来实现。在这个类中,val是节点的值,next是指向下一个节点的指针。当next=None时,表示这个节点是链表的最后一个节点。p = p.next在这个类中,initList函数接收一个列表data,并将其转换为链表。head是链表的头节点,通过遍历data,创建新的ListNode,并将其添加到链表的末尾。
2023-10-14 21:47:50
77
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人