- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 从BEVPool 到 BEVPool V2
bevpool 是将图像2D 特征经过内外参转换后映射到3D 空间。在LSS 中:输入: 图像特征(NxHxWxC), 深度得分(NxDxHxW)根据内外参构建三维视锥体素索引(NxDxHxW), 根据体素索引计算得到的三维坐标进行映射。把对应深度的图像特征映射到BEV 空间中。对多个图像特征映射到同一个BEV单元的累计求和。
2024-07-17 19:26:35 630
原创 bev 之 fastBEV
1、去除 depth 估计,也就去除了D维的计算量,节省存储和计算。2、直接从BEV 特征空间通过映射表获取图像特征,且对重叠区域只保留一个特征,加快视场空间转换。
2024-07-10 22:45:01 338
转载 显卡对应的算力表
显卡对应算力。GeForce RTX 3070, 3080, 3090ARCH= -gencode arch=compute_86,code=[sm_86,compute_86]
2024-05-01 23:09:49 3111
原创 ubuntu 安装显卡驱动黑屏,自带屏幕和外接屏只能使用一个
例如我的是DELL, 开机F2 进入,在display 那里设置将。1、ubuntu 系统,自带的屏幕和外接显示屏幕只能使用一个。以上说明设备有冲突,与驱动无关,应该到 bios 下设置。安装显卡驱动后,nvidia-smi 驱动显示正常。则自带屏正常使用,外接屏无法识别。
2024-01-04 20:01:21 881
原创 linux内存空间深度清理
可以看到 .cache .config .ros 占用大量空间。2、清理vscode 在.config中缓存。1、删除.cache 文件夹。
2023-11-17 19:03:58 499
原创 鱼眼图像去畸变python / c++
本文假设去畸变后的图像与原图大小一样大。由于去畸变后的图像符合针孔投影模型,因此不同的去畸变焦距得到不同的视场大小,且物体的分辨率也不同。可以见上图,当焦距缩小为一半时,相同大小的图像(横向投影距离一样长),对应的视场角不同。所以为了扩大视野,需要缩小焦距,
2023-10-25 20:28:20 1330
原创 CUDA共享内存详解
对于CUDA,一个grid 有多个Block 块,一个block块多个线程。共享内存只是Block 块内的线程共享,不同Block块之间的共享内存是不会共享的。shared。
2023-06-19 13:04:46 1347
原创 docker 常用命令
docker run -id --name my_test -v /data/project/(本地目录):/data/project(容器目录) mogohub.tencentcloudcr.com/autocar/road:jetpack_5.0.2_develop_0504 /bin/bash。docker pull 镜像名。7、启动关闭docker。
2023-05-06 20:01:24 88
原创 torch转ONNX模型转TensorRT C++推理
训练好的模型(如.pt)转成onnx形式,ONNX定义了一组与环境和平台无关的标准格式。ONNX文件不仅存储了神经网络模型的权重,还存储了模型的结构信息、网络中各层的输入输出等一些信息。ONNX的推理可以用ONNX Runtime官方库,如果在英伟达平台上,可以转TensorRT后运行。本文主要介绍转TRT格式后如何C++部署运行。
2023-04-21 12:06:48 2150 9
原创 相机坐标系的正向投影和反向投影
由于像素坐标(u, v)是畸变后的点经过内参映射得到。图像像素坐标(u,v)到世界3D坐标系(x, y, z = 0) 的映射过程。从相机坐标系的一个平面到世界坐标系的另一个平面的映射通过单应矩阵H可以得到。世界3D坐标系(x, y, z) 到图像像素坐标(u,v)的映射过程。为世界坐标系原点到相机坐标系原点的平移矩阵,为3 x 1 矩阵。射线到平面上的投影都是等效的,因此进行归一化,方便计算。假设相机坐标在世界坐标系下为(xc, yc, zc),属于世界坐标系到相机坐标系的旋转矩阵, 旋转矩阵为。
2023-02-08 23:56:25 2312
原创 深度学习网络各种激活函数 Sigmoid、Tanh、ReLU、Leaky_ReLU、SiLU、Mish
激活函数的目的就是:梯度为0, 无法反向传播,导致参数得不到更新:随着数据的变化,梯度没有明显变化:梯度越来越大,无法收敛梯度消失问题:1、反向传播链路过长,累积后逐渐减小2、数据进入梯度饱和区如何解决:1、选正确激活函数,relu, silu2、BN 归一化数据3、 resnet 较短反向传播路径4、LSTM 记忆网络。
2023-02-02 18:33:46 3425
原创 CUDA reduce 并行规约求和
例如, 1024 * 1024 大小的数据, 每一个block处理1024个数据, 一共1024 个block, 处理完后剩下1024个数据, 接着在处理, 就有加速的效果:每一个block 块作为。
2022-12-28 22:47:36 1160 1
原创 simOTA 彻底理解
simOTA 出现在YOLOX中,是作为正样本匹配,能达到自动分析一个Gt 需要匹配哪些正样本。要解决的问题就是去做预测的优化问题。步骤大致是先进行正样本的预筛选,然后通过计算预选框与gt 框的代价矩阵,
2022-10-13 23:14:49 2651
原创 yolov5简要介绍
正样本匹配:寻找负责预测真值框的先验框 (不负责的作为负样本或丢弃)正样本寻找过程:与以往的用IOU匹配不同,yolov5用如下2步骤进行正样本匹配:1、先验框尺寸匹配:目标框与先验框的宽比值、高比值的最大值 小于一定阈值,则为正匹配。
2022-10-08 18:16:55 7721 3
原创 目标框检测中准确率、召回率、AP、mAP计算原理及代码
假设有M个真值正样本,我们从Top-1 到 Top-N,每累积一个预测就会对应一个recall 和 一个 precision。,M/M),对每一个recall,从对应的precision 中取最大值作为当前recall 对应的precision,求M 个precision的平均得到AP。一般用 IOU 进行匹配,预测框和真实框之间的 IOU 值大于一定阈值时,比如0.5,则认为对真实样本正确预测。但是Accuracy 不经常使用,因为我们在做目标预测的时候往往只关心正样本,而不去关心负样本是否正确预测。
2022-09-28 00:09:28 7780 5
原创 cosbrower 腾讯云管理工具使用
cosbrower chttps//cloud.tencent.com/document/product/436/10976。
2022-07-20 10:52:44 273
原创 针孔相机畸变成像详解
相机成像经历三个过程:1、世界坐标系到相机坐标系。外参变换,涉及外参参数:(1)、世界坐标系到相机坐标系的旋转矩阵 R(2)、世界坐标系到相机坐标系的平移矩阵 T2、相机归一化坐标系(z=1)平面内坐标投影畸变畸变矫正, 涉及内参畸变参数:径向畸变系数:k1, k2, k3切向畸变系数:p1, p23、相机归一化坐标系(z=1)平面投影到像平面相平面投影,涉及内参畸变参数:投影焦距:fx, fy相位平移:cx, cy下面详细讲解每一个过程:世界坐标系到相机坐标系是刚体变换,不会产生形变,
2022-06-30 18:24:01 1483
原创 CV::Mat数据拷贝 memcpy 踩坑
cv::Mat img1(h, w, CV_8UC3);cv::Mat img1(h, w, CV_8UC3, data);一般cv::mat 初始化后数据内存 data 段都是连续的, 可以用isContinuous()函数判断存储是否连续。切记!切记!切记!不连续不能当一维数组处理一般经过裁剪的Mat图像,都不再连续了,如cv::Mat crop_img = src(rect);crop_img 是不连续的Mat图像,如果想转为连续的,最简单的方法,就是将不连续的crop_img 重新clon
2022-06-27 15:35:41 3701 2
原创 CUDA 二维、三维数组遍历
一个 Grid 分成 按维度分成多个Block,Block 个数为 GridDim.x * GridDim.y遍历: blockIdx.x , blockIdx.y一个Block 按维度分成多个Thread,Thread个数为 BlockDim.x * BlockDim.yThread 是最小的运行单元遍历:threadIdx.x , threadIdx.ycudaMemcpy2D( d_A, // 目的指针d_pitch, // 目的pitchbmp1, // 源
2022-06-26 23:04:57 1346
原创 C++时间统计
1、clock_gettime2、std::chrono::system_clock3、clock()不准确,不建议使用time_t t1 = clock()
2022-06-15 16:31:14 702
原创 鱼眼相机投影模型
等距投影R、T 变换将空间中一点转换到鱼眼坐标下。归一化到鱼眼Zc = 1 平面上。得到归一化(x, y)根据映射点(x, y)求 theta , theta 为入射光线与 Zc 轴夹角。加入畸变系数,求畸变thetad。rc = f * thetard = f * thetad根据等比例关系,xc / xd = rc / rd即可重新求得畸变后的相机坐标系下的(xd, yd)焦距 + 偏置求得 相面坐标 (u,v).........
2022-06-05 17:50:19 1590
原创 Ubuntu1804 + cudann11.3 + cudann8.2 + tensorRT8.0
CUDA11.3cuda 官网.run 文件直接sh运行,不要安装驱动安装完后配置环境:sudo gedit ~/.bashrc export PATH=/usr/local/cuda-11.3/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATHsource ~/.bashrc验证nvcc -Vcudann8.2cudann 官网(1)将cuda/include/cudnn.h
2022-05-30 01:25:31 1025
原创 Ubuntu1804 conda 源配置
conda config2.打开.condarc文件,替换掉里面的内容这里的关键是将https换成了http!channels: - defaultsshow_channel_urls: truedefault_channels: - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - http://mirr
2022-05-29 18:09:32 2270
原创 ubuntu openGL 安装
1、安装了opengl的核心库sudo apt-get install libgl1-mesa-dev*sudo apt-get install build-essential2、安装OpenGL Librarysudo apt-get install libgl1-mesa-dev3、安装OpenGL Utilitiessudo apt-get install libglu1-mesa-devsudo apt-get install libegl1-mesa-dev4、安装OpenGL U
2022-05-28 15:33:44 14742
原创 Ubuntu opencv 源码编译安装
1.去官网下载opencv, 下载连接http://opencv.org/releases.html,选择sources版本测试unzip opencv-3.4.1.zipsudo apt-get install cmakesudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev安装 l
2022-05-26 10:41:56 425
原创 Pytorch Dataset和DataLoader 加载训练数据
Dataset 基类torch.utils.data.Dataset 为数据集的基类, 继承这个基类,我们能够非常快速的实现对数据的加载。我们要实现自己加载数据的类,并继承于Dataset 这个类,重载类的成员函数1、__1en__方法, 能够实现通过全局的len()方法获取其中的元素个数;2、getitem 方法,能够通过传入索引的方式获取数据,例如通过dataset[i]获取其中的第 i条数据。from torch.utils.data import Dataset, DataLoader#
2022-05-19 15:37:33 495
原创 NMS、Soft-NMS、Softer-NMS
NMSNMS 顾名思义,非极大值抑制,也就是把极值周围的给抑制掉,不输出。在深度学习中叫去重,只保留最可靠的那个输出。首先定义一个相似度,深度学习中用IOU表示两个框的相似度。步骤:1、取分值最大的框。2、将IOU大于阈值(0.5)的框抑制掉。3、取剩下框分值最大的框,循环步骤1、2。很简单,是不是!代码:def NMS(boxes, scores, th): x1 = boxes[:,0] y1 = boxes[:,1] x2 = boxes[:,2]
2022-02-19 19:13:34 3781
原创 深度学习中的 BN (BatchNormalization)理解
CNN 三大算子: CONV + BN +RELU1、为什么 BN指导思想:机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的。具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律。具体原因:随着网络加深,数据经过激活层后趋向两侧,梯度趋于消失,分布在敏感激活区域(中间部分)的数据减少。不利于网络收敛。BN 将数据从新拉回标准正态分布。如何 BN减均值,除方差,乘scale, 加shift3、反归一化归一化有好有坏,如何取舍,最
2022-01-27 10:21:00 4217
原创 PsROI Pooling 深入理解,附代码
faster rcnn 和 rfcn 的最大不同点在于rfcn采用了PsROI Pooling 保留了局部区域的位置敏感性。输入batch_size = N 的批次训练图像。假设我们通过 RPN 层网络获取了 M 个 rois, 每个 rois 用 1*5 的向量表示,**第0 个数表示rois 所属于的图像id,**对roi 进行pooling 时要到特征图对应的batch 中。例如 rois = [[0, 1,4,6,8],[0,2,3,7,9],[1,3,5,7,9]],有3个roi,其中两个
2022-01-18 12:04:59 3234
原创 对抗网络GAN
“adversarial training is the coolest thing since sliced bread" – Yann LeCunGAN 网络主要由生成器G 和 判别器D两大部分组成。G 网络主要用于生成目标,D网络主要用于区分目标。通过二者之间的对抗,使得生成的目标越来越强大。比如我(G)要做亿万富翁,我向一个导师(D)请教:G:我要做亿万富翁D:你学识不够– 于是我开始疯狂学习知识G:我要做亿万富翁D:你投资能力不足– 于是我开始疯狂学习投资G:我要做亿万富翁D
2022-01-07 09:43:01 228
原创 FCOS : 一阶段无anchor全卷积检测网络
FCOS: Fully Convolutional One-Stage Object Detection文章链接:https://arxiv.org/pdf/1904.01355.pdfFCOS 是一阶段网络,基于 center-ness 的思想,实现没有anchor, 没有proposal的目标检测。而且召回率不亚于基于anchor 的检测算法。1、网络结构如下:网络结构借用FCN,通过反卷积上采样后进行特征融合,最后获取多尺度的特征输出,文章给出了5层尺度特征feature map, 最后在每一
2021-12-14 14:49:48 2573
原创 linux 下 CUDA + Opencv 编程 之 CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)PROJECT(medianFilterGPU)# CUDA packageFIND_PACKAGE(CUDA REQUIRED) INCLUDE(FindCUDA)# CUDA include directoriesINCLUDE_DIRECTORIES(/usr/local/cuda/include)# OpenCV packageFIND_PACKAGE(OpenCV REQUIRED) # OpenCV in
2021-09-27 15:35:43 445
原创 CornerNet详解
论文动机1、anchor-box 好用,但是有两个缺点:1)、数量太多,造成负样本太多,样本不均衡,导致训练效率低。2)、anchor-box引入太多超级参数,数量,大小,长宽比等增加算法设计难度。所以想通过一组关键点,用左上角和右下角的点来代替bbox。网络结构Heatmaps预测哪些点最有可能是Corners点,Embeddings用于表征属于相同对象的corner的相似度。它们的通道数都为C,C是object的类别数 (不包括background) 。最后的Offsets用于对corn
2021-09-16 08:46:00 7987 1
verilog数字钟源代码
2014-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人