自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MAX的专栏

记录技术成长,分享改变世界

  • 博客(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

原创 BEV 之 LSS概要

显示估计图像下采样(16倍)后的特征点深度,将2D图像提升到3D空间,得到图像特征的视锥(点云)。

2024-07-10 17:27:43 331

转载 显卡对应的算力表

显卡对应算力。GeForce RTX 3070, 3080, 3090ARCH= -gencode arch=compute_86,code=[sm_86,compute_86]

2024-05-01 23:09:49 3111

原创 C++ 读取 hdf5 格式文件

CMakeLists.txt 修改,完成编译

2024-03-01 16:12:47 517

原创 Zotero 安装

参考链接:

2024-02-01 11:40:49 258

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

原创 openCV上图片显示中文c++

【代码】openCV上图片显示中文c++

2023-06-28 16:55:34 2661

原创 CUDA共享内存详解

对于CUDA,一个grid 有多个Block 块,一个block块多个线程。共享内存只是Block 块内的线程共享,不同Block块之间的共享内存是不会共享的。shared。

2023-06-19 13:04:46 1347

原创 cuda checkCudaErrors

【代码】cuda checkCudaErrors。

2023-05-22 15:21:10 173

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

原创 yolov5模型 转 tensorRT

yolov5模型转TensorRT踩坑记

2022-06-01 15:01:28 862

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

原创 各种IOU损失函数(IOU、GIOU、CIOU、DIOU)

IOU交并比GIOU

2022-02-19 20:05:53 2804

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

ONNX模型转 TensorRT logging.h

logging.h

2024-05-12

Zotero 安装包和插件

Zotero 安装包和插件

2024-02-01

中文汉字库,用于opencv 上图片显示中文

中文汉字库,用于opencv 上图片显示中文

2023-06-28

车牌识别训练测试字符集(全)

大约5万多张图片,包含中文省份,字母A-Z,数字0-9,全部。

2019-07-30

车牌识别数据集(全 省+数字+字母)

总共5万多张图片,大小20X20,包括省份简写,数字和字母,一个不缺。

2019-07-25

verilog数字钟源代码

(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式); (2)可以调节小时,分钟。 (3)能够进行24小时和12小时的显示切换。 (4)可以设置任意时刻闹钟,并且有开关闹钟功能。 (5)有整点报时功能,几点钟LED灯闪亮几下。 (6)有复位按键,复位后时间从零开始计时,但闹钟设置时间不变。

2014-04-23

数字钟设计 完整文件

verilog设计完整的数字钟文件,下载到板子上直接可用

2013-03-26

空空如也

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

TA关注的人

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