自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AI知识搬运工

算法工程师一枚,专注自动驾驶,也对AIGC感兴趣。

  • 博客(180)
  • 资源 (4)
  • 收藏
  • 关注

原创 【大模型量化】OliVe:硬件友好的A4W4量化方案

基于Transformer的大型语言模型(LLM)[77]在过去几年中取得了巨大的成功。这种成功通常是通过越来越大的模型大小实现的:模型大小每两年增长240倍,显著超过硬件进展(每两年3.1倍)[24]。因此,LLM的推理变得具有挑战性和成本。例如,最近基于Transformer的LLMOPT-175B[90]具有1750亿参数,无法适应具有80GB内存的最新高端H100GPU。量化[6,7,21,22,72,74,79,93]是降低大型模型推理成本的最有效的硬件方法之一。

2024-01-20 15:19:08 1017 1

原创 【自动驾驶】PETR/PETRv2/StreamPETR论文分析

为了缓解在3D场景中的收敛困难,类似于Anchor DETR,我们首先在均匀分布的3D世界空间中初始化一组可学习的锚点从0到1。在我们的实践中,在三维空间中使用锚点可以保证收敛在采用DETR中的设置或生成锚点的同时在BEV空间中不能实现令人满意的检测性能。StreamPETR的总体架构。不同色调的矩形象征着来自不同帧,灰色矩形表示当前帧的初始化查询,虚线矩形对应于背景查询。petrv2的整体框图如下,与petr不同的地方在于加入了时序模块,分割头,以及改变了 3D Position Encoder。

2023-10-09 14:58:14 611 1

原创 【自动驾驶】PETR 环境安装与测试

该工程依赖MMCV, MMDetection, MMDetection3d,MMSegmentation。

2023-09-12 10:46:05 743

原创 【模型压缩】网络层与算子融合

由于深度学习网络层数深,结构复杂,生成的算子数量众多,带了巨大的计算资源在和时间的消耗。业界对于加速算子的计算展开了一定研究,比较经典的方法是将多个算子重新组合成一个新的算子,同时对生成的代码进行底层的性能优化,一个常规的例子:一个原始的Inception Block,首先将神经网络的conv、BN、Relu三个层融合为了一个层,简称CBR,另外TensorRT还可以对网络做水平组合,水平组合是指将输入为相同张量和执行相同操作的层融合一起,下面的Figure3即是将三个相连的CBR为一个大的的CBR。

2023-08-23 10:20:22 405

原创 【虚拟数字人】SadTalker简易部署教程

视频教程在这里:sadtalker数字人创建简易教程项目基于SadTalkers实现视频唇形合成的Wav2lip。通过以视频文件方式进行语音驱动生成唇形,设置面部区域可配置的增强方式进行合成唇形(人脸)区域画面增强,提高生成唇形的清晰度。使用DAIN 插帧的DL算法对生成视频进行补帧,补充帧间合成唇形的动作过渡,使合成的唇形更为流畅、真实以及自然。

2023-08-01 17:57:33 2521

原创 pytorch量化库使用(2)

Eager 模式和 FX 图形模式量化 API 都为用户提供了一个钩子,以指定以自定义方式量化的模块,并使用用户定义的逻辑进行观察和量化。在转换模块交换期间,它将使用 (3) 中类的from_observed函数将 (2) 中指定类型的每个模块转换为(3) 中指定的类型。在准备模块交换期间,它将使用 (2) 中类的from_float函数将 (1) 中指定类型的每个模块转换为 (2) 中指定的类型。模型的输入和输出都是浮点张量,但量化模型中的激活是量化的,因此我们需要运算符在浮点和量化张量之间进行转换。

2023-06-29 17:56:13 1187 3

原创 pytorch量化库使用(1)

量化简介量化是指以低于浮点精度的位宽执行计算和存储张量的技术。量化模型以降低的精度而不是全精度(浮点)值对张量执行部分或全部运算。这允许更紧凑的模型表示以及在许多硬件平台上使用高性能矢量化操作。与典型的 FP32 模型相比,PyTorch 支持 INT8 量化,从而使模型大小减少 4 倍,内存带宽要求减少 4 倍。与 FP32 计算相比,对 INT8 计算的硬件支持通常快 2 到 4 倍。量化主要是一种加速推理的技术,量化运算符仅支持前向传递。PyTorch 支持多种量化深度学习模型的方法。

2023-06-29 17:02:51 1076

原创 【BEVformer部署】tensorrt部署整体流程

Rotateand性能对比如下:grid 指定了 采样像素的位置(由input 空间维度归一化),因此,它的大多数值应该在[-10,10]范围内。例如,值x=-10,y=-10是输入的左上像素,值x=10,y=10是输入的右下像素。输入:Tensor shape:(5D case)输出:Tensor shape:(5D case)

2023-06-29 00:13:38 1206 9

原创 【CUDA编程】 动态体素化实现

动态体素化实现动态体素化DV克服了硬体素化HV的一些缺点。动态体素化DV保留了分组grouping阶段,相反,它没有采样固定的点数或体素容量,它保留了点和体素之间的完全映射。因此,体素数和每个体素中的点数都是动态的,依赖于具体的映射函数。这消除了对固定大小缓冲区的需求,也消除了对随机点和体素的丢弃过程。因为所有原始点和体素信息都被保留了,动态体素化DV没有引入信息丢失,并产生了确定的体素嵌入,使得检测结果更稳定。

2023-06-16 18:13:43 611

原创 【自动驾驶】CenterPoint复现笔记

从VoxelNet主体将原来的anchor head改为center head即可,重构完成。需要排查输入输出的shpe和数值;在报错行打印数据的维度以及数值

2023-05-24 10:20:54 596

原创 VoxelNeXt:用于3D检测和跟踪的纯稀疏体素网络

在本文中,我们提出了VoxelNeXt。这是一个简单、高效且无需后期处理的3D对象检测器。我们设计的核心是体素到对象方案,其根据体素特征直接预测3D对象一个强大的完全稀疏的卷积网络。关键的优点是我们的方法可以去掉锚代理,稀疏到密集转换、区域建议网络和其他复杂组件。由于我们的体素到对象方案避免了密集的特征图,所以网络可以高效推理。它只预测稀疏和必要的位置,如表1所示,与CenterPoint[57]相比。这种表示也使得VoxelNeXt可以很容易地扩展到使用离线跟踪器的3D跟踪。

2023-05-18 17:52:21 1198

原创 【融合感知】激光雷达和相机融合感知-BEVFusion

常见的前融合第一种如(a)中首先将雷达点,根据外参和相机内参投影到图像或图像提取的2D特征上去采样对应的视觉特征,然后拼接到点云上,后面就可以通过常用的点云3D检测算法进行处理,比如3DSSD[1], PointPillar[2], CenterPoint[3]等,目前PointPainting[4], PointAugment[5]就属于这类工作;第二种如图1(b)所示,先对雷达点云进行特征提取,然后将特征或者初始预测值按照外参和相机内参投影到图像或图像提取的2D特征上去采样对应特征。

2023-05-18 14:40:33 3134

原创 OpenPcdet中的点云体素化-VFE实现

过程也很简洁,直接使用torch.unique 输出体素坐标中非重复坐标,原始坐标在非重复坐标中的索引,以及非重复坐标的个数。dim: 值沿着哪个维度进行unique的处理,这个我试验后没有搞懂怎样的机理。如果处理的张量都是一维的,那么这个不需要理会。return_inverse: 是否返回原始tensor中的每个元素在这个无重复张量中的索引。该过程调用spconv库中的实现,主要过程为points_to_voxel。sorted:是否对返回的无重复张量按照数值进行排列,默认是生序排列的。

2023-05-17 15:19:03 658

原创 【CUDA入门笔记】GPU存储结构模型(2)

GPU存储结构模型1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容;主机代码可以把数据传输到设备上,也可以从设备中读取数据;2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Memory、Constant Memory以及Texture Memory;不同Memory的作用范围是不同的,和线程、block以及grid有关;线程可以读写Register、Shar

2022-12-31 19:16:23 498 4

原创 【CUDA入门笔记】GPU存储结构模型(1)

GPU存储结构模型1.CPU可以读写GPU设备中的Global Memory、Constant Memory以及Texture Memory内存储的内容;主机代码可以把数据传输到设备上,也可以从设备中读取数据;2.GPU中的线程使用Register、Shared Memory、Local Memory、Global Memory、Constant Memory以及Texture Memory;不同Memory的作用范围是不同的,和线程、block以及grid有关;线程可以读写Re

2022-12-31 19:15:47 419

原创 【CUDA入门笔记】CUDA内核与线程配置

1.CUDA核函数在GPU上调用的函数成为CUDA核函数(Kernel function),核函数会被GPU上的多个线程执行。每个线程都会执行核函数里的代码,当然由于线程编号的不同,执行的代码路径可能会有所不同。(1)函数的最前面是声明标识符__global__,该标识符表示这个函数可以在GPU上执行。需要指出的是尽管是在GPU上执行,但是仍然是由CPU端发起调用的(2)核函数调用时需要用<<<...>>>符号来指定线程配置(3)在核函数内部可以调用CUD

2022-12-31 19:14:17 1092

原创 【CUDA入门笔记】概述

1,CUDA架构(1)一个GPU包含多个多核处理器;(2)一个多核处理器包含多个线程处理器(3)线程处理器是最基本的计算单元,有自己的局部内存和寄存器2,thread, block, grid含义(1)thread对应硬件上的线程处理器;(2)grid对应一块GPU(3)block是由一个多核处理器中的多个线程处理器组合而成;(4)一个多核处理器可以划分为多个block;(5)执行一个指令时,一个执行单元线程束(warp)会并行执行32个thread,所以在我们划分blocksize的时候

2022-12-31 19:13:35 318

原创 基于容器训练OpenPCdet

在容器中进入OpenPCDet目录,在data子目录创建自己的数据集,点云应当是 .npy格式,标签应当是 .txt格式。标签内容如下:中心点,长宽高,航向角,类别名称。主要修改点云范围,检测类别(如果你的训练集类别是['Vehicle', 'Pedestrian', 'Cyclist']就不用修改),训练数据名称,体素大小。(2)检测类别,在pcdet/datasets/custom.custom_dataset.py中也要做相应修改。数据放置位置如下,ImageSets目录放置训练和测试拆分文件。

2022-12-14 10:20:41 567 1

原创 ssh: connect to host 10.112.1.5 port 10083: Connection refused

并没有发现什么端口占用,为什么无法访问。删除上面这段配置,再次SSH。

2022-11-29 10:04:22 399

原创 【3D视觉】realsense D435三维重建

但对于64位版本的Windows保持64位和32位DLL文件的方式会相对复杂些,微软因此创建了一个新的名为SysWOW64的文件夹来存放32位的DLL文件,使用\Windows\System32文件夹作为64位DLL的文件夹,而不是存放32位DLL文件的文件夹。下一步,勾选WiTH_FFMPEG,WITH_REALSENSE2(这里只选取这两个功能的扩展,如果想要选取其他的功能也可以,但是前提是要配置对应的依赖库),然后再次Configure。......

2022-07-31 21:21:48 2840

原创 【3D视觉】深度摄像头与3D重建

大家在上图可以看到,Kinect两端有两个3D深度摄像头,左边那个发射红外线,右边那个是一个红外线感应器,它负责感应发射出来的红外线的方位和强度,由此来获取物体与Kinect之间的深度信息(个人感觉类似声纳和蝙蝠的识别系统),然后再根据中间的一个RGB摄像头,三个摄像头配合构建出了Kinect的图像识别的检测。D435在深度传感器上采用卷帘快门,可提供最高的每度深度质量。,它的分辨率是前代产品的3倍,而体型是前代的十分之一,环境光的检测性能是前代的50倍,可以在日光下工作。...

2022-07-31 21:14:14 1344

原创 【模型压缩】实例分析量化原理

当于激活函数),然后在这个经过定点化的计算图上重新训练神经网络。以全连接层为例,定点模型训练函数会根据Layer类型的Dense层构建一个TensorFlow的dense层(由MatMul和Add两个OP构成),并且在MatMul操作的输入、Add操作的输出、权重张量和MatMul之间、偏置张量和Add之间增加定点化处理节点。定点模型训练是一个迁移训练的过程在浮点网络的相应位置插入定点化处理节点(相。保存权值和scale值。...

2022-07-31 14:42:53 479 2

原创 【自动驾驶】单目3D检测M3D-RPN解析与paddle复现

模型输出2Danchor定义3Danchor定义。

2022-07-30 16:11:20 1915

原创 【自动驾驶】多传感器感知技术解析

这里主要说的是外参标定,外参是描述了传感器与其他给定坐标之间的相对位置关系,所以这里的外参描述为,长焦相机与短焦相机之间的外参,相机与雷达之间的外参,又或者是雷达与雷达之间的外参,都需要分别进行标定。使用标定间进行标定,设置一些参照物,多为有角点的物体,方便定位。1)激光雷达的测距精度、测距范围及对温度和光照的适应性很强,缺点线束低的情况,识别不好,也可能会漏掉目标(尤其是非金属物体)不同相机使用PNP得到一个矩阵,将两个矩阵进行传递,一般用一个矩阵得逆乘以另一个矩阵就得到了外参,点云也是这样。...

2022-07-20 16:56:12 1514

原创 【自动驾驶】second模型训练

3)目前仅支持单个GPU训练,但训练一个模型在单个1080Ti中只需要20小时,并且只需要50个循环就可以达到78.3 AP,并在Kitti验证日期集中使用super converge in car Medium 3D。(1)如果要训练新模型,请确保“/path/to/model\u dir”不存在。如果model\u dir不存在,将创建一个新目录,否则将读取其中的检查点。检测结果默认保存为:result.pkl,可设置--pickle_result=False,将结果保存为kitt标签格式。......

2022-07-19 16:00:29 838

原创 【3D目标检测】稀疏卷积

稀疏卷积是对无论是2D卷积还是3D卷积进行加速运算的一种方式,其中由于3D点云的稀疏性比较大,加速将更为明显。举例子之前的定义为了逐步解释稀疏卷积的概念,使其更易于理解,本文以二维稀疏图像处理为例。由于稀疏信号采用数据列表和索引列表表示,二维和三维稀疏信号没有本质区别。1. 输入定义使用以下稀疏图像作为输入如图所示,我们有一个5 × 5的3通道图像。除了 P1和 P2两点外,所有像素都是(0,0,0) (虽然0这个假设也很不严谨)。根据文献[1] ,P1和 P2,这种非零元素也称为a

2022-07-19 15:54:44 1762 2

原创 【蒸馏】PointDistiller: Structured Knowledge DistillationTowards Efficient and Compact 3D Detection

方法的细节。fT和f S:教师检测器和学生检测器中的特征编码层。AT和AS:抽取的待蒸馏体素或重要性得分最高的点的特征。CT和CS:教师和学生检测特征的通道数。GT和GS:教师和学生检测器的图形特征。该方法基于预先定义的重要度评分,从整个点云中抽取比较关键的N个体素或点,通过动态图卷积提取它们的局部几何结构,然后对其进行加权提取。 最近的大量研究表明,获取和利用点云局部几何结构中的语义信息对点云表示学习有着至关重要的影响。因此,我们提出局部蒸馏的方法,并不是直接将教师检测器的主干特征提取为学生检测器,而是先

2022-06-24 12:38:13 329

原创 OpenMP入门

OpenMP 是 Open MultiProcessing 的缩写。可以在 Visual Studio 或者 gcc 中使用。把下面的代码保存为 omp.cc然后 g++ omp.cc -fopenmp就可以了OpenMP的设计们希望提供一种简单的方式让程序员不需要懂得创建和销毁线程就能写出多线程化程序。为此他们设计了一些pragma,指令和函数来让编译器能够在合适的地方插入线程大多数的循环只需要在for之前插入一个pragma就可以实现并行化。而且,通过把这些恼人的细节都丢给编译器,你可以花费更多的时间来

2022-06-21 18:56:24 315

原创 【寒武纪】视觉算法MLU220硬件适配(1)

寒武纪开发者社区 安装硬件驱动和软件工具链,也可以直接使用寒武纪官方开发平台:寒武纪开发平台本地开发安装完工具需要进行一些配置:根据包管理器的反馈,CNToolkit安装成功后,还需要进行最后检查和环境配置才能正确工作。......

2022-06-06 15:52:12 3050 6

原创 【Open3D】人脸深度图转点云,点云表面重建

1.简介Open3D:一个用于3D数据处理的现代库Open3D是一个开源库,支持处理3D数据的软件的快速开发。Open3D前端在c++和Python中公开了一组精心选择的数据结构和算法。后端经过高度优化,并设置为并行化。我们欢迎来自开源社区的贡献。Open3D的核心功能包括: 三维数据结构 三维数据处理算法 现场重建 表面对齐 三维可视化 物理渲染(PBR) 3D机器学习支持PyTorch和TensorFlow GPU加速核心3D操作 c++和Python版本可用官方:Ope

2022-03-10 23:06:07 6046

原创 【人脸目标追踪】卡尔曼滤波原理解析与人脸追踪实例

1.卡尔曼滤波简介卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。在很多工程应用(如雷达、计算机视觉)中都可以找到它的身影。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要课题。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置

2022-03-06 18:40:53 5724 4

原创 【人脸姿态】2D人脸姿态估计的两种方式:solvePnP与3DMM参数

人脸姿态估计

2022-03-06 18:24:46 6284 6

原创 【Pytorch学习】复现DCGAN训练生成动漫头像

先看一下结果:1,环境安装指令conda create -n pytorch python=3.7activate pytorchconda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorchpip install matplotlibpip install IPythonpip install opencv-python2,训练过程先构建判别器和生成器,判别器和生成器有各自的损失函数,损失迭.

2022-02-18 14:22:03 1685 2

原创 【模型压缩】量化精度损失分析

1, 如何进行模型量化?按照量化阶段的不同,一般将量化分为 quantization aware training(QAT) 和 post-training quantization(PTQ)。QAT 需要在训练阶段就对量化误差进行建模,这种方法一般能够获得较低的精度损失。PTQ 直接对普通训练后的模型进行量化,过程简单,不需要在训练阶段考虑量化问题,因此,在实际的生产环境中对部署人员的要求也较低,但是在精度上一般要稍微逊色于 QAT。本文介绍的主要方法也是针对 PTQ 。关于 QAT 的内容,因为..

2022-02-16 13:26:40 4633

原创 【Pytorch学习】TensorBoard 可视化模型,以及训练过程

【Pytorch学习】TensorBoard 可视化模型,以及训练过程1,TensorBoard 设置与写入现在,我们将设置 TensorBoard,从torch.utils导入tensorboard并定义SummaryWriter,这是将信息写入 TensorBoard 的关键对象。#首先定义模型class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.co.

2022-02-16 10:02:15 2151

原创 【Pytorch学习】图像分类从逻辑回归到CNN

【Pytorch学习】图像分类从逻辑回归到CNN1,未调用torch.nn接口,原始编程实现最小的逻辑回归神经网络from pathlib import Pathimport requestsDATA_PATH = Path("data")PATH = DATA_PATH / "mnist"PATH.mkdir(parents=True, exist_ok=True)URL = "https://github.com/pytorch/tutorials/raw/master/_st

2022-02-15 20:33:33 1129

原创 【嵌入式AI】CNN模型压缩(剪枝,量化)详解与tensorflow实验

1,CNN模型压缩综述1 模型压缩的必要性及可行性(1)必要性:首先是资源受限,其次在许多网络结构中,如VGG-16网络,参数数量1亿3千多万,占用500MB空间,需要进行309亿次浮点运算才能完成一次图像识别任务;(2)可行性:模型的参数在一定程度上能够表达其复杂性,相关研究表明,并不是所有的参数都在模型中发挥作用,部分参数作用有限、表达冗余,甚⾄会降低模型的性能。论⽂提出,很多的深度神经网络仅仅使用很少一部分(5%)权值就⾜以预测剩余的权值。该论⽂还提出这些剩下的权值甚至可以直接不用被学习。

2022-01-25 16:29:32 4852 2

原创 【自动驾驶】基于点云的避障算法笔记

1,点云数据预处理与可视化激光雷达数据获取的这一步有一些需要满足的条件:雷达需确保能够扫描到地面,VLP-16雷达的竖直平面视角为[-15,15],需根据这个视角,确保地面可以被扫描到;地面和非地面数据最好可以有个很明显的竖直维度的落差,以便可以区分地面和非地面。满足上面两个条件后,可以对采集的数据进行处理。先将其转换为(x,y,z)的点云数据,拿到数据后,可以使用MATLAB可视化,也可使用python工具包mayavi来可视化mayavi使用实列:from ma..

2022-01-14 11:21:49 2947 1

原创 【虚拟主播】刚刚,我用三行代码创建了一个虚拟主播

刚刚,我用三行代码创建了一个虚拟主播刚刚,我花了10分钟,写了三行代码创建一个具有明星脸的虚拟主播先看看效果:语音播报虚拟主播2实现简易的虚拟数字人非常简单,需要调用三个模型:(1)First Order Motion(表情迁移)(2)Text to Speech(文本转语音)(2)Wav2Lip(唇形合成)。具体技术步骤如下:1,把图像放入First Order Motion模型进行面部表情迁移,让虚拟主播的表情更加逼近真人,既然定位是一个主播,那表情都参考当然是

2022-01-09 11:56:32 12364 20

原创 【人脸生成】SimSwap论文分析

An Efficient Framework For High Fidelity Face Swapping论文:https://arxiv.org/pdf/2106.06340v1.pdf1,整体流程:SimSwap框架的生成器由三部分组成,包括编码器部分、ID注入部分模块(IIM)和解码器部分。编码器提取特征???????????????? 从目标图像???????? . ID注入模块将身份信息从???????? 进入???????????????? . 解码器将修改后的特征恢复到结果图像中

2021-12-28 20:47:58 1959 2

Annual International Conference on Network and Informa

计算机网络信息国际会议论 Annual International Conference on Network and Informa

2022-12-14

kitti数据点云网络训练数据增强标签

自动驾驶-kitti数据点云网络训练数据增强标签 给出了点云道路平面的范围,可以在此范围对点云进行目标增强 也可通过点云与图像的变换矩阵对图像3d目标增强

2022-12-14

pytorch版本DCGAN生成二次元头像,包含源码训练测试代码,以及训练数据和训练权重 pytorch学习练手项目

pytorch学习练手项目 pytorch版本DCGAN生成二次元头像, 包含源码训练测试代码,以及训练数据和训练权重

2022-02-18

facedetection.zip

针对嵌入式平台的人脸检测

2021-04-06

MS-Celeb-1M_clean_list

MS-Celeb-1M 微软名人人脸库,净化版描述文件txt,针对已经对齐的人脸MS-Celeb-1M_clean_list

2018-09-19

手写体图片(png格式)+MNIST数据集

手写体图片(png格式)+MNIST数据集,编程时自动下载不下来,将MNIST数据集放程序目录即可

2018-09-14

空空如也

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

TA关注的人

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