自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(178)
  • 收藏
  • 关注

原创 python面向对象(含多继承讲解)【持续更新中......】

【代码】python面向对象多继承。

2022-09-14 15:30:49 347

原创 Torch知识点总结【持续更新中......】

1、torch.no_grad上一个上下文管理器,在你确定不需要调用Tensor.backward()时可以用torch.no_grad来屏蔽梯度计算;2、在被torch.no_grad管控下计算得到的tensor,它的requires_grad就是False;

2022-09-07 15:02:24 1567

原创 OpenCV、PIL知识点日常总结,Bug总结【持续更新......】

1、如果图片是中文路径,则在cv2.imdecode中使用np.fromfile,如果是英文路径则使用cv2.imread()2、opencv中的im.shape:(1080, 1920, 3),1080是height,1920是width,3是通道,2、im.size=(1920, 1080) ,1920是width,1080是height。1、Image打开图片使用的内部方法open;3、使用plt.imshow()方法显示图片,3、暂时没使用过im.size。

2022-09-02 19:59:53 2429 2

原创 python中numpy、random、Map等总结【持续更新中...】

代码】np.array的计算。

2022-08-16 14:56:49 1613

原创 成功解决:RuntimeError: CUDA error: no kernel image is available for execution on the device

安装的 PyTorch 版本和 CUDA 版本不兼容。可以重新安装与系统上 CUDA 版本匹配的 PyTorch 版本。CUDA 版本与 GPU 驱动程序或 PyTorch 安装的 CUDA 编译版本不兼容。安装完成后,就可以完美解决这个Bug!

2024-08-23 09:44:21 101

原创 Mediapipe holistic pose 以及 blazepose 的前端开发

1、blazepose:https://github.com/tensorflow/tfjs-models/tree/master/pose-detection/src/blazepose_mediapipe

2024-08-21 13:38:08 176

原创 DDPM | 扩散模型代码详解【较为详细细致!!!】

左图是Transformer的Positional Embedding,行索引代表第几个单词,列索引代表每个单词的特征向量,右图是DDPM的Positional Embedding,DDPM的Positional Embedding和Transformer的Positional Embedding的。另一个区别是DDPM的Positional Embedding并没有按照奇数位和偶数位进行拼接,而是按照前后的sin和cos进行拼接的,虽然拼接方式不同,但是最终的效果是一样的。这是下采样模块的解释,

2024-08-19 17:31:15 1091

原创 Positional Encoding | 位置编码【详解】

transformer的作者刚开始说固定的位置编码和可学习的位置编码的效果是差不多的,后来证明固定的位置编码没有太大的必要,还不如省事直接使用可学习的位置编码,如下图,设置token的数量为10,token的特征向量长度为128,偶数项和奇数项的位置编码公式如下图所示,代码中,token_num是句子中的单词数量,embed_dim表示每个单词的特征向量长度,将对应位置的位置编码直接加在输入的单词上,如下图中的最后一行,为什么 attention 并不能赋予 token 位置信息?

2024-08-14 15:35:56 922

原创 linux安装Node.js NPM安装教程

参考链接:linux安装Node.js(详细)Node.js安装教程

2024-06-21 15:28:58 191

原创 pip如何快速安装包 / install packet

2、需要注意的是,如果在pip中下载安装比较慢可以换个源,可以到用户文件夹下,创建一个pip文件夹,然后在pip文件夹里创建一个txt文件。1、在后面加-i https://mirrors.aliyun.com//pypi//simple。

2024-05-23 17:21:54 294

原创 facenet人脸检测+人脸识别+性别识别+表情识别+年龄识别的C++部署

TAO工具包基于TensorFlow和PyTorch构建,采用了迁移学习的技术,可以将用户自己的模型或预训练模型与实际或合成数据进行适配,并针对目标平台进行推理吞吐量的优化,从而使整个训练过程变得更加简单、高效。TAO工具包的使用不需要专业的人工智能知识或大量的训练数据集,因此,它可以帮助更多的人轻松进入深度学习的领域,快速实现各种应用场景。运行环境:Tensorflow。运行环境:TensorRT。运行环境:TensorRT。运行环境:TensorRT。运行环境:TensorRT。

2024-04-16 23:12:51 1280 3

原创 YOLOV5检测+追踪使用deepstream部署(c++版)

DeepStream是一个基于NVIDIA GPU和TensorRT的开源视频分析框架。它提供了一个端到端的、可扩展的平台,可以处理多个视频和图像流,并支持实时的人脸识别、车辆识别、物体检测和跟踪、行为分析等视觉分析任务。DeepStream可以通过在不同的节点上进行分布式部署来实现高吞吐量和低延迟的处理,从而满足各种应用场景的需求,如智能城市、智能交通、工业自动化等。Deepstream稳定高效的读流和推流能力;Deepstream内置的目标追踪算法(deepsort等)

2024-04-16 15:25:35 2091 4

原创 Stable Diffusion扩散模型【详解】小白也能看懂!!

2、因为每一个像素都有自己的分布,都要预测出一个均值和方差,所以网络输出的尺寸需要和图像尺寸一致,所以我们选用 Unet 网络,假设数据集中有100张图片,每张图片的shape是4x4x3,假设每张图片的每个channel的每个像素点都服从正态分布,图像加噪不是在原有图像上进行加噪的,而是通过把图片的每个像素的值转换为-1到1之间,比如像素的值是。去噪是加噪的逆过程,由时间T时刻的图像逐渐去噪到时刻为0的图像,求导,但是对于扩散的过程是不可行的,如下面的公式无法求出,因为。

2024-04-04 20:49:29 2485 1

原创 Stable Diffusion扩散模型推导公式的基础知识

采样这个操作本身是不可导的,也就无法通过BP来对参数进行优化。但是我们可以通过重参数化技巧,将简单分布的采样结果变换到特定分布中,如此一来则可以对参数进行求导,注意: 对于连续型随机变量,期望就是积分,满足条件的积分也可以写成期望的形式。这在之后的 公式推导过程中,我们会使用到期望与积分写法的转换,马尔可夫链:下一状态的概率分布仅取决于当前状态,与过去的状态无关。期望是指随机变量取值的平均值,用来刻画随机变量的集中位置,概括描述:已知抽取的样本,求概率分布的参数。离散型随机变量X的取值为。

2024-04-03 19:58:22 1270 2

原创 MODNet抠图模型的C++部署

也是一类前背景分割问题,但是matting不是硬分割,而是软分割(Soft Segmentation),像玻璃、头发这类前景,对应像素点的颜色不只是由前景本身的颜色决定,而是前背景颜色融合的结果,matting问题的目标就是,找出前背景颜色,以及它们之间的融合程度,以便于将前景合并到新的背景上,matting属于。参考原文:https://blog.csdn.net/qq_46675545/article/details/123738493。构建、build engine、运行。

2024-04-01 23:07:15 410

原创 HRNet/hrnet人体姿态估计的C++部署

骨骼点识别(Human Pose Estimation, HPE)是计算机视觉领域中的重要任务,旨在从图像或视频中检测和定位人体关节。网络需要对每个关节点的每个像素位置产生一个标签,也就是说,每个关节点的heatmap对应一个标签heatmap,因此,如果一张图片中待检测的关节点有 m 个,则网络理想状态下会。此时heatmap大致长这样,同一张图上是不同人的同一类型关键点,如第一幅图,是两个人的鼻子的位置。本文中我们使用的是bottom up的多人骨骼点检测算法——higher hrnet。

2024-04-01 18:57:25 1355 4

原创 Transformer代码从零解读【Pytorch官方版本】

输入经过词向量层和位置编码层,得到最终的输入,通过掩码注意力机制,然后交互注意力机制与Encoder的输出做交互,Encoder的输出做K矩阵、V矩阵,Decoder的值做Q矩阵,再经过前馈神经网络层,得到Decoder的输出,解码端是没法并行的,因为输入【S】,输出【I】,然后输出的【I】作为下一阶段的输入,这一次的输入取决于上一次的输出,所以解码端无法并行,如果当前输入为【S】,则后面的【卷起来】被遮挡,当输入为【S卷】时,后面的【起来】被遮挡,形成上三角矩阵为1的矩阵,如何去掉PAD信息?

2024-03-16 15:18:45 1364 2

原创 基于BatchNorm的模型剪枝【详解+代码】

如下图所示,每个conv-layer会被计算相应的channel scaling factors,然后根据channel scaling factors筛选conv-layer,达到模型瘦身的作用,图中的1.170,0.001,0.290等就是下面我们将要介绍的学习参数。L2求导为:θ,梯度下降过程越来越慢,相应的权重参数都接近0,起到平滑的作用,值是1.17,1.16,1.15等,那如何筛选比较重要的。图中的1.170,0.001,0.290等就是学习参数。越小,其对应的特征图越不重要,

2024-02-08 11:38:33 2586 1

原创 ChatGLM-6B训练本地知识库【详解】

左边是Encoding,右边是Decoding,trm的输入和输出都可以是序列,所以trm可以做文本翻译,BERT是Bidirectional Encoder Representations from Transformers的缩写,BERT是Transformer的Encoder一个预训练的语言表征模型在大量未标注的文本数据集上训练论文发表时在11个NLP任务上取得最佳指标BERT所做的事情就是把一个句子输出一个Embedding,

2024-02-05 11:05:07 1789 1

原创 Transformer结构详解【学习笔记】

然后再对Encoders(编码),Decoders(解码)进行细化,如下图,需要注意Encoders之间的结构是相同的,Decoders之间的结构也是相同的,虽然Encoders和Decoders之间各自的结构是相同的,但是是单独训练的,Encoders和Decoders的数量是超参数,可以自己定义,,依次对输入的【我爱你。下面再举一个NLP的例子,Query代表【爱】,分别与Key1,Key2,Key3,Key4代表的【我】,【不】,【爱】,【你】做点乘,具体步骤如下2图,比如输入的词是【我爱你。

2024-01-11 12:44:11 1258 2

原创 图像传感器与ISP【相机成像原理(四)】

在许多传感器前面,通常会有一块作为OLPF的玻璃片,也被称为光学抗混叠滤波器,OLPF通常由两层双折射材料和红外滤波器组成。光线具有不同的振动方向,进入如下图左一的晶体后,就会分成不同的方向(振动方向不同)进行传播,所以会造成字的重影,然而,OLPF意味着降低分辨率,因为高频信号被滤除了随着现在像素数量变大,OLPF变得不再是必要的。所以摄影师经常破解他们的相机来移除OLPF,以避免分辨率的损失也有相机制造商提供带和不带OLPF的相机版本。

2024-01-08 11:56:58 2030 1

原创 摄影光学与真实镜头详解【相机成像原理(三)】

• 折射是光线在穿越折射率变化的界面时发生弯曲的现象,折射遵循斯涅尔定律;• 在近轴情况下,光轴上的任意一点向透镜发出的光线汇聚到透镜另外一侧的一点;• 通过近轴分析,可以求出透镜的焦距;• 在近轴情况下,可以通过透镜制造公式推导出高斯成像公式。

2024-01-05 10:41:17 1962

原创 模型剪枝详解【学习笔记】

参考文献:

2023-12-29 10:24:03 541

原创 YOLOV5 C++部署的人员检测项目,包括CUDA编程,PTQ校准,jetson部署,开发后处理【C++深度学习部署(十一)】

需要在有界面的主机上安装,远程ssh无法使用窗口# 建议使用conda虚拟环境 # 安装 pip install labelImg # 启动 labelImg深度学习量化就是将深度学习模型中的参数(例如权重和偏置)从浮点数转换成整数或者定点数的过程。这样做可以减少模型的存储和计算成本,从而达到模型压缩和运算加速的目的。如int8量化,让原来模型中32bit存储的数字映射到8bit再计算(范围是[-128,127])。加快推理速度:访问一次32位浮点型可以访问4次int8整型数据;

2023-11-21 17:26:53 1049 1

原创 TensorRT基础知识及应用【C++深度学习部署(十)】

接口被用来定义模型。// bit shift,移位:y左移N位,相当于 y * 2^N// kEXPLICIT_BATCH(显性Batch)为0,1U

2023-11-16 16:12:07 2042

原创 C++ opencv基本用法【C++深度学习部署(九)】

【代码】opencv基本用法。

2023-11-15 16:05:23 830

原创 CMake基础及应用【C++深度学习部署(八)】

在实际工作中推荐使用CMake构建C++项目,CMake是用于构建、测试和软件打包的开源跨平台工具;自动搜索可能需要的程序、库和头文件的能力;独立的构建目录(如build),可以安全清理支持复杂的自定义命令(下载、生成各种文件)自定义配置可选组件从简单的文本文件()自动生成工作区和项目的能力在主流平台上自动生成文件依赖项并支持并行构建几乎支持所有的IDE。

2023-11-01 16:51:53 508 1

原创 C++进阶语法——STL 标准模板库(下)(Standard Template Library)【C++深度学习部署(七)】

容器类型::iterator 变量名称。而不是使用C++原生数组。

2023-11-01 11:53:51 740

原创 C++进阶语法——STL 标准模板库(上)(Standard Template Library)【C++深度学习部署(六)】

⼀个强⼤的、可复⽤的、⾃适应的泛型类和函数集合使⽤C++ 模板(templates)实现实现了常⻅的数据结构(data structures)和算法(algorithms)庞⼤的类库俄裔美籍程序员:Alexander Stepanov 1994年开发容器,算法,迭代器是独立设计的,但是它们之间配合的很好容器(containers)各种对象或原始类型的集合array、vector、deque、stack、set、map等算法(algorithms)处理容器元素序列的各种函数。

2023-10-31 11:42:57 444

原创 C++进阶语法——智能指针【C++深度学习部署(五)】

C++ 提供了内存管理的绝对⾃由度分配释放声明周期管理⼀些潜在严重问题未初始化的指针(wild pointer),也就是野指针,可指向内存的任何位置内存泄漏(memory leak),可能因为没有及时释放分配的内存空间悬空指针(dangling pointer):指针指向已经释放的对象所有权(ownership),引入智能指针谁拥有指针?何时可以删除指针?std::move(p1):转移p1拥有的所有权,容器 vec 拥有堆上面对象的所有权,p1 会设置为空指针,

2023-10-30 14:00:24 442

原创 C++进阶语法——OOP(面向对象编程)【C++深度学习部署(四)】

----->• 在析构函数中释放内存时,其他对象中的指针可能还在指向被释放的资源,在析构函数释放内存资源时可能会报错,例如下面的代码,如果使用编译器默认的拷贝构造函数,在进行析构函数释放内存资源时可能会报错。当调用析构函数的时候,由于后进先出的原则,new_account 上的地址被释放后,alice_account 的地址也会被释放,但地址已经被释放,所以会造成堆空间重复释放的问题,导致程序报错,------>• 如果是指针,拷⻉的是值(指向的地址),⽽不是指向的对象,

2023-10-27 22:37:31 951

原创 C++ 学习链接

参考:,

2023-10-26 10:56:43 142

原创 C++环境配置【C++深度学习部署(一)】

这里给出 C++ 调试的 launch.json 文件的内容,需要注意2点,“program” 的内容和task.json的 “program” 一致,“preLaunchTask” 和 tasks.json 的label 一致,因为 debug 的时候先编译后调试,下一步,在如下图中按照图标分别点击即可完成对 py 代码的 debug,其中③和④的区别是,③是仅在当前 py 程序 跳转,而④可跳转到其他 py 程序或 py 包,生成可执行文件 main,在命令行输入 ./main 即可执行程序,如下图,

2023-10-24 10:50:34 492

原创 C++进阶语法之函数和指针【C++深度学习部署(三)】

• 函数名称• 参数列表-----> 传给函数的变量-----> 变量类型需声明• 返回值类型• 函数体-----> 函数被调⽤执⾏的部分-----> 花括号 { }内部A、函数的定义——⽆参数B、 函数的定义——1个参数C、函数的定义——⽆返回类型D、 函数的定义——多个参数E、函数的定义——函数的调⽤(calling)cout

2023-10-19 10:42:48 248

原创 C++基本语法【C++深度学习部署(二)】

2、 + - * /,(流提取),::(作用域运算符,表示一种从属的关系)等是操作符,推荐采用C++11标准初始化,如果没有进行初始化,编译器会给出一个随机的数字,比如0,1、include,main,cin,cout,favorite_num是标识符,C++存储C风格字符串时,字符串使用的是双引号,每个字符串会多存储1个字符大小。标识符是程序员自己定义的,主要用来标识变量,函数,类,模块等用户定义项的名称;• 整型(integer):short、int、long、long long。

2023-10-16 16:40:45 430

原创 一些比较好的行为识别的项目链接

2、Temporal Segment Networks (TSN) ,这个先备忘一下,GitHub链接:链接3、openpose python部署 GitHub链接:链接4、openpose+LSTM 打架识别 C++部署:GitHub链接

2023-10-07 12:29:26 129

原创 TSM动作识别模型【详解】

然后需要等大概十多分钟,就解压完成,得到一个包含所有SSv2视频数据的文件夹,将文件夹名字改为20bn-something-something-v2-frames方便之后的数据集划分。由于该压缩数据进行了分卷操作,需要合并后才能进行解压。本文使用的是somethingv2数据集,解压后是如下形式;

2023-09-27 15:13:24 506

原创 Ubuntu20.04安装ffmpeg

文章目录参考链接:链接1

2023-09-26 09:47:12 376

原创 C++编译过程

鼠标右键选择“Open in Integrated Terminal”,然后在下面的终端输入“cmake . -B build”,或者是这个命令也可以“cmake --build build -j12”,完成之后再次在终端输入“cmake --build build”,完成之后会生成“yolov8_bmcv.soc”文件;然后在运行该文件,在运行该文件之前可以修改该文件的权限“sudo chmod 777 yolov8_bmcv.soc”,通过命令“./yolov8_bmcv.soc ”运行;

2023-09-18 09:40:09 132

原创 如何把文件从本地上传云服务器

mnt/linaro/sample/sample/YOLOv8/cpp/yolov8_bmcv/yolov8_bmcv.soc:服务器文件地址 yolo.soc:下载到本地的文件名。/home/linaro/apps/sample/sample/YOLOv8/cpp/yolov8_bmcv/yolov8_bmcv.soc:服务器上传地址。iss_train01@10.33.16.2是服务器用户名,10.33.16.2是服务器ip,yolo.soc:本地文件名。

2023-09-14 17:42:53 334

空空如也

空空如也

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

TA关注的人

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