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

目标检测算法——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强势涨点&#xff01;&#xff01;&#xff01; 论文题目&#xff1a;Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 论文链接&#xff1a;https://arxiv.org/abs/2301.10051 ​ 近年来的研究大多假设训练数据中的…...

【蓝桥杯选拔赛真题39】python输出数字组合 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python输出数字组合 一、题目要求 1、编程实现 2、输入输出...

网络安全工程师做什么?

​ 网络安全很复杂。数字化转型、远程工作和不断变化的威胁形势需要不同的工具和不同的技能组合。 系统必须到位以保护端点、身份和无边界网络边界。负责处理这种复杂安全基础设施的工作角色是网络安全工程师。 简而言之&#xff0c;网络安全工程师是负责设计和实施组织安全系…...

总结:K8S运维常用命令

一、部署./kubectl apply -f biz-healing-pod.yaml 二、查看部署的资源1、podkubectl get pod -A&#xff1a;获取所有pod没有IP&#xff1f;用-o wide参数看详细信息&#xff1a;./kubectl get pod -n deepflow -o wide2、service查看hubble-manager命名空间下有哪些service/d…...

你是真的“C”——进行动态内存分配库函数的使用详解

你是真的“C”——申请动态空间库函数的使用详解&#x1f60e;前言&#x1f64c;一、为什么需要动态内存分配&#xff1f;&#x1f49e;free 函数&#x1f618;malloc 库函数&#x1f618;calloc 库函数&#x1f618;realloc 库函数&#x1f618;总结撒花&#x1f49e;&#x1…...

Python|蓝桥杯进阶第五卷——数论

欢迎交流学习~~ 专栏&#xff1a; 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列&#xff1a; &#x1f3c6; Python | 蓝桥杯进阶第一卷——字符串 &#x1f50e; Python | 蓝桥杯进阶第二卷——贪心 &#x1f49d; Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…...

用Python实现单例模式

什么是单例模式单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时&#xff0c;为了防止频繁地创建对象使得内存飙升&#xff0c;单例模式可以让程序仅在内存中创建一个对象&#xff0c;让所有需要调用的地方都共享这一单例对象…...

交叉编译说明:工具链安装和环境变量配置

目录 一 简单了解交叉编译 ① 什么是交叉编译 ② 为什么需要交叉编译 ③ 宿主机和目标机 二 搭建交叉编译工作环境 ① 安装工具链 ② 配置环境变量 ● 配置临时环境变量 ● 配置永久环境变量 三 交叉编译宿主机和目标机 ● 宿主机编译生成的可执行文件下载到目…...

文件上传的多种利用方式

文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外&#xff0c;还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时&#xff0c;文件名肯定是会反显示在网页上&#xff0c;可以使用 XSS Payload做文件名尝试将其上传到…...

盘一盘C++的类型描述符(二)

先序文章请看 盘一盘C的类型描述符&#xff08;一&#xff09; 稍微组合一下的复杂类型 数组指针类型的数组类型 数组的指针类型我们已经了解了&#xff0c;那么&#xff0c;以这种类型作为元素的数组类型怎么搞&#xff1f; using type int (*)[3]; // 元素类型是数组指针…...

慎投,Frontiers这本期刊显示on hold中

什么是“On Hold”&#xff1f; 该期刊因为质量问题正在被进行重新评估&#xff1b;在重新评估过程中&#xff0c;不会检索新发表的文章。该期刊因为质量问题正在被进行重新评估&#xff1b;在重新评估过程中&#xff0c;不会检索新发表的文章。根据选择标准&#xff0c;在最严…...

Winform控件开发(21)——ProgressBar(史上最全)

一、属性 1、Name 用于获取控件对象 2、Anchor 锚定控件对于父控件的位置 3、BackColor 背景色 4、ContextMenuStrip 关联的上下文菜单 5、Cursor 鼠标移动到控件上显示的光标 6、Dock 停靠在父控件的位置 7、Enabled 是否启动该控件,false时事件都不能触发 8、…...

校招失败后,在外包公司熬了 2 年终于进了字节跳动,竭尽全力....

其实两年前校招的时候就往字节投了一次简历&#xff0c;结果很明显凉了&#xff0c;随后这个理想就被暂时放下了&#xff0c;但是这个种子一直埋在心里这两年除了工作以外&#xff0c;也会坚持写博客&#xff0c;也因此结识了很多优秀的小伙伴&#xff0c;从他们身上学到了特别…...

UniApp + SpringBoot 实现接入支付宝支付功能和退款功能

一、支付宝开放平台设置 注册支付宝支付功能需要个体工商户或企业才可以&#xff01;需要有营业执照才能去申请哦&#xff01; 1、登录到控制台 进入支付宝开放平台 控制台 2、开发设置 3、产品绑定APP支付 如果没有绑定APP支付就会报商家订单参数异常&#xff0c;请重新发起…...

初识进程

文章目录一、进程的概念1. 进程是什么及进程的管理2. Linux 下的 pcb3. 系统调用接口 getpid 和 getppid4. 系统调用接口 fork一、进程的概念 1. 进程是什么及进程的管理 在 Linux下 ./binaryfile 运行一个程序或者在 Windows下双击运行一个程序时&#xff0c;程序就变成了一个…...

SOAP传输协议

一.HTTP传输协议 超文本传输协议&#xff08;HyperText Transfer Protocol&#xff0c;缩写&#xff1a;HTTP&#xff09;&#xff0c;它是基于请求-响应的模式协议&#xff0c;客户端发出请求&#xff0c;服务器端给出响应并返回请求内容。方法如下&#xff0c;HTTP传输协议常…...

<Linux>进程控制

进程控制 文章目录进程控制一、进程创建1.fork函数认识2.写时拷贝3.fork常规用法4.fork调用失败的原因二、进程终止1.进程退出场景2.进程退出码3.进程退出的方式三、进程等待1.进程等待是什么&#xff1f;2.进程等待的必要性3.进程等待的方法3.1.wait函数3.2.waitpid函数4.如何…...

有手就行 -- 搭建图床(PicGo+腾讯云)

&#x1f373;作者&#xff1a;贤蛋大眼萌&#xff0c;一名很普通但不想普通的程序媛\color{#FF0000}{贤蛋 大眼萌 &#xff0c;一名很普通但不想普通的程序媛}贤蛋大眼萌&#xff0c;一名很普通但不想普通的程序媛&#x1f933; &#x1f64a;语录&#xff1a;多一些不为什么的…...

“蓝桥杯”递推和递归(一)——取数位

1. 算法简介 递推和递归虽然叫法不同&#xff0c;但它们的基本思想是一致的&#xff0c;在很多程序中&#xff0c;这两种算法可以通用&#xff0c;不同的是递推法效率更高&#xff0c;递归法更方便阅读。 &#xff08;1&#xff09;递推法 递推法是一种重要的数学方法&#…...

蓝桥杯·3月份刷题集训Day02

本篇博客旨在记录自已打卡蓝桥杯3月份刷题集训&#xff0c;同时会有自己的思路及代码解答希望可以给小伙伴一些帮助。本人也是算法小白&#xff0c;水平有限&#xff0c;如果文章中有什么错误之处&#xff0c;希望小伙伴们可以在评论区指出来&#xff0c;共勉&#x1f4aa;。 文…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...