自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】解决ubuntu20.04版本插入无线网卡没有wifi显示【无线网卡Realtek 8811cu】

下拉之后发现了好几个网卡设备,一共有4个,我不确定我外接的网卡是哪一个,因此我把外接网卡拔掉之后又输入了一次。然后重启电脑,就可以看到我们的wifi链接设置了!到这里我可以确定我的无线网卡是。

2024-04-23 17:40:40 372

原创 【深度学习|基础算法】4.SSD目标检测

我是照着bubbling大佬的pytorch-ssd代码走了一遍,因此我会在他的代码的基础上去进行我的各种理解,大家可以去看看他关于SSD的教学博客—>睿智的目标检测23——Pytorch搭建SSD目标检测平台。

2024-04-21 12:50:45 821

原创 【深度学习|基础算法】3.VggNet(附训练|推理代码)

vgg是由牛津大学视觉几何组(Visual Geometry Group)的这篇论文中提出的模型,并且在2014年的ILSVRC物体分类和目标检测任务中分别斩获第二和第一名的好成绩,被cv界以VGG的名称所熟知。VGG中提出以小卷积核多层卷积的核心思想,显著的提升了模型的性能(后面细讲),并且vgg的网络架构十分的清晰,卷积核与池化层的参数稳定,容易迁移到不同的数据集中来适应不同的任务。

2024-04-15 16:22:35 616

原创 【Leetcode|#88.合并两个有序数组】

给你两个按排列的整数数组和,另有两个整数 m 和 n ,分别表示和中的元素数目。请你合并到中,使合并后的数组同样按排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为0 ,应忽略。nums2 的长度为n。

2024-04-14 12:55:41 307

原创 我的创作纪念日

学习的输入和输出过程是两个截然不同的过程,能够将自己所学习的东西,反向输出,需要自己对所学的知识有着较为清晰的思路,熟悉知识的总体脉络,写博客的过程也是帮助自己巩固知识梳理知识的过程,同时也能够提升自己的表达能力(多写会让自己的写作能力也得到提升)。对未来的憧憬的话,就是想在不断的创作过程中实现个人的价值,能够写出更多高质量的博客文章,写出更多的解决方案,能够像其他大佬一样,在技术圈有一定的影响力,目前我还是个博客等级4的小菜鸟,希望有朝一日也能拿到csdn的博客专家徽章。

2024-04-07 14:33:32 153

原创 【深度学习|基础算法】快速入门Transformer教程(小白友好向)

关于transformer的学习

2024-04-07 14:18:31 180

原创 【深度学习|Pytorch】torchvision.datasets.ImageFolder详解

self,root: str,):图片存储的根目录,即存放不同类别图片文件夹的前一个路径。即对加载的这些图片进行的前处理的方式,这里可以传入一个实例化的torchvision.Compose()对象,里面包含了各种预处理的操作。对图片类别进行预处理,通常来说不会用到这一步,因此可以直接不传入参数,默认图像标签没有变换,如果需要进行标签的处理,同样可以传入一个实例化的torchvision.Compose()对象。表示图像数据加载的方式,通常采用默认的加载方式,

2024-04-03 12:28:31 808

原创 【深度学习|基础算法】2.AlexNet(附训练|推理代码)

AlexNet由Hinton和他的学生Alex Krizhevsky设计,模型名字来源于论文第一作者的姓名Alex。该模型以很大的优势获得了2012年ISLVRC竞赛的冠军网络,分类准确率由传统的 70%+提升到 80%+,自那年之后,深度学习开始迅速发展。

2024-03-27 12:40:00 787

原创 【C++|TensorRT】使用ostream和istream类来读写TensorRT模型并推理(v9_trtx)

写入时,我们先创建一个std::ofstream的写入流p,初始化构造函数的第一个参数为const char *,填写保存路径,第二个参数为打开写入的方式,在写入序列化模型时,一般都是std::ios::binary的形式;方法来获取指向序列化模型数据的指针,但是这里我们需要将这个指针的数据类型转为const char *型,因此我们需要用到。在调用write写入时,第一个参数是const char*的数据指针,第二个参数是写入流的字节数。方法,该方法提供数字到指针间的转换以及不同类型指针间的强制转换。

2024-03-19 10:34:09 526 2

原创 【深度学习|图像分割】读取并修改xml中的指定参数

的时候报错,而当在C++端调openvino库来进行推理时,会在模型加载的时候报错,因此,我怀疑是不是在这个地方出了问题,起初我是直接导出之后,用记事本打开xml文件,然后手动去填写维度,比如。这是一段xml文件的片段,这个xml中存储的是某个深度学习模型的算法结构,乍一看没啥问题,但是仔细一看,我们会发现在。由于项目需要,我必须在导出时自动完成更改,因此我需要在代码中添加修改xml参数的代码片段。,更奇怪的是,在python上用openvino加载改模型并进行推理时,并不会在。

2024-03-08 18:00:35 336

原创 【C#】解析char型指针所指向的内容

得到的dec是乱码,查询发现是因为内存编码是UTF8,Marshal不支持UTF转换,所以必须先转成Unicode再转成UTF8。在c++代码中定义了一个功能函数,这个功能函数会将计算的结果写入一个字符串型的数组中。,然后c#会调用c++导出的dll中的接口函数,然后获取这个。并解析成string类型。

2024-02-26 19:23:36 446

原创 【TensorRT】int8量化与推理学习链接

关于TensorRT 量化与部署的网络教程,方便自己查找

2024-02-21 11:52:03 405

原创 【目标检测与图像分割】Faster-RCNN 和 Mask-RCNN详解

图像分割:图像分割是对图像中属于特定类别的像素进行分类的过程叫图像分割,属于pixel-wise即像素级别的下游任务。简单来说,图像分割就是按像素进行分类的问题。传统的图像分割算法是基于灰度值的不连续性和相似的性质来进行分割,而深度学习则是利用卷积神经网络,来理解图像中的每个像素所代表的含义。基于深度学习的图像分割技术主要分为这两类:语义分割及实例分割。将完整的图像输入特征提取网络得到特征图使用RPN结构生成候选框信息,将RPN生成的候选框位置投影到原始的特征图的对应位置,得到对应的特征矩阵。

2024-02-04 22:08:01 1346

原创 【TensorRT】官方文档onnx序列化教程与推理教程

需要注意的是,TensorRT网络定义的一个重要方面是它包含指向模型权重的指针,这些指针由构建器复制到优化的引擎中。由于网络是使用解析器创建的,所以解析器拥有权重占用的内存,因此在构建器运行之前,不可以删除解析器对象。并且由于需要展示各对象的存在周期,实例代码中没有使用智能指针,但是建议在实际使用中加上智能指针来配合TensorRT接口。本博客主要说明的是TensorRT C++ API,从我们获取到onnx模型开始的流程。现在,我们可以通过ONNX模型来填充网络定义,ONNX解析器API位于文件。

2024-01-28 22:47:17 525

原创 【C++】对外接口封装以及导出动态链接库DLL

可以看到,没有加上extern “C” 的话,接口名称就会变得很长,但是好处是,可以看到接口接受的参数数据类型。这里的输出目录可以自定义我们导出时的dll的路径,当然在不设置的情况下,默认在项目路径中的x64/Release或者x64/Debug中。然后,我们可以通过vs的开发者shell中输入命令行来查看我们的dll接口,方便我们在调用dll时查看接口:点击。这就可以查看到我们导出的dll的接口名称了。这里需要注意的一个点就是我们在头文件中,申明对外的接口时,需要加上。

2024-01-27 23:39:04 531

原创 【CUDA,TensorRT】cuda,cudnn,TensorRT官方下载链接

各版本cuda下载链接各版本cudnn下载链接

2024-01-25 21:53:09 121

原创 C#调用C++导出的DLL,联调代码步骤

1、属性->配置属性->常规->输出目录->C#项目的debug目录路径。4、属性->配置属性->调试->命令设置成C#项目的软件exe路径。2、工具->选项->调试->常规->不启用“仅我的代码”3、属性->配置属性->调试->调试器类型设置成混合。3、工具->选项->调试->常规->JIT优化。2、目标文件名和配置类型设置成.dll模式。1、C#项目属性->启用本地代码调试。5、设置完之后,重新生成dll。

2024-01-25 21:38:15 128

原创 【TensorRT】关于8.6版本开始的硬件兼容特性的一些试错

在工业应用中,边缘端的部署通常需要发布到不同的硬件,在自己的电脑上生成的模型,往往会因为与其他设备的显卡型号不同架构不同的问题,导致其他设备无法部署主机上导出的engine模型或者trt模型。因此,8.6版本的tensorRT发布了一项新的可能,可以支持基于不同显卡设备之间的兼容。,笔者案例中的情况是使用3060显卡的主机导出的模型,想发布到1660显卡的设备上,由于3060显卡已是基于。架构的,因此这个设备兼容性并不支持,只能通过在1660显卡的主机上重新导出engine或者trt模型再调用。

2024-01-24 16:32:33 612 2

原创 【TensorRT】c++使用面向对象来封装tensorRT推理代码的指针释放问题

于是乎,我便开始从头开始查询我的代码,看看到底哪里多释放了一次,后来突然发现,由于我使用了智能指针,智能指针在其完成调用之后,根据引用计数可以自动释放,而我的这些_engine, _context, _runtime,也都已经在类的成员变量中定义过了,(并且我也在类中封装了Malloc_data()和Free_malloc()函数,作用分别是为tensorRT推理时在host和device上为输入输出的指针分配存储空间,和在执行推理完毕后,将host和device上分配的指针指向的内存空间手动释放掉)。

2024-01-18 14:34:37 867

原创 【TensorRT】DeviceToHost同步与异步拷贝的区别及带来的问题

使用tensorRT推理MaskRCNN时,在执行推理完毕后,将device的指针指向的内容拷贝给host的指针时,如果此时使用cudaMemcpyAsync来进行拷贝,会随机的出现推理结果错乱的问题(观察后发现即上一张推理的结果,会在第二张的输入上呈现)。如果我们有多个核函数,并且我们创建了一个stream,那么这些核函数在stream中都是串行执行的,但是如果我们需要并发执行,可以开启多个stream。在cuda中,一个stream是由主机代码发布的一系列在设备上执行的操作,是严格保序执行的。

2024-01-15 13:09:31 457

原创 【CVPR 2020】伪装目标检测算法SINET-训练并推理

SINET训练及推理调试

2023-09-27 18:03:45 1411 4

原创 【GPU编程】Visual Studio创建基于GPU编程的项目

vs基于GPU编程项目的创建

2023-09-21 10:48:17 1381

原创 【GPU高性能编程CUDA实战】中的头文件下载

头文件源码下载

2023-09-20 10:41:39 193

原创 YOLOv5可视化训练集的标注框和类别

【代码】YOLOv5可视化训练集的标注框和类别。

2023-09-17 21:00:00 272

原创 Pytorch常用api详解

成为Pytorch大师第一步~

2023-09-08 15:54:38 756

原创 YOLOv5添加注意力机制

添加注意力机制在yolov5中,DIY自己的模型

2023-09-05 17:34:46 712 1

原创 YOLOv5屏蔽区域训练(选择区域训练,基于外部mask的方法以及内部位置设定的方法)

这里的红框就是我自己加的代码,通过bool型来判断是否需要进行mask以及mask的作用是屏蔽还是选择,而这些bool型变量已经在这篇博客的开始被我们定义好了,可以根据需求来排列组合。思路就是通过使用一个mask掩膜,对我们想要屏蔽或者选择的区域进行定向遮挡或者定向选择,在训练的时候v5需要加载数据即图片和标注信息,我们在数据加载的过程中,将掩膜覆盖到输入图像上,即完成了屏蔽区域/选择区域训练。这里有的兄弟会遇到一些报错,主要原因还是环境的版本问题,可以在网上查到,替换一下对应版本的库就行了。

2023-08-28 14:35:20 704

原创 YOLOv5屏蔽区域检测(选择区域检测,基于外部mask的方法以及内部位置设定的方法)

这段代码主要实现了两个功能,其中flag参数决定了我们是否使用mask掩膜对目标进行遮挡检测,reverse参数决定了我们是进行选择区域检测还是屏蔽区域检测(其实这两者是一个取反的操作)。思路就是通过一个mask掩膜,对我们想要屏蔽或者选择的区域进行遮挡处理,在推理的时候,将有mask掩膜的图像输入,将最后的结果显示在原始图像上,即完成了屏蔽区域检测。读入我们导出的mask图片文件,然后将其转成灰度图,然后使用opencv的阈值函数,将大于0的像素值全部变成255,其余的都为0,得到一张mask的二值图。

2023-08-25 10:50:45 1649 4

原创 【CVPR 2023】高分辨率异常检测PyramidFlow-训练并推理-附bug调试

首先,我们需要把我在一中提到的代码先git clone到我们的项目路径中,这是我们接下去的训练代码,当然其中也包括了验证和测试(推理过程也包含在内部了,需要自己写一小部分)。drop_last: dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃。PyramidFlow的环境,作者已经在Readme中给出,按照里面的版本pip install即可,如果下载速度过慢,可以。进入训练代码的链接后,点击作者头像,如图所示。

2023-08-22 11:03:57 881 11

原创 给主机设置默认清华源

为主机设置默认源

2023-08-17 09:16:47 620

原创 c++ 将tiff图转成PNG图,裁白边,分图代码

分图工具

2023-08-15 14:33:03 244

原创 训练时关于‘wandb’报错的解决方式

yolov5,yolov8 bug解决

2023-08-15 13:48:06 4251

原创 c++实现图像增强并封装代码

c++实现图像增强,代码封装

2023-08-10 10:26:38 223 2

原创 【OpenVino】openvino的下载与visual studio环境配置

openvino的安装与配置

2023-08-10 09:50:39 477

原创 读取tiff图,并转成彩色PNG图保存(c++,opencv)

转图

2023-08-05 10:52:01 444

原创 【OpenVino】YOLOv8-nncf量化,评估,以及python端的openvino推理

量化,评估,推理三合一

2023-07-21 13:30:41 878 6

原创 YOLOv8 bug调试以及配置文件

本文章只用于个人对于bug的一些记录,并不是yolov8的教学,因此不是从0指导跑通代码。本文章只用于个人对于bug的一些记录,并不是yolov8的教学,因此不是从0指导跑通代码。就可以自己指定训练完后的模型权重保存路径了。

2023-07-21 12:23:41 1120

原创 解决visual studio打了断点无法在断点处debug的问题

解决vs断点无法停止程序的问题

2023-07-13 10:25:32 1281

原创 Fast-RCNN学习笔记

Fast-RCNN学习记录

2022-12-05 11:19:07 1031 1

原创 目标检测鼻祖算法—RCNN的学习笔记

RCNN原理介绍

2022-12-01 12:36:46 529

空空如也

空空如也

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

TA关注的人

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