开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述
定义
开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)是一种目标检测任务,旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别,而OVOD模型则具有识别“开放词汇”类别的能力,即在测试时可以识别和定位那些未曾在训练集中见过的类别。与开放词汇目标检测相对应的另一个重要概念是开集目标检测(Open-Set Object Detection, OSOD)。OSOD的目标是检测那些未在训练集中出现的未知类别,并将其标记为“未知”。与OVOD的不同之处在于,OSOD并不试图去识别这些未知类别是什么,而是关注于准确地检测它们的存在。本质上,开放词汇目标检测任务(Open-Vocabulary Object Detection)与零样本目标检测(Zero Shot Object Detection)、弱监督目标检测(Weakly supervised Object Detection)非常类似,核心思想都是在可见类(base class)的数据上进行训练,然后完成对不可见类(unseen/ target)数据的识别和检测。
参考链接:
https://blog.csdn.net/mieshizhishou/article/details/141216656
https://zhuanlan.zhihu.com/p/610639148
相关工作
OVR-CNN
2021年发表在CVPR的"open-vocabulary object detection using captions"是开放词汇对象检测领域第一篇重要工作,利用大规模image-caption数据改善对未知类的检测能力。本文提出了新的目标检测范式,用 image-caption 数据预训练视觉编码器。
论文:https://arxiv.org/pdf/2011.10678
源码:https://github.com/alirezazareian/ovr-cnn
解读:https://blog.csdn.net/jiaoyangwm/article/details/132000797
CLIP
于2021年由OpenAI发布。CLIP是一种图文多模态预训练神经网络。
基于视觉模型图像编码&基于nlp模型文本编码&相似度对比学习
论文:https://arxiv.org/pdf/2103.00020
源码:https://github.com/openai/CLIP
解读:https://blog.csdn.net/weixin_38252409/article/details/133828294
应用:图像分类、文本到图像检索、图像生成(结合GAN)、视觉问答(结合nlp)
ViLD
于2021 年由 Google Research 的Xiuye Gu等人提出。
以类似于Mask R-CNN 的两阶段检测器作为基础框架,第一阶段通过骨干网络(backbone)和区域提议网络(RPN)生成候选区域提议(proposals),第二阶段对这些提议进行分类和边界框回归,以确定目标的类别和位置。使用预训练的 CLIP 模型中的图像编码器和文本编码器,图像特征&文本特征&匹配关系等多模态信息融合共同优化损失函数。
论文:https://arxiv.org/pdf/2104.13921
源码:https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild
解读:https://hub.baai.ac.cn/view/12691
GLIP
于2021 年 12 月 7 日由微软团队首次发布提出。CLIP适用于分类任务,而GLIP尝试将这一技术应用于目标检测等复杂任务。视觉编码器&文本编码器&词-区域对齐&边界框回归
论文:https://arxiv.org/pdf/2112.03857.pdf
源码:https://github.com/microsoft/GLIP
解读:https://zhuanlan.zhihu.com/p/690342065
应用:开放词汇物体检测、视觉问答(VQA)、图像描述生成与检索
RegionCLIP
于2021年12月由微软团队提出。
基于预训练好的 CLIP 模型构建了一个 R-CNN 形式的目标检测器。
论文:https://arxiv.org/pdf/2112.09106.pdf
源码:https://github.com/microsoft/RegionCLIP
解读:https://blog.csdn.net/jiaoyangwm/article/details/131960703
Detic
于2022年1月由 Meta AI 和德克萨斯大学奥斯汀分校提出。
本质:使用图像分类的数据集来对目标检测器的分类头进行训练。
为了使得分类的分支具备检测出novel class的能力,基于image-supervised loss 的Detic,其将分类与定位解耦成两个问题,在分类时不再那么依赖标注数据。同样是两阶段范式。
论文:https://arxiv.org/pdf/2201.02605v3
源码:https://github.com/facebookresearch/Detic
解读:https://developer.aliyun.com/article/1277234
OWLViT
于2022 年由 Google Research 的 Matthias Minderer 等人提出。
OWL-ViT同样是以CLIP为多模态主干,创新之处在于其用于目标检测的微调阶段。在微调阶段,采用每个输出 token 的线性投影来获取每个对象的图像嵌入,而不是 CLIP 中使用的 token 池化和最终投影层。这些嵌入随后用于分类,而边界框坐标则是通过一个小型的 MLP 从 token 表示中推导出来的。支持基于图像嵌入做查询,允许检测难以通过文本描述的图像。
现在已经更新OWLViTv2。
论文:https://arxiv.org/pdf/2205.06230
源码:https://github.com/google-research/scenic/tree/main/scenic/projects/owl_vit
解读:https://zhuanlan.zhihu.com/p/613249723
VLDet
VLDet网络包括三个部分:视觉目标检测器,文本编码器和区域-词语之间的对齐。本文选择了Faster R-CNN作为目标检测模型。 目标检测的第一阶段与Faster R-CNN相同,通过RPN预测前景目标。为了适应开放词汇的设置,VLDet在两个方面修改了检测器的第二阶段:(1)使用所有类共享的定位分支,定位分支预测边界框而不考虑它们的类别。 (2) 使用文本特征替换可训练分类器权重,将检测器转换为开放词汇式检测器。 本文使用固定的预训练语言模型CLIP作为文本编码器。
论文:https://arxiv.org/pdf/2211.14843
源码:https://github.com/clin1223/VLDet
解读:https://blog.csdn.net/hanseywho/article/details/129143747
BARON
于2023年由Wu Size等人提出。首次提出了对齐 bag of regions 的 embedding,之前的方法都是对齐单个 region 的 embedding。基于 Faster R-CNN,为了让 Faster RNN 能够检测出任意词汇概念的目标,作者使用了一个线性映射层代替原本的分类器,将区域特征映射为伪词。
论文:https://arxiv.org/pdf/2302.13996
源码:https://github.com/wusize/ovdet
解读:https://blog.csdn.net/wzk4869/article/details/129713529
视觉-DINO
于2021年由 Facebook AI Research提出。
DINO学生网络和教师网络,两者具有相同的架构但参数不同,输入不同的图像视图,学生网络的输出通过与教师网络输出计算交叉熵损失来进行学习,教师网络使用学生网络的指数移动平均(EMA)进行更新。使用对比学习方法及全局自注意力机制,放弃负采样对的做法。
自监督的ViT可以呈现图像的语义分割信息,且在图像类间有良好的区分度。通过一个KNN就可以达到很高的分类准确率,所以用于算图像相似度、以图搜图的话应该是个好的选择。
论文:https://arxiv.org/pdf/2104.14294
代码:https://github.com/facebookresearch/dino
解读:https://zhuanlan.zhihu.com/p/635104575
视觉-DINOv2
于2023年由Meta AI Research提出。增强版DINO、大规模数据集LVD-142M
DINOv2包含两个完全相同的 ResNet 网络,其中一个作为学生网络,另一个作为教师网络,输入不同的图像,输出通过动量更新机制交互学习,这种结构有助于更好地学习图像的局部特征与全局特征。采用FlashAttention 机制,在同一前向传递中全局裁剪和局部裁剪,跳过了丢弃残差的计算。训练时采用全分片数据并行(FSDP)。
论文:https://arxiv.org/pdf/2304.07193
代码:https://github.com/facebookresearch/dinov2
解读:https://blog.csdn.net/CVHub/article/details/130304078
GroundingDINO
于2023年由清华大学、IDEA 研究院联合提出。GLIP是基于传统的one-stage detector结构,而Grounding DINO是一个双encoder单decoder结构,它包含了1个image backbone(Swin Transformer)用于提取多尺度图像特征,1个text backbone用于提取文本特征,1个feature enhancer用于融合图像和文本特征,1个language-guide query selection模块用于query初始化,1个cross-modality decoder用于bbox预测。
论文:https://arxiv.org/pdf/2303.05499
源码:https://github.com/IDEA-Research/GroundingDINO
解读:https://zhuanlan.zhihu.com/p/627646794
OV-DINO
于2024年由中山大学和美团联合提出。使用Swin Transformer作为图像编码器和BERT-base作为文本编码器的模型架构。统一的数据整合(UniDI)管道实现端到端训练,语言感知选择性融合(LASF)模块来优化跨模态的语义对齐。
论文:https://arxiv.org/pdf/2407.07844
源码:https://github.com/wanghao9610/OV-DINO
解读:https://blog.csdn.net/amusi1994/article/details/140836256
YOLO-World
于2024年由腾讯 AI 实验室提出。基于yolov8开发,采用CLIP预训练的Transformer文本编码器提取相应的文本嵌入,通过视觉语言建模和大规模数据集的预训练,提出一种新的可重新参数化的视觉-语言路径聚合网络(RepVL-PAN)和区域-文本对比损失,以促进视觉和语言信息之间的交互,增强了 YOLO 的开放词汇检测功能。
论文:https://arxiv.org/pdf/2401.17270v3
源码:https://github.com/AILAB-CVC/YOLO-World
解读:https://blog.csdn.net/weixin_47151388/article/details/137424184
其他最新工作2024-CVPR-Open-Vocabulary:
https://blog.csdn.net/m0_74163093/article/details/143247918
总结
综上,大多数工作均基于CLIP预训练的图像编码器和文本编码器。GlIP为解决目标检测任务提供了先例,后续很多工作常与目前较为广泛使用的目标检测网络结构相结合,从而构建新的开放词汇目标检测器。如ViLD基于Mask R-CNN、RegionCLIP基于R-CNN、VLDet和BARON基于Faster R-CNN。更具有创新性的工作是Detic,提出了使用图像分类的数据集来对目标检测器的分类头进行训练。OWL-ViT在目标检测微调阶段做创新,最有意思的是其支持基于图像嵌入做查询,允许检测难以通过文本描述的图像。这部分优势可能会使这个项目更能应用到实际任务中。另外的基于DINO的工作中,GroundingDINO更偏向于开集目标检测(OSOD)任务。与GLIP和G-DINO等其他方法相比,OV-DINO的预测更加精确,并且能够检测到标签中未标记的额外对象。而YOLO-World则主要是对yolov8的改进,目的在于为yolo架构赋予开放词汇检测能力。从开放词汇检测方案的发展历程上来看,YOLO-World的目标检测部分依然是单阶段范式的目标检测器,虽然效率更高速度更快,但一般不如两阶段范式的目标检测模型精度高。
开放词汇目标检测的核心思想是利用视觉-语言联合建模方法,将视觉特征和语言特征进行关联,从而实现对未见物体类别的检测。一般地,这类方法的关键组成有:
1.视觉特征提取(包括大规模图-文数据预训练、知识蒸馏、生成伪标签等)
2.文本嵌入(基于transformer)
3.视觉-语言匹配(基于referring 或grounding)
4.多模态融合
至于为何能做到开放词汇检测,关键在于利用了大规模预训练语言模型和视觉-语言联合表示学习。语言模型能够理解未见词语的语义,通过将目标类别名称编码为文本向量,然后与图像中的物体特征向量进行相似度计算。比如,对于一个新的类别 “独角兽”,语言模型能够理解这个词的语义,并且帮助检测器在图像中寻找具有相似语义特征的物体。
相关文章:
开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述
定义 开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)是一种目标检测任务,旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别,而OVOD模型则具有识别“开放词汇…...
Python读写JSON文件
import jsondef writeJSONFile(self):with open(g_updateFilePath, "w" encodingutf-8) as fiel:json.dump(dictData, fiel, indent4, ensure_asciiFalse)fiel.close()def readJsonToDict(file):with open(file, r, encodingutf-8) as f: # 确保文件以 UTF-8 编码打…...
使用Python开发高级游戏:创建一个3D射击游戏
在这篇文章中,我们将深入介绍如何使用Python开发一个简单的3D射击游戏。我们将使用Pygame库来创建2D游戏界面,并结合PyOpenGL来进行3D渲染。这个项目的目标是帮助你理解如何将2D和3D图形结合起来,创建更复杂的游戏机制,包括玩家控制、敌人AI、碰撞检测和声音效果。 一、开…...
springboot 配置Kafka 关闭自启动连接
这里写自定义目录标题 springboot 配置Kafka 关闭自启动连接方法一:使用 ConditionalOnProperty方法二:手动管理Kafka监听器容器方法三:使用 autoStartupfalse结语 springboot 配置Kafka 关闭自启动连接 在Spring Boot应用程序中,…...
Jenkins中添加节点实战
Jenkins是一个开源的自动化服务器,用于持续集成和持续交付(CI/CD)。为了提高构建和测试的效率,我们可以在Jenkins中添加节点(也称为代理或从属节点)。本文将详细介绍如何在Jenkins中添加节点,包括安装Java 11、Git、设置凭证、多种配置Jenkins Agent的方法以及验证。 …...
DL作业11 LSTM
习题6-4 推导LSTM网络中参数的梯度, 并分析其避免梯度消失的效果 LSTM(长短期记忆网络)是一种特殊的循环神经网络(RNN),旨在解决普通 RNN 在处理长序列时遇到的梯度消失和梯度爆炸问题。它通过设计多个门…...
用 Python 实现井字棋游戏
一、引言 井字棋(Tic-Tac-Toe)是一款经典的两人棋类游戏。在这个游戏中,玩家轮流在 3x3 的棋盘上放置自己的标记,通常是 “X” 和 “O”,第一个在棋盘上连成一线(横、竖或斜)的玩家即为获胜者。…...
构建MacOS应用小白教程(打包 签名 公证 上架)
打包 在package.json中,dependencies会被打进 Electron 应用的包里,而devDependencies则不会,所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …...
如何高效使用 Facebook Business Manager (商务管理平台)
在数字营销的浪潮中,Facebook Business Manager(商务管理平台)已成为众多企业管理社交广告活动、品牌资产和团队协作的核心工具。无论你是刚刚进入社交广告领域的小型企业主,还是经验丰富的大型品牌经理,掌握 Facebook…...
每天学习一个思维模型 - 损失规避
定义 损失规避(Loss aversion),又称损失厌恶,指人们面对同样数量的利益和损失时,认为损失更加令他们难以忍受。损失带来的负效用为收益正效用的2至2.5倍。损失厌恶反映了人们的风险偏好并不是一致的,当涉及…...
Python知识分享第三十一天-Numpy和Pnadas入门
NumPy Numpy介绍 Numpy是Python中科学计算的基础包,它是一个Python库提供多维数组对象 各种派生对象(如掩码数组和矩阵),以及用于对数组进行快速的各种例程,包括数学 ,逻辑, 形状操作,排序,选择,I/O,离散傅里叶变换,基本线性代数,基本统计运算,随机模拟等等(Numpy的核心是nda…...
mlr3超参数Hyperparameter 自动寻找auto
底层还是根据你本来在R跑单独那一个机器学习的函数,例如randomForest::randomForest(),里面可以填入什么,然后跟你的实际数据取值范围去设个范围。然后用auto_tuner()函数对学习器的超参数自动调参 随机森林randomforest learner_rf <- …...
双臂机器人
目录 一、双臂机器人简介 二、双臂机器人系统的组成 三、双臂机器人面临的主要挑战 3.1 协调与协同控制问题 3.2 力控制与柔顺性问题 3.3 路径规划与轨迹优化问题 3.4 感知与环境交互 3.5 人机协作问题 3.6 能源与效率问题 3.7 稳定性与可靠性问题 四、双臂机器人…...
MATLAB中cvx工具箱的使用
CVX 是 MATLAB 中一个用于解决凸优化问题的建模工具箱。它使得定义、求解和分析凸优化问题变得简单。CVX 允许用户用类似数学表达的方式编写凸优化问题,而不需要过多关注底层的优化算法。CVX 的核心功能是将一个简单的数学问题转化为 MATLAB 可以理解并求解的标准形…...
EGO Swarm翻译
目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …...
Webpack简单介绍及安装
一、介绍 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。它将应用程序中的所有依赖项(JavaScript、图片、CSS 等)打包成一个或多个 bundle。这样做的主要目的是减少加载时间和提高应用程序的加载性能…...
如何在Anaconda的虚拟环境中下载Python包
一、首先查看conda下的虚拟环境 使用conda info -e查看当前conda下的虚拟环境: conda info -e 二、激活要添加Python包的虚拟环境 其中base是基础环境,这里我们选择conda_env这个虚拟环境 conda activate conda_env 三、使用conda命令安装需要的Pyth…...
React 事件机制和原生 DOM 事件流有什么区别
发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 React 的事件机制与原生 DOM 事件流在设计和实现上有一些显著的区别。了解这些区别有助于我们更好地理解 React 是如何管理事件的…...
React 底部加载组件(基于antd)
底部加载组件的意义在于提供一种流畅的用户体验,以便在用户滚动到页面底部时自动加载更多内容。这样可以让用户无需离开当前页面,就能够无缝地浏览更多的内容.通过底部加载组件,可以分批加载页面内容,减少一次性加载大量数据对页面…...
Redis应用—7.大Value处理方案
1.⽅案设计 步骤一:首先需要配置一个crontab定时调度shell脚本,然后该脚本每天凌晨会通过rdbtools⼯具解析Redis的RDB⽂件,接着对解析出的内容进行过滤,把RDB⽂件中的⼤key导出到CSV⽂件。 步骤二:使⽤SQL导⼊CSV⽂件到…...
洛谷P2742 圈奶牛 (凸包 Andrew算法)
[USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包 题目背景 upd: 新增一组 hack 数据。 题目描述 农夫约翰想要建造一个围栏用来围住他的奶牛,可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标,计算…...
Spring(一)---IOC(控制权反转)
目录 引入 1.什么叫IOC(Inversion of Control)控制权反转? 2.什么叫AOP(Aspect-Oriented Programming)面向切面编程(涉及Java代理)? 3.简单谈一下Java怎么实现ICO? Spring框架的介绍 1. Spring框架的概述 2. Spring框架的优点 Spring IOC容器介绍…...
MySQL数据库——门诊管理系统数据库数据表
门诊系统数据库his 使用图形化工具或SQL语句在简明门诊管理系统数据库his中创建数据表,数据表结构见表2-3-9~表2-3-15所示。 表2-3-9 department(科室信息表) 字段名称 数据类型 长度 是否为空 说明 dep_ID int 否 科室…...
linux环境使用yum方式安装nginx
linux环境使用yum方式安装nginx 一、nginx官网 二、nginx安装 点击首页的 Docs 或者 install 都可以,最终都是进入到Installing nginx页面 因为安装的服务器环境是linux centos 所以选择 Installation on Linux下面 packages 跳转链接 点击packages后 最终会跳转…...
2024高级前端面试题大全
🎨 1、v-bind指令绑定所有属性 <comp :title"title" :color"color" /><comp v-bind"props" />🎨 父组件监听字组件渲染周期:hook:updated文章地址🎨 Vue3 defineAsyncComponent动态导…...
[机器学习]XGBoost(3)——确定树的结构
XGBoost的目标函数详见[机器学习]XGBoost(2)——目标函数(公式详解) 确定树的结构 之前在关于目标函数的计算中,均假设树的结构是确定的,但实际上,当划分条件不同时,叶子节点包含的…...
Hutool工具包的常用工具类的使用介绍
前言 Hutool 是一个轻量级的 Java 工具类库,提供了非常丰富的工具方法,可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能,以下是一些常用工具类的使用介绍: 1. StrUtil - 字符…...
ETCD备份还原
环境准备: master 192.168.8.128 node1 192.168.8.129 k8s版本: 一:安装etcdctl工具 1.1下载安装包: wget https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz 1.2解压&…...
服务器防火墙设置某个端口号只允许固定 ip地址访问
服务器防火墙设置某个端口号只允许固定 ip地址访问是运维常见的功能,今天我们分享一下: 一、Linux环境 1、firewall 方式 1)允许特定 IP 地址访问 23 端口 sudo firewall-cmd --zonepublic --add-rich-rulerule family"ipv4" s…...
FPGA 基础了解
前言 前期一直在做关于FPGA方面的开发,从开始认真玩FPGA到参考原子、野火、黑金、米联客的教学资料再到参与做项目中,中途也参加了两个比赛整也都获得不错的成绩,整个阶段持续了大概快一年半的时间,学习了乱七八糟的知识…...
Golang学习历程【第二篇 fmt包变量、常量的定义】
Golang学习历程【第二篇 fmt包&变量、常量的定义】 1. fmt 包1.1 打印(print)1.1.1 Print 打印1.1.2 Println 打印后换行1.1.3 Printf 打印格式化参数 1.2 输入(Scan)1.2.1 Scan 输入1.2.2 Scanf 格式化输入 2. 变量2.1 变量的声明2.2 变量初始化&am…...
深入QML语法
文章目录 深入了解 QML 文档的结构和语法什么是 QML 文档?导入语句导入语句的格式示例 对象声明基本语法示例更复杂的对象声明 QML 对象类型详解1. Rectangle(矩形)2. Gradient(渐变)3. Text(文本ÿ…...
Viggle Api上线V3-beta模型,圣诞节跳舞视频来临
历史文章 Suno AI API接入 - 将AI音乐接入到自己的产品中,支持120并发任务 万物皆能舞,AI让你秒变“舞”林高手 – Viggle AI“舞”所不能 Viggle AI:打造爆款 AI 视频,让照片 “踢” 起足球 又一款AI对口型神器,让…...
前端excel的实现方案Luckysheet
一、介绍 Luckysheet是一款纯前端类似excel的在线表格,功能强大、配置简单、完全开源的插件。目前已暂停维护,但是其已有功能大概能满足常见需求的使用。 二、引入 ①cdn引入(目前应该已经不支持,可自行尝试) <l…...
数据字典类型/条目表的设计目的
1.以前的设计思路 对于下拉框选项储存的思路 我们以前是直接针对每一个下拉框都关联一个表格于数据库中 这种行为很不妥当 如果对于不同业务情景下的相同下拉框来说 多个相同下拉框就会在数据库中产生多个表格 当某个下拉框的选项需要更新或者新增时 那么对应的需要同步更新相…...
abc 383 C (bfs 最短路 )D(唯一分解定理,欧拉筛)
C 题: 首先暴力的想,对于每一个加湿器的位置去 上下左右扩展是 nm 的复杂度 。最多会有 nm 个加湿器。所以复杂度到达了n^3 。肯定超时了。 我们可以发现 对于一个点 会标记很多次,这回导致超时。 可以采用类似 bfs 求最短路的形式ÿ…...
常用消息中间件介绍
在消息中间件这个领域,确实有不少专业且强大的选择,它们各自都有着独特的优势和适用场景。 1. Apache Kafka: • Kafka以其高吞吐量、低延迟和分布式架构著称,非常适合处理大数据量、实时性要求高的场景。 • 它支持发布/订阅模式…...
vue基础
1.v-text,v-html <!-- v-text,v-html都可以显示内容 ,v-html可以解析html标签--> <p>{{msg}}</p> <p v-text"msg"></p> <p v-html"msg"></p> <script> let appnew Vue({ el:"#max", data:{ ms…...
从Windows远程访问Linux上的数据库
从Windows远程访问Linux上的数据库 目录 简介在Linux上安装MySQL/MariaDB配置MySQL/MariaDB以允许远程连接 修改MySQL/MariaDB配置文件重启MySQL/MariaDB服务确保防火墙允许MySQL/MariaDB端口 创建远程访问用户授予用户权限测试远程连接 检查网络连通性使用图形化工具连接 创…...
Android HandlerThread、Looper、MessageQueue 源码分析
Android HandlerThread、Looper、MessageQueue 源码分析 简介 在 Android 开发中,大家应该对 HandlerThread 有一定了解。顾名思义,HandlerThread 是 Thread 的一个子类。与普通的 Thread 不同,Thread 通常一次只能执行一个后台任务&#x…...
ASP.NET |日常开发中定时任务详解
ASP.NET |日常开发中定时任务详解 前言一、定时任务的概念与用途1.1 定义1.2 应用场景 二、在ASP.NET中实现定时任务的方式2.1 使用System.Timers.Timer2.2 使用Quartz.NET 三、定时任务的部署与管理3.1 部署考虑因素3.2 管理与监控 结束语优质源码分享 ASP.NET &am…...
Unity动态读取外部图片转Texture2D,内存过大问题解决方案
问题描述 加载原始图片2.63M的图片,分辨率为3023*4032,占用内存108.5M 加载原始图片12.6 M的图片,分辨率为6000*8000,占用内存427.2M 太恐怖了吧 解决方案 1.加载完图片,等比缩放,宽高改为1024或者512以下 1024占用5.2M,512占用1.3M,相比小了很多 2.原始Texture2…...
【Where语法全解密】.NET开源ORM框架 SqlSugar 系列
文章目录 前言一、普通表达式查询 Where二、根据SQL查询 where三、动态查询四、动态拼表达式查询 ,拼拉姆达五、条件拼接查询六、链式条件查询七、根据Class查询,根据实查询八、根据Class中主键查询九、根据字典查询十、查询函数十一、Where中有子查询十…...
人工智能练习题--大题题库速通指南
随着人工智能(AI)技术的快速发展,越来越多的企业和个人开始重视AI的应用和发展。在这个背景下,人工智能训练师这一职业应运而生,他们专注于数据标注、模型训练、算法优化等方面的工作,以确保AI系统能够准确…...
写给Pythoner的前端进阶指南(四):异步编程 - 原生支持的 async/await
在开发中,异步编程是处理并发任务的重要方式。无论是请求数据、读取文件还是执行网络操作,异步编程能够有效提升程序的性能和响应速度。Python 和 JavaScript 都支持异步编程,但它们的实现方式有所不同。在这篇文章中,我们将深入探…...
项目搭建+姓名唯一性校验
一 : 添加时对姓名进行唯一性校验 ① : 给姓名绑定一个改变事件 ② : 取值 ③ : 组装对象 ④ : ajax (Controller定义对姓名唯一性校验的方法) 在成功回调函数里 判断姓名是否添加过(0>已添加 1>未添加) 未添加过,添加成功后,(清空) /*** 对姓名进行唯一性校验*/$("…...
MacOS下PostIn安装配置指南
PostIn是一款开源免费的接口管理工具, 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业,实现对数据和系统的完全控制。   1、MacOS服务端安装 Mac安装包下载地址:下载Mac安…...
时光回响,中原之声 ——漓岛⾳乐节x SONICE
音乐像呼吸一样在大地起伏,中原的回响透过时空,从遥远的内陆弥漫扩散至温暖的南方,年轻的呼唤似一阵快雨淋落在辽阔的海面,波澜游弋,终掀浪涛。来自中原的独立音乐厂牌SONICE将与澄迈漓岛音乐节联合呈现乘风舞台&#…...
获取apk信息(包名,版本等) aapt dump badging (apk文件路径)
1.找到sdk路径下aapt文件: Android\Sdk\build-tools\29.0.0 (29.0.0是构建版本,可以是其他版本如27.0.3) 2.window dos窗口cd 到这个路径下:Android\Sdk\build-tools\29.0.0 ,也可以配置到 环境变量 3.执行 aapt dump badging (apk文件路径…...
C++ 23版的最新特性
C 23 是 C 编程语言的最新标准版本,于 2023 年正式发布,带来了诸多新特性与改进,以下是一些主要内容: 1.语言特性 1.显式对象参数(Deducing this):显式对象参数(Deducing this&…...