位置: IT常识 - 正文

目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)(运动目标检测算法)

编辑:rootadmin
目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)

超越CIOU/SIOU | Wise-IoU助力YOLO强势涨点!!!论文题目:Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism论文链接:https://arxiv.org/abs/2301.10051

推荐整理分享目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)(运动目标检测算法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:目标检测算法的主要目的是找到图像中用户感兴趣的,目标检测算法排名,最快的目标检测算法,最新目标检测算法,目标检测算法的主要目的是找到图像中用户感兴趣的,SSD目标检测算法,目标检测算法有哪些,目标检测算法的主要目的是找到图像中用户感兴趣的,内容如对您有帮助,希望把文章链接给更多的朋友!

目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)(运动目标检测算法)

近年来的研究大多假设训练数据中的示例有较高的质量,致力于强化边界框损失的拟合能力。但注意到目标检测训练集中含有低质量示例,如果一味地强化边界框对低质量示例的回归,显然会危害模型检测性能的提升。

Focal-EIoU v1 被提出以解决这个问题,但由于其聚焦机制是静态的,并未充分挖掘非单调聚焦机制的潜能。基于这个观点,作者提出了动态非单调的聚焦机制,设计了 Wise-IoU (WIoU)。动态非单调聚焦机制使用“离群度”替代 IoU 对锚框进行质量评估,并提供了明智的梯度增益分配策略。该策略在降低高质量锚框的竞争力的同时,也减小了低质量示例产生的有害梯度。这使得 WIoU 可以聚焦于普通质量的锚框,并提高检测器的整体性能。将WIoU应用于最先进的单级检测器 YOLOv7 时,在 MS-COCO 数据集上的 AP-75 从 53.03% 提升到 54.50%。

一、 Wise-IoU相关代码

import mathimport torchclass IoU_Cal: ''' pred, target: x0,y0,x1,y1 monotonous: { None: origin True: monotonic FM False: non-monotonic FM } momentum: The momentum of running mean (This can be set by the function <momentum_estimation>)''' iou_mean = 1. monotonous = False momentum = 1 - pow(0.05, 1 / (890 * 34)) _is_train = True @classmethod def momentum_estimation(cls, n, t): ''' n: Number of batches per training epoch t: The epoch when mAP's ascension slowed significantly''' time_to_real = n * t cls.momentum = 1 - pow(0.05, 1 / time_to_real) return cls.momentum def __init__(self, pred, target): self.pred, self.target = pred, target self._fget = { # x,y,w,h 'pred_xy': lambda: (self.pred[..., :2] + self.pred[..., 2: 4]) / 2, 'pred_wh': lambda: self.pred[..., 2: 4] - self.pred[..., :2], 'target_xy': lambda: (self.target[..., :2] + self.target[..., 2: 4]) / 2, 'target_wh': lambda: self.target[..., 2: 4] - self.target[..., :2], # x0,y0,x1,y1 'min_coord': lambda: torch.minimum(self.pred[..., :4], self.target[..., :4]), 'max_coord': lambda: torch.maximum(self.pred[..., :4], self.target[..., :4]), # The overlapping region 'wh_inter': lambda: torch.relu(self.min_coord[..., 2: 4] - self.max_coord[..., :2]), 's_inter': lambda: torch.prod(self.wh_inter, dim=-1), # The area covered 's_union': lambda: torch.prod(self.pred_wh, dim=-1) + torch.prod(self.target_wh, dim=-1) - self.s_inter, # The smallest enclosing box 'wh_box': lambda: self.max_coord[..., 2: 4] - self.min_coord[..., :2], 's_box': lambda: torch.prod(self.wh_box, dim=-1), 'l2_box': lambda: torch.square(self.wh_box).sum(dim=-1), # The central points' connection of the bounding boxes 'd_center': lambda: self.pred_xy - self.target_xy, 'l2_center': lambda: torch.square(self.d_center).sum(dim=-1), # IoU 'iou': lambda: 1 - self.s_inter / self.s_union } self._update(self) def __setitem__(self, key, value): self._fget[key] = value def __getattr__(self, item): if callable(self._fget[item]): self._fget[item] = self._fget[item]() return self._fget[item] @classmethod def train(cls): cls._is_train = True @classmethod def eval(cls): cls._is_train = False @classmethod def _update(cls, self): if cls._is_train: cls.iou_mean = (1 - cls.momentum) * cls.iou_mean + \ cls.momentum * self.iou.detach().mean().item() def _scaled_loss(self, loss, alpha=1.9, delta=3): if isinstance(self.monotonous, bool): beta = self.iou.detach() / self.iou_mean if self.monotonous: loss *= beta.sqrt() else: divisor = delta * torch.pow(alpha, beta - delta) loss *= beta / divisor return loss @classmethod def IoU(cls, pred, target, self=None): self = self if self else cls(pred, target) return self.iou @classmethod def WIoU(cls, pred, target, self=None): self = self if self else cls(pred, target) dist = torch.exp(self.l2_center / self.l2_box.detach()) return self._scaled_loss(dist * self.iou) @classmethod def EIoU(cls, pred, target, self=None): self = self if self else cls(pred, target) penalty = self.l2_center / self.l2_box.detach() \ + torch.square(self.d_center / self.wh_box).sum(dim=-1) return self._scaled_loss(self.iou + penalty) @classmethod def GIoU(cls, pred, target, self=None): self = self if self else cls(pred, target) return self._scaled_loss(self.iou + (self.s_box - self.s_union) / self.s_box) @classmethod def DIoU(cls, pred, target, self=None): self = self if self else cls(pred, target) return self._scaled_loss(self.iou + self.l2_center / self.l2_box) @classmethod def CIoU(cls, pred, target, eps=1e-4, self=None): self = self if self else cls(pred, target) v = 4 / math.pi ** 2 * \ (torch.atan(self.pred_wh[..., 0] / (self.pred_wh[..., 1] + eps)) - torch.atan(self.target_wh[..., 0] / (self.target_wh[..., 1] + eps))) ** 2 alpha = v / (self.iou + v) return self._scaled_loss(self.iou + self.l2_center / self.l2_box + alpha.detach() * v) @classmethod def SIoU(cls, pred, target, theta=4, self=None): self = self if self else cls(pred, target) # Angle Cost angle = torch.arcsin(torch.abs(self.d_center).min(dim=-1)[0] / (self.l2_center.sqrt() + 1e-4)) angle = torch.sin(2 * angle) - 2 # Dist Cost dist = angle[..., None] * torch.square(self.d_center / self.wh_box) dist = 2 - torch.exp(dist[..., 0]) - torch.exp(dist[..., 1]) # Shape Cost d_shape = torch.abs(self.pred_wh - self.target_wh) big_shape = torch.maximum(self.pred_wh, self.target_wh) w_shape = 1 - torch.exp(- d_shape[..., 0] / big_shape[..., 0]) h_shape = 1 - torch.exp(- d_shape[..., 1] / big_shape[..., 1]) shape = w_shape ** theta + h_shape ** theta return self._scaled_loss(self.iou + (dist + shape) / 2)二、实验对比结果

🚀🏆🍀【算法创新&算法训练&论文投稿】相关链接👇👇👇✨【YOLO创新算法尝新系列】✨🏂 美团出品 | YOLOv6 v3.0 is Coming(超越YOLOv7、v8)🏂 官方正品 | Ultralytics YOLOv8算法来啦(尖端SOTA模型)🏂 改进YOLOv5/YOLOv7——魔改YOLOv5/YOLOv7提升检测精度(涨点必备)————————————🌴【重磅干货来袭】🎄————————————🚀一、主干网络改进(持续更新中)🎄🎈1.目标检测算法——YOLOv5/YOLOv7改进之结合ConvNeXt结构(纯卷积|超越Swin)2.目标检测算法——YOLOv5/YOLOv7改进之结合MobileOne结构(高性能骨干|仅需1ms)3.目标检测算法——YOLOv5/YOLOv7改进之结合Swin Transformer V2(涨点神器)4.目标检测算法——YOLOv5/YOLOv7改进结合BotNet(Transformer)5.目标检测算法——YOLOv5/YOLOv7改进之GSConv+Slim Neck(优化成本)6.目标检测算法——YOLOv5/YOLOv7改进结合新神经网络算子Involution(CVPR 2021)7.目标检测算法——YOLOv7改进|增加小目标检测层8.目标检测算法——YOLOv5改进|增加小目标检测层🌴 持续更新中……🚀二、轻量化网络(持续更新中)🎄🎈1.目标检测算法——YOLOv5/YOLOv7改进之结合​RepVGG(速度飙升)2.目标检测算法——YOLOv5/YOLOv7改进之结合​PP-LCNet(轻量级CPU网络)3.目标检测算法——YOLOv5/YOLOv7改进之结合轻量化网络MobileNetV3(降参提速)4.目标检测算法——YOLOv5/YOLOv7改进|结合轻量型网络ShuffleNetV25.目标检测算法——YOLOv5/YOLOv7改进结合轻量型Ghost模块🌴 持续更新中……🚀三、注意力机制(持续更新中)🎄🎈1.目标检测算法——YOLOv5改进之结合CBAM注意力机制2.目标检测算法——YOLOv7改进之结合CBAM注意力机制3.目标检测算法——YOLOv5/YOLOv7之结合CA注意力机制4.目标检测算法——YOLOv5/YOLOv7改进之结合ECA注意力机制5.目标检测算法——YOLOv5/YOLOv7改进之结合NAMAttention(提升涨点)6.目标检测算法——YOLOv5/YOLOv7改进之结合GAMAttention7.目标检测算法——YOLOv5/YOLOv7改进之结合无参注意力SimAM(涨点神器)8.目标检测算法——YOLOv5/YOLOv7改进之结合Criss-Cross Attention9.​目标检测算法——YOLOv5/YOLOv7改进之结合​SOCA(单幅图像超分辨率)🌴 持续更新中……🚀四、检测头部改进(持续更新中)🎄🎈1.魔改YOLOv5/v7高阶版(魔法搭配+创新组合)——改进之结合解耦头Decoupled_Detect2.目标检测算法——YOLOv5/YOLOv7改进结合涨点Trick之ASFF(自适应空间特征融合)🌴 持续更新中……🚀五、空间金字塔池化(持续更新中)🎄🎈1.目标检测算法——YOLOv5/YOLOv7改进之结合​ASPP(空洞空间卷积池化金字塔)2.目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)🌴 持续更新中……🚀六、损失函数及NMS改进(持续更新中)🎄🎈1.目标检测算法——YOLOv5/YOLOv7改进|将IOU Loss替换为EIOU Loss2.目标检测算法——助力涨点 | YOLOv5改进结合Alpha-IoU3.目标检测算法——YOLOv5/YOLOv7改进之结合SIoU4.目标检测算法——YOLOv5将NMS替换为DIoU-NMS🌴 持续更新中……🚀七、其他创新改进项目(持续更新中)🎄🎈1.手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)2.YOLO算法改进之结合GradCAM可视化热力图(附详细教程)3.目标检测算法——YOLOv5/YOLOv7改进之结合SPD-Conv(低分辨率图像和小目标涨点明显)4.目标检测算法——YOLOv5/YOLOv7改进之更换FReLU激活函数5.目标检测算法——YOLOv5/YOLOv7改进之结合BiFPN🌴 持续更新中……🚀八、算法训练相关项目(持续更新中)🎄🎈1.目标检测算法——YOLOv7训练自己的数据集(保姆级教程)2.人工智能前沿——玩转OpenAI语音机器人ChatGPT(中文版)3.深度学习之语义分割算法(入门学习)4.知识经验分享——YOLOv5-6.0训练出错及解决方法(RuntimeError)5.目标检测算法——将xml格式转换为YOLOv5格式txt6.目标检测算法——YOLOv5/YOLOv7如何改变bbox检测框的粗细大小7.人工智能前沿——6款AI绘画生成工具8.YOLOv5结合人体姿态估计9.超越YOLOv5,0.7M超轻量,又好又快(PP-YOLOE&PP-PicoDet)10.目标检测算法——收藏|小目标检测的定义(一)11.目标检测算法——收藏|小目标检测难点分析(二)12.目标检测算法——收藏|小目标检测解决方案(三)🌴 持续更新中……🚀九、数据资源相关项目(持续更新中)🎄🎈1.目标检测算法——小目标检测相关数据集(附下载链接)2.目标检测算法——3D公共数据集汇总(附下载链接)3.目标检测算法——3D公共数据集汇总 2(附下载链接)4.目标检测算法——行人检测&人群计数数据集汇总(附下载链接)5.目标检测算法——遥感影像数据集资源汇总(附下载链接)6.目标检测算法——自动驾驶开源数据集汇总(附下载链接)7.目标检测算法——自动驾驶开源数据集汇总 2(附下载链接)8.目标检测算法——图像分类开源数据集汇总(附下载链接)9.目标检测算法——医学图像开源数据集汇总(附下载链接)10.目标检测算法——工业缺陷数据集汇总1(附下载链接)11.目标检测算法——工业缺陷数据集汇总2(附下载链接)12.目标检测算法——垃圾分类数据集汇总(附下载链接)13.目标检测算法——人脸识别数据集汇总(附下载链接)14.目标检测算法——安全帽识别数据集(附下载链接)15.目标检测算法——人体姿态估计数据集汇总(附下载链接)16.目标检测算法——人体姿态估计数据集汇总 2(附下载链接)17.目标检测算法——车辆牌照识别数据集汇总(附下载链接)18.目标检测算法——车辆牌照识别数据集汇总 2(附下载链接)19.收藏 | 机器学习公共数据集集锦(附下载链接)20.目标检测算法——图像分割数据集汇总(附下载链接)21.目标检测算法——图像分割数据集汇总 2(附下载链接)22.收藏 | 自然语言处理(NLP)数据集汇总(附下载链接)23.自然语言处理(NLP)数据集汇总 2(附下载链接)24.自然语言处理(NLP)数据集汇总 3(附下载链接)25.自然语言处理(NLP)数据集汇总 4(附下载链接)26.目标检测算法——关键点检测数据集汇总(附下载链接)27.目标检测算法——图像去雾开源数据集汇总(速速收藏)🌴 持续更新中……🚀十、论文投稿相关项目(持续更新中)🎄🎈1.论文投稿指南——收藏|SCI论文投稿注意事项(提高命中率)2.论文投稿指南——收藏|SCI论文怎么投?(Accepted)3.论文投稿指南——收藏|SCI写作投稿发表全流程4.论文投稿指南——收藏|如何选择SCI期刊(含选刊必备神器)5.论文投稿指南——SCI选刊6.论文投稿指南——SCI投稿各阶段邮件模板7.人工智能前沿——深度学习热门领域(确定选题及研究方向)8.人工智能前沿——2022年最流行的十大AI技术9.人工智能前沿——未来AI技术的五大应用领域10.人工智能前沿——无人自动驾驶技术11.人工智能前沿——AI技术在医疗领域的应用12.人工智能前沿——随需应变的未来大脑13.目标检测算法——深度学习知识简要普及14.目标检测算法——10种深度学习框架介绍15.目标检测算法——为什么我选择PyTorch?16.知识经验分享——超全激活函数解析(数学原理+优缺点)17.知识经验分享——卷积神经网络(CNN)18.海带软件分享——Office 2021全家桶安装教程(附报错解决方法)19.海带软件分享——日常办公学习软件分享(收藏)20.论文投稿指南——计算机视觉 (Computer Vision) 顶会归纳21.论文投稿指南——中文核心期刊22.论文投稿指南——计算机领域核心期刊23.论文投稿指南——中文核心期刊推荐(计算机技术)24.论文投稿指南——中文核心期刊推荐(计算机技术2)25.论文投稿指南——中文核心期刊推荐(计算机技术3)26.论文投稿指南——中文核心期刊推荐(电子、通信技术)27.论文投稿指南——中文核心期刊推荐(电子、通信技术2)28.论文投稿指南——中文核心期刊推荐(电子、通信技术3)29.论文投稿指南——中文核心期刊推荐(机械、仪表工业)30.论文投稿指南——中文核心期刊推荐(机械、仪表工业2)31.论文投稿指南——中文核心期刊推荐(机械、仪表工业3)32.论文投稿指南——中国(中文EI)期刊推荐(第1期)33.论文投稿指南——中国(中文EI)期刊推荐(第2期)34.论文投稿指南——中国(中文EI)期刊推荐(第3期)35.论文投稿指南——中国(中文EI)期刊推荐(第4期)36.论文投稿指南——中国(中文EI)期刊推荐(第5期)37.论文投稿指南——中国(中文EI)期刊推荐(第6期)38.论文投稿指南——中国(中文EI)期刊推荐(第7期)39.论文投稿指南——中国(中文EI)期刊推荐(第8期)40.【1】SCI易中期刊推荐——计算机方向(中科院3区)41.【2】SCI易中期刊推荐——遥感图像领域(中科院2区)42.【3】SCI易中期刊推荐——人工智能领域(中科院1区)43.【4】SCI易中期刊推荐——神经科学研究(中科院4区)44.【5】SCI易中期刊推荐——计算机科学(中科院2区)45.【6】SCI易中期刊推荐——人工智能&神经科学&机器人学(中科院3区)46.【7】SCI易中期刊推荐——计算机 | 人工智能(中科院4区)47.【8】SCI易中期刊推荐——图像处理领域(中科院4区)48.【9】SCI易中期刊推荐——工程技术-计算机:软件工程(中科院4区)49.【10】SCI易中期刊推荐——工程技术-计算机:人工智能(中科院2区)50.【11】SCI易中期刊推荐——计算机方向(中科院4区)51.【12】SCI易中期刊推荐——计算机信息系统(中科院4区)🌴 持续更新中……关于YOLO算法改进&论文投稿可关注并留言博主的CSDN/QQ>>>一起交流!互相学习!共同进步!<<<
本文链接地址:https://www.jiuchutong.com/zhishi/296175.html 转载请保留说明!

上一篇:MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】(mnist数据集下载码)

下一篇:node.js详细安装教程(node js 安装)

  • 河北金税盘
  • 用现金支付的没有发票怎么办
  • 未取得发票的费用,在汇算清缴中按利润计算吗
  • 货物已到发票未开具
  • 人力资源的差额征收怎么报企业所得税
  • 多缴纳个人所得税怎么办
  • 业务招待费扣除计算
  • 可抵扣的固定资产
  • 分支机构可不可以不建账合并到总机构?
  • 购入的工具应计入哪个科目?
  • 增值税普通发票税率
  • 所得税缴纳计算公式
  • 小规模季报财务报表只看季度最后一个月的数据可以吗
  • 增值税普通发票申报
  • 什么样的应税行为可以扣除
  • 电子汇票如何背书步骤
  • 预交增值税扣税绑不了三方
  • 企业减免所得税
  • 为什么应收和预收在一起
  • 出口退税免退税
  • 股东和原始股的区别
  • 651错误是怎么回事
  • 稳定用工社保补贴和岗位补贴多久发下来
  • 药品推广服务费怎么开票
  • php判断https
  • 补充医疗保险是六险吗
  • 职工教育经费会计准则最新规定
  • 分手我不怕
  • 营改增允许从销售额中扣
  • 未取得合法凭证税前扣除
  • vue获取当前路由地址
  • 闭包 python
  • 工商罚款怎么入账
  • 核心书评价格
  • 上海广为
  • 企业所得税月月交吗
  • 公司人员工资计算方法
  • 增值税专用发票几个点
  • 老板出差司机住哪
  • 个税申报错误怎么退税
  • 如何把access数据库导入excel
  • 纳税调整调减有哪些
  • 定期定额户增值税起征点
  • 个体户怎么开对公账户
  • 服务业预收账款什么时候确认收入
  • 收到服务费发票可以计入什么科目
  • 增值税纳税申报表怎么填
  • 存货计提存货跌价准备
  • 建筑工程公司的经营范围有哪些
  • 设备投入安装会计分录怎么写
  • 支付给烟农的价格怎么算
  • 材料核销的依据
  • 增值税进项税转出额可以税前扣除吗
  • 发票邮寄到家
  • 房地产开发企业成本核算方法
  • 如何监测和优化电池寿命
  • XP系统网上邻居不见了有哪些找回方法
  • 微软新品发布
  • win7操作系统安装日期
  • 重装系统后没声音怎么解决win7
  • redhat无法启动
  • linux讲解
  • win10预览版21277
  • node js教程
  • Python定时器实例代码
  • perl中my
  • Bullet(Cocos2dx)之优化PhysicsDraw3D
  • js动态加载图片
  • shell脚本命令行参数
  • 批处理压缩
  • androidui框架
  • javascript构造函数可继承父类的构造函数
  • jQuery 更改checkbox的状态,无效的解决方法
  • javascript有哪些常用的属性和方法
  • 纳税工会经费申请怎么写
  • 深圳如何打印个人参保证明
  • 湖南社保卡怎么网上缴费
  • 国税是哪几种
  • 公司买车购置税怎么做账
  • 北京地税查询官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设