- 博客(168)
- 资源 (4)
- 收藏
- 关注
原创 【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
223
3
原创 【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
161
原创 【CUDA入门笔记】CUDA内核与线程配置
1.CUDA核函数在GPU上调用的函数成为CUDA核函数(Kernel function),核函数会被GPU上的多个线程执行。每个线程都会执行核函数里的代码,当然由于线程编号的不同,执行的代码路径可能会有所不同。(1)函数的最前面是声明标识符__global__,该标识符表示这个函数可以在GPU上执行。需要指出的是尽管是在GPU上执行,但是仍然是由CPU端发起调用的(2)核函数调用时需要用<<<...>>>符号来指定线程配置(3)在核函数内部可以调用CUD
2022-12-31 19:14:17
231
原创 【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
167
原创 基于容器训练OpenPCdet
在容器中进入OpenPCDet目录,在data子目录创建自己的数据集,点云应当是 .npy格式,标签应当是 .txt格式。标签内容如下:中心点,长宽高,航向角,类别名称。主要修改点云范围,检测类别(如果你的训练集类别是['Vehicle', 'Pedestrian', 'Cyclist']就不用修改),训练数据名称,体素大小。(2)检测类别,在pcdet/datasets/custom.custom_dataset.py中也要做相应修改。数据放置位置如下,ImageSets目录放置训练和测试拆分文件。
2022-12-14 10:20:41
61
原创 ssh: connect to host 10.112.1.5 port 10083: Connection refused
并没有发现什么端口占用,为什么无法访问。删除上面这段配置,再次SSH。
2022-11-29 10:04:22
227
原创 【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
1000
原创 【3D视觉】深度摄像头与3D重建
大家在上图可以看到,Kinect两端有两个3D深度摄像头,左边那个发射红外线,右边那个是一个红外线感应器,它负责感应发射出来的红外线的方位和强度,由此来获取物体与Kinect之间的深度信息(个人感觉类似声纳和蝙蝠的识别系统),然后再根据中间的一个RGB摄像头,三个摄像头配合构建出了Kinect的图像识别的检测。D435在深度传感器上采用卷帘快门,可提供最高的每度深度质量。,它的分辨率是前代产品的3倍,而体型是前代的十分之一,环境光的检测性能是前代的50倍,可以在日光下工作。...
2022-07-31 21:14:14
581
原创 【模型压缩】实例分析量化原理
当于激活函数),然后在这个经过定点化的计算图上重新训练神经网络。以全连接层为例,定点模型训练函数会根据Layer类型的Dense层构建一个TensorFlow的dense层(由MatMul和Add两个OP构成),并且在MatMul操作的输入、Add操作的输出、权重张量和MatMul之间、偏置张量和Add之间增加定点化处理节点。定点模型训练是一个迁移训练的过程在浮点网络的相应位置插入定点化处理节点(相。保存权值和scale值。...
2022-07-31 14:42:53
239
原创 【自动驾驶】多传感器感知技术解析
这里主要说的是外参标定,外参是描述了传感器与其他给定坐标之间的相对位置关系,所以这里的外参描述为,长焦相机与短焦相机之间的外参,相机与雷达之间的外参,又或者是雷达与雷达之间的外参,都需要分别进行标定。使用标定间进行标定,设置一些参照物,多为有角点的物体,方便定位。1)激光雷达的测距精度、测距范围及对温度和光照的适应性很强,缺点线束低的情况,识别不好,也可能会漏掉目标(尤其是非金属物体)不同相机使用PNP得到一个矩阵,将两个矩阵进行传递,一般用一个矩阵得逆乘以另一个矩阵就得到了外参,点云也是这样。...
2022-07-20 16:56:12
999
原创 【自动驾驶】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
319
原创 【3D目标检测】稀疏卷积
稀疏卷积是对无论是2D卷积还是3D卷积进行加速运算的一种方式,其中由于3D点云的稀疏性比较大,加速将更为明显。举例子之前的定义为了逐步解释稀疏卷积的概念,使其更易于理解,本文以二维稀疏图像处理为例。由于稀疏信号采用数据列表和索引列表表示,二维和三维稀疏信号没有本质区别。1. 输入定义使用以下稀疏图像作为输入如图所示,我们有一个5 × 5的3通道图像。除了 P1和 P2两点外,所有像素都是(0,0,0) (虽然0这个假设也很不严谨)。根据文献[1] ,P1和 P2,这种非零元素也称为a
2022-07-19 15:54:44
428
原创 【蒸馏】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
126
原创 OpenMP入门
OpenMP 是 Open MultiProcessing 的缩写。可以在 Visual Studio 或者 gcc 中使用。把下面的代码保存为 omp.cc然后 g++ omp.cc -fopenmp就可以了OpenMP的设计们希望提供一种简单的方式让程序员不需要懂得创建和销毁线程就能写出多线程化程序。为此他们设计了一些pragma,指令和函数来让编译器能够在合适的地方插入线程大多数的循环只需要在for之前插入一个pragma就可以实现并行化。而且,通过把这些恼人的细节都丢给编译器,你可以花费更多的时间来
2022-06-21 18:56:24
136
原创 【寒武纪】视觉算法MLU220硬件适配(1)
寒武纪开发者社区 安装硬件驱动和软件工具链,也可以直接使用寒武纪官方开发平台:寒武纪开发平台本地开发安装完工具需要进行一些配置:根据包管理器的反馈,CNToolkit安装成功后,还需要进行最后检查和环境配置才能正确工作。......
2022-06-06 15:52:12
1459
3
原创 【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
3895
原创 【人脸目标追踪】卡尔曼滤波原理解析与人脸追踪实例
1.卡尔曼滤波简介卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。在很多工程应用(如雷达、计算机视觉)中都可以找到它的身影。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要课题。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置
2022-03-06 18:40:53
3884
原创 【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
1096
2
原创 【模型压缩】量化精度损失分析
1, 如何进行模型量化?按照量化阶段的不同,一般将量化分为 quantization aware training(QAT) 和 post-training quantization(PTQ)。QAT 需要在训练阶段就对量化误差进行建模,这种方法一般能够获得较低的精度损失。PTQ 直接对普通训练后的模型进行量化,过程简单,不需要在训练阶段考虑量化问题,因此,在实际的生产环境中对部署人员的要求也较低,但是在精度上一般要稍微逊色于 QAT。本文介绍的主要方法也是针对 PTQ 。关于 QAT 的内容,因为..
2022-02-16 13:26:40
2256
原创 【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
1569
原创 【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
715
原创 【嵌入式AI】CNN模型压缩(剪枝,量化)详解与tensorflow实验
1,CNN模型压缩综述1 模型压缩的必要性及可行性(1)必要性:首先是资源受限,其次在许多网络结构中,如VGG-16网络,参数数量1亿3千多万,占用500MB空间,需要进行309亿次浮点运算才能完成一次图像识别任务;(2)可行性:模型的参数在一定程度上能够表达其复杂性,相关研究表明,并不是所有的参数都在模型中发挥作用,部分参数作用有限、表达冗余,甚⾄会降低模型的性能。论⽂提出,很多的深度神经网络仅仅使用很少一部分(5%)权值就⾜以预测剩余的权值。该论⽂还提出这些剩下的权值甚至可以直接不用被学习。
2022-01-25 16:29:32
2936
1
原创 【自动驾驶】基于点云的避障算法笔记
1,点云数据预处理与可视化激光雷达数据获取的这一步有一些需要满足的条件:雷达需确保能够扫描到地面,VLP-16雷达的竖直平面视角为[-15,15],需根据这个视角,确保地面可以被扫描到;地面和非地面数据最好可以有个很明显的竖直维度的落差,以便可以区分地面和非地面。满足上面两个条件后,可以对采集的数据进行处理。先将其转换为(x,y,z)的点云数据,拿到数据后,可以使用MATLAB可视化,也可使用python工具包mayavi来可视化mayavi使用实列:from ma..
2022-01-14 11:21:49
1426
原创 【虚拟主播】刚刚,我用三行代码创建了一个虚拟主播
刚刚,我用三行代码创建了一个虚拟主播刚刚,我花了10分钟,写了三行代码创建一个具有明星脸的虚拟主播先看看效果:语音播报虚拟主播2实现简易的虚拟数字人非常简单,需要调用三个模型:(1)First Order Motion(表情迁移)(2)Text to Speech(文本转语音)(2)Wav2Lip(唇形合成)。具体技术步骤如下:1,把图像放入First Order Motion模型进行面部表情迁移,让虚拟主播的表情更加逼近真人,既然定位是一个主播,那表情都参考当然是
2022-01-09 11:56:32
7328
16
原创 【人脸生成】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
1199
2
原创 Tensorflow与keras学习 (12)——Vision Transformer(VIT)分析复现
ViTransformer——BotNet分析1,Transformer是什么?1.1、self-Attention细节描述Self-Attention是Transformer最核心的内容,其核心内容是为输入向量的每个单词学习一个权重在self-attention中,每个单词有3个不同的向量,它们分别是Query向量( Q ),Key向量( K)和Value向量( V ),长度均是64。它们是通过3个不同的权值矩阵由嵌入向量 X 乘以三个不同的权值矩阵 WQ,WK ,WV 得...
2021-12-28 20:23:21
1335
1
原创 【人脸生成】PaddleGAN动态人脸生成
安装PaddleGANPaddleGAN的安装目前支持Clone GitHub和Gitee两种方式:In [4]# 安装ppgan# 当前目录在: /home/aistudio/, 这个目录也是左边文件和文件夹所在的目录# 克隆最新的PaddleGAN仓库到当前目录 !git clone https://github.com/PaddlePaddle/PaddleGAN.git# 如果从github下载慢可以从gitee clone: !git clone https://gitee
2021-12-23 14:17:21
2208
17
原创 【人脸检测】Paddle复现MTCNN
【人脸检测】Paddle复现MTCNN数据准备解压下载好的数据In [1]!unzip -oq /home/aistudio/data/data118007/data.zip -d /home/aistudio/data/!cp work/data/*.txt /home/aistudio/data/ In []1,MTCNN 主干网络In []#pnet实现import paddleimport paddle.nn as nnimport p..
2021-12-23 11:38:13
579
原创 Tensorflow与keras学习 (11)——GhostNet分析与复现
GhostNet分析与复现1,原理首先复杂神经网络可以被精简的原因是什么?Resnet卷积层特征图可视化结果显示,特征存在(冗余)相似特征。对于相似特征卷积核,在允许网络有一定范围的精度损失的情况我们可以直接对网络进行裁剪,去掉相似度较高的卷积核。在GhostNet中的思想是想在保留足够丰富的特征的情况下依然较高的执行效率。那么,问题来了,用什么替代这种相似特征提取核。就是如何用较少的参数获取更多的特征。这里的线性部分可直接使用DepthwiseConv就是忽略通道,只卷积一层(同Mobil
2021-12-03 15:28:26
430
原创 【3D视觉】元宇宙之如何将你的人脸扫描进游戏
FaceBuilder 是 Blender 的一个附加组件,用于根据照片对人脸和头部进行 3D 建模。使用 FaceBuilder,您无需成为经验丰富的 3D 建模师即可创建具有清晰拓扑结构的优质 3D 模型。您首先从不同角度拍摄一些人的照片,然后在每个人身上放置一个模型以构建头部或面部模型。3D 模型稍后可用于在 Blender 中进行雕刻、动画、跟踪或任何其他操作,或导出到文件中并导入到任何其他 3D 软件中。安装添加在本视频介绍了完整的安装过程。它一升升开始以下载ZIP..
2021-11-22 15:14:56
3423
原创 【人脸检测】Paddle复现RetinaFace详细解析
Paddle复现RetinaFace详细解析RetinaFace前向推理分析主要分以下部分:1,网络主干结构2,网络的后处理3, 网络前向推理1,网络的主干结构复现网络结构图如下:这里复现部分做了精简,5层FPN删减为3层,主干为mobilinetIn [10]# 专干网络所用的模块# View dataset directory. import paddleimport paddle.nn as nnimport paddle.nn.functiona
2021-11-19 17:49:27
3595
原创 【目标分割】shuffleNet+deeplabv3训练
shuffleNet+deeplabv3训练1,环境安装conda create -n deeplabconda install tensorflow-gpu==1.13.1conda install Pillow==5.4.1pip install pycocotools==2.0.0pip install labelme==3.11.22,数据准备 (1)使用labelme标注分割训练数据(2)拆分数据python split_dataset.py -..
2021-11-15 20:47:12
3052
原创 【人脸质量评估】SDD-FIQA基于人脸相似度分布距离的无监督质量评估方法
1.摘要该方法从人脸识别的效果影响因素出发,从理论上推导出人脸样本类间相似度分布与人脸图像质量高度相关,利用类内相似度分布和类间相似度分布之间的Wasserstein距离生成人脸图像质量伪标签。然后,利用这些质量伪标签进行无监督训练人脸质量回归网络,从而获得一个质量评估模型。大量实验表明,在各大人脸识别的基准数据集上,提出的SDD-FIQA方法在不同的人脸识别系统下,精度和泛化能力都达到目前最优水平。2.背景介绍目前人脸质量评估方法可分为两类,一类是通过人类视觉系统(HSV)定义质量指标(如
2021-10-28 17:51:56
1179
原创 【人脸质量评估】人脸质量评估论文资源
1.SDD-FIQA: Unsupervised Face Image Quality Assessment with Similarity Distribution DistanceCVPR 2021Code :https://github.com/Tencent/TFace/tree/quality2.MagFace:A Universal Representation for Face Recognition and Quality AssessmentCVPR 2021Code
2021-10-28 17:40:41
545
原创 【模型压缩】蒸馏神经网络(Distill the Knowledge in a Neural Network)
1,简介 昆虫作为幼虫时擅于从环境中汲取能量,但是成长为成虫后确是擅于其他方面,比如迁徙和繁殖等。同理神经网络训练阶段从大量数据中获取网络模型,训练阶段可以利用大量的计算资源且不需要实时响应。然而到达使用阶段,神经网络需要面临更加严格的要求包括计算资源限制,计算速度要求等等。由昆虫的例子我们可以这样理解神经网络:一个复杂的网络结构模型是若干个单独模型组成的集合,或者是一些很强的约束条件下(比如dropout率很高)训练得到的一个很大的网络模型。一旦复杂网络模型训练完成,我们便可...
2021-10-18 17:54:56
765
原创 Scons使用入门
1.简单编译 源文件:hello.cpp#include<iostream>using namespace std;int main(){ cout << "Hello, World!" << endl; return 0;}用SCons编译它,需要在一个名为SConstruct的文件:Program('hello.cpp') 这个短小的配置文件给了SCons两条信息:你想编译什么(一个可执行程序),...
2021-08-17 15:51:09
434
原创 Tensorflow与keras学习 (10)——原生API如何训练Batchnorm层
Tensorflow中训练Batchnorm层,训练时和推理时是不一样的,保存权重时要处理一下1,训练import tensorflow as tfimport osfrom tensorflow.examples.tutorials.mnist import input_datatf.logging.set_verbosity(tf.logging.INFO)if __name__ == '__main__': mnist = input_data.read_data_set
2021-07-22 09:26:14
378
原创 【目标检测】Nanodet使用笔记
一,环境安装1. Create a conda virtual environment and then activate it.```shell scriptconda create -n nanodet python=3.8 -yconda activate nanodet```2. Install pytorch```shell scriptconda install pytorch torchvision cudatoolkit=11.0 -c pytorch```..
2021-07-19 18:00:39
1442
Annual International Conference on Network and Informa
2022-12-14
kitti数据点云网络训练数据增强标签
2022-12-14
pytorch版本DCGAN生成二次元头像,包含源码训练测试代码,以及训练数据和训练权重 pytorch学习练手项目
2022-02-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人