- 博客(58)
- 收藏
- 关注
原创 【香橙派开发板测试】:在黑科技Orange Pi AIpro部署YOLOv8深度学习纤维分割检测模型
为AI而生”深圳市迅龙软件有限公司成立于2005年,是全球领先的开源硬件、开源软件及智能产品品牌商,致力于让全世界每个极客、创客、电子爱好者享用来自中国的优质、低价的开源产品及智能产品,拓展无限可能,通过大规模的社会化协作去创建一个更加美好的信息化人类文明。目前迅龙业务遍及美国、英国、意大利、俄罗斯、日本、南非、东南亚等100多个国家和地区。香橙派的Orange Pi AIpro是一款专为人工智能(AI)应用开发设计的高性能开发板。
2024-07-20 16:27:35 1522
原创 【YOLOv5改进系列(12)】高效涨点(强推!!!)----使用BiFPN特征融合方式替换yolov5中的PANet网络
BiFPN即“双向特征金字塔网络”,是一种常用于计算机视觉任务,特别是目标检测和实例分割的神经网络架构。它扩展了特征金字塔网络(FPN),通过在金字塔级别之间引入双向连接,使信息能够在网络中同时进行自底向上和自顶向下的流动。特征金字塔生成:最初,网络通过从骨干网络(通常是ResNet等卷积神经网络)的多个层中提取特征来生成特征金字塔。双向连接:与传统FPN不同,BiFPN在特征金字塔相邻级别之间引入了双向连接。
2024-05-12 23:38:45 2396
原创 EfficientNet网络结构详细解读+SE注意力机制+pytorch框架复现
在前一篇博客当中已经详细解读了EfficientNet论文中的相关工作和实验,该论文是为了让调节网络的深度、宽度、输入scale达到一个合适的比例,以此让网络的特征提取部分达到最好的效果。但是在原论文当中其实是没有详细介绍网络结构搭建,这篇博客也是对EfficientNet网络结构进行深度详细剖析,详细介绍该网络中用到的SE注意力机制深度可分离卷积以及MBconv结构,并且使用pytorch框架进行复现。
2024-05-12 20:47:49 4386
原创 【论文精读】EfficientNetv1:卷积神经网络模型缩放的再思考(Rethinking Model Scaling for Convolutional Neural Networks)
卷积神经网络(ConvNets)通常是在固定的资源预算下开发的,如果有更多的资源可用,则会扩大规模以获得更好的准确性。在本文中,我们系统地研究了模型缩放,并确定仔细平衡网络深度、宽度和分辨率可以带来更好的性能。基于这一观察,我们提出了一种新的缩放方法,使用简单但高效的复合系数均匀缩放深度/宽度/分辨率的所有维度。我们证明了这种方法在扩展MobileNets和ResNet上的有效性。
2024-05-03 22:33:11 1550 1
原创 【yolov5小技巧(2)】---将yolov5中的特征图以热力图的方式进行可视化
在论文中我们经常可以见到提取的物体特征以热力图的形式展示出来,首先我们要了解为什么要将特征图以热力图的形式进行可视化,将特征图以热力图的方式进行可视化在深度学习中有几个重要的原因:强调激活区域:热力图可以帮助我们直观地理解哪些区域对于模型的决策是最重要的。通过热力图,我们可以看到特征图中哪些区域具有较高的激活值,从而了解模型对于不同特征的关注程度。可视化激活模式:热力图可以展示模型在特定任务或数据集上学到的激活模式。
2024-04-15 21:17:59 3455
原创 【YOLOv5改进系列(11)】高效涨点----添加soft-nms(IoU,GIoU,DIoU,CIoU,EIoU,SIoU)到yolov5中
目前yolov5使用的是NMS进行极大值抑制,本篇文章是要将soft-nms添加到yolov5中,同时可以使用不同的IOU进行预测框处理,在看本文之前强烈推荐看一下改进系列(1)和(2)这两个讲了的相关概念,以及如何使用不同的Iou替换掉yolov5中的CIOU。我自己也在钢轨表面疵点数据集进行测试,发现效果还是有一些,但是训练速度比较慢,可能是pytorch自带的nms底层代码做了优化所以速度会比较快,因此训练的时候不建议用,在使用val.py进行模型推理的时候可以使用soft-nms。
2024-04-01 23:25:28 2778 2
原创 【yolov5小技巧(1)】---可视化并统计目标检测中的TP、FP、FN
在目标检测过程中,看F1置信度分数,依旧map@0.5或者AP、recall这些评估指标虽然可以很简单粗暴的看出模型训练的一个性能,但是缺无法直观的看出究竟哪一点提升了,然而这些品估指标都是通过TP、FP、FN进行计算的,如果能够直观的看见哪些目标是TP、FP、FN,那么在实验过程中就能知道自己改进的网络对哪些目标是有提升效果的。所以这个文章将手把手带你如何可视化自己数据集中的TP、FP、FN,帮助你更直观的感受自己网络究竟在改进在哪些方面。
2024-03-31 23:33:58 1795 5
原创 【YOLOv5改进系列(10)】高效涨点----将CAM(上下文增强模块)添加到Neck特征融合模块当中
在yolov5改进系列[9]里面我是已经将CAM模块替换掉了backbone最后一层的SPPF模块,经过实验可以得出,在我自己的钢轨表面疵点数据集上使用adaptive连接方式涨点效果最优map@0.5提升了7个百分点。后来发现在Neck特征融合部分也能添加CAM模块这里就在PANet的stage=1/32concat特征融合之前添加CAM模块进行处理。
2024-03-31 22:21:48 1579
原创 【论文精读】CAM:基于上下文增强和特征细化网络的微小目标检测
微小的物体由于其低分辨率和小尺寸而很难被探测到。微小目标检测性能差的主要原因是网络的局限性和训练数据集的不平衡性。提出了一种结合上下文增强和特征细化的新型特征金字塔网络。将多尺度展开卷积的特征从上到下融合注入到特征金字塔网络中,补充上下文信息。引入通道和空间特征细化机制,抑制多尺度特征融合中的冲突形成,防止微小目标淹没在冲突信息中。此外,提出了一种数据增强方法copy-reduce-paste,该方法可以增加训练过程中微小对象对损失的贡献,保证训练更加均衡。
2024-03-30 23:04:43 1739
原创 【YOLOv5改进系列(9)】高效涨点----使用CAM(上下文增强模块)替换掉yolov5中的SPPF模块
CAM(上下文增强模块)这个模块是出至于这篇论文,这是一个针对小目标检测的文本,提出了一种名为“上下文增强和特征细化网络”的方法。将多尺度展开卷积的特征从上到下融合注入到特征金字塔网络中,补充上下文信息。引入通道和空间特征细化机制,抑制多尺度特征融合中的冲突形成,防止微小目标淹没在冲突信息中。此外,提出了一种数据增强方法,该方法可以增加训练过程中微小对象对损失的贡献,保证训练更加均衡。
2024-03-30 22:49:28 3311 11
原创 【YOLOv5改进系列(8)】高效涨点----添加yolov7中Aux head 辅助训练头
auxiliary head辅助训练头是出至yolov7论文,这两天都在研究如何能够将v8和v7的一些模块添加到yolov5中,添加 Aux head 的主要原因是让网络中间层学到更多信息,有更丰富的梯度信息帮助训练。这里要注意,好的梯度信息能够让相同参数量的网络学的更好。这里的yolov5除了添加了辅助训练头,而且还进行了改进,将之前的OTA最优传输也添加进来,用于优化标签分配策略,添加之后我感觉训练损失慢了5倍不止,但是收敛效果和识别精度要提高了不少。
2024-03-29 22:51:18 2268 1
原创 【YOLOv5改进系列(7)】高效涨点----使用yolov8中的C2F模块替换yolov5中的C3模块
🚀这里解释一下为什么要使用yolov8中的C2F模块替换yolov5中的C3模块,可能在大家印象当中最新的模型要比旧的模型性能要好,其实博主在训练不同数据集的时候会发现yolov5的检测性能可能会优于v7甚至v8,因为目前大部分的目标检测模型都是在coco数据集上进行训练,然后再与旧的模型进行比较,如果只看在coco数据集上的表现确实v7、v8是要优于v5的,但是在自己数据集上面训练可能就是另外一种结果,所以可以尝试将不同模型的不同模块进行融合,试一试训练效果。
2024-03-29 21:17:20 5841 3
原创 【YOLOv5改进系列(6)】高效涨点----使用DAMO-YOLO中的Efficient RepGFPN模块替换yolov5中的Neck部分
DAMO-YOLO是阿里巴巴达摩院在2022年提出的一种模型,其实在当时yolov5和v6已经出来了,并且也有部分实时监测比较好的算法模型
2024-03-28 20:58:50 1503
原创 【论文精读】DAMO-YOLO:兼顾速度与精度的高效目标检测框架( A Report on Real-Time Object Detection Design)
DAMO-YOLO是阿里巴巴达摩院在2022年提出的一种模型,这里建议大家可以直接看4.3部分的特征网络融合部分,该网络是在GFPN特征网络上进行改进的,因为GFPN有很多上采样操作并且并行化比较低,导致了Flops高效Latency低效;因为我使用该方法去替换了yolov5中Neck部分的PANet融合方法,确实有所涨点
2024-03-28 17:19:40 3050
原创 【YOLOv5改进系列(5)】高效涨点----添加密集小目标检测NWD方法
检测微小物体是一个非常具有挑战性的问题,因为微小物体仅包含几个像素大小。由于缺乏外观信息,最先进的探测器在微小物体上无法产生令人满意的结果。在此之前也有不少研究者发现了IOU度量对于微小物体的偏差非常敏感,也提出了不少改进,像DIOU、GIOU、CIOU、等等,但是都是基于位置去判断两个框的距离和相似度,依旧无法解决小物体的位置敏感问题。为此武汉大学的一些研究人员将边界框建模为 2D 高斯分布,然后提出一种称为归一化 Wasserstein 距离(NWD)的新度量,以通过相应的高斯分布计算它们之间的。
2024-03-27 18:56:10 2466
原创 【论文精读】NWD:一种用于微小目标检测的归一化高斯Wasserstein距离(A Normalized Gaussian Wasserstein Distance for Tiny Object )
检测微小物体是一个非常具有挑战性的问题,因为微小物体仅包含几个像素大小。我们证明,由于缺乏外观信息,最先进的探测器在微小物体上无法产生令人满意的结果。我们的主要观察结果是,基于IoU (Intersection over Union)的度量(如IoU本身及其扩展)对微小物体的位置偏差非常敏感,并且在基于锚点的检测器中使用时会大大降低检测性能。
2024-03-27 16:09:17 3967
原创 【YOLOv5改进系列(4)】高效涨点----添加可变形卷积DCNv2
目前可变形卷积一共有4个版本,分别是DCNv1~DCNv4,在本文中使用的是带有可变形卷积DCNv2的方法替换yolov5-v6.0版本中的C3模块。本次使用的数据集是热轧钢带的六种典型表面缺陷数据集,通过在backbone的不同位置添加可变形卷积进行训练,经过实验测试结果,最后的map@0.5提高了近5个百分点。
2024-03-25 20:54:50 3196 19
原创 【论文精读】DCNv1:可变形卷积网络和可变形ROI池化(Deformable Convolutional Networks)
卷积神经网络(CNN)由于其构建模块中的固定几何结构而固有地限于模型几何变换。在这项工作中,我们引入了两个新的模块来增强CNN的变换建模能力,即可变形卷积和可变形RoI池化。两者都是基于这样的想法,即在模块中增加额外的偏移量并从目标任务中学习偏移量,而无需额外的监督。新的模块可以很容易地取代现有CNN中的普通模块,并且可以通过标准的反向传播很容易地进行端到端的训练,从而产生可变形的卷积网络。大量的实验验证了我们的方法的性能。
2024-03-25 17:20:28 1600 1
原创 【YOLOv5改进系列(3)】高效涨点----Optimal Transport Assignment:OTA最优传输方法
Optimal Transport Assignment最优传输方法是在21年提出来的,主要用于密集物体检测,本次使用的数据集是热轧钢带的六种典型表面缺陷数据集,因为我使用的图像数据集的物体不够密集,虽然有所涨点,但是涨点并没有原论文中效果那么好,并且在训练过程中会发现使用最优传输方法的计算量比较大,使用同一个数据集训练,训练时间大约是正常训练的3倍。
2024-03-21 15:54:52 1293
原创 【论文精读】OTA: Optimal Transport Assignment for Object Detection(物体探测的最优传输分配)
目标检测中标签分配的最新进展主要是寻求为每个真实(gtgtgt)目标独立定义正/负训练样本。在本文中,我们创新地从全局的角度重新审视标签分配问题,并提出将分配过程制定为最优运输(OT)问题—优化理论中一个被广泛研究的主题。具体来说,我们将每对需求者(anchoranchoranchor)和供应者(gtgtgt)之间的单位运输成本。
2024-03-21 12:09:32 1276
原创 【YOLOv5改进系列(2)】高效涨点----Wise-IoU详细解读及使用Wise-IoU(WIOU)替换CIOU
在上一篇文章使用了EIoU、Alpha-IoU、SIoU、Focal-EIOU替换yolov5中默认的CIou损失,发现Focal-EIOU对于钢轨表面缺陷识别的提升效果最好,将map@0.5提升到了81.1%,这节使用Wise-IoU的三个版本(分别是v1、v2、v3)去替换CIOU损失,来观察不同类别的map@0.5变化。其中使用Wise-IoU v1方法将钢轨表面缺陷数据集的map@50从77.9%提升到了86.3%,将近提升了10个百分点。
2024-03-19 19:57:10 7668 8
原创 【YOLOv5改进系列(1)】高效涨点----使用EIoU、Alpha-IoU、SIoU、Focal-EIOU替换CIou
YOLOv5使用的默认边界框回归损失是CIou,在CVPR上等相关论文作者提出了等边界框回归损失计算方法,经过实验证明,使用这些方法对于数据集"涨点"有一定的帮助,在后面测试过程中使用的是由东北大学(NEU)发布的表面缺陷数据库,收集了热轧钢带的六种典型表面缺陷,即轧制氧化皮(RS),斑块(Pa),开裂(Cr),点蚀表面( PS),内含物(In)和划痕(Sc)。该数据库包括1,800个灰度图像:6种不同类型的典型表面缺陷,每一类缺陷包含300个样本。
2024-03-19 16:13:42 2628 1
原创 目标检测---IOU计算详细解读(IoU、GIoU、DIoU、CIoU、EIOU、Focal-EIOU、SIOU、WIOU)
常见的一些边界框回归IOU损失函数原理与代码实现。
2024-03-17 17:35:20 14179
原创 yolov5-v6.0详细解读
YOLOv5目前有YOLOv5n、YOLOv5s、YOLOv5m、YoLOv5l、YOLOv5x五个版本。这五个版本在网络结构上是没有区别的,唯一的区别就是网络的宽度和深度不一样,在这5个版本的配置文件里面是通过设置不同的depth_multiple和width_multiple来控制网络的大小。其中depth_multiple控制网络的深度(BottleneckCSP数),width_multiple控制网络的宽度(卷积核数量)。
2024-03-13 17:18:51 5220
原创 目标检测评估指标
大家在看目标检测论文的时候,经常会遇到mAP@0.5或者mAP@[0.5:0.95]和精度等等评估指标,自己最开始在发论文的时候对这些品估指标也总是会产生惯性思维,导致很多概念会混淆,所以也是查阅很多文献和博客去理解,但是很多博主讲的其实也不够通俗,比较偏概念化,最后将自己的理解和查阅到的内容整理了一下并列举相关例子便于大家理解。mAP@0.5,这种形式表示在IOU阈值为0.5的情况下,mAP的值为多少。指的是被分配为负样本,而且分配对了的样本,代表的是被正确分类的负样本,在mAP评价指标中不会使用到。
2024-03-06 11:21:52 2449
原创 YOLOv3:算法与论文详细解读
YOLOv3是YOLO系列目标检测算法的第三个版本,由Joseph Redmon和Alexey Bochkovskiy于2018年发布。在YOLOv2的基础上进行了改进,引入了一系列的变化以提高检测性能。在该论文中最主要的就是需要去理解它的网络结构,像残差链接、多尺度训练这两块内容,因为在原论文中相关细节其实说的并不清楚,所以自己在网上查阅了很多相关资料才能理解网络的设计思路与详细细节。
2024-01-19 20:28:20 4630
原创 yolo9000:Better, Faster, Stronger的目标检测网络
YOLOv2相对v1版本,在继续保持处理速度的基础上,从预测更准确(Better),速度更快(Faster),识别对象更多(Stronger)这三个方面进行了改进。其中识别更多对象也就是扩展到能够检测9000种不同对象,称之为YOLO9000。
2024-01-18 20:26:14 1271
原创 yolov1:背景介绍与算法精讲
yolo最开始是在2015年提出的,该论文发表在cvpr2016上,至今为止已经更新迭代到了v8版本,如果想要真正理解yolo算法思想,还是需要仔细阅读yolov1论文。
2024-01-15 17:32:40 1523
原创 pytorch12:GPU加速模型训练
我们在模型训练当中想要提高训练速率,需要在以下三个地方添加gpu将模型放到gpu上:resnet18_ft.to(device)训练过程中数据: inputs, labels = inputs.to(device), labels.to(device)验证过程中数据: inputs, labels = inputs.to(device), labels.to(device)
2024-01-11 22:02:20 1353 2
原创 pytorch10:正则化(weight_decay、dropout、Batch Normalization)
减少过拟合:通过对模型参数施加惩罚,使模型更倾向于选择简单的参数配置,减少对训练数据中噪声和细节的过度拟合,从而提高模型在测试集或新数据上的表现。提高泛化能力:正则化方法有助于提高模型对未见过数据的适应能力,使模型更好地适应多样化的输入,从而提高模型的泛化能力。控制模型复杂度:正则化方法可以限制模型的复杂度,防止模型学习过于复杂的特征和模式,使得模型更具有通用性和可解释性。
2024-01-11 11:06:03 1183
原创 pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化
当我们在模型训练过程中想要将部分参数进行可视化,例如:精确度、损失等参数,想通过一个可视化工具实时观察,可以使用tensorboard工具。在使用pytorch进行一些深度学习测试的过程中,首先将生成的数据使用Python脚本进行保存,将数据保存到电脑硬盘当中,然后使用tensorboard将硬盘中的数据绘制成图,在浏览器端展示出来。
2024-01-08 16:40:57 1554
原创 pytorch08:学习率调整策略
我们可以设置学习率逐渐从小变大观察精确度的一个变化,下面这幅图,当学习率为0.055左右的时候模型精确度最高,当学习率大于0.055的时候精确度出现下降情况,所以在模型训练过程中我们可以设置学习率为0.055作为我们的初始学习率。一般在模型训练过程中,在开始训练的时候我们会设置学习率大一些,随着模型训练epoch的增加,学习率会逐渐设置小一些。功能:监控指标,当指标不再变化则调整,例如:可以监控我们的loss或者准确率,当其不发生变化的时候,调整学习率。调整方式:lr = lr * gamma。
2024-01-05 11:15:04 1687
原创 pytorch07:损失函数与优化器
机器学习模型训练有以下几个步骤,优化器是在哪一步开始使用呢?将数据输入到模型当中会得到一个output值,将output值和target目标值放入到损失函数计算损失,损失使用反向传播的方法求出训练过程中每一个参数的梯度,优化器拿到梯度,使用优化策略,减少损失。
2024-01-05 09:01:55 1270
原创 pytorch06:权重初始化
增加tanh激活函数之后,随着网络层的增加,标准差越来越小,从而会导致梯度消失的现象,下面将说明Xavier方法与Kaiming方法是如何解决该问题。观察第二个隐藏层的权值的梯度是如何求取的,根据链式法则,可以得到如下计算公式,会发现w2的梯度依赖上一层的输出值H1;根据1,2,3,可以得出,x,y的方差计算公式,当x,y的期望值都为0的时候,x,y的方差等于x的方差乘以y的方差。主要功能:计算激活函数的方差变化尺度(也就是输入数据的方差/经过激活函数之后的方差)
2024-01-03 16:19:47 1612 1
原创 pytorch05:卷积、池化、激活
卷积层常见概念以及卷积操作;池化层相关概念以及池化相关代码实现;线性层激活函数的作用,以及常见的线性激活函数。
2023-12-29 18:27:49 1386
原创 深度学习seed()函数随机种子详解
seed() 函数用于设置随机数生成器的种子,它在生成随机数时提供了可重复性。这个种子是生成随机数的起始点,相同种子生成的随机数序列是确定性的,也就是说,在相同的种子下,每次生成的随机数序列都是一样的。在很多编程语言和库中,seed() 函数被用于初始化伪随机数生成器。在 Python 中,它常常与 random 模块、numpy 库或者机器学习库(比如 PyTorch、TensorFlow)中的随机数生成相关的函数一起使用。
2023-12-29 10:28:49 11408
原创 pytorch02:数据读取DataLoader与Dataset、数据预处理transform
数据读取DataLoader与Dataset、数据预处理transform
2023-12-27 16:20:12 1668 1
【YOLOv5改进系列(8)】高效涨点-添加yolov7中Aux head 辅助训练头-相关代码
2024-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人