目标检测算法——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

近年来的研究大多假设训练数据中的示例有较高的质量,致力于强化边界框损失的拟合能力。但注意到目标检测训练集中含有低质量示例,如果一味地强化边界框对低质量示例的回归,显然会危害模型检测性能的提升。
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,y1monotonous: {None: originTrue: monotonic FMFalse: non-monotonic FM}momentum: The momentum of running mean (This can be set by the function <momentum_estimation>)'''iou_mean = 1.monotonous = Falsemomentum = 1 - pow(0.05, 1 / (890 * 34))_is_train = True@classmethoddef momentum_estimation(cls, n, t):''' n: Number of batches per training epocht: The epoch when mAP's ascension slowed significantly'''time_to_real = n * tcls.momentum = 1 - pow(0.05, 1 / time_to_real)return cls.momentumdef __init__(self, pred, target):self.pred, self.target = pred, targetself._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] = valuedef __getattr__(self, item):if callable(self._fget[item]):self._fget[item] = self._fget[item]()return self._fget[item]@classmethoddef train(cls):cls._is_train = True@classmethoddef eval(cls):cls._is_train = False@classmethoddef _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_meanif self.monotonous:loss *= beta.sqrt()else:divisor = delta * torch.pow(alpha, beta - delta)loss *= beta / divisorreturn loss@classmethoddef IoU(cls, pred, target, self=None):self = self if self else cls(pred, target)return self.iou@classmethoddef 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)@classmethoddef 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)@classmethoddef 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)@classmethoddef 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)@classmethoddef 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))) ** 2alpha = v / (self.iou + v)return self._scaled_loss(self.iou + self.l2_center / self.l2_box + alpha.detach() * v)@classmethoddef SIoU(cls, pred, target, theta=4, self=None):self = self if self else cls(pred, target)# Angle Costangle = torch.arcsin(torch.abs(self.d_center).min(dim=-1)[0] / (self.l2_center.sqrt() + 1e-4))angle = torch.sin(2 * angle) - 2# Dist Costdist = angle[..., None] * torch.square(self.d_center / self.wh_box)dist = 2 - torch.exp(dist[..., 0]) - torch.exp(dist[..., 1])# Shape Costd_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 ** thetareturn 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改进|结合轻量型网络ShuffleNetV2
5.目标检测算法——YOLOv5/YOLOv7改进结合轻量型Ghost模块
🌴 持续更新中……
🚀三、注意力机制(持续更新中)🎄🎈
1.目标检测算法——YOLOv5改进之结合CBAM注意力机制
2.目标检测算法——YOLOv7改进之结合CBAM注意力机制
3.目标检测算法——YOLOv5/YOLOv7之结合CA注意力机制
4.目标检测算法——YOLOv5/YOLOv7改进之结合ECA注意力机制
5.目标检测算法——YOLOv5/YOLOv7改进之结合NAMAttention(提升涨点)
6.目标检测算法——YOLOv5/YOLOv7改进之结合GAMAttention
7.目标检测算法——YOLOv5/YOLOv7改进之结合无参注意力SimAM(涨点神器)
8.目标检测算法——YOLOv5/YOLOv7改进之结合Criss-Cross Attention
9.目标检测算法——YOLOv5/YOLOv7改进之结合SOCA(单幅图像超分辨率)
🌴 持续更新中……
🚀四、检测头部改进(持续更新中)🎄🎈
1.魔改YOLOv5/v7高阶版(魔法搭配+创新组合)——改进之结合解耦头Decoupled_Detect
2.目标检测算法——YOLOv5/YOLOv7改进结合涨点Trick之ASFF(自适应空间特征融合)
🌴 持续更新中……
🚀五、空间金字塔池化(持续更新中)🎄🎈
1.目标检测算法——YOLOv5/YOLOv7改进之结合ASPP(空洞空间卷积池化金字塔)
2.目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)
🌴 持续更新中……
🚀六、损失函数及NMS改进(持续更新中)🎄🎈
1.目标检测算法——YOLOv5/YOLOv7改进|将IOU Loss替换为EIOU Loss
2.目标检测算法——助力涨点 | YOLOv5改进结合Alpha-IoU
3.目标检测算法——YOLOv5/YOLOv7改进之结合SIoU
4.目标检测算法——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格式txt
6.目标检测算法——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
>>>一起交流!互相学习!共同进步!<<<
相关文章:
目标检测算法——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 近年来的研究大多假设训练数据中的…...
【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析
目录 python输出数字组合 一、题目要求 1、编程实现 2、输入输出...
网络安全工程师做什么?
网络安全很复杂。数字化转型、远程工作和不断变化的威胁形势需要不同的工具和不同的技能组合。 系统必须到位以保护端点、身份和无边界网络边界。负责处理这种复杂安全基础设施的工作角色是网络安全工程师。 简而言之,网络安全工程师是负责设计和实施组织安全系…...
总结:K8S运维常用命令
一、部署./kubectl apply -f biz-healing-pod.yaml 二、查看部署的资源1、podkubectl get pod -A:获取所有pod没有IP?用-o wide参数看详细信息:./kubectl get pod -n deepflow -o wide2、service查看hubble-manager命名空间下有哪些service/d…...
你是真的“C”——进行动态内存分配库函数的使用详解
你是真的“C”——申请动态空间库函数的使用详解😎前言🙌一、为什么需要动态内存分配?💞free 函数😘malloc 库函数😘calloc 库函数😘realloc 库函数😘总结撒花💞…...
Python|蓝桥杯进阶第五卷——数论
欢迎交流学习~~ 专栏: 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列: 🏆 Python | 蓝桥杯进阶第一卷——字符串 🔎 Python | 蓝桥杯进阶第二卷——贪心 💝 Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...
用Python实现单例模式
什么是单例模式单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象…...
交叉编译说明:工具链安装和环境变量配置
目录 一 简单了解交叉编译 ① 什么是交叉编译 ② 为什么需要交叉编译 ③ 宿主机和目标机 二 搭建交叉编译工作环境 ① 安装工具链 ② 配置环境变量 ● 配置临时环境变量 ● 配置永久环境变量 三 交叉编译宿主机和目标机 ● 宿主机编译生成的可执行文件下载到目…...
文件上传的多种利用方式
文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外,还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时,文件名肯定是会反显示在网页上,可以使用 XSS Payload做文件名尝试将其上传到…...
盘一盘C++的类型描述符(二)
先序文章请看 盘一盘C的类型描述符(一) 稍微组合一下的复杂类型 数组指针类型的数组类型 数组的指针类型我们已经了解了,那么,以这种类型作为元素的数组类型怎么搞? using type int (*)[3]; // 元素类型是数组指针…...
慎投,Frontiers这本期刊显示on hold中
什么是“On Hold”? 该期刊因为质量问题正在被进行重新评估;在重新评估过程中,不会检索新发表的文章。该期刊因为质量问题正在被进行重新评估;在重新评估过程中,不会检索新发表的文章。根据选择标准,在最严…...
Winform控件开发(21)——ProgressBar(史上最全)
一、属性 1、Name 用于获取控件对象 2、Anchor 锚定控件对于父控件的位置 3、BackColor 背景色 4、ContextMenuStrip 关联的上下文菜单 5、Cursor 鼠标移动到控件上显示的光标 6、Dock 停靠在父控件的位置 7、Enabled 是否启动该控件,false时事件都不能触发 8、…...
校招失败后,在外包公司熬了 2 年终于进了字节跳动,竭尽全力....
其实两年前校招的时候就往字节投了一次简历,结果很明显凉了,随后这个理想就被暂时放下了,但是这个种子一直埋在心里这两年除了工作以外,也会坚持写博客,也因此结识了很多优秀的小伙伴,从他们身上学到了特别…...
UniApp + SpringBoot 实现接入支付宝支付功能和退款功能
一、支付宝开放平台设置 注册支付宝支付功能需要个体工商户或企业才可以!需要有营业执照才能去申请哦! 1、登录到控制台 进入支付宝开放平台 控制台 2、开发设置 3、产品绑定APP支付 如果没有绑定APP支付就会报商家订单参数异常,请重新发起…...
初识进程
文章目录一、进程的概念1. 进程是什么及进程的管理2. Linux 下的 pcb3. 系统调用接口 getpid 和 getppid4. 系统调用接口 fork一、进程的概念 1. 进程是什么及进程的管理 在 Linux下 ./binaryfile 运行一个程序或者在 Windows下双击运行一个程序时,程序就变成了一个…...
SOAP传输协议
一.HTTP传输协议 超文本传输协议(HyperText Transfer Protocol,缩写:HTTP),它是基于请求-响应的模式协议,客户端发出请求,服务器端给出响应并返回请求内容。方法如下,HTTP传输协议常…...
<Linux>进程控制
进程控制 文章目录进程控制一、进程创建1.fork函数认识2.写时拷贝3.fork常规用法4.fork调用失败的原因二、进程终止1.进程退出场景2.进程退出码3.进程退出的方式三、进程等待1.进程等待是什么?2.进程等待的必要性3.进程等待的方法3.1.wait函数3.2.waitpid函数4.如何…...
有手就行 -- 搭建图床(PicGo+腾讯云)
🍳作者:贤蛋大眼萌,一名很普通但不想普通的程序媛\color{#FF0000}{贤蛋 大眼萌 ,一名很普通但不想普通的程序媛}贤蛋大眼萌,一名很普通但不想普通的程序媛🤳 🙊语录:多一些不为什么的…...
“蓝桥杯”递推和递归(一)——取数位
1. 算法简介 递推和递归虽然叫法不同,但它们的基本思想是一致的,在很多程序中,这两种算法可以通用,不同的是递推法效率更高,递归法更方便阅读。 (1)递推法 递推法是一种重要的数学方法&#…...
蓝桥杯·3月份刷题集训Day02
本篇博客旨在记录自已打卡蓝桥杯3月份刷题集训,同时会有自己的思路及代码解答希望可以给小伙伴一些帮助。本人也是算法小白,水平有限,如果文章中有什么错误之处,希望小伙伴们可以在评论区指出来,共勉💪。 文…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
