当前位置: 首页 > news >正文

微网站开发哪家好坪山医院网站建设

微网站开发哪家好,坪山医院网站建设,什么是网络管理,郑州网站建设招聘前言 大家好#xff0c;我是Snu77#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进#xff0c;内容持续更新#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本#xff0c;同时修改内容也支持Re…前言 大家好我是Snu77这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进内容持续更新每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本同时修改内容也支持ResNet32、ResNet101和PPHGNet版本其中ResNet为RT-DETR官方版本11移植过来的参数量基本保持一致(误差很小很小)不同于ultralytics仓库版本的ResNet官方版本同时ultralytics仓库的一些参数是和RT-DETR相冲的所以我也是会教大家调好一些参数真正意义上的跑ultralytics的和RT-DETR官方版本的无区别。 欢迎大家订阅本专栏一起学习RT-DETR 一、本文介绍 本文给大家带来的改进机制是最新的损失函数MPDIoUMinimum Point Distance Intersection over Union其是一种新的边界框相似度度量方法。MPDIoU是基于水平矩形的最小点距离来计算的能够综合考虑重叠区域、中心点距离以及宽度和高度的偏差。本文包含完整的修改教程和代码我将其用在我的数据集上成功涨了两个点大家可以将其作为论文的保底存在。 官方链接RT-DETR剑指论文专栏持续复现各种顶会内容——论文收割机RT-DETR 目录 一、本文介绍 二、MPDIoU的机制原理 2.1  问题提出 2.2 MPDIoU的提出 2.3 实验验证 三、MPDIoU、InnerMPDIoU代码  四、MPDIoU、InnerMPDIoU的使用方式 4.1 修改一 4.2 修改二 五、总结 二、MPDIoU的机制原理 ​ 论文地址官方论文地址点击即可跳转 代码地址官方并没有开源的该损失的函数的代码我根据文章内容进行了复现代码块在第三章 ​ 2.1  问题提出 问题提出文章指出在目标检测和实例分割的过程中传统的边界框回归BBR损失函数难以优化预测框和真实框在宽高比相同但具体尺寸不同时的情况下面是描述现有的边界框回归的方法的计算因素总结包括GIoU、DIoU、CIoU和EIoU的计算因素。这些度量方法是用于评估和优化边界框回归模型性能的关键工具。虽然文章没有直接展示下图的内容但它们包括以下几个方面 GIoUGeneralized IoU除了传统的IoU交并比之外GIoU还考虑了边界框之间的包含关系和空间分布。 DIoUDistance IoU在IoU的基础上DIoU还考虑了边界框中心点之间的距离以改进对齐和尺度不一致的情况。 CIoUComplete IoU结合了DIoU的特点并加入了宽高比的考虑进一步提高了对边界框的精确度。 EIoUExpected IoU这是一种更高级的度量方法考虑了预测边界框与真实边界框之间的预期相似度。 文章提出的MPDIoU是在这些现有度量方法的基础上发展起来的旨在通过直接最小化预测框和真实框之间的关键点距离提供一种易于实现的解决方案用于计算两个轴对齐矩形之间的MPDIoU​ ​ 2.2 MPDIoU的提出 MPDIoU的提出为了克服这一挑战文章提出了一种新的边界框相似度度量方法——MPDIoUMinimum Point Distance Intersection over Union。MPDIoU是基于水平矩形的最小点距离来计算的能够综合考虑重叠区域、中心点距离以及宽度和高度的偏差。 下图展示了两种不同的边界框回归结果情况。其中绿色框代表真实的边界框而红色框代表预测的边界框。在这两种情况下传统的损失函数如GIoU、DIoU、CIoU和EIoU计算出的损失值是相同的但是使用MPDIoU方法计算出的损失值却有所不同。这说明传统方法在某些特定情况下可能无法区分不同的预测结果而MPDIoU能更准确地反映预测框和真实框之间的差异。 这个发现突显了MPDIoU在处理边界框回归问题上的优势尤其是在区分具有相同宽高比但不同尺寸或位置的边界框时。MPDIoU通过直接计算预测框和真实框之间的关键点距离提供了更精确的损失度量方法。 ​ 这些因素包括如何在训练阶段通过最小化损失函数来使模型预测的边界框接近其真实边界框。具体来说每个预测的边界框 通过最小化以下损失函数来逼近其真实边界框 其中 是真实边界框的集合而  是回归深度模型的参数。文章中提出的损失函数公式为  2.3 实验验证 实验验证通过在多个数据集如PASCAL VOC、MS COCO和IIIT5k上对YOLACT和YOLOv7等模型的训练和测试文章验证了MPDIoU和LMPDIoU在实际应用中的有效性。实验结果显示这种新的损失函数在多个方面优于传统的损失函数尤其是在处理具有相似宽高比但不同尺寸的边界框时。 下面是一些检测效果对比图  总结文章通过引入MPDIoU(我又将其和Inner的思想结合了在一起形成了InnerMPDIoU双重提高了效果)提供了一种新的视角来优化目标检测中的边界框回归问题同时通过实验验证了其在提高检测模型准确性方面的有效性。 三、MPDIoU、InnerMPDIoU代码  下面代码的使用方式我们看章节四即可。 import numpy as np import torch import math from ultralytics.utils import ops class WIoU_Scale: monotonous: {None: origin v1True: monotonic FM v2False: non-monotonic FM v3}momentum: The momentum of running meaniou_mean 1.monotonous False_momentum 1 - 0.5 ** (1 / 7000)_is_train Truedef __init__(self, iou):self.iou iouself._update(self)classmethoddef _update(cls, self):if cls._is_train: cls.iou_mean (1 - cls._momentum) * cls.iou_mean \cls._momentum * self.iou.detach().mean().item()classmethoddef _scaled_loss(cls, self, gamma1.9, delta3):if isinstance(self.monotonous, bool):if self.monotonous:return (self.iou.detach() / self.iou_mean).sqrt()else:beta self.iou.detach() / self.iou_meanalpha delta * torch.pow(gamma, beta - delta)return beta / alphareturn 1def bbox_iou(box1, box2, xywhTrue, GIoUFalse, DIoUFalse, CIoUFalse, EIoUFalse, SIoUFalse, WIoUFalse, ShapeIoUFalse,hw1, mpdiouFalse, InnerFalse, alpha1, ratio0.7, eps1e-7, scale0.0):Calculate Intersection over Union (IoU) of box1(1, 4) to box2(n, 4).Args:box1 (torch.Tensor): A tensor representing a single bounding box with shape (1, 4).box2 (torch.Tensor): A tensor representing n bounding boxes with shape (n, 4).xywh (bool, optional): If True, input boxes are in (x, y, w, h) format. If False, input boxes are in(x1, y1, x2, y2) format. Defaults to True.GIoU (bool, optional): If True, calculate Generalized IoU. Defaults to False.DIoU (bool, optional): If True, calculate Distance IoU. Defaults to False.CIoU (bool, optional): If True, calculate Complete IoU. Defaults to False.EIoU (bool, optional): If True, calculate Efficient IoU. Defaults to False.SIoU (bool, optional): If True, calculate Scylla IoU. Defaults to False.eps (float, optional): A small value to avoid division by zero. Defaults to 1e-7.Returns:(torch.Tensor): IoU, GIoU, DIoU, or CIoU values depending on the specified flags.if Inner:if not xywh:box1, box2 ops.xyxy2xywh(box1), ops.xyxy2xywh(box2)(x1, y1, w1, h1), (x2, y2, w2, h2) box1.chunk(4, -1), box2.chunk(4, -1)b1_x1, b1_x2, b1_y1, b1_y2 x1 - (w1 * ratio) / 2, x1 (w1 * ratio) / 2, y1 - (h1 * ratio) / 2, y1 (h1 * ratio) / 2b2_x1, b2_x2, b2_y1, b2_y2 x2 - (w2 * ratio) / 2, x2 (w2 * ratio) / 2, y2 - (h2 * ratio) / 2, y2 (h2 * ratio) / 2# Intersection areainter (b1_x2.minimum(b2_x2) - b1_x1.maximum(b2_x1)).clamp_(0) * \(b1_y2.minimum(b2_y2) - b1_y1.maximum(b2_y1)).clamp_(0)# Union Areaunion w1 * h1 * ratio * ratio w2 * h2 * ratio * ratio - inter epsiou inter / union# Get the coordinates of bounding boxeselse:if xywh: # transform from xywh to xyxy(x1, y1, w1, h1), (x2, y2, w2, h2) box1.chunk(4, -1), box2.chunk(4, -1)w1_, h1_, w2_, h2_ w1 / 2, h1 / 2, w2 / 2, h2 / 2b1_x1, b1_x2, b1_y1, b1_y2 x1 - w1_, x1 w1_, y1 - h1_, y1 h1_b2_x1, b2_x2, b2_y1, b2_y2 x2 - w2_, x2 w2_, y2 - h2_, y2 h2_else: # x1, y1, x2, y2 box1b1_x1, b1_y1, b1_x2, b1_y2 box1.chunk(4, -1)b2_x1, b2_y1, b2_x2, b2_y2 box2.chunk(4, -1)w1, h1 b1_x2 - b1_x1, b1_y2 - b1_y1 epsw2, h2 b2_x2 - b2_x1, b2_y2 - b2_y1 eps# Intersection areainter (b1_x2.minimum(b2_x2) - b1_x1.maximum(b2_x1)).clamp_(0) * \(b1_y2.minimum(b2_y2) - b1_y1.maximum(b2_y1)).clamp_(0)# Union Areaunion w1 * h1 w2 * h2 - inter eps# IoUiou inter / unionif CIoU or DIoU or GIoU or EIoU or SIoU or ShapeIoU or mpdiou or WIoU:cw b1_x2.maximum(b2_x2) - b1_x1.minimum(b2_x1) # convex (smallest enclosing box) widthch b1_y2.maximum(b2_y2) - b1_y1.minimum(b2_y1) # convex heightif CIoU or DIoU or EIoU or SIoU or mpdiou or WIoU or ShapeIoU: # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1c2 cw ** 2 ch ** 2 eps # convex diagonal squaredrho2 ((b2_x1 b2_x2 - b1_x1 - b1_x2) ** 2 (b2_y1 b2_y2 - b1_y1 - b1_y2) ** 2) / 4 # center dist ** 2if CIoU: # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47v (4 / math.pi ** 2) * (torch.atan(w2 / h2) - torch.atan(w1 / h1)).pow(2)with torch.no_grad():alpha v / (v - iou (1 eps))return iou - (rho2 / c2 v * alpha) # CIoUelif EIoU:rho_w2 ((b2_x2 - b2_x1) - (b1_x2 - b1_x1)) ** 2rho_h2 ((b2_y2 - b2_y1) - (b1_y2 - b1_y1)) ** 2cw2 cw ** 2 epsch2 ch ** 2 epsreturn iou - (rho2 / c2 rho_w2 / cw2 rho_h2 / ch2) # EIoUelif SIoU:# SIoU Loss https://arxiv.org/pdf/2205.12740.pdfs_cw (b2_x1 b2_x2 - b1_x1 - b1_x2) * 0.5 epss_ch (b2_y1 b2_y2 - b1_y1 - b1_y2) * 0.5 epssigma torch.pow(s_cw ** 2 s_ch ** 2, 0.5)sin_alpha_1 torch.abs(s_cw) / sigmasin_alpha_2 torch.abs(s_ch) / sigmathreshold pow(2, 0.5) / 2sin_alpha torch.where(sin_alpha_1 threshold, sin_alpha_2, sin_alpha_1)angle_cost torch.cos(torch.arcsin(sin_alpha) * 2 - math.pi / 2)rho_x (s_cw / cw) ** 2rho_y (s_ch / ch) ** 2gamma angle_cost - 2distance_cost 2 - torch.exp(gamma * rho_x) - torch.exp(gamma * rho_y)omiga_w torch.abs(w1 - w2) / torch.max(w1, w2)omiga_h torch.abs(h1 - h2) / torch.max(h1, h2)shape_cost torch.pow(1 - torch.exp(-1 * omiga_w), 4) torch.pow(1 - torch.exp(-1 * omiga_h), 4)return iou - 0.5 * (distance_cost shape_cost) eps # SIoUelif ShapeIoU:#Shape-Distance #Shape-Distance #Shape-Distance #Shape-Distance #Shape-Distance #Shape-Distance #Shape-Distanceww 2 * torch.pow(w2, scale) / (torch.pow(w2, scale) torch.pow(h2, scale))hh 2 * torch.pow(h2, scale) / (torch.pow(w2, scale) torch.pow(h2, scale))cw torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1) # convex widthch torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1) # convex heightc2 cw ** 2 ch ** 2 eps # convex diagonal squaredcenter_distance_x ((b2_x1 b2_x2 - b1_x1 - b1_x2) ** 2) / 4center_distance_y ((b2_y1 b2_y2 - b1_y1 - b1_y2) ** 2) / 4center_distance hh * center_distance_x ww * center_distance_ydistance center_distance / c2#Shape-Shape #Shape-Shape #Shape-Shape #Shape-Shape #Shape-Shape #Shape-Shape #Shape-Shape #Shape-Shapeomiga_w hh * torch.abs(w1 - w2) / torch.max(w1, w2)omiga_h ww * torch.abs(h1 - h2) / torch.max(h1, h2)shape_cost torch.pow(1 - torch.exp(-1 * omiga_w), 4) torch.pow(1 - torch.exp(-1 * omiga_h), 4)return iou - distance - 0.5 * shape_costelif mpdiou:d1 (b2_x1 - b1_x1) ** 2 (b2_y1 - b1_y1) ** 2d2 (b2_x2 - b1_x2) ** 2 (b2_y2 - b1_y2) ** 2return iou - d1 / hw.unsqueeze(1) - d2 / hw.unsqueeze(1) # MPDIoUelif WIoU:self WIoU_Scale(1 - iou)dist getattr(WIoU_Scale, _scaled_loss)(self)return iou * dist # WIoU https://arxiv.org/abs/2301.10051return iou - rho2 / c2 # DIoUc_area cw * ch eps # convex areareturn iou - (c_area - union) / c_area # GIoU https://arxiv.org/pdf/1902.09630.pdfreturn iou # IoU四、MPDIoU、InnerMPDIoU的使用方式 4.1 修改一 第一步我们需要找到如下的文件ultralytics/utils/metrics.py,找到如下的代码下面的图片是原先的代码部分截图的正常样子然后我们将上面的整个代码块将下面的整个方法(这里这是部分截图)内容全部替换。 4.2 修改二 第二步我们找到另一个文件如下-ultralytics/models/utils/loss.py(注意这个文件和YOLOv8的修改内容不是一个)我们找到如下的代码块初始样子如下然后用我下面给的代码块替换红框内的代码。 loss[name_giou] 1.0 - bbox_iou(pred_bboxes, gt_bboxes,xywhFalse, GIoUFalse, DIoUFalse, CIoUFalse, EIoUFalse, SIoUFalse,WIoUFalse, ShapeIoUFalse, mpdiouTrue, InnerFalse,ratio0.75, eps1e-7, scale0.0) 替换完成的样子如下所示。 到此我们就可以进行设置使用了看到我这里以及将MPDIoU都设置成True了,同时我们使用Inner思想将其设置为True即可此时使用的就是InnerMPDIoU。 如果inner为FalseMPDIoU为True那么使用的就是普通的MPDIoU。  五、总结 到此本文的正式分享内容就结束了在这里给大家推荐我的RT-DETR改进有效涨点专栏本专栏目前为新开的平均质量分98分后期我会根据各种最新的前沿顶会进行论文复现也会对一些老的改进机制进行补充如果大家觉得本文帮助到你了订阅本专栏关注后续更多的更新~ RT-DETR改进专栏RT-DETR专栏——持续复现各种顶会内容——论文收割机 ​​​
http://www.zqtcl.cn/news/944150/

相关文章:

  • 网站做兼容处理怎么浙江seo博客
  • 设计商城的网站建设电商网站建设与管理实践
  • 怎样建一个英文网站制作视频的手机软件
  • 昆明做网站费用被骗去国外做网站网站推广
  • 京东商城网站怎么做静态网页有什么特点
  • 网站上线准备工作网站源码运行
  • 视频剪辑自学网站wordpress怎样改头像
  • 女装网站模板青岛开发区网站
  • dede网站后台海外网络服务器
  • 三合一企业网站模板wordpress做的外贸网站
  • 常州做企业网站的公司亚马逊雨林有原始部落吗
  • 临沂网站设计哪家好qq浏览器网页版进入
  • seo资料站哔哩哔哩官方网站首页
  • 前端怎么做网站万网域名管理入口
  • asp.net 做网站实例特别酷炫网站
  • 个人网站的内容网页设计图片显示不出来怎么弄
  • 福建省建设人才与科技发展中心网站首页关于制作网站收费标准
  • 什么软件可以发帖子做推广中山优化网站
  • 中山网站建设开发网络营销的基本功能
  • 温州平阳县网站建设兼职免费下载简历模板
  • 导购网站 转化率wordpress 拓展
  • 美文分享网站源码互联网网站建设
  • 做网站用php还是python建设网站价格
  • 平台网站怎么做诱导网站怎么做
  • 网站建设人员构成网址申请域名
  • 微网站建设找哪家公司好郑州一凡网站建设
  • 江阴网站制作公司泉州网站建设论坛
  • 最新章节 62.一起来做网站吧时钟插件+wordpress
  • 惠州市建设规划局网站网页设计实训报告word
  • 大众汽车网站建设鳌江网站建设