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

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址:[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org)

论文代码:https://github.com/ChaselTsui/mmrotate-dcfl

英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用

目录

1. 省流版

1.1. 心得

1.2. 论文总结图

2. 论文逐段精读

2.1. Abstract

2.2. Introduction

2.4. Method

2.4.1. Dynamic Prior

2.4.2. Coarse Prior Matching

2.4.3. Finer Dynamic Posterior Matching

2.5.  Experiments

2.5.1. Datasets

2.5.2. Implementation Details

2.5.3. Main Results

2.5.4. Ablation Study

2.6. Analysis

2.7. Conclusion

3. Reference List


1. 省流版

1.1. 心得

(1)为什么学脑科学的我要看这个啊?愿世界上没有黑工

(2)最开始写小标题的时候就发现了,分得好细啊,好感度++

(3)作为一个外行人,这文章感觉提出了好多东西

1.2. 论文总结图

2. 论文逐段精读

2.1. Abstract

        ①Extreme geometric shapes (tiny) and finite features (few pixels) of tiny rotating objects will cause serious mismatch (inaccurate positional prior?) and imbalance (inaccurate positive sample features?) issues

        ②They proposed dynamic prior and coarse-to-fine assigner, called DCFL

posterior  adj.在后部的;在后面的  n.臀部;屁股

2.2. Introduction

        ①Oriented bounding box greatly eliminates redundant background area, especially in aerial images

        ②Comparison figure:

where M* denotes matching function;

green, blue and red boxes are true positive, false positive, and false negative predictions respectively,

the left figure set is static and the right is dynamic

        ③Figure of mismatch and imbalance issues:

each point in the left figure denotes a prior location(先验打那么多个点啊...而且为啥打得那么整齐,这是什么one-stage吗

饼状图是说当每个框都是某个角度的时候吗?当每个框都不旋转的时候阳性样本平均数量是5.2?还是说饼状图的意思是自由旋转,某个特定角度的框的阳性样本是多少多少?这个饼状图并没有横向比较诶,只有这张图自己内部比较。

柱状图是锚框大小不同下平均阳性

        ④They introduce dynamic Prior Capturing Block (PCB) as their prior method. Based on this, they further utilize Cross-FPN-layer Coarse Positive Sample (CPS) to assign labels. After that, they reorder these candidates by prediction (posterior), and present gt by finer Dynamic Gaussian Mixture Model (DGMM)

eradicate  vt.根除;消灭;杜绝  n.根除者;褪色灵

2.3. Related Work

2.3.1. Oriented Object Detection

(1)Prior for Oriented Objects

(2)Label Assignment

2.3.2. Tiny Object Detection

(1)Multi-scale Learning

(2)Label Assignment

(3)Context Information

(4)Feature Enhancement

2.4. Method

(1)Overview

        ①For a set of dense prior P\in\mathbb{R}^{W\times H\times C}, where W denotes width, H denotes height and C denotes the number of shape information(什么东西啊,是那些点吗), mapping it to D by Deep Neural Network (DNN):

D=\mathrm{DNN}_{h}(P)

where \mathrm{DNN}_{h} represents the detection head(探测头...外行不太懂,感觉也就是一个函数嘛?);

one part D_{cls}\in\mathbb{R}^{W\times H\times A} in D denotes the classification scores, where A means the class number(更被认为是阳性的样本那层的W\times H里的数据会更大吗);

one part D_{reg}\in\mathbb{R}^{W\times H\times B} in D denotes the classification scores, where B means the box parameter number(查宝说是w, h, x, y, a之类的是box parameter

        ②In static methods, the pos labels assigned for P is G=\mathcal{M}_{s}(P,GT)

        ③In dynamic methods, the pos labels set G integrate posterior information: G={\mathcal M}_{d}(P,D,GT)

        ④The loss function:

\mathcal{L}=\sum_{i=1}^{N_{pos}}\mathcal{L}_{pos}(D_{i},G_{i})+\sum_{j=1}^{N_{neg}}\mathcal{L}_{neg}(D_{j},y_{j})

where N_{pos} and N_{neg} represent the number of positive and negative samples, y_i is the neg labels set

        ⑤Modelling D{\mathcal M}_{d} and GT:

\tilde{D}=\mathrm{DNN}_{h}(\underbrace{\mathrm{DNN}_{p}(P)}_{\text{Dynamic Prior}\hat{P}})

\tilde{G}=\mathcal{M}_{d}(\mathcal{M}_{s}(\tilde{P},GT),\tilde{GT})

\mathcal{L}=\sum_{i=1}^{\hat{N}_{pos}}\mathcal{L}_{pos}(\tilde{D}_{i},\tilde{G}_{i})+\sum_{j=1}^{\tilde{N}_{neg}}\mathcal{L}_{neg}(\tilde{D}_{j},y_{j})

2.4.1. Dynamic Prior

        ①Flexibility may alleviate mismatch problem

        ②Each prior represents a feature point

        ③The structure of Prior Capturing Block (PCB):

the surrounding information is considered by dilated convolution. Then caputure dynamic prior by Deformable Convolution Network (DCN). Moreover, using the offset learned from the regression branch to guide feature extraction in the classification branch and improve alignment between the two tasks.

        ④To achieve dynamic prior capturing, initializing each prior loaction \mathbf{p}(x,y) by each feature point’s spatial location \mathbf{s}. In each iteration, capture the offset set of each prior position \Delta \mathbf{o} to update \mathbf{s}:

\tilde{\mathbf{s}}=\mathbf{s}+st\sum_{i=1}^{n}\Delta\mathbf{o}_{i}/2n

where st denotes the stride of feature map, n denotes the number of offsets;

2D Gaussian distribution \mathcal{N}_{p}(\boldsymbol{\mu}_{p},\boldsymbol{\Sigma}_{p}) is regarded as the prior distribution;

动态的\tilde{\mathbf{s}}作为高斯的平均向量\boldsymbol{\mu}_{p}啥玩意儿??);

        ⑤Presetting a square \left ( w,h,\theta \right ) on each feature point

        ⑥The co-variance matrix:

\Sigma_p=\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}\frac{w^2}{4}&0\\0&\frac{h^2}{4}\end{bmatrix}\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix}\\\\ =\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}\begin{bmatrix}\frac{w}{2}&0\\0&\frac{h}{2}\end{bmatrix}\begin{bmatrix}\frac{w}{2}&0\\0&\frac{h}{2}\end{bmatrix}\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix}\\\\ =RR^T

dilate  v.扩张;(使)膨胀;扩大    deformable  adj.可变形的;应变的;易变形的

2.4.2. Coarse Prior Matching

        ①For prior, limiting gt to a single FPN may cause sub-optimal layer selection and releasing gt to all layers may cause slow convergence

        ②Therefore, they propose Cross-FPN-layer Coarse Positive Sample (CPS) candidates, expanding candidate layers to gt's nearby spatial location and adjacent FPN layers

        ③Generalized Jensen-Shannon Divergence (GJSD) constructs CPS between \mathcal{N}_{p}(\boldsymbol{\mu}_{p},\boldsymbol{\Sigma}_{p}) and \mathcal{N}_{g}(\boldsymbol{\mu}_{g},\boldsymbol{\Sigma}_{g}):

\mathrm{GJSD}(\mathcal{N}_{p},\mathcal{N}_{g})=(1-\alpha)\mathrm{KL}(\mathcal{N}_{\alpha},\mathcal{N}_{p})+\alpha\mathrm{KL}(\mathcal{N}_{\alpha},\mathcal{N}_{g})

\left\{\begin{matrix} \operatorname{KL}\left(P\left\|Q\right)\right. =\sum P\left(x\right)\log\frac{P\left(x\right)}{Q\left(x\right)} \\\\ \operatorname{KL}\left(P\left\|Q\right)\right) =\int P\left(x\right)\log\frac{P\left(x\right)}{Q\left(x\right)}dx \end{matrix}\right.

which yields a closed-form solution;

where \Sigma_{\alpha}=(\Sigma_{p}\Sigma_{g})_{\alpha}^{\Sigma}=\left((1-\alpha)\Sigma_{p}^{-1}+\alpha\Sigma_{g}^{-1}\right)^{-1};

\begin{aligned} \mu_{\alpha}& =\left(\mu_{p}\mu_{g}\right)_{\alpha}^{\mu} \\ &=\Sigma_{\alpha}\left((1-\alpha)\Sigma_{p}^{-1}\mu_{p}+\alpha\Sigma_{g}^{-1}\mu_{g}\right) \end{aligned}

and due to the homogeneity of \mathcal{N}_{p} and \mathcal{N}_{g}\alpha =0.5

        ④Choosing top K prior with highest GJSD for each gt(选差异最大的那些)

2.4.3. Finer Dynamic Posterior Matching

        ①Two main steps are contained in this section, a posterior re-ranking strategy and a Dynamic Gaussian Mixture Model (DGMM) constraint

        ②The Possibility of becoming True predictions (PT) of the i^{th} sample D_i is:

PT_i=\frac{1}{2}Cls(D_i)+\frac{1}{2}IoU(D_i,gt_i)

choosing top Q samples with the highest scores as Medium Positive Sample (MPS) candidates

        ③They apply DGMM, which contains geometry center and semantic center in one object, to filter far samples

        ④For specific instance gt_i, the mean vector \boldsymbol{\mu}_{i,1} of the first Gaussian is the geometry center \left ( cx_i,cy_i \right ), the deduced \boldsymbol{\mu}_{i,2} in MPS denotes semantic center \left ( sx_i,sy_i \right )

        ⑤Parameterizing a instance:

DGMM_i(s|x,y)=\sum_{m=1}^2w_{i,m}\sqrt{2\pi|\Sigma_{i,m}|}\mathcal{N}_{i,m}(\mu_{i,m},\Sigma_{i,m})

where w_{i,m} denotes weight of each Gaussian distribution and their summation is 1;

\mu_{i,m} equals to gt's \boldsymbol{\Sigma}_{g}什么啊这是,但是m可以等于1或者2诶,那你g的协方差不就又是语义中心又是几何中心了吗

        ⑥For any DGMM(s|MPS)<e^{-g}, setting negative masks

2.5.  Experiments

2.5.1. Datasets

        ①Datasets: DOTAv1.0 /v1.5/v2.0, DIOR-R, VisDrone, and MS COCO

        ②Ablation dataset: DOTA-v2.0 with the most numbet of tiny objects

        ③Comparing dataset: DOTA-v1.0, DOTAv1.5, DOTA-v2.0, VisDrone2019, MS COCO and DIOR-R

2.5.2. Implementation Details

        ①Batch size: 4

        ②Framework based: MMDetection and MMRotate

        ③Backbone: ImageNet pre-trained models

        ④Learning rate: 0.005 with SGD

        ⑤Momentum: 0.9

        ⑥Weight decay: 0.0001

        ⑦Default backbone: ResNet-50 with FPN

        ⑧Loss: Focal loss for classifying and IoU loss for regression

        ⑨Data augmentation: random flipping

        ⑩On DOTA-v1.0 and DOTA-v2.0, using official setting to crop images to 1024×1024. The overlap is 200 and epoch is 12

        ⑪On other datasets, setting the input size to 1024 × 1024 (overlap 200), 800 × 800, 1333 × 800, and 1333×800 for DOTA-v1.5, DIOR-R, VisDrone, and COCO respectively. Epoch is set as  40, 40, 12, and 12 on the DOTA-v1.5, DIOR-R, COCO, and VisDrone

2.5.3. Main Results

(1)Results on DOTA series

        ①Comparison table on DOTA-v2.0 OBB:

where the red ones are the best and the blue ones are the second best performance on each metric

        ②Comparison table on DOTA-v1.0 OBB:

        ③Comparison table on DOTA-v1.5 OBB:

(2)Results on DIOR-R

        ①Comparison table on DIOR-R:

        ②Results of typical tiny objects vehicle, bridge, and wind-mill:

(3)Results on HBB Datasets

        ①Comparison table on VisDrone, MS COCO abd DOTA-v2.0 HBB:

2.5.4. Ablation Study

(1)Effects of Individual Strategy

        ①Employ prior on each feature point

        ②Individual effectiveness:

(2)Comparisons of Different CPS

        ①Ablation:

(3)Fixed Prior and Dynamic Prior

        ①Ablation:

(4)Detailed Design in PCB

        ①Using the offset of the regression head to guide the offset classification head will align better than applying DCN to a single regression branch

(5)Effects of Parameters

        ①Parameter adjustment of K and Q:

        ②Parameter adjustment of g

attenuate  v. (使)减弱;(使)纤细,稀薄  adj. 减弱的;稀薄的;细小的

2.6. Analysis

(1)Reconciliation of imbalance problems

        ①The mean predicted IoU and the mean positive sample number of gt holding different angles and different scales (absolute size):

where the left column denotes the quality imbalance and the right column denotes the quantity imbalance. The dynamic learning from coarse to fine proposed in the paper solves the problem of sample mismatch, and more positive samples are compensated to the previous abnormal angles and scales, namely the rotated small-scale real boxes can be allocated to more positive samples than before

dissection  n. 解剖,切开;解剖体;详细查究    delve  vi./vt. 钻研;探究;挖;n. 穴;洞

(2)Visualization

        ①Visualization of elimilations of False Negative and False Positive predictions:

where the first row and the second row are the results of RetinaNet-OBB and DCFL respectively. Furthermore, TP, FN and FP are green, red and blue frames. It can be see that DCFL can effectively locate oriented small objects with extreme shapes

        ②Visualization of sampled dynamic priors:

(3)Speed

        ①Compared with R3Det, S 2A-Net and RetinaNet with 16.2, 18.9, 20.8, FPS of DCFL is 20.9, which means the high efficiency of DCFL

        ②Parameters and GLOPs of DCFL:

2.7. Conclusion

        For solving the problems of mismatched feature prior and unbalanced positive samples, the authors proposed DCFL model with dynamic prior and coarse-to-fine assigner. Ultimately,, it achieves a remarkable performance

3. Reference List

Xu, C. et al. (2023) 'Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection', CVPR. doi: https://doi.org/10.48550/arXiv.2304.08876

相关文章:

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址&#xff1a;[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org) 论文代码&#xff1a;https://github.com/ChaselTsui/mmrotate-dcfl 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&…...

Selenium WebDriver 中用于查找网页元素的两个方法

这里提供了 Selenium WebDriver 中用于查找元素的两个方法&#xff1a;find_element() 和 find_elements()。 find_element(byid, value: Optional[str] None) → selenium.webdriver.remote.webelement.WebElement 这个方法用于查找满足指定定位策略&#xff08;By strategy&…...

python 常用装饰器

文章目录 property的介绍与使用作用使用场景装饰方法防止属性被修改 实现setter和getter的行为 staticmethod 与 classmethod作用代码示例 两者区别使用区别代码演示 abstractmethod参考资料 property的介绍与使用 python的property是python的一种装饰器&#xff0c;是用来修饰…...

深入解析MySQL日志系统:Binlog、Undo Log和Redo Log

在数据库系统中&#xff0c;日志文件扮演着至关重要的角色&#xff0c;它们不仅保证了数据的完整性和一致性&#xff0c;还支持了数据的恢复、复制和审计等功能。MySQL数据库中最核心的日志系统包括二进制日志&#xff08;Binlog&#xff09;、回滚日志&#xff08;Undo Log&am…...

强森算法求两点最短路径的基本流程及代码实现

对于强森算法,给定的一个图中,算法首先会构造一个新的节点s,然后从新构造的这个节点引出多条边分别连通图中的每一个节点,这些边的长度一开始是被设置为0的,然后使用贝尔曼-福德算法进行计算,算出从s到图中每一个节点的最短路径。 而在运行贝尔曼-福德算法的过程中如果发…...

数据结构入门篇 之 【双链表】的实现讲解(附完整实现代码及顺序表与线性表的优缺点对比)

一日读书一日功&#xff0c;一日不读十日空 书中自有颜如玉&#xff0c;书中自有黄金屋 一、双链表 1、双链表的结构 2、双链表的实现 1&#xff09;、双向链表中节点的结构定义 2&#xff09;、初始化函数 LTInit 3&#xff09;、尾插函数 LTPushBack 4&#xff09;、头…...

什么是零日攻击?

一、零日攻击的概念 零日攻击是指利用零日漏洞对系统或软件应用发动的网络攻击。 零日漏洞也称零时差漏洞&#xff0c;通常是指还没有补丁的安全漏洞。由于零日漏洞的严重级别通常较高&#xff0c;所以零日攻击往往也具有很大的破坏性。 目前&#xff0c;任何安全产品或解决方案…...

阿里云2025届春招实习生招聘

投递时间&#xff1a;2024年2月1日-2026年3月1日 岗位职责 负责大型客户“上云”&#xff0c;"用云"技术平台开发。 开发云迁移运维技术工具&#xff0c;帮助阿里云服务团队&&企业客户和服务商自主、高效的完成云迁移。 开发云运维技术工具&#xff0c;帮助…...

简单了解多线程

并发和并行 并发&#xff1a; 在同一时刻&#xff0c;多个指令在单一CPU上交替指向 并行&#xff1a;在同一时刻&#xff0c;多个指令在多个CPU上同时执行 2核4线程&#xff0c;4核8线程&#xff0c;8核16线程&#xff0c;16核32线程 基础实现线程的方式 Thread :继承类 &…...

GEE对上传并读取CSV文件

首先在Assets中上传csv csv格式如下所示&#xff1a; 上传好了之后&#xff0c;来看看这个表能否显示 var table ee.FeatureCollection("projects/a-flyllf0313/assets/dachang_2022"); var sortedTable table.sort(id); // 替换 propertyName 为你想要排序的属性…...

vulnhub-----SickOS靶机

文章目录 1.信息收集2.curl命令反弹shell提权利用POC 1.信息收集 ┌──(root㉿kali)-[~/kali/vulnhub/sockos] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:10:3c:9b, IPv4: 10.10.10.10 Starting arp-scan 1.9.8 with 256…...

slab分配器

什么是slab分配器&#xff1f; 用户态程序可以使用malloc及其在C标准库中的相关函数申请内存&#xff1b;内核也需要经常分配内存&#xff0c;但无法使用标准库函数&#xff1b;linux内核中&#xff0c;伙伴分配器是一种页分配器&#xff0c;是以页为单位的&#xff0c;但这个…...

MySQL面试题之基础夯实

一、mysql当中的基本数据类型有哪些 MySQL中的基本数据类型包括但不限于以下几大类&#xff1a; 数值类型&#xff1a; 整数类型&#xff1a;TINYINT、SMALLINT、MEDIUMINT、INT&#xff08;INTEGER&#xff09;、BIGINT浮点数类型&#xff1a;FLOAT、DOUBLE、DECIMAL&#xf…...

feign请求添加拦截器

FeignClient 的 configuration 属性&#xff1a; Feign 注解 FeignClient 的 configuration 属性&#xff0c;可以对 feign 的请求进行配置。 包括配置Feign的Encoder、Decoder、 Interceptor 等。 feign 请求添加拦截器&#xff0c;也可以通过这个 configuration 属性 来指…...

蓝桥杯之简单数论冲刺

文章目录 取模快速幂 取模 这道题目有两个注意点&#xff1a; 1.当你的取模之后刚好等于0的话&#xff0c;后面就不用进行后面的计算 2.if sum detail[i] > q: 这个语句的等号也很重要 import os import sys# 请在此输入您的代码a,b,n map(int,input().split())week a*5 …...

Http的缓存有哪些

HTTP 缓存可以通过多种 HTTP 头部字段来控制&#xff0c;主要包括以下几种&#xff1a; 1.Expires&#xff1a;这个字段定义了响应的过期时间。如果当前时间小于 Expires 的时间&#xff0c;那么就可以直接使用缓存。 2.Cache-Control&#xff1a;这个字段是一个指令&#xff…...

Linux 网络虚拟化 Macvlan(基于物理网络接口虚拟网络接口) 认知

写在前面 博文内容涉及 Macvlan 的简单认知&#xff0c;以及一个Demo博文内容根据《 Kubernetes 网络权威指南&#xff1a;基础、原理与实践》 整理理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前…...

Spark-Scala语言实战(1)

在之前的文章中&#xff0c;我们学习了如何在Linux安装Spark以及Scala&#xff0c;想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢。 Spark及Scala的安装https:/…...

NBlog Java定时任务-备份MySQL数据

NBlog部署维护流程记录&#xff08;持续更新&#xff09;&#xff1a;https://blog.csdn.net/qq_43349112/article/details/136129806 为了避免服务器被攻击&#xff0c;给博客添加了一个MySQL数据备份功能。 此功能是配合博客写的&#xff0c;有些方法直接用的已有的&#xf…...

微信小程序项目实战遇到的问题

我们以学生成绩平台来作为例子。这是我们想得到的效果。 以下是完整代码&#xff1a; index.js // index.js Page({//页面的初始数据data: {hello: 欢迎进入微信小程序的编程世界,score: 80,userArray: [{name: 张三,score: [66, 77, 86, 70, 90]},{name: 李四,score: [88, 7…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

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

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

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...