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

PointCLIP: Point Cloud Understanding by CLIP

Abstract

近年来,基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果,该方法在开放词汇设置下学习图像与相应文本的匹配。然而,通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别,还有待探讨。在本文中,我们通过提出PointCLIP来确定这种设置是可行的,PointCLIP在CLIPencoded的点云和3D类别文本之间进行对齐。具体而言,我们通过将点云投影到多视图深度图上对其进行编码,并以端到端的方式聚合逐视图的零射击预测,从而实现了从2D到3D的有效知识传递。为了更好地提取全局特征,并将3D少镜头知识自适应地融合到2D预训练的CLIP中,我们进一步设计了一个访谈视图适配器。只需在少量镜头设置下微调适配器,PointCLIP的性能就可以得到很大提高。此外,我们还观察了PointCLIP与经典3d监督网络之间的知识互补特性。通过在推理过程中简单的集成,PointCLIP有助于在最先进的3D网络上实现有利的性能增强。因此,PointCLIP是一种很有前途的替代方案,可以在低数据条件下以边际资源成本有效地理解3D点云。我们在ModelNet10、ModelNet40和ScanObjectNN上进行了深入的实验,以证明PointCLIP的有效性

Introduction

在深度学习领域,尽管2D和3D视觉任务已经取得了显著进展,如图像分类、目标检测和语义分割等,但3D点云数据的处理仍然面临空间稀疏性和不规则分布的挑战。特别是,模型在训练时未曾遇到过的对象类别,现有的分类器往往难以有效识别。针对这一问题,对比视觉语言预训练(CLIP)模型在2D视觉识别中的成功应用,提出了一个具有挑战性的想法:将CLIP模型扩展到3D领域,实现对3D点云数据的理解和分类。CLIP通过大规模图像-文本对的预训练,学习了图像与文本之间的关联,从而在零样本设置下展现出对未见类别的识别能力。然而,将这种能力迁移到3D点云上并非易事,需要解决从2D图像到3D点云的跨模态知识转移问题。为了应对这一挑战,作者提出了PointCLIP方法,它通过将点云数据投影到多个视图的深度图上,并利用CLIP的预训练视觉编码器提取特征,实现了对3D点云的零样本分类。PointCLIP的优势在于,即使在没有3D训练数据的情况下,也能利用2D图像-文本对的预训练知识来理解和分类3D点云数据,这对于在数据稀缺的情况下进行3D点云理解具有重要意义。

论文的研究目标是在低数据条件下实现有效的3D点云理解,并以边际资源成本实现这一目标。作者们计划在ModelNet10、ModelNet40和ScanObjectNN等数据集上进行实验,以验证PointCLIP方法的有效性,并提出未来的工作将探索CLIP在更广泛的3D应用中的泛化能力。

Related work

主要是介绍一些相关的概念。

Zere-shot learning in 3D

零样本学习在3D领域的目标是识别在训练中未出现过的对象。尽管这一概念在2D分类中已广受关注,但在3D领域的应用研究相对较少。早期的工作通过将3D数据集分为“见过”和“未见”的样本,并使用前者训练PointNet来识别后者。随后的研究通过改进3D特征质量和引入三元损失来提高归纳学习的性能,允许使用未标记的数据。与这些方法不同,PointCLIP不依赖于3D样本的训练,而是通过2D数据进行预训练,实现对3D未见样本的直接零样本识别,这一设置在跨2D到3D领域的知识转移方面更具挑战性,并且对于解决实际问题具有紧迫性。

Transfer Learning

迁移学习是一种利用数据丰富的领域知识来辅助数据较少领域学习的技术。在视觉领域,ImageNet预训练对目标检测和语义分割等任务有显著帮助。在自然语言处理领域,通过网页爬取的语料库预训练的模型在机器翻译和自然语言推理任务上取得了优异的性能。

CLIP作为一种新引入的模型,在没有经过微调的情况下,对未见数据集展现出了卓越的图像理解能力。进一步的工作表明,通过引入特定领域的监督,CLIP的性能可以得到显著提升。然而,大多数现有方法都在相同模态内进行知识转移,如图像到图像或语言到语言。与这些方法不同,PointCLIP能够实现从2D图像到3D点云的跨模态知识转移,这为未来在不同模态之间进行迁移学习的研究提供了新的方向和动机。

Deep neural network for point cloud

点云深度神经网络主要分为基于点的方法和基于投影的方法。基于点的方法如PointNet和PointNet++,通过多层感知器对点进行编码,并使用最大池化操作保证排列不变性,近期的研究还引入了更先进的架构设计和几何提取器以提高点云解析能力。而基于投影的方法则将点云转换为体积或多视图数据形式,多视图方法通过将点云投影到多个视图的图像上,并利用在ImageNet上预训练的2D CNN进行处理。然而,这些方法通常需要离线生成或后期渲染,成本较高且不适用于实时应用。与此相反,本文提出的SimpleView方法直接将原始点投影到图像平面上,通过点的垂直距离设置像素值,这种方法具有较低的时间和计算成本,适合高效的端到端零样本识别任务。

Method

首先是一个概述在第3.1节中,首先回顾对比视觉语言预训练(CLIP)用于2D零射击分类。然后在3.2节中,介绍PointCLIP,将2D预训练的知识转移到3D点云中。在3.3节中,提供一个访谈视图适配器,以获得更好的少镜头性能。在第3.4节中,建议将PointCLIP与经过充分训练的经典3D网络集成,以进行多知识互补。

A Revisit of CLIP

PointCLIP的管道。为了弥合模态差距,PointCLIP将点云投影到多视图深度图上,并通过在2D中预训练的CLIP进行3D识别。该开关提供了直接零弹分类和少弹分类的替代方案,分别以实线和虚线表示,从这个图中可以看到分成了视觉编码和文本编码两种方式。

CLIP是一个预训练模型,它通过两个独立的编码器分别对图像和文本特征进行编码,以便将图像与其自然语言描述相匹配。在训练过程中,CLIP从互联网上收集了4亿个图像-文本对,通过对比损失在嵌入空间中对齐图像和文本的特征,实现了对开放词汇表中任何语义概念的零样本分类能力。对于未见数据集,CLIP使用预定义模板构建文本输入,并利用类别文本的C维特征获得零样本分类器。CLIP的视觉编码器将测试图像编码为特征向量,然后通过这些特征和文本编码器的权重计算分类logits,并通过softmax函数得到K个类别的预测概率。整个过程无需额外的训练图像,依赖预训练编码器实现优秀的零样本分类性能。

Point Cloud Understanding by CLIP

这一部分提出了PointCLIP,是一个基于预训练的CLIP模型的方法,用于点云数据的零样本学习。

由于3D数据集通常比2D数据集小且类别有限,这使得难以获得适合迁移学习的预训练3D网络。为了解决这个问题,PointCLIP通过从多个视图生成点投影图像,将无序的3D点云数据转换为CLIP能够处理的格式,从而弥合了2D和3D之间的模态差距。这些投影图像保留了点云的原始属性,并且通过简单的深度图投影,以最小的时间和计算成本实现了高效的端到端零样本识别。

PointCLIP利用CLIP的预训练2D知识,通过视觉编码器提取多视图特征,并通过文本编码器构建零样本分类器,通过加权求和的方式聚合来自不同视角的分类结果,实现了对点云的整体理解,而无需任何3D训练数据。

Inter-view Adapter for PointCLIP

Inter-view适配器的详细结构。给定点云的多视图特征,适配器提取其全局表示并生成面向视图的自适应特征。通过残差连接,将新学习的3D知识融合到预训练的CLIP中

PointCLIP虽然在点云上实现了高效的零样本分类,但其性能仍不及完全训练的3D神经网络。为了解决这一问题,作者提出了一种视图间适配器,是一个附加在PointCLIP之上的三层多层感知器(MLP),用于在少样本设置下提升性能。

在训练过程中,CLIP的视觉和文本编码器被冻结,只有适配器通过交叉熵损失进行微调。适配器通过连接多视图的特征并经过两层线性变换获取全局表示,然后基于全局特征生成适应性特征,并通过残差连接将其添加回原始CLIP编码的特征。

这种方法不仅增强了对点云的整体理解,而且将新学习到的3D少样本知识融合到2D预训练的CLIP中,进一步提升了跨模态性能。通过仅使用少量样本微调适配器,PointCLIP在ModelNet40数据集上实现了显著的性能提升,从而证明了特征适应在3D少样本数据上的重要性和有效性。

Multi-knowledge Ensemble

PointCLIP与传统的点云网络不同,它不是从零开始在3D数据集上训练,而是继承了2D视觉-语言学习的预训练知识。

研究者探究了将传统点云网络和PointCLIP的知识结合起来的可能性,以提高推理性能。实验中,PointNet++和PointCLIP的集成,通过简单的相加方式,提升了分类性能,证明了不同来源知识互补的有效性。这种集成方法不仅在PointNet++上有效,与其他最先进的3D网络集成时也能观察到类似的性能提升。

因此,PointCLIP可以作为一个即插即用的增强模块,用于提升点云识别的鲁棒性。这表明,通过结合不同领域的知识,可以显著提高模型的性能,尤其是在数据稀缺的情况下。

Experiment

Zero-shot Classification

在这个实验中,PointCLIP配备了视图间适配器,并在1到16次shot的设置下,在ModelNet10、ModelNet40和ScanObjectNN数据集上进行了实验。实验中,选择了ResNet-101作为CLIP的预训练视觉编码器,以加强特征提取,并增加了投影视图的数量至10个,特别是增加了左侧视图。实验结果表明,PointCLIP在少样本分类任务中优于其他四种代表性的3D网络,包括PointNet、PointNet++、SimpleView和CurveNet。消融实验进一步分析了不同投影视图对性能的影响,并发现在16次shot设置下,10个视图比6个视图表现更好。

此外,不同的视觉编码器和提示设计对性能也有显著影响,其中ResNet-101编码器和“点云的大[CLASS]”提示设计表现最佳。

最后,通过与其他完全训练的3D网络集成,PointCLIP进一步提升了性能,证明了其作为即插即用增强模块的潜力,能够实现更稳健的点云识别。

Few-shot Classification

这一部分描述了PointCLIP在少样本学习环境下的实验设置、性能表现和消融研究。实验在ModelNet10、ModelNet40和ScanObjectNN数据集上进行,采用了视图间适配器,并在1到16次shot的设置下进行。为了提高效率和性能,使用了ResNet-101作为预训练的视觉编码器,并增加了投影视图的数量至10个。

实验结果显示,PointCLIP在少样本分类任务中优于其他几种3D网络。消融研究表明,增加投影视图的数量可以提高性能,尤其是左侧视图对性能的提升最为显著。此外,不同的视觉编码器和提示设计对性能有显著影响,其中ResNet-101编码器和特定提示设计表现最佳。最后,通过与其他3D网络集成,PointCLIP进一步提升了性能,证明了其作为多知识集成模块的潜力。

Multi-knowledge Ensemble

这部分主要展示了PointCLIP与其他几种3D网络模型集成后性能提升的数据。表中列出了六种不同的3D网络模型(PointNet、PointNet++、RSCNN、DGCNN、SimpleView、CurveNet)在有无PointCLIP集成时的准确率对比,以及性能提升的具体数值和增益比率。这些数据显示了PointCLIP作为一个多知识集成模块,能够显著提升现有3D网络的性能,尤其是在只有少量样本(16-shot)的情况下,PointCLIP在ModelNet40数据集上达到了87.20%的准确率。这表明PointCLIP能够有效地与其他模型集成,通过补充2D视觉语言预训练的知识来增强3D点云的识别能力。

Conclusion

本文提出了PointCLIP,它可以在没有任何3D训练的情况下对点云进行跨模态零射击识别。通过多视图投影,PointCLIP有效地将CLIP预训练的2D知识转移到3D领域。

此外,设计了一个跨视图适配器来聚合多视图特征,并在少量镜头设置下将3D学习的知识融合到预训练的CLIP中。通过微调适配器并冻结所有其他模块,PointCLIP的性能得到了很大提高。此外,PointCLIP还可以作为一个即插即用模块,为传统的3D网络提供补充知识,从而提高性能。除了识别之外,未来的工作将集中在将CLIP推广到更广泛的3D应用上。

相关文章:

PointCLIP: Point Cloud Understanding by CLIP

Abstract 近年来,基于对比视觉语言预训练(CLIP)的零镜头和少镜头学习在二维视觉识别中表现出了令人鼓舞的效果,该方法在开放词汇设置下学习图像与相应文本的匹配。然而,通过大规模二维图像-文本对预训练的CLIP是否可以推广到三维识别&#x…...

搜索(剪枝)

定义: 剪枝,就是减少搜索树的规模、尽早排除搜索树中不必要分支的一种手段。 在深度优先搜索中,有以下几类常见的剪枝方法: 优化搜索顺序排除等效冗余可行性剪枝最优性剪枝记忆化剪枝 例题1:AcWing 167.木棒 题目:…...

python基础知识点

最近系统温习了一遍python基础语法,把自己不熟知的知识点罗列一遍,便于查阅~~ python教程 Python 基础教程 | 菜鸟教程 1、python标识符 以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 f…...

Android SurfaceFlinger——GraphicBuffer获取内存信息(三十一)

上一篇文章介绍了 GraphicBuffer 初始化的 initWithSize() 函数中的申请内存流程,这里我们看一下另一个比较重要的函数,GraphicBufferMapper. getTransportSize 获取内存信息。该函数通常在需要了解缓冲区的实际内存占用情况时调用,例如在调试内存使用情况或优化性能时。 一…...

基于 SASL/SCRAM 让 Kafka 实现动态授权认证

一、说明 在大数据处理和分析中 Apache Kafka 已经成为了一个核心组件。然而在生产环境中部署 Kafka 时,安全性是一个必须要考虑的重要因素。SASL(简单认证与安全层)和 SCRAM(基于密码的认证机制的盐化挑战响应认证机制&#xff…...

通用多级缓件组件

背景 业界第三方缓存框架一般为redis,本地缓地ehcache或guava,一般通过spring提供的restTemplate操作缓存 然而这样会存在以下问题: 与缓存中间件强耦合需手动整合多级缓存不支持注解数据更新时无法自动刷新缓存存在缓存穿透、缓存击穿、缓…...

MindIE Service服务化集成部署通义千问Qwen模型

一、昇腾开发者平台申请镜像 登录Ascend官网昇腾社区-官网丨昇腾万里 让智能无所不及 二、登录并下载mindie镜像 #登录docker login -u XXX#密码XXX#下载镜像docker pull XXX 三、下载Qwen的镜像 使用wget命令下载Qwen1.5-0.5B-Chat镜像,放在/mnt/Qwen/Qwen1.5-…...

chrome 接口请求等待时间(installed 已停止)过长问题定位

参考: 解决实际项目中stalled时间过久的问题 背景: 测试反馈系统开 6 个标签页后, 反应变的很慢 定位: 看接口请求瀑布流, 已停止时间很长, 后端返回速度很快, 确定是前端的问题 推测是并发请求窗口数量的问题, 屏蔽部分一直 pending 的接口, 发现速度正常了, 搜到上面的参…...

HDialog特殊动画效果

基于HDialog的特殊动画效果实现 业务场景 在开发过程中直接使用HDialog所展现的效果很快,同时不能够与用户所点击位置进行交互,会造成用户的体验观感不够好。因此需要实现一种能够从用户点击按钮位置以可变动画效果所展现的Dialog效果。 工作原理及实…...

基因组挖掘指导天然药物分子的发现-文献精读34

基因组挖掘指导天然药物分子的发现 摘要 天然产物是临床药物的主要来源,也是新药研发过程中先导化合物结构设计和优化的灵感源泉。但传统策略天然药源分子的发现却遭遇了瓶颈,新颖天然产物的数量逐渐无法满足现代药物开发的需求和应对全球多药耐药的威胁…...

hcip学习 DHCP中继

DHCP 中继 在可能收到 DHCP Discover 报文的接口配置 DHCP 中继, 指明 DHCP 服务器的地址,然后将 DHCP 发现报文以单播的形式送到 DHCP 服务器上 DHCP 中继报文的源地址和目标地址怎么确定 1、源地址:收到 Discover 报文的接口地址 2、目…...

[Mysql-函数、索引]

目录 函数: 日期函数 字符串函数 数学函数 聚合函数 索引: 索引分类 慢查询 创建索引 函数: MySQL函数,是一种控制流程函数,属于数据库用语言。 MySQL常见的函数有: 数学函数 用作常规的数学运…...

org.eclipse.jgit 简单总结

org.eclipse.jgit 是一个用于处理 Git 版本控制系统的纯 Java 库。它允许你读取和写入 Git 仓库,执行如克隆、拉取、推送、提交等操作。下面我将通过几个例子来展示如何使用 org.eclipse.jgit 进行一些常见的 Git 操作。 1. 克隆仓库 克隆一个远程 Git 仓库到本地目…...

Fork软件笔记:一键拉取仓库所有模块

Fork是一个好用的git工具,只是没有中文而已(不过不用翻译也能看使用)。 工具下载地址:https://fork.dev/ 界面展示: 当项目中仓库模块比较多时,可以看到每个模块都是一个分页,每一个都要手动切换…...

常见的锂电保护芯片 单节锂电保护/双节锂电保护芯片

目前外出贸易的要求不断增多,出口的产品基本上都需要带上锂电保护芯片 以下是常见的单节锂电保护芯片的选型 包括了市面上大部分的可用型号。 锂电保护芯片的脚位上面基本都是通用,可以直接替代 双节的锂电保护使用情况较少,需要外置MOS管调节…...

初识Java(六)

一、String类 1、类中有操作字符串的方法 查找:找到某个字符是字符串内的第几个:charAt;找到某个字符在字符串内第一次出现的下标:index 替换:替换所有:replaceAll;替换首个:repla…...

Spring-原理篇-DispatcherServlet 初始化 怎么和IOC进行了打通?

委托模式的体现,在初始化醒目的时候Spring MVC为我们提供了一个DispatcherServlet,映射了所有的路径,所有的请求都会先到达这里然后被转发到具体的Controller 进行处理,此文来探索一下,DispatcherServlet 初始化的时候…...

关于swift- OC混编使用Pod遇到的2个错误

错误1 Cannot find interface declaration for UITableViewCell, superclass of "DEFUITalbleViewCell" Cannot find interface declaration for UIView, superclass of "DefUIView" Cannot find interface declaration for 系统类, superclass of "自…...

Golang | Leetcode Golang题解之第290题单词规律

题目: 题解: func wordPattern(pattern string, s string) bool {word2ch : map[string]byte{}ch2word : map[byte]string{}words : strings.Split(s, " ")if len(pattern) ! len(words) {return false}for i, word : range words {ch : patt…...

【Django5】模型定义与使用

系列文章目录 第一章 Django使用的基础知识 第二章 setting.py文件的配置 第三章 路由的定义与使用 第四章 视图的定义与使用 第五章 二进制文件下载响应 第六章 Http请求&HttpRequest请求类 第七章 会话管理(Cookies&Session) 第八章 文件上传…...

HTML--JavaScript操作DOM对象

目录 本章目标 一.DOM对象概念 ​编辑 二.节点访问方法 常用方法: 层次关系访问节点 三.节点信息 四.节点的操作方法 操作节点的属性 创建节点 删除替换节点 五.节点操作样式 style属性 class-name属性 六.获取元素位置 总结 本章目标 了解DOM的分类和节…...

Redis 缓存

安装 安装 Redis 下载: Releases tporadowski/redis (github.com) winr ----services.msc-----将redis 设置为手动(只是学习,如果经常用可以设置为自动) 安装 redis-py 库 pip install redis-py Redis 和 StrictRedis redis-py 提供 Redis 和 Str…...

Prozyme糖样本检测平台--GlykoPrep® Rapid N-Glycan Preparation with APTS

单克隆抗体已成为生物制药行业具有潜力的新兴蛋白候选药物。其药物研发流程包括一系列精细的控制和评估步骤,需要仔细、严格地监测目标化合物的治疗稳定性及有效性。因此,在商业化前的每个阶段对单克隆抗体进行全面表征是极其有益的。在大量研究成熟的蛋…...

力扣面试题(一)

1、给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 char * mergeAlternately(char * word1, char * word2){int len1 strlen(word1);i…...

Python 输入输出

重点内容: 1、梳理掌握输入和输出函数的应用。 2、熟练使用int() float() str()等函数进行数据转换 3、常用转义字符在数据输入、输出中的应用 4、熟练使用ljust()、center()、rjust()等方法对字符位置进行控制。 5、灵活应用ASCII码、字母、数字及特殊字符解决…...

国服最强文字转音频?Fish Speech

官网文档与示例 Fish Speech V1.2 是一款领先的文本到语音 (TTS) 模型,使用 30 万小时的英语、中文和日语音频数据进行训练。我尝试用1066运行,但是质量不尽如人意,建议使用RTX系列的显卡进行推理。 使用结果展示 text """20…...

数据结构(6):图

1 图的基本概念 1.1 基本概念 1.1.1 定义【多对多的关系】 一个图不可能是空图!!!一个图的顶点集一定是非空集,但是边集可以为空集! 1.1.2 应用 1.2 无向图和有向图 弧头是有箭头的那一边,弧尾是没有箭头…...

kaggle使用api下载数据集

背景 kaggle通过api并配置代理下载数据集datasets 步骤 获取api key 登录kaggle,点个人资料,获取到自己的api key 创建好的key会自动下载 将key放至家目录下的kaggle.json文件中 我这里是windows的administrator用户。 装包 我用了虚拟环境 pip …...

前缀表达式(波兰式)和后缀表达式(逆波兰式)的计算方式

缀是指操作符。 1. 前缀表达式(波兰式) (1)不需用括号; (2)不用考虑运算符的优先级; (3)操作符置于操作数的前面。(如 3 2 ) 1.1 中…...

智能井盖管理系统:城市窨井的井下“保镖”

随着城市化进程的加速,城市的生命线基础设施面临着越来越多的挑战。其中,旭华智能智能井盖传感器技术的发展为提升城市基础设施的安全性和管理效率提供了新的解决方案。它专门用于监控市政窨井、燃气井、供水井内的积水状况以及井盖状态,以增…...

vue3-环境变量-JavaScript-axio-基础使用-lzstring-字符串压缩-python

文章目录 1.Vue3环境变量1.1.简介1.2.全局变量的引用1.3.package.json文件 2.axio2.1.promise2.2.安装2.3.配置2.3.1.全局 axios 默认值2.3.2.响应信息格式 2.4.Axios的拦截器2.4.1.请求拦截器2.4.2.响应拦截器2.4.3.移除拦截器2.4.4.自定义实例添加拦截器 3.lz-string3.1.java…...

ubuntu下载docker依赖包

Ubuntu下载docker依赖包 ​ 公司对外客户一直偏向对安全性要求较高,因此在外部署服务得时候,安装docker是一件极为重要得事情,之前得服务器得系统是centos7。在上一家公司的时候,已经把docker所需得rpm包已经集成打包好了。并且d…...

java面向对象进阶进阶篇--《JDK8,JDK9接口中新增的方法、接口的应用、适配器设计模式》

个人主页→VON 收录专栏→java从入门到起飞 接口→接口和接口与抽象类综合案例 一、JDK8接口中新增的方法 在JDK 8中,接口新增了几个重要的特性和方法,其中最显著的是默认方法(Default Methods)和静态方法(Static Met…...

15.2 zookeeper java client

15.2 zookeeper java client 1. Zookeeper官方1.1 依赖1.2 Zookeeper客户端连接测试1.3***************************************************************************************1. Zookeeper官方 1.1 依赖 <!-- 集成方式一:官方集成zookeeper依赖 --><dependenc…...

素材管理太繁琐?有这一个就够了!

引言&#xff1a; 在创意行业中&#xff0c;素材管理一直是设计师们的痛点。从灵感的捕捉到作品的完成&#xff0c;每一步都离不开素材的积累与整理。然而&#xff0c;传统的素材管理方式往往繁琐且效率低下&#xff0c;让人头疼不已。今天&#xff0c;我要介绍的这款智能素材管…...

KubeSphere 部署向量数据库 Milvus 实战指南

作者&#xff1a;运维有术星主 Milvus 是一个为通用人工智能&#xff08;GenAI&#xff09;应用而构建的开源向量数据库。它以卓越的性能和灵活性&#xff0c;提供了一个强大的平台&#xff0c;用于存储、搜索和管理大规模的向量数据。Milvus 能够执行高速搜索&#xff0c;并以…...

前端canvas——贝塞尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期贝塞尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…...

Elasticsearch模糊查询之Wildcard

{“wildcard” : { “LPR.keyword” : { “wildcard” : “${Keyword}”} }},你的示例中使用了 wildcard 查询&#xff0c;它适用于模糊搜索&#xff0c;允许使用通配符&#xff08;* 和 ?&#xff09;来匹配字段值。你使用了 keyword 子字段来确保精确匹配&#xff0c;这是一…...

【人工智能】穿越科技迷雾:解锁人工智能、机器学习与深度学习的奥秘之旅

文章目录 前言一、人工智能1. 人工智能概述a.人工智能、机器学习和深度学习b.人工智能发展必备三要素c.小案例 2.人工智能发展历程a.人工智能的起源b.发展历程 3.人工智能的主要分支 二、机器学习1.机器学习工作流程a.什么是机器学习b.机器学习工作流程c.特征工程 2.机器学习算…...

Nginx服务 rewrite、proxy_pass 用rewrite去除URL中的特定参数

Nginx 是一个高性能的开源反向代理服务器&#xff0c;可以用于处理跨域请求、负载均衡和缓存等功能。在本文中&#xff0c;我们将介绍如何使用 Nginx 配置文件来实现反向代理。 我们可以实现跨域请求的处理&#xff0c;同时保护用户的隐私和安全。此外&#xff0c;Nginx 还…...

RocketMQ事务消息机制原理

RocketMQ工作流程 在RocketMQ当中&#xff0c;当消息的生产者将消息生产完成之后&#xff0c;并不会直接将生产好的消息直接投递给消费者&#xff0c;而是先将消息投递个中间的服务&#xff0c;通过这个服务来协调RocketMQ中生产者与消费者之间的消费速度。 那么生产者是如何…...

【C++】选择结构- 嵌套if语句

嵌套if语句的语法格式&#xff1a; if(条件1) { if(条件1满足后判断是否满足此条件) {条件2满足后执行的操作} else {条件2不满足执行的操作} } 下面是一个实例 #include<iostream> using namespace std;int main4() {/*提示用户输入一个高考分数&#xff0c;根据分…...

scrapy解决管道阻塞问题采用threadpool库线程池+twisted同步语法异步编程

实现方法&#xff1a;process_item和download任务函数像下面编写即可&#xff0c;其他管道像往常一样写法 import time import threadpool import random from twisted.internet import deferclass VideoPipeline:def __init__(self):self.pool threadpool.ThreadPool(10) # …...

Axure RP:打造动态交互的大屏可视化设计利器

Axure大屏可视化是指使用Axure RP这款原型设计工具来创建具有视觉冲击力和数据展示功能的大屏幕界面。Axure以其强大的交互设计和丰富的组件库&#xff0c;成为了实现大屏可视化的重要工具之一。以下是对Axure大屏可视化的详细阐述&#xff1a; 一、Axure在大屏可视化中的优势 …...

“八股文”在实际工作中是助力、阻力还是空谈

目录 1.概述 1.1.对实际工作的助力 1.2.存在的问题 2.“八股文”对招聘过程的影响 2.1.“八股文”在筛选候选人时的作用 2.2.面试中的比重及其合理性 2.3.如何平衡“八股文”与实际编程能力的考察 3.“八股文”在日常工作中的实用价值 3.1.在团队协作环境中进行有效沟…...

项目开发:@ControllerAdvice注解的基本应用

目录 简介基本用法全局异常处理全局拦截器全局数据绑定 注解参数1.value(): String[]2.basePackages(): String[]3.basePackageClasses(): Class<?>[]4.assignableTypes(): Class<?>[]5.annotations(): Class<? extends Annotation>[] 三.注解组成总结 简…...

Jmeter三种方式获取数组中多个数据并将其当做下个接口参数入参【附带JSON提取器和CSV格式化】

目录 一、传统方式-JOSN提取器获取接口返回值 1、接口调用获取返回值 2、添加JSON提取器 3、调试程序查看结果 4、添加循环控制器 5、设置count计数器 6、添加请求 7、执行请求 二、CSV参数化 1、将结果写入后置处理程序 2、设置循环处理器 3、添加CSV文件 4、设置…...

C++入门基础:C++中的循环语句

循环语句是编程语言中用来重复执行一段代码直到满足特定条件的一种控制结构。它们对于处理需要重复任务的场景非常有用&#xff0c;比如遍历数组、累加数值、重复执行某项操作直到满足条件等。 但是在使用循环语句的时候需要注意下哈&#xff0c;有时候一不小心会构成死循环或者…...

VUE 基础(二)

1 v-show:根据表达值的真假&#xff0c;切换元素的显示和隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...

VMware Cloud Foundation ESXi 主机

一、准备嵌套 ESXi 主机环境# 1)物理 ESXi 主机信息 本次准备用于部署 VCF 嵌套实验环境的物理宿主机的配置信息如下图所示。其实,部署 VCF 环境主要对内存的大小要求比较高,部署完整的管理域相关组件下来差不多就要占用 200 GB左右内存,而对 CPU 和存储的需求可以根据实…...