- 博客(79)
- 资源 (1)
- 收藏
- 关注
原创 windows下安装Visual Studio + CMake+OpenCV + OpenCV contrib+TensorRT
最近在研究windows系统上部署安装目标检测算法,需要用到OpenCV软件,因为OpenCV可能是目前使用最广泛的开源图像处理工具了,尤其是在科研领域。于是,本篇博客主要详细记录一下如何在Windows 操作系统下,搭建Visual Studio 2022+OpenCV4.5.5+OpenCV contrib4.5.5的运行环境。安装Visual Studio比较简单,首先去Visual Studio官网下载安装包下载Community版本就可以了,其功能已经够用了。
2023-06-27 08:29:55
1022
原创 优化改进YOLOv5算法之针对小目标检测优化YOLOv5_Face2(超详细)
本文主要参考YOLO-FaceV2这个文章,该文章为了解决人脸检测中小目标、遮挡等问题,在YOLOv5算法的基础提出了几点改进,且取得了比较不错的效果。
2023-06-17 23:27:35
1358
原创 优化改进YOLOv5算法之添加Res2Net模块(超详细)
由于单独的Res2Net模块对于整体网络结构没有特定的要求,Res2Net模块的多尺度表示能力也和CNN的分层特征聚合模型彼此独立,所以可以很容易地将Res2Net模块集成到现有的其他优秀CNN模型中。模块内部的连接形式与残差网络(ResNet)类似,故命名为Res2Net。在本文中,研究人员在一个单个残差块内构造分层的残差类连接,为CNN提出了一种新的构建模块,即Res2Net——以更细粒度(granular level)表示多尺度特征,并增加每个网络层的感受野(receptive fields)范围。
2023-04-21 17:28:42
1957
2
原创 优化改进YOLOv5算法之改进用于微小目标检测的Normalized Gaussian Wasserstein Distance模块(超详细)
改进YOLOv5系列:全新改进用于微小目标检测的 Normalized Gaussian Wasserstein Distance
2023-03-16 09:40:54
2036
1
原创 优化改进YOLOv5算法之添加GIoU、DIoU、CIoU、EIoU、Wise-IoU模块(超详细)
IoU 的全称为交并比(Intersection over Union),通过这个名称我们大概可以猜到 IoU 的计算方法。IoU 计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。计算过程如下:其中,绿色面积代表预测框B与真实框A的交集;则显而易见,IOU的值越高也说明预测框与真实框重合程度越高,代表模型预测越准确,反之,IOU越低模型性能越差。
2023-03-10 09:56:49
3779
1
原创 优化改进YOLOv5算法之Wise-IOU损失函数
边界框回归(BBR)的损失函数对于目标检测至关重要。它的良好定义将为模型带来显著的性能改进。大多数现有的工作假设训练数据中的样本是高质量的,并侧重于增强BBR损失的拟合能力。如果盲目地加强低质量样本的BBR,这将危及本地化性能。Focal EIoU v1被提出来解决这个问题,但由于其静态聚焦机制(FM),非单调FM的潜力没有被充分利用。基于这一思想,作者提出了一种基于IoU的损失,该损失具有动态非单调FM,名为Wise IoU(WIoU)。
2023-02-18 23:13:25
4965
原创 YOLOv8来啦 | 详细解读YOLOv8的改进模块!YOLOv5官方出品YOLOv8!
直接上YOLOv8的结构图吧,小伙伴们可以直接和YOLOv5进行对比,看看能找到或者猜到有什么不同的地方?YOLOv8网络结构图Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;PAN-FPN。
2023-01-09 10:26:26
22283
9
原创 优化改进YOLOv5算法之添加SE、CBAM、CA模块(超详细)
本文主要是在YOLOv5算法中加入SE、CBAM和CA注意力机制模块,通过实验验证对比,加入CBAM和CA注意力机制后的效果均有所提升
2023-01-04 22:28:56
7167
20
原创 YOLOv5实战之输电线路绝缘子缺陷检测识别
本教程主要是利用YOLOv5算法实现对输电线路绝缘子缺陷进行检测识别。通过无人机搭载相机头云台对输电线路上的绝缘子进行数据采集,挑选出绝缘子上有故障的图片数据,共2000张左右图片,输电线路绝缘子缺陷数据集中的部分图片如下图所示。对收集到的2000张左右绝缘子缺陷数据集进行数据标注, 标注了3种常见的绝缘子缺陷类型:insulator、damaged、Flashover,利用LabelImg标注软件对数据进行标注,对标注后的数据进行统计,3种缺陷的标签分布情况如下图所示。
2022-10-29 10:20:27
4510
24
原创 卷积神经网络之深度可分离卷积(Depthwise Separable Convolution)
移动端设备的硬件性能限制了神经网络的规模。本文尝试解释一种被称为Depthwise Separable Convolution的卷积运算方式。它将传统卷积分解为Depthwise Convolution与Pointwise Convolution两部分,有效的减小了参数数量。卷积神经网络在图像处理中的地位已然毋庸置疑。卷积运算具备强大的特征提取能力、相比全连接又消耗更少的参数,应用在图像这样的二维结构数据中有着先天优势。
2022-10-15 13:45:56
738
原创 万字长文详解目标检测算法,超大超全(2022最新)
基于深度神经网络的目标检测器不断发展,并用于多种应用,每个应用都有自己的一组要求。安全关键型的应用程序需要高精度和可靠性,而低延迟的任务需要节约资源的神经网络结构。实时目标检测器在有高影响力的现实世界应用中是必不可少的,并不断有新方法提出,但它们过分强调精度和速度上的改进,而忽略了其他方面,如多功能性、鲁棒性、资源和能源效率。现有网络的参考基准不存在,新网络设计的标准评估指南也不存在,这导致比较模棱两可和不一致。
2022-09-16 16:39:48
9268
1
原创 目标检测算法YOLOv1原理与实现
当我们谈起计算机视觉时,首先想到的就是图像分类,没错,图像分类是计算机视觉最基本的任务之一,但是在图像分类的基础上,还有更复杂和有意思的任务,如目标检测,物体定位,图像分割等,见图1所示。其中目标检测是一件比较实际的且具有挑战性的计算机视觉任务,其可以看成图像分类与定位的结合,给定一张图片,目标检测系统要能够识别出图片的目标并给出其位置,由于图片中目标数是不定的,不仅要检测出目标的位置且要给出目标所属类别,因此目标检测相比分类任务更复杂。
2022-09-01 23:09:05
847
原创 Meta Faster R-CNN:基于注意力特征对齐的小样本目标检测
论文标题:Meta Faster R-CNN: Towards Accurate Few-Shot Object Detection with Attentive Feature Alignment论文链接:https://arxiv.org/abs/2104.077191 出发点 & 创新点1.1 出发点以往的方法使用基于base类数据训练得到的 RPN 去生成 novel 类的候选框,这样做会错过一些新类的高 IoU 框,因为在 RPN 训练中,novel 类框被视为 ba
2022-03-29 10:38:35
5779
原创 神经网络轻量化改进之CNN架构设计
卷积神经网络架构设计,又指backbone设计,主要是根据具体任务的数据集特点以及相关的评价指标来确定一个网络结构的输入图像分辨率,深度,每一层宽度,拓扑结构等细节。公开发表的论文大多都是基于ImageNet这种大型的公开数据集来进行的通用结构设计,早期只以其分类精度来证明设计的优劣,后来也慢慢开始对比参数量(Params)和计算量(FLOPs),由于ImageNet的数据量十分巨大且丰富,所以通常在该数据集上获得很好精度的网络结构泛化到其他任务性能也都不会差。但在很多特定任务中,这种通用的结构虽然效果还可
2022-03-25 17:21:59
1857
1
原创 RCNN、Fast RCNN、Faster RCNN算法详细介绍
目标检测是深度学习的一个重要应用,就是在图片中要将里面的物体识别出来,并标出物体的位置,一般需要经过两个步骤:1、分类,识别物体是什么2、定位,找出物体在哪里除了对单个物体进行检测,还要能支持对多个物体进行检测,如下图所示:这个问题并不是那么容易解决,由于物体的尺寸变化范围很大、摆放角度多变、姿态不定,而且物体有很多种类别,可以在图片中出现多种物体、出现在任意位置。因此,目标检测是一个比较复杂的问题。最直接的方法便是构建一个深度神经网络,将图像和标注位置作为样本输入,然后经...
2022-03-22 09:37:13
7469
原创 卷积神经网络(CNN)原理详解
这几年深度学习快速发展,在图像识别、语音识别、物体识别等各种场景上取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动。在这场深度学习革命中,卷积神经网络(Convolutional Neural Networks,简称CNN)是推动这一切爆发的主力,在目前人工智能的发展中有着非常重要的地位。【问题来了】那什么是卷积神经网络(CNN)呢?1、什么是神经网络?这里的神经网络,也指人工神经网络(Artificial..
2022-03-21 16:49:51
30477
15
原创 PyTorch 深度学习:60分钟快速入门
1 张量1.1 PyTorch是什么?pytorch是基于Python的科学计算包,服务于以下两种场景:作为NumPy的替代品,可以使用GPU的强大计算能力 提供最大的灵活性和高速的深度学习研究平台1.2Tensors(张量)Tensors与Numpy中的 ndarrays类似,但是在PyTorch中 Tensors 可以使用GPU进行计算.from __future__ import print_functionimport torch创建一个 5x3 矩阵, 但是未初始.
2021-12-11 23:26:44
2293
1
原创 注意力机制——Coordinate Attention
目录摘要1 介绍2 相关工作2.1 Mobile Network2.2 注意力机制3 Coordinate Attention3.1 Revisit SE Block3.1.1 Squeeze3.1.2 Excitation3.1.3 为什么SE Block不好?3.2 Coordinate Attention Block3.2.1 Coordinate信息嵌入3.2.2 Coordinate Attention生成4. 实验4.1 消融实验.
2021-12-08 13:41:21
32602
9
原创 python-RabbitMQ教程6—远程过程调用(RPC)
Remote procedure call (RPC)在第二个教程中,我们学习了如何使用工作队列(Work Queues)在多个工作人员之间分配耗时的任务。但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,那是另一回事了。这种模式通常称为远程过程调用或RPC。在本教程中,我们将使用RabbitMQ构建一个RPC系统:一个客户端和一个可扩展的RPC服务器。由于我们没有任何值得分配的耗时任务,我们将创建一个返回斐波那契数列的虚拟RPC服务。客户端界面为了说明如何使用RPC服务,我们将创
2021-12-01 09:28:37
654
原创 python-RabbitMQ教程5—主题交换机
在之前的教程中,我们改进了logging system。我们没有使用只能进行虚拟广播的fanoutexchange,而是使用direct exchange,并获得了选择性接收日志的可能性。虽然使用direct exchange改进了我们的系统,但它仍然有局限性——它不能基于多个标准进行路由。在我们的logging system中,我们可能不仅希望根据严重性订阅logs,还希望根据发出logs的源订阅logs。您可能从syslog工具中了解到这个概念,该工具根据严重性 (info/warn/crit...).
2021-12-01 09:09:15
1239
原创 python-RabbitMQ教程4—路由(Routing)
路由-Routing在之前的教程中,我们构建了一个简单的日志系统。我们能够向许多接收器广播日志消息。在本教程中,我们将向其添加一个功能——我们将只订阅消息的一个子集。例如,我们能够仅将关键错误消息定向到日志文件(以节省磁盘空间),同时仍然能够在控制台上打印所有日志消息。绑定在前面的例子中,我们已经在创建绑定。你可能会想起这样的代码:channel.queue_bind(exchange=exchange_name, queue=queue_name
2021-11-30 23:45:53
749
原创 python-RabbitMQ教程3—发布/订阅
Publish/Subscribe在上一个教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务都被交付给一个工作人员。在这一部分,我们将做一些完全不同的事情——我们将向多个消费者传递一条消息。这种模式被称为Publish/Subscribe(“发布/订阅”)。为了说明该模式,我们将构建一个简单的日志系统。它将由两个程序组成——第一个将发出日志消息,第二个将接收并打印它们。在我们的日志系统中,接收器程序的每个运行副本都会收到消息。这样我们就可以运行一个接收器并将日志定向到磁盘;同时我们将能够运
2021-11-30 23:20:37
643
原创 python-RabbitMQ教程2—工作队列
在教程一中,我们编写了向指定队列中发送和消费消息的程序,在这个中,我们将创建一个工作队列(Work Queues),用于在多个工作人员之间分配耗时的任务。工作队列(又名:任务队列)背后的主要思想是避免立即执行资源密集型任务而不得不等待它完成。相反,我们安排任务稍后完成。我们将一个任务封装成一条消息并发送到队列中。在后台运行的工作进程将弹出任务并最终执行作业。当您运行许多工人时,任务将在他们之间共享。这个概念在 web 应用程序中特别有用,因为在短的HTTP请求窗口期间不可能处理复杂的任务。在教程
2021-11-30 17:28:23
1842
原创 python-RabbitMQ教程1—Hello World
简介RabbitMQ简单来说就是一个消息代理,主要负责接受和转发消息。您可以将其视为邮局:当您将要投递的邮件放入邮箱时,您可以确定快递小哥最终会将邮件递送给您的收件人。在这个比喻中,RabbitMQ是一个邮箱、一个邮局和一个信件载体。RabbitMQ和邮局之间的主要区别在于它不处理纸张,而是接受、存储和转发二进制数据块——消息。下面简单介绍一下RabbitMQ和传递一般消息所使用的专业术语,生产无非就是发送。发送消息的程序是生产者:队列是位于 RabbitMQ 中邮箱的名称。尽管消息流
2021-11-30 16:10:59
515
原创 python中的多线程与多进程及其区别
引言对于新手来说,首先要理解线程的概念以及为什么需要采用多线程进行编程。什么是线程呢?网上一般都是这样定义的:线程(thread)是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。是不是听的一脸懵,我觉得这样的定义纯粹是自说自话,新手看完了一脸懵逼。那么我们可以用白话进行解释一下:假如你经营一家物业管理公司。最初,业务量很小,每件事都需要你亲力亲为,给隔壁老王家修完暖气管道,立马再去老李家换灯泡——这叫单线程,所有的工作都得顺序执行; 后来业务拓展了,你雇佣了几个工
2021-11-24 17:22:16
1713
原创 解决YOLOv5算法中的中文标签显示问题
在前面的文章中已经详细介绍了在本机上安装YOLOv5的教程,安装YOLOv5可参考前面的文章YOLOv5训练自己的数据集(超详细)1. 遇到的问题 数据集中的标签是中文,在训练YOLOv5算法时,matplotlib库无法显示中文2. 解决方法 在yolov5/utils/plots.py文件中手动添加黑体字体,如下图所示依然提示报错:Font family [‘sans-serif’] not found.Falling back to Deja...
2021-10-14 15:30:26
7758
13
原创 YOLOv5实战之PCB板缺陷检测
在前面的文章中已经详细介绍了在本机上安装YOLOv5的教程,安装YOLOv5可参考前面的文章YOLOv5训练自己的数据集(超详细)https://blog.csdn.net/qq_40716944/article/details/118188085一、数据集介绍 本教程主要是利用YOLOv5算法实现对PCB板上的缺陷进行检测识别。使用的DeepPCB缺陷数据集中的所有图像都是从线性扫描CCD获得的,分辨率约为每1毫米48个像素,以上述方式从采样图像中手动检查,测试图像的原始大小约为16...
2021-09-26 13:43:54
16160
36
原创 YOLOv5训练自己的数据集(超详细)
一、准备深度学习环境本人的笔记本电脑系统是:Windows10首先进入YOLOv5开源网址,手动下载zip或是git clone 远程仓库,本人下载的是YOLOv5的5.0版本代码,代码文件夹中会有requirements.txt文件,里面描述了所需要的安装包。本文最终安装的pytorch版本是1.8.1,torchvision版本是0.9.1,python是3.7.10,其他的依赖库按照requirements.txt文件安装即可。...
2021-09-23 22:18:52
91155
71
原创 YOLOX训练自己的数据集(超详细)
目录一、YOLOX安装1、下载GitHub上的代码2、安装yolov5所需要的依赖环境(1)、安装代码依赖的库文件(2)、通过setup.py安装一些库文件(3)、安装apex文件二、YOLOX训练自己的数据集1、数据集预处理2、修改代码(1)、将yolox/data/datasets/voc_classes.py中的标签信息,进行修改。(2)、修改类别数量(3)、修改训练集信息(4)、修改exps/exa...
2021-09-22 11:28:26
64852
74
原创 工业产品表面缺陷检测方法——综述
摘要制造业的全面智能化发展对工业产品的质量检测提出了新的要求。本文总结了机器学习方法在表面缺陷检测中的研究现状,表面缺陷检测是工业产品质量检测的关键部分。首先,根据表面特征的用途,从纹理特征、颜色特征、形状特征三个方面总结了传统机器视觉表面缺陷检测方法在工业产品表面缺陷检测中的应用。其次,从监督法、无监督法、弱监督法三个方面论述了近年来基于深度学习技术的工业产品表面缺陷检测的研究现状。然后,系统总结了工业表面缺陷检测中常见的关键问题及其解决方法;关键问题包括实时问题、小样本问题、小目标问...
2021-09-03 14:03:26
32305
5
翻译 YOLOX:新一代目标检测性能速度担当!
paper:https://arxiv.org/abs/2107.08430code:https://github.com/Megvii-BaseDetection/YOLOX本文是旷视科技在目标检测方面的最新技术总结,同时也是CVPR2021自动驾驶竞赛冠军方案的技术总结。本文将近两年来目标检测领域的各个角度的优秀进展与YOLO进行了巧妙地集成组合(比如解耦头、数据增广、标签分配、Anchor-free机制等)得到了YOLOX,性能取得了大幅地提升,同时仍保持了YOLO系列一贯地...
2021-07-21 09:10:13
6758
1
原创 目标检测之R-CNN
R-CNN(region with CNN feature)于13年被Ross Girshick(江湖人称RBG大神)提出,是使用深度学习进行目标检测的里程碑式的工作,可以说这项工作很大程度推动了深度学习在目标检测中的应用。一、动机及解决的问题 1、与分类任务不同,目标检测需要框出指定的区域,有相关paper直接使用回归的方法得到区域的位置,但实际应用起来效果并不好;另外,有方法直接使用滑窗加深度学习的方法,不过这一类方法通常网络层次并不深,主要考虑到的是一旦网络层次加深,最后输出的特征...
2021-03-23 10:43:05
676
原创 YOLO系列详解:YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5、YOLOv6、YOLOv7
一、前言YOLO系列是one-stage且是基于深度学习的回归方法,而R-CNN、Fast-RCNN、Faster-RCNN等是two-stage且是基于深度学习的分类方法。YOLO官网:https://github.com/pjreddie/darknet1.1 YOLO vs Faster R-CNN1、统一网络:YOLO没有显示求取region proposal的过程。Faster R-CNN中尽管RPN与fast rcnn共享卷积层,但是在模型训练过程中,需要反复训练RPN网络和fa
2021-03-22 16:50:01
110565
11
原创 win10下Google Chrome 打不开网页的解决方案
win10下Google Chrome 打不开网页的解决方案首先:谷歌浏览器右键打开属性,在箭头所指的位置复制粘贴-no-sandbox。(需要空一格再写入-no-sandbox)其次:你打开谷歌浏览器可以看到如下提醒,提醒你,稳定性和安全性会有所下降,但表担心,只要能打开浏览器就很惊喜了!剩下的问题就很好解决了 !!点击右上角的三个点---》点击设置---》拖到最下边高级设置---》再拖到最下边重置---》完美最后,打开浏览器就可以用了...
2021-01-11 14:24:29
12032
4
原创 ubuntu16.04下编译安装OpenCV3.4.5步骤(超详细)
一、OpenCV3.4.5的编译过程1、首先在OpenCV官网上下载OpenCV3.4.5的source版本2、 将下载下来的压缩包进行解压unzip opencv-3.4.5.zip3、进入opencv-3.4.5文件夹并安装相应的依赖库cd opencv-3.4.5sudo apt-get updatesudo apt-get install cmakesudo apt-get install build-essential libgtk2.0-dev libavcod
2020-10-15 14:46:07
2096
2
原创 PyTorch学习:二、Autograd(自动求导)
一、Autograd: 自动求导(automatic differentiation)PyTorch 中所有神经网络的核心是autograd包.我们首先简单介绍一下这个包,然后训练我们的第一个神经网络.autograd包为张量上的所有操作提供了自动求导.它是一个运行时定义的框架,这意味着反向传播是根据你的代码如何运行来定义,并且每次迭代可以不同.接下来我们用一些简单的示例来看这个包:张量(Tensor)torch.Tensor是包的核心类。如果将其属性.requires_grad设置为T
2020-08-04 17:24:50
1583
原创 PyTorch学习:一、PyTorch是什么?
一、PyTorch 是什么他是一个基于Python的科学计算包,目标用户有两类为了使用GPU来替代numpy 一个深度学习研究平台:提供最大的灵活性和速度开始张量(Tensors)张量类似于numpy的ndarrays,不同之处在于张量可以使用GPU来加快计算from __future__ import print_functionimport torch构建一个未初始化的5*3的矩阵:x = torch.Tensor(5, 3)print(x)输出:tensor
2020-08-04 16:35:06
520
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人