- 博客(540)
- 资源 (46)
- 收藏
- 关注
原创 yaml文件写法和加载(1)
yaml 是专门用来写配置文件的语言,个人认为比yaml比json格式更方便。在Python中,使用PyYAML库来处理YAML文件是一种常见的做法。YAML(YAML Ain’t Markup Language)是一种数据序列化格式,它以。
2024-08-13 11:25:09
675
原创 gitignore文件的使用
在使用GitLab进行版本控制时,如果你(比如生成的权重、预测的图片等),你可以在项目的根目录下创建或编辑一个.gitignore文件。在这个文件中,你可以列出那些你希望Git忽略的文件和目录的模式。
2024-08-09 13:23:34
630
原创 torch.gather的使用
input: 需要从中选取元素的原始张量。dim: 沿着此维度选取元素。例如,如果 dim=0,则沿着第一个维度(通常是行)选取;如果 dim=1,则沿着第二个维度(通常是列)选取。index: 一个长整型张量,包含要选取的索引。index 的形状应该与 input 的形状相同,或者可以广播到 input 的形状。
2024-08-06 23:09:15
395
原创 tmux的使用
tmux 是一个开源的终端复用器,它允许用户在一个窗口中访问多个独立的终端会话。它特别适合于远程服务器管理,因为它允许用户在多个终端窗口之间切换,同时保持网络连接。
2024-08-06 17:20:47
131
原创 图像增强:使用周围像素填充掩码区域
非0进行修复cv2.inpaint 是 OpenCV 库中的一个函数,用于图像修复(inpainting),即填充图像中的损坏区域或遮罩区域。这个函数。
2024-08-04 14:09:46
128
原创 使用warpAffine实现图像的几何增强
warpAffine是OpenCV中的一个函数,它可以用来对图像进行仿射变换,这包括旋转、平移、缩放和错切等操作。通过使用仿射变换,我们可以对图像进行几何增强,以增加数据的多样性,提高模型的泛化能力。水平或垂直翻转图像可以通过修改旋转矩阵来实现。旋转图像可以通过指定一个旋转角度来实现。
2024-08-03 22:18:28
54
原创 图像像素增强albumentations库的使用
albumentations是一个快速的图像增强库,用于机器学习任务。它支持各种类型的图像变换,包括但不限于旋转、平移、缩放、剪切、翻转、噪声注入、遮挡等。albumentations库可以与深度学习框架如PyTorch和TensorFlow很好地集成, 支持种类丰富的像素级变换,包括雨天、雾天、色域变换等等。
2024-08-03 21:53:41
72
原创 python 学习: np.pad
在NumPy中,np.pad函数的调用np.pad(K, ((0,1),(0,1)), ‘constant’, constant_values=0)表示对数组K进行填充,其中K是一个二维数组(矩阵)。这个调用指定了在每个轴上的填充宽度,并且使用了常数值填充模式。在NumPy中,np.pad函数用于对数组进行填充(padding),即在数组的边界处添加额外的值。这在图像处理、信号处理或任何需要扩展数据边界的场景中非常有用。
2024-08-03 20:35:53
471
原创 Bev系列算法总结
Lss Based的算法的发展过程,从多视角融合(BevDet) -> 时序融合的BevDet4D -> 点云深度监督(BevDepth)->MVS(BevStero)->长时序(SoloFusion)->recurrent 时序(VideoBev)从nusense的指标来看,BevDet的mAP是29.8,再到SoloFusin的42.7已经有10几个点的性能提升,一步步发展过来性能提升还是很明显的Video Bev 降低了计算复杂度的同时,还保证了感知性能不会降低。
2024-06-24 00:54:34
543
原创 LATR 算法解读
其中point_query也就是self.point_embedding, 它是利用。经过reshape和permute将tensor大小由。经过forward前向计算得到的。保存到output字典中。进行flatten得到。(4)然后再经过全连接。得到tensor大小为。其中具体损失计算通过。
2024-06-22 09:48:45
512
原创 Bev感知:sparse query
2D to 3D主要以LSS-based方法为主,主要是系列。如下图为例,这种方法一般都会有一个depth估计的网络,还会有一个语义特征提取的分支。利用外积的操作及voxel pooling把提取的image的图像特征拍平到Bev空间上。可以发现它是比较依赖深度估计的准确度的,如果深度估计不准的话,它投到3D空间上会出现位置的偏差,后续Bev Head 基于有偏差的Bev特征,就容易不好refine 回来,容易出现误差累计的问题。
2024-06-18 13:12:50
461
原创 CUDA 编程(1):使用Grid 和 Block分配线程
核函数以线程为单位进行计算的函数,cuda编程会涉及到大量的线程(thread),几千个到几万个thread同时并行计算,所有的thread其实都是在执行同一个核函数。。之所以这么划分,比如将Grid划分为多维的Block,Block划分为多维thread,它其实是为了帮助你快速索引对应的thread。Grid 和Block是逻辑上意义的概念,它并不是在你的GPU硬件上实际存在的。
2024-06-09 16:17:08
383
1
原创 tensorRT 自定义算子plugin的实现
实现一个自定义算子, 对输入的x, 先加一个数r,再乘以simport os自定义算子需要实现2个类,分别是算子的实现类, 以及利用实现类构建的算子类是自定义算子的实现类,通过继承父类的方式实现导出自定义算子。继承该父类后需要用户自己实现forward以及symbolic两个静态方法。forward函数: 定义该算子实现的具体代码,其中第一个参数必须是ctx, 后面的参数是实际自己传入的参数。symbolic方法: 由于是自定义的算子,因此需要定义符号函数symbolic,从而让onnx能识别它。
2024-06-09 12:32:09
546
1
原创 TensorRT 精度debug分析工具
tensorRT还提供了一套可用于engine生成过程中debug的工具,包括Polygraphy和。这些小工具用处很大,值得花时间进一步研究。
2024-06-08 14:25:30
462
原创 tensorRT 实现推理加速(算子合并、量化)
TensorRT是一个高性能的深度学习推断(Inference)的优化器和运行的引擎。TensorRT支持Plugin,对于不支持的层,用户可以通过Plugin来支持自定义创建。TensorRT使用低精度的技术获得相对于FP32二到三倍的加速,用户只需要通过相应的代码来实现。AI大道理公众号。
2024-06-08 13:37:35
369
原创 Bev 车道标注方案及复杂车道线解决
对于U型或环导线这种大曲率的车道线,用基于transformer或者使用maptr 两级query的方法,对学习大曲率的车道线会更容易点(很多量产方案也是这样解决的),用其他的范式基本上很难学习好这种大曲率的车道线,无法表达出这种大曲率的车道线(比如anchor based 或 lane af 算法本身是预定义了规则的,很难学习好这些不规则的车道线)那我们就可以看到被柱子遮挡住的后面的东西。相当于车在开的过程中,被前面的大卡车遮挡了,当前帧是看不见前面的车道线的,当通过前几帧,这段车道线是可以看得见的。
2024-06-04 21:03:20
755
原创 Bev任务issue汇总
在做update的话,需要等异步任务结束后再去做update。将每次backward结果存起来,等所有任异步务结束后,再做update。主干训练完的话,进行冻结,然后针对各个head进行训练。多任务更偏向于算法框架,需要解决:(1)(前), 超过110米其实效果就已经很差了,90米距离效果也比较差。单orin有两个DLA, DLA 通常是放backbone。scale更新的频率和网络参数更新的频率是1:1。的问题,是很难做好的,尤其是。学深度分布depth。lift这种几何投影。不同源的数据是处理的。
2024-06-01 16:14:12
505
原创 BevDet(1): 算法原理介绍介绍
BevDet首先需要做image的特征提取,对应这部分。使用传统的ResNet-50或作为Backbone, 在Neck部分使用FPN或者FPN-LSS(简化版的FPN),对16倍和32倍特征进行融合,最终得到融合后的下采样16倍的特征。输入1690x900的图片经过Image View Encoder得到44x16x256的图像特征。BevDet的View Transformer也是一个比较典型的LSS过程,最终生成一个的Bev特征。
2024-05-29 18:54:41
342
原创 maptr(2):论文及代码解读
Maptr来自于地平线的一篇论文,其中maptr nano可以达到实时的速度,达到25.1FPS,比目前最快的提高了8倍的速度。传统的实时建图采样的是SLAM-based方法,会产生很多问题比如复杂的pipeline和维护成本高。其中HDMapNet算法可以构建, 但它需要大量后处理,是比较耗时的。VectorMapNet把每一个地图的实例都当做一堆点的序列,网络去预测这些点的序列,推理时间会比较慢。为了解决这些问题,maptr通过设计一种DETR范式的端到端来构建(没有后处理,速度快)。创新点。
2024-05-26 23:25:16
502
原创 bevformer详解(3): 逐行代码讲解
在这篇文章中,我们将从BEVFormer算法代码入手,深入探究BEV转换的流程。BEVFormer是一种基于Transformer的BEV转换模型,其核心思想是利用自注意力机制和交叉注意力机制,从,并通过Object Query与BEV特征的交互,完成3D目标检测和地图分割等任务。https://developer.baidu.com/article/details/3224715bevformer的网络结构由三部分组成, 模型结构所示,其中的是部分,对于的是的结构,对于部分,沿用的中的decoder部分,
2024-05-22 19:58:08
1213
原创 leetcode刷题(6):二叉树的使用
二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。: 给你一个二叉树的根节点 root , 检查它是否轴对称。: 给定一个二叉树的根节点 root ,返回 它的。:给你二叉树的根节点 root ,返回其节点值的。: 给定一个二叉树 root ,返回其最大深度。观察对称二叉树,查找满足。满足题意的二叉搜索树的。层级大于curr节点。记得将最后一次结果v。
2024-05-15 13:45:00
997
原创 BFS和DFS优先搜索算法
因此,BFS是具有最短路的性质的。在BFS中,可以使用队列来存储待搜索的节点。通过这种方式,BFS可以找到起点到目标节点的最短路径。在实际应用中,BFS还可以用于拓扑排序、连通性检测等问题的解决。在实际应用中,DFS还可以用于拓扑排序、连通性检测等问题的解决。如果分别用DFS 与 BFS 将二叉树的所有结点遍历一遍,那么它们遍历结点的。接下来,让我们先看看在二叉树上进行 BFS 遍历和 DFS 遍历的代码比较。它是一种图遍历算法,它从一个起始点开始,这样,队列中的节点总是按照它们距离起点的距离排序,
2024-05-15 12:57:48
605
原创 python 基础:copy和deepcopy详解
python 的copy 模块提供了copy和deepcopy两个函数来拷贝对象。copy.copy函数用于浅拷贝,而函数用于深拷贝。作为独立新个体单独存在。
2024-05-13 22:29:43
349
1
原创 torch.stack 和torch.cat使用介绍
tensors:待拼接的多个张量,可用list, tuple表示dim:待拼接的维度,默认是0注意:tensors里不同张量对应的待拼接维度的size可以不一致,但是其他维度的size要保持一致。如代码中待拼接维度是0,x和y对应的维度0上的值不一样,但是其他维度上的值(维度1上的值)要保持一致,即都为4,否则会报错。tensors:待拼接的多个张量,可用list, tuple表示dim:待拼接的维度,默认是0注意:tensors里所有张量的维度要保持一致,否则会报错。
2024-05-13 21:54:22
269
原创 bevformer详解(1):论文介绍
3D 视觉感知任务,包括基于多摄像头的3D检测和地图分割对于自动驾驶系统至关重要。本文提出了一种名为BEVFormer的新框架,它通过使用空间和时间的学习统一的BEV表示来支持多个自动驾驶感知任务。简而言之,BEVFormer通过预定义的网格形式的Bev Query与空间和时间空间交互来提取时间空间信息。为了聚合空间信息,BEVFormer设计空间交叉注意力(spatial cross-attention),每个BEV Query从不同摄像头的感兴趣区域中提取空间特征。对于时间信息。
2024-05-11 23:17:54
221
原创 LSS 讲解(2): 环境配置及训练代码讲解
对于感知算法而言,我认为比较重要的是要了解在Bev视角下,x轴和y轴方向的感知距离,以及Bev网格的大小。CamEncode通过对原始图像逐个图像特征点进行深度和语义的预测,输出视锥特征。, 其中根本bev划分,Z的值为1, 因此final的tensor大小为。论文中指的是规控任务中的轨迹输出,因此不包含在感知任务的讨论范围内。估计深度方向的概率分布,并输出特征图每个位置的语义特征(64维)注意: 生成的锥点,其位置是基于图像坐标系的,同时锥点是。, 我们需要对体素中的所有柱子根据它所在的位置和。
2024-05-11 19:10:39
538
原创 Pytorch基础:torch.expand() 和 torch.repeat()
在torch中,如果要改变某一个tensor的维度,可以利用viewexpandrepeattranspose和permute等方法,这里对这些方法的一些容易混淆的地方做个总结。expand和repeat函数是pytorch中常用于进行张量数据复制和维度扩展的函数,但其工作机制差别很大,本文对这两个函数进行对比。
2024-05-08 21:33:38
1067
原创 leetcode刷题(5): STL的使用
整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。若无相交,由于按照起点排序,后面区间的起点更大,也就不可能再有相交的可能。的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。: 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。
2024-05-08 19:03:23
706
原创 自动驾驶中常见坐标系极其转换
自车坐标系一般指的是以车体后轴中心为原点(因为后轴中心不会随着车摆动而发生相对变化),左前上或右前上的空间坐标系,左(右)一般为横向,前一般为纵向,上指地面以上空间,坐标系随着车运动而运动。相机相对其它坐标系,旋转+平移矩阵,其中旋转外参与上述欧拉角【yaw,patch,roll】,旋转顺序一般为(z-y-x), 单位度;图像坐标系到像素坐标系之间的转换没有旋转变换,没有投影变换,但是坐标原点位置不一致,大小不一致,则设计伸缩变换及平移变换 dx,dy 代表一个像素代表多少米。,单位以“像素”最为常用。
2024-05-08 16:27:32
275
原创 pytorch实现transformer(1): 模型介绍
Transformer 模型是由谷歌在 2017 年提出并首先应用于机器翻译的神经网络模型结构。机器翻译的目标是从源语言(Source Language)转换到目标语言(Target Language)。Transformer 结构完全通过注意力机制完成对源语言序列和目标语言序列全局依赖的建模。当前几乎全部大语言模型都是基于Transformer 结构,本节以应用于机器翻译的基于 Transformer 的编码器和解码器介绍该模型。Transformer它的提出最开始是针对NLP领域。
2024-05-08 12:48:38
1030
原创 windows 系统中cuda及cuDNN安装
因此≤12.2版本的cuda均可以安装,本文选择安装。,如下图所示,cuda可以安装的最高版本为。进行验证,在powershell里进入,输入。的,需要使用cuda的。
2024-05-07 22:54:39
270
原创 leetcode刷题(4): 动态规划
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。说明:每次只能向下或者向右移动一步。网格的左上角 (起始点在下图中标记为。机器人试图达到网格的。的路径,使得路径上的。:一个机器人位于一个。
2024-05-04 15:08:51
611
MIOU涨5.6个点:语义分割知识蒸馏源码
2024-03-20
yolov8 剪枝源码(集成多种剪枝策略)
2024-03-20
yolov8 多任务(目标检测+可行驶区域分割+车道线分割)
2024-01-07
SOTA 跟踪论文:BoTSORT-OCSORT-StrongSORT 等
2023-12-21
yolov8 tracking支持deepocsort、strongsort、bytetrack、botsort等各类跟踪器
2023-12-21
yolov8 知识蒸馏源码
2023-12-18
YOLO 知识蒸馏学习及落地部署(v5和v8)
2023-12-10
yolov8 PTQ和QAT量化源码
2023-12-09
零基础掌握yolov8剪枝
2023-11-26
车道线UFLD-v2落地量化部署代码
2023-11-26
mmsegmentation中文文档
2023-11-26
yolov7 ptq和qat训练及tensorrt部署
2023-09-16
yolov7旋转目标检测完整代码
2023-05-13
yolov8s模型进行剪枝源码
2023-05-13
基于Tensorrt的yolov5 实例分割源码
2023-04-18
各种卷积计算性能对比(Conv,DwConv,GhostConv,PConv,DSConv,DCNV)
2023-03-26
基于yolov5的PTQ和QAT量化完整代码
2023-03-18
图像分割FCN算法的源码及项目实战
2023-02-04
YOLOX原理及无人机检测项目实战源码
2022-11-04
模型轻量化-YOLOv5无损剪枝
2022-10-28
基于yolov5的目标检测和双目测距源码
2022-10-28
pytorch多GPU并行训练教程及源码
2022-10-16
基于yolov5的知识蒸馏实战源码
2022-10-13
makefile从入门到项目编译实战
2022-10-13
图像分类MobileNet系列源代码:v1-v3
2022-07-05
深度学习图像分类花朵数据集
2022-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人