视觉检测图像分割干货
文章平均质量分 77
本专栏需要深度学习有一定了解,可对博士硕士研究生阶段的检测分割学习可以起到略微的帮助。付费不是为了赚钱,只是为了让自己以更端正的态度把文章写好,写正确。文章好,看的人多,收益的人就多。授人以鱼不如授人以渔,短期来看吃相不好看,但长期一定会造福更多业内研究者。
优惠券已抵扣
余额抵扣
还需支付
¥119.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
@会飞的毛毛虫
计算机专业博士在读,曾在课题组负责过硬件、软件、算法及落地部署的开发工作,发表了几篇水文。主要方向是做跟踪、跨域的虚拟生成,致力于成为一名Full Stack developer。有相关问题可以私信我为大家解答,看到不妨点个关注,我们一起进步哦!
展开
-
利用MMDeploy和MMDection在C++和TensorRT的基础上部署RTMDet检测分割一体化网络
【代码】利用MMDeploy和MMDection在C++和TensorRT的基础上部署RTMDet检测分割一体化网络。原创 2023-05-12 10:50:48 · 745 阅读 · 1 评论 -
当今最强最快的目标检测器(超越 YOLO v8)RTMDet的环境配置及自定义训练
下图是一个标注示例,我们只需要标注分割区域即可,不需要标注检测框。我们需要通过脚本将这些json文件进行整合。每一个img对应一个json文件。原创 2023-05-11 22:15:47 · 1588 阅读 · 0 评论 -
拿下Transformer
对于每一个x向量,网络又可以通过乘WQ,WK,WV衍生出三个向量Q1,K1,V1向量。对于所有的Xi来说,其乘的WQ,WK,WV都是一模一样的(即权重是共享的)。Self attention所作的内容,总结一下就是一个包含三个参数矩阵WQ,WK,WV的模块,输出为m个Context vector,并且每一个Context vector和原先的x维度是一致的。之所以会用到位置编码,是因为Transformer 没有用到循环神经网络,而循环神经网络是天然的有时间序列在其中的,即有顺序的。原创 2022-09-13 09:28:48 · 1558 阅读 · 1 评论 -
Xshell和Xftp使用教程
什么是Xshell?为什么要用Xshell?现在用的比较多的服务器比如阿里云、腾讯云甚至是你实验室里的集群,如果要操作这个服务器(不管是Win的还是linux的),那么如何操作呢? 除了Xshell还有其他的吗?Xshell是通过命令来操作服务器的,其实还有Xftp、securecrt、putty等软件都是支持的,就好像看视频有腾讯、爱奇艺和其他播放软件一样。如何下载Xshell?点击官方网站(建议不要用盗版的):https://www.xshell.com/zh/xshell-download/选择免费授原创 2022-06-23 11:25:23 · 3235 阅读 · 0 评论 -
Yolov5 网络改进之增加SE、CBAM、CA、ECA等注意力机制
本文以Yolov5 6.0版本为例,讲解如何添加SE、CA、ECA、CBAM等即插即用的小模块,可同时适配其他网络结构。在这之前需要明白yolov5文件夹的三个小点:models\common.py,Yolov5网络的所有模块都在该文件内实现,我们的改进也在该文件中进行。 models\yolo.py,parse_model方法是对网络结构进行整体搭建,同时起到注册common.py中各类模块的作用。 models\yolov5m.yaml(以m结构为例),网络的配置文件,models\yolo.p原创 2022-04-30 01:00:00 · 14627 阅读 · 1 评论 -
mmdetection2.17可视化:pr曲线、FPS Benchmark、anchor、各类loss/mAP、Yolo的anchor
anchor可视化在目录:mmdet\models\dense_heads\anchor_head就可以可视化anchor,插入位置为: anchor_list, valid_flag_list = self.get_anchors(featmap_sizes, img_metas, device=device) 和label_channels = self.cls_out_channels if self.use_sigmoid_cls else 1 之间,插入的代码具体如下:原创 2021-10-28 12:54:32 · 6280 阅读 · 4 评论 -
以Deformable Detection Transformer为例实现mmdetection中backbone、neck、head的特征可视化
对mmdetection熟练使用后,接下来就要为论文等做准备了,同时如果自己的精度不够好,那么就需要可视化模型提取的特征以便做进一步的修改,以下内容包含mmd的完整可视化流程:步骤一:请确认你的模型是one-stage or two-stage。请先在目录:mmd2.17\mmdet\models\detectors中查看你所训练的detectors是基于哪个基类来实现的,比如以新出的Deformable DETR基于transform的网络结构为例,打开其检测器文件显示如下:接着找到其包含模块de原创 2021-10-27 23:09:29 · 8426 阅读 · 10 评论 -
目标检测常用损失函数
学习目标检测的同学一定对损失函数非常头疼。在求分类时会遇到0-1损失,交叉熵损失,在求回归框的时候需要用到L1损失、L2损失以及各种IoU损失。而我们本身又不是很了解这些损失函数,这篇文章就带大家一起深入了解以下什么是损失函数,同一个情况为什么要设置不同的损失函数。...原创 2022-04-18 15:22:24 · 6169 阅读 · 0 评论 -
Xavier法与何恺明法初始化权重的意义及原理
神经网络的本质:学习数据分布。神经网络中,每层数据传送是要有意义的,这种意义直观的体现为原本要表达的意思,不能说通过神经网络后被曲解,或者可以理解为一句话通过传递不能变成谣言。全零初始化:对于每一层中的各个神经元,weights都是相同的。因此无论网络训练多少轮,每层的输出都一样,无法学习或者提取到不同的特征。(从左往右依次为神经网络的每一个全连接层+激活函数的输出的数据分布,共五层) 小一点的随机权值初始化(均值为零,方差特别小):虽然每个神经元都有各自的值,能够保证更新是不同的,但对原创 2022-04-18 12:48:19 · 5686 阅读 · 0 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(三)--解耦Head的搭建及分析
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。有问题欢迎讨论。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。看完后可以自己随便的去改任何网络结构,而不仅仅局限于一个调参者。本篇讲的是YOLOX中解耦Head的搭建,在这之原创 2022-02-13 17:51:08 · 10936 阅读 · 0 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(八)--simOTA标签匹配策略详解
整个YOLOX源码的学习一定要按照以下顺序才能整体串起来:Backbone->FPN->Head->->数据读入源码->数据增强源码->loss计算源码->simOTA源码->demo.py脚本->train.py脚本。而该系列博文也遵循该顺序来逐行分析代码。注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。其实网络结构本没有任何神秘的地方,都是一些模块堆叠起来的,你完全可以没有任何理由的修改任何一个模块。看完这个系列后自己完全可原创 2022-02-17 21:46:33 · 10769 阅读 · 2 评论 -
Yolo v5的txt标注文件转为coco格式的json标注文件
社区上将coco数据集格式的json标注文件转为yolo的txt格式的文章较多,但是如何将txt转为json博主并没有发现。这篇文章就给大家提供一个很方便的小脚本,实现这个功能。需要注意的是,如果直接将txt格式的标注文件转为json格式的标注文件是比较麻烦的,可以分两步走:第一步:将txt格式标注转为xml格式标注。 第二步:将xml格式标注转为json格式标注。第一步的脚本文件如下,只需要修改yolo2voc()方法中的三个参数:图像存放目录、txt格式标注存放目录、classes.txt文原创 2022-03-17 12:55:26 · 10033 阅读 · 0 评论 -
YOLO系列检测器优化策略之Match positive samples和Eliminate grid sensitivity
目标检测任务中,代码中的grid是什么?grid可以从两个角度理解:grid真实的代表是预测特征层,每一个grid cell就代表特征层上的一个像素点。 在输入图像中打上grid网格,就代表每一个grid cell(预测特征层的像素点)对应原始图像上的感受野,也就是等比例缩放后的大小。因此:想要得到预测特征层的输出(bbox、cls和conf),只需要在grid上先通过一个3×3卷积,再通过一个1×1卷积即可。最后一个1×1卷积层的卷积个数为4+1+num_cls。这里的4代表4个bbo原创 2022-03-15 16:55:38 · 7255 阅读 · 1 评论 -
mmdetection中Swin transformer检测器的代码注解
首先说一下之前有小伙伴问的两个问题:为什么每次定义网络都需要写forward()函数,而它又不是python的特殊函数?答:因为我们的网络父类都为nn.Module类(mmdetection最新版本都为BaseModule类),而nn.Module类中定义了__call__()方法,该方法中调用了forward()函数。因此当执行module(data)的时候,会自动调用__call__()函数。class Module(nn.Module): def __init__(self):原创 2022-03-14 20:17:22 · 5740 阅读 · 1 评论 -
从四个角度简单专业的理解深度学习中BN、GN、LN、IN等归一化操作
作为深度学习最基础的内容,这大概是每一个算法工程师必须要理解的,但是你理解了吗?哪个归一化更牛逼你知道吗?无论是图像、数据还是其他方向的深度学习算法,他们学的是什么呢?学的是数据分布。就以目标检测来说:检测器之所以能对世间万物进行检测,归根到底是因为每一类目标在一张图像中的像素分布是有一定规律的,这也是深度学习的本质。那么为什么要做归一化呢?在网络训练过程中,每一类目标不会之保持一模一样的像素分布,而是会产生一种协方差偏移。这个协方差偏移简单理解就是每一类中的每一个目标都有或多或少的不同...原创 2022-03-11 21:54:38 · 8784 阅读 · 0 评论 -
YOLO系列标注文件txt标签类别索引批量修改脚本
在我们做YOLO类检测网络的自定义训练时,有时会将多个独立的数据集合并训练,但往往遇到一个问题,比如两个独立的数据集中有相同的一类,比如船。但是在一个数据集中船的标注文件(txt文件)的索引为0,在另一个数据集中的索引为1,这样就不能直接合并在一起。需要将某一个数据集中的标签做修改后再合并。修改标签的小demo如下:import osimport repath = 'C:/Users/dingjiangang/Desktop/img/' // txt文件路径files = []for f原创 2022-03-08 21:18:16 · 9800 阅读 · 2 评论 -
Win10下环境搭建MMrotate旋转目标检测框架并训练自定义数据
MMrotate开源工具箱已经出来快一个月了,官方算是已经很良心了,将各种最新的旋转目标检测网络架构集成到这个工具箱里,这里,我先给大家提供一个官方的学习文档,可以帮助大家更轻松的学习整个框架:https://mmrotate.readthedocs.io/en/latest/intro.html。下面就让我们来一起配置环境吧。我的MMrotate基础依赖环境为CUDA11.1和VS2019。在安装好基础依赖后,先下载我提供的window下的mmrotate安装包,里面包含了标注需要用到软件和需要编译的原创 2022-03-08 22:41:31 · 10016 阅读 · 5 评论 -
深度学习算法岗面试必备之深度可分离卷积
左边是一个三通道的特征图,中间是用到的卷积核,右边是提取到的4幅特征。我们以3×3卷积为例,当然也有人用5×5、7×7、9×9。普通卷积的过程是这样的:输入特征的每个channel分别和卷积核的每个channel中的权值参数做点乘,然后ADD、最后再Concat。图中的参数量为:3×3×3×4 = 108需要注意的是:单个卷积核的通道数和输入特征的通道数相等。 每个卷积核只输出一个channel的特征,输出特征的总channel为卷积核的个数。而深度可分离卷积是这样的,有两个过程:原创 2022-03-03 18:41:46 · 7246 阅读 · 0 评论 -
opencv4图像分割那些你不知道的API 代码可直接移植使用
1. 距离变换函数:cv2.distanceTransform()函数简介:当图像内的各个子图没有连接时,可以直接使用形态学的腐蚀操作确定前景对象,但是如果图像内的子图连接在一起时,就很难确定前景对象了。此时,借助于距离变换函数 cv2.distanceTransform()可以方便地将前景对象提取出来。 函数功能:计算二值图像内任意点到最近背景点的距离。即计算二值图像中所有像素点距离其最近的值为 0 的像素点的距离。当然,如果像素点本身的值为 0,则这个距离也为 0。 函数意义:如果前景像素距离值原创 2022-03-02 16:27:25 · 7680 阅读 · 2 评论 -
mmdetection自定义取出检测结果脚本及image_demo.py解析
之所以要说image_demo.py,是因为其和video_demo.py、webcam_demo.py这三者是大差小不差,并为我们取出检测结果用于其他接口提供思路。image_demo.py在mmd\demo文件夹下。首先,我们给出image_demo.py的参数解析器和main()方法的注释,整个过程比较简单,随后进行逐方法分析。import asynciofrom argparse import ArgumentParserfrom mmdet.apis import (async_inf原创 2022-03-01 10:28:38 · 9226 阅读 · 11 评论 -
mmdetection小技巧(强烈推荐 逐步完善中)
小技巧一:在mmdetection中所有的配置文件,都有这样一行代码,如果要做目标检测,则引用coco_detection.py,如果要做目标检测,则引用coco_instance.py。在训练Swin Transformer的时候,这里的修改尤为常见,具体看你需要做什么,这里我们是做目标检测。 _base_ = [ '../_base_/models/mask_rcnn_r50_fpn.py', '../_base_/datasets/coco_detection.py',原创 2022-02-28 16:17:52 · 9591 阅读 · 0 评论 -
浅谈BiFPN结构并在mmdetection中从Registry开始逐步实现
BiFPN可以作为一个常备块在修改网络时使用。在用代码实现BiFPN之前,我们需要对其网络结构及细节原理有一个清晰的认识,下图时BiFPN的原理图:该图清晰明了的阐明了BiFPN的数据流向,下面做进一步具体分析:图中所有Add操作均为用可学习的权重参数进行加权特征融合而非直接的Add相加。由于权重的无界性,如果将特征直接乘以权重相加会造成训练的不稳定。因此,采用权重归一化的方式进行融合,以p6_td和p6_out为例,其Add操作的公式如下: p3,p4,p5为Backbone的3个原创 2022-02-27 18:21:21 · 10328 阅读 · 15 评论 -
预训练模型的加载机理pytorch版
在做二维目标检测时,我们会对神经网络的部分地方进行修改,比如增加CBAM,或者修改FPN等等。但是将修改后的网络进行训练时,加载预训练权重过程却不会报错,甚至修改网络后性能不增反降。这里面蕴含的知识点在这篇文章做做一个总结。pytorch中网络导入预训练权重的代码很简单:net = model()net.to(device)net.load_state_dict(torch.load('params.pth'))其中:torch.load('params.pth')只是加载了模型参数,原创 2022-02-25 21:26:10 · 6975 阅读 · 0 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(七)--Head中loss的计算及反传
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。其实网络结构本没有任何神秘的地方,都是一些模块堆叠起来的,你完全可以没有任何理由的修改任何一个模块。看完这个系列后自己完全可以随便的原创 2022-02-15 10:59:08 · 9106 阅读 · 11 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(六)--Mixup数据增强
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。其实网络结构本没有任何神秘的地方,都是一些模块堆叠起来的,你完全可以没有任何理由的修改任何一个模块。看完这个系列后自己完全可以随便的原创 2022-02-14 23:07:37 · 9258 阅读 · 0 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(五)--mosaic数据增强及数学理解
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。其实网络结构本没有任何神秘的地方,都是一些模块堆叠起来的,你完全可以没有任何理由的修改任何一个模块。看完这个系列后自己完全可以随便的原创 2022-02-14 19:39:21 · 9821 阅读 · 4 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(四)--coco数据载入及分布式训练
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。其实网络结构本没有任何神秘的地方,都是一些模块堆叠起来的,你完全可以没有任何理由的修改任何一个模块。看完这个系列后自己完全可以随便的原创 2022-02-13 21:03:40 · 8693 阅读 · 7 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(二)--搭建类PAFPN结构及数据流向分析
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。有问题欢迎讨论。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。看完后可以自己随便的去改任何网络结构,而不仅仅局限于一个调参者。本篇讲的是YOLOX中类PAFPN结构的搭建,在原创 2022-02-13 16:26:52 · 12343 阅读 · 3 评论 -
Anchor free系列检测器之YOLOX源码逐行讲解篇(一)--搭建主干网络及backbone中各模块详解
整个系列包括:Demo源码逐行讲解->train脚本源码逐行讲解->backbone源码逐行讲解->FPN源码逐行讲解->Head源码逐行讲解->loss计算源码逐行讲解->数据加载源码逐行讲解->数据增强源码逐行讲解->simOTA源码逐行讲解。有问题欢迎讨论。保证逐行,注意是逐行,包括python语法,tensor维度和逐行代码的作用及应用。看完后可以自己随便的去改任何网络结构,而不仅仅局限于一个调参者。本篇讲的是Backbone的搭建,由于代码比较分原创 2022-02-13 10:54:25 · 9125 阅读 · 2 评论 -
检测分割算法改进(篇五) 引入Swin Transformer做检测网络Backbone
在撸代码之前首先对Swin-Transformer网络结构要有一个明确的了解:整个网络的流程如下:输入 为的图像经过Patch Partition模块后变为原创 2022-02-10 15:31:27 · 12649 阅读 · 3 评论 -
Vision Transformer的Pytorch源码各模块实现
其实看ViT网络代码主要是学会最基础的transformer模型搭建,是CV从业者必须要走一段路。在明白transformer原理之后(具体参考我之前的两篇博文:CV领域Transformer之Self-Attention原生理解和Transformer-Encoder & Decoder细节详解(以DETR为例),搭建ViT可以说是信手拈来。整个ViT网络无非就是卷积层和Multi-Head Self-attention的搭积木,如下所示:ViT网络的输入图像尺寸必须为固定尺寸,否则需要自原创 2022-02-10 12:34:18 · 1260 阅读 · 0 评论 -
检测分割算法改进(篇四) BFP(Balanced Feature Pyramid)模块
模块来源:为了使模型对不同尺度的目标更好的适配,往往在网络中增加FPN结构,实际也是证明将高低层次的信息互补确实会带来检测性能的提升。但是Libra R-CNN网络的作者认为FPN是有问题的,其并没有把特征信息有效利用。模块提出的原因:传统FPN及FPN变种如PAFPN、BiFPN等都是采用 Top - Bottom,Bottom- Top 的方式,这样做更多的是关注相邻分辨率,并且非相邻层所包含的语义信息在信息融合过程中会被稀释一次甚至多次,这个过程是imbalance的。因此,BFP模块就是让这个融原创 2022-02-08 17:31:50 · 11239 阅读 · 1 评论 -
检测分割算法改进(篇三) ASPP(Atrous spatial pyramid pooling)模块
ASPP是一个模块,可以被我们放在任何地方,比如下图:来源:ASPP(Atrous spatial pyramid pooling)最早来自DeeplLab v2网络,后在DeepLab v3网络中得到改进加强,本文以DeepLab v3中的ASPP结构进行分析和源码实现。模块目的:在不改变shape即不降采样的前提下增大网络的感受野,增强网络获得多尺度上下文的能力。模块结构:一共并联四个分支,第一个分支为1×1的普通卷积层。 第二和第三个分支采用一个3×3的膨胀卷积,不同原创 2022-02-08 12:00:06 · 22071 阅读 · 16 评论 -
检测分割算法改进(篇二) Residual Feature Augmentation(RFA模块)及Adaptive Spatial Fusion(ASF模块)
提出目的:FPN网络初期需要使用1x1的卷积进行channel维度的统一以便共享检测Head。但不同的特征层降维后不仅会导致或多或少的信息丢失,同时由于感受野不同,层与层之间语义信息之间存在差异,直接进行融合会减弱多尺度特征的表达能力。具体实现:首先,设C5的shape为 h × w,在C5上进行与图像比例有关的自适应池化得到多尺度上下文特征,通常选择比例系数为0.1,0.2,0.3(池化后和原特征图的比例)。比例不变自适应池化与PSP的不同之处在于,PSP池化为固定大小的多个特征,而比..原创 2022-02-07 15:58:39 · 9969 阅读 · 0 评论 -
Anchor和RPN的浅薄理解(三)-mmdetection中Anchor生成源码分析
在 MMDetection 中,RPN 网络使用 AnchorGenerator 类生成 Anchor ( AnchorGenerator 类是),在config文件中 AnchorGenerator 的默认设置如下: anchor_generator=dict( type='AnchorGenerator', scales=[8], ratios=[0.5,1.0,2.0], strid.原创 2022-02-07 11:10:03 · 9156 阅读 · 0 评论 -
Anchor和RPN的浅薄理解(二)-mmdetection中Anchor参数深层含义及FPN与RPN的联系
看到标题肯定会想到mmdecection配置文件中下面三个参数,在训练时这三个参数是需要根据数据集和不同的网络结构进行调整的,开门见山:anchor_scales=[8]anchor_ratios=[0.5, 1.0, 2.0]anchor_strides=[4, 8, 16, 32, 64]anchor_scales:Anchor的基础尺寸的缩放比例,是控制Anchor大小最重要的参数。Anchor的基础尺寸在代码中与anchor_strides的数值相等,它代表着特征图中每一个点对应原始图原创 2022-02-05 12:59:01 · 9807 阅读 · 0 评论 -
Yolov5 win10平台下的C++推理及Tensorrt部署 篇三 (共三篇)
在篇二中通过数十个步骤在没有CMakeLists.txt的前提下,通过自己创建的VS工程成功实现了yolov5的C++推理代码的编译工作。接下来就是生成tensorRT的.engine权重和实现推理。步骤一:打开篇二中自己定义的VS项目的输出目录,输入cmd并回车。 步骤二:生成.engine权重文件。执行以下命令(参数分别为:Yolov5 - 4.0模型权重所在路径;转换后的模型名称;yolov5的模型大小,有s/m/l/x): infer_pro.exe -s ../../../m.原创 2022-01-24 17:44:12 · 11952 阅读 · 0 评论 -
Yolov5 win10平台下的C++推理及Tensorrt部署 篇二 (共三篇)
在篇一中得到了.wts权重并下载了博主提供的各种库文件和cpp文件后,就可以创建我们的VS工程了。由于网上现存的部分教程需要我们创建CMakeLists.txt并用CMake编译,而有些小伙伴对这一块并不熟悉。那么接下来博主就带大家按照最传统的方法生成yolov5的VS工程。注意:在安装VS2019的时候一定要勾选红框项,否则编译时会报错(博主打勾的尽量也都装上,防止出现意外的报错。打勾以外的依赖可以不用装):步骤一:在VS2019中创建C++空项目,并将篇一下载的tensorrtx-.原创 2022-01-24 17:24:18 · 10056 阅读 · 14 评论 -
Yolov5 win10平台下的C++推理及Tensorrt部署 篇一 (共三篇)
为什么用Yolov5而不用其他的网络:目标检测项目落地一般都是用Yolov5和YoloR来做。其一是因为精度速度确实比较牛逼,其二是因为这两个网络相对于其他的先进网络有较为成熟的C++推理方案。 因为要在Win10下部署,Linux的一些方案就不能拿来用。比如YOLOX尽管可以用C++推理,但将其pth权重转为TensorRT的engine权重却会存在问题,因为TensorRT的5.0-7.0版本只支持Linux系统。温馨提示:我们的部署版本是Yolov5 - 4.0,Yolov5 - 5.0或6.原创 2022-01-23 17:22:24 · 11303 阅读 · 2 评论 -
Yolov5 windows下的环境搭建及训练
说明:此环境可以和Yolov5-3.0、4.0、5.0、6.0、YoloX等网络共享。首先下载博主为大家提供的yolov5-4.0的安装包:链接:https://pan.baidu.com/s/1fqB9d9LDK7cH3HUADW_9NA 提取码:kiek需要的基础依赖:vs2019,cuda11.1,cudnn11.3、anaconda(不用多说)。cudnn11.3的下载链接:链接:https://pan.baidu.com/s/1LRcrRNn3JnIUwDF7h9KEmA原创 2022-01-23 14:42:29 · 9899 阅读 · 2 评论