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

无人机如何自主侦察?UEAVAD:基于视觉的无人机主动目标探测与导航数据集

  • 作者:Xinhua Jiang, Tianpeng Liu, Li Liu, Zhen Liu, and Yongxiang Liu

  • 单位:国防科技大学电子科学学院

  • 论文标题:UEVAVD: A Dataset for Developing UAV’s Eye View Active Object Detection

  • 论文链接:https://arxiv.org/pdf/2411.04348

  • 代码链接:https://github.com/Leo000ooo/UEVAVD_dataset

主要贡献

  • 论文发布了数据集UEVAVD,旨在促进无人机视角的主动目标检测(AOD)问题的研究。该数据集包含不同环境设置下的多视图成像结果,有助于研究如何更好地利用无人机的自主性和机动性来克服基于无人机的目标检测中的遮挡问题。

  • 提出了结合归纳偏置的深度强化学习(DRL)改进方法,称为诱导偏差增强的多步动作预测(IBE-MAP)。通过场景预分解和基于记忆的状态估计,增强了智能体策略的泛化能力。

  • 利用CNN和GRU从历史观测序列中提取状态表示,而不是依赖单视图观测。此外,使用Segment Anything Model(SAM)对场景进行预分解,并过滤掉无关信息,从而提高了决策网络的状态表示。

  • 引入了上下文马尔可夫决策过程(CMDP)来量化智能体策略在UEVAVD数据集上的零样本泛化(ZSG)能力,并通过实验验证了所提方法的优越性。

研究背景

研究问题

论文主要解决的问题是无人机(UAV)在目标检测中遇到的遮挡问题。

现有的方法主要通过改进检测模型来应对这一问题,但很少有研究利用无人机改变视角来从根本上提高检测性能。

研究难点

该问题的研究难点包括:

  • 无人机在视图中无法确定目标身份时的决策问题,

  • 如何在移动过程中最小化运动成本以获取理想的观测视角。

相关工作

  • UAV目标检测

    • 深度学习方法:近年来,基于深度神经网络(DNN)的方法如Faster-RCNN、YOLO、SSD及其变体逐渐成为UAV目标检测的主流方法。这些方法通过改进网络结构和算法来提高检测性能,但仍然面临遮挡问题的挑战。

    • 遮挡处理:一些研究通过自适应改进检测模型来应对遮挡问题,例如使用Soft-NMS方法在后期处理中抑制冗余预测帧以减轻遮挡影响。然而,这些方法的抗遮挡能力仍不理想。

  • 主动视觉

    • 室内应用:主动视觉主要应用于室内机器人领域。Ammirato等人首次使用REINFORCE算法进行主动视觉任务,并发布了用于开发和基准化主动视觉算法的数据集 AVD (Active Vision Dataset)。Han等人使用双深度Q学习网络(DualingDQN)结合优先经验回放解决了主动视觉问题。Fang等人使用自监督表示学习来提高DRL方法的样本效率。

    • 室外应用:尽管室内环境中有多个主动视觉数据集(如AVD、T-LESS和R3ED),但在无人机视角下的主动目标检测方面缺乏类似的数据集。现有的UAV目标检测数据集(如VisDrone-DET)虽然覆盖了丰富的环境设置和目标,但由于缺乏密集的多视角图像,无法用于研究空地主动目标检测问题。

  • 主动目标检测(AOD)

    • DRL框架:AOD利用主动视觉来改善目标检测结果,通过赋予移动传感平台调整视角的能力来更好地识别目标。DRL已成为解决AOD问题的主流框架。Liu等人通过结合目标裁剪到状态表示并设计新的奖励函数来帮助机器人更平滑地接近目标物体。

数据集构建

目标和环境设置

  • 目标:数据集专注于城市和林地地形中的车辆目标。选择了五种类型的车辆目标(Hatchback、Pickup、Sports Car、Sedan、SUV),并从在线资源中整合到项目中。为了避免分类器仅通过颜色信息区分目标,标准化了Hatchback、Pickup、Sedan和SUV的颜色和纹理以匹配Sportscar。

  • 环境:为了确保数据集的丰富性和多样性,随机分布目标位置在整个场景中。目标通常放置在建筑物或树木附近,以模拟复杂的背景环境。

采样过程

  • 采样点:在每个场景中,无人机在目标区域内的特定采样点均匀分布处观察目标。采样点的坐标表示为 ,距离目标的距离满足以下条件: 相邻采样点之间的最小距离为10米。

  • 图像处理:使用AirSim插件获取原始RGB图像和整个场景的地面真实分割图像。为了减少计算量,将原始RGB图像裁剪为中心在目标的256×256像素的区域,并从原始图像和分割图像中导出目标的边界框。

数据集概述

  • 统计信息:数据集包含五种车辆目标在不同环境设置下的多视角成像结果。具体统计信息包括训练集和测试集(简单和困难)的目标类型、地形、上下文ID、图像数量和标注数量。训练集有60500张图像,测试集(简单和困难)各有15125张图像。

  • 目标位置分布:目标位置在场景中的分布通过俯视图展示,红色点表示训练上下文,蓝色点或星号表示测试上下文。测试上下文在目标位置分布上更明显地偏离训练上下文,以增加数据集的多样性。

研究方法

  • 问题建模

    • POMDP模型:AOD问题被建模为部分可观测马尔可夫决策过程(POMDP),通常表示为七元组 。其中, 是智能体的状态集, 是动作集, 是观测集, 是状态转移函数, 是观测函数, 是奖励函数, 是折扣因子。

    • 状态表示:状态 是从无人机的观测中提取的状态表示。动作 包括动作类型(如前进、后退、左转、右转、下降、上升、停止)和动作范围。

    • 观测函数:观测 包括无人机视角的航拍图像 和目标的边界框 。目标的位置在后续帧中可以通过跟踪算法获得。

  • 奖励函数设计

    • 奖励函数 考虑了检测准确性、决策步骤和无人机的移动路径。具体定义如下: 其中, 和 是正的奖励常数, 是控制动作范围的系数。

  • 策略优化

    • 通过求解以下优化问题来获得智能体的最优观测策略 : 其中, 表示智能体的策略, 是策略集, 是初始状态的分布, 是在一个回合内的期望回报。

  • 诱导偏差增强的AOD方法

    • 论文提出了一种改进的多步动作预测(MAP)方法,称为诱导偏差增强的多步动作预测(IBE-MAP)。该方法利用两种先验知识来增强状态表示:

    1. 场景预分解:使用Segment Anything Model (SAM) 对场景进行预分解,过滤掉与目标识别无关的信息。

    2. 记忆基状态估计:使用门控循环单元(GRU)从观测序列中提取状态表示,而不是依赖单一视图观测。

实验与结果分析

实验设置

  • 数据集划分:UEVAVD数据集被划分为三个部分:训练集、简单测试集和困难测试集。训练集用于训练智能体的策略网络,困难测试集用于测试策略。

  • 网络选择:选择一个在ImageNet上预训练的ResNet18网络作为分类器,并使用未遮挡的多视角图像对其进行微调。

  • 基线比较:比较基线方法包括MAP(Multistep Action Prediction)和Memo-MAP(Memo-MAP是MAP的改进版本,结合了记忆模块来提取状态表示,但不包括场景预分解阶段)。

结果和分析

  • 困难测试集上的评估
    • 在困难测试集上,对不同策略的表现进行了比较。结果显示,随机策略由于任意给出动作指令而失败;

    • MAP策略成功帮助无人机避开障碍物并获得正确的识别结果,但明显偏离了最优路径;

    • IBE-MAP策略引导无人机以更低的移动成本找到更好的视角,并在找到足够识别的视角后做出提前停止决策以提高效率。

  • 总体比较
    • 展示了三种AOD方法在回报、识别率和移动距离方面的表现。

    • 结果表明,随着训练的进行,所有策略的回报曲线都在上升,表明它们能够帮助智能体以更低的移动成本获得更好的识别结果。

    • IBE-MAP方法在测试时具有最强的泛化能力,其回报值超过了其他两种方法,且泛化差距最小。

超参数分析

  • 分类阈值的影响
    • 分析了分类阈值对策略性能的影响。结果表明,随着阈值的增加,回报下降,路径长度延长,但对识别准确率的影响较小。

  • 动作范围系数的影响
    • 分析了动作范围系数对策略性能的影响。

    • 结果表明,随着动作范围约束的增加,路径长度缩短,但识别率降低。

    • 存在一个准确性和路径长度之间的权衡,具体设置取决于执行AOD任务时的重要性。

总结

论文发布了一个新的数据集UEVAVD,包含不同地形和遮挡条件下的多视角航拍图像。通过这些观测数据的组合,可以模拟无人机在轨迹上连续观测的过程。

论文提出的IBE-MAP方法通过引入先验知识改进了原始MAP方法,使策略网络能够学习到更好的状态表示,从而提高了智能体在测试环境中的泛化能力。

相关文章:

无人机如何自主侦察?UEAVAD:基于视觉的无人机主动目标探测与导航数据集

作者:Xinhua Jiang, Tianpeng Liu, Li Liu, Zhen Liu, and Yongxiang Liu 单位:国防科技大学电子科学学院 论文标题:UEVAVD: A Dataset for Developing UAV’s Eye View Active Object Detection 论文链接:https://arxiv.org/p…...

怎样在PPT中启用演讲者视图功能?

怎样在PPT中启用演讲者视图功能? 如果你曾经参加过重要的会议或者演讲,你就会知道,演讲者视图(Presenter View)对PPT展示至关重要。它不仅能帮助演讲者更好地掌控演讲节奏,还能提供额外的提示和支持&#…...

大语言模型LLM在地理信息GIS中应用场景

AI&地理 AI大语言模型在地理中的应用主要体现在以下几个方面: 一、地理信息检索与查询 AI大语言模型能够理解复杂的自然语言查询,包括地名、地理位置、地理特征等,从而提供更加精准的地理信息检索服务。例如,用户可以通过自…...

AI常见的算法

人工智能(AI)中常见的算法分为多个领域,如机器学习、深度学习、强化学习、自然语言处理和计算机视觉等。以下是一些常见的算法及其用途: 1. 机器学习 (Machine Learning) 监督学习 (Supervised Learning) 线性回归 (Linear Regr…...

借DeepSeek-R1东风,开启创业新机遇

DeepSeek-R1的崛起 DeepSeek-R1的推出引发了广泛关注,在AI领域引起了一阵旋风。作为新一代的智能模型,它在多项任务中表现出了卓越的能力。普通人可以借助这个强大的工具,开启属于自己的创业之路,抓住时代带来的机遇。 内容创作…...

知识库建设对提升团队协作与创新能力的影响分析

内容概要 在当今快速变革的商业环境中,知识库建设的重要性愈发凸显。它不仅是信息存储的载体,更是推动组织内部沟通与协作的基石。通过系统整理与管理企业知识,团队成员能够便捷地访问相关信息,使得协作过程更为流畅,…...

Mongodb 慢查询日志分析 - 1

Mongodb 慢查询日志分析 使用 mloginfo 处理过的日志会在控制台输出, 显示还是比较友好的. 但是如果内容较大, 就不方便查看了, 如果可以导入到 excel 就比较方便筛选/排序. 但是 mloginfo 并没有提供生成到 excel 的功能. 可以通过一个 python 脚本辅助生成: import pandas…...

fps一些内容添加

1 增强输入要点记录 输入 :输入值的类型 布尔 1d,2d,3d 映射:就是确定按键输入键位,输入类型,和一些触发器(按键方式)修改器(对输出值进行修改) 基本的&am…...

从单体应用到微服务的迁移过程

目录 1. 理解单体应用与微服务架构2. 微服务架构的优势3. 迁移的步骤步骤 1:评估当前单体应用步骤 2:确定服务边界步骤 3:逐步拆分单体应用步骤 4:微服务的基础设施和工具步骤 5:管理和优化微服务步骤 6:逐…...

计算机视觉-卷积

卷积-图像去噪 一、图像 二进制 灰度 彩色 1.1二进制图像 0 1 一个点可以用一个bit(0/1)来表示 1.2灰度图像 0-255 一个点可以用一个byte来表示 1.3彩色图像 RGB 表达一个彩色图像先说它的分辨率p/w(宽)和q/h(高…...

Sprintboot原理

配置优先级 Springboot中支持的三种配置文件: application.propertiesapplication.ymlapplication.yaml java系统属性:-Dxxxxxx 命令行参数:-xxxxxx 优先级:命令行参数>java系统属性>application.properties>applicat…...

2007-2020年各省国内专利申请授权量数据

2007-2020年各省国内专利申请授权量数据 1、时间:2007-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、国内专利申请授权量(项) 4、范围:31省 5、指标解释:专利是专利权的简称&…...

SpringBoot或SpringAI对接DeekSeek大模型

今日除夕夜,deepseek可是出尽了风头,但是我看网上还没有这方面的内容对接,官网也并没有,故而本次对接是为了完成这个空缺 我看很多的博客内容是流式请求虽然返回时正常的,但是他并不是实时返回,而是全部响应…...

MV结构下设置Qt表格的代理

目录 预备知识 模型 关联 刷新 示例 代理 模型 界面 结果 完整资料见: 所谓MV结构,是“model-view”(模型-视图)的简称。也就是说,表格的数据保存在model中,而视图由view实现。在我前面的很多博客…...

C++:多继承习题2

题目内容: 分别声明Teacher类和Cadre类,采用多重继承派生出新类Teacher_Dadre。要求: (1)在两个基类中都包含姓名、年龄、性别、地址和电话。 (2)在Teacher类中包含title数据成员,Ca…...

DeepSeek--通向通用人工智能的深度探索者

一、词源与全称 “DeepSeek"由"Deep”(深度)与"Seek"(探索)组合而成,中文译名为"深度求索"。其全称为"深度求索人工智能基础技术研究有限公司",英文对应"De…...

Spring MVC中HandlerInterceptor和Filter的区别

目录 一、处理阶段 二、功能范围 三、参数访问 四、配置方式 五、使用场景说明 在Spring MVC中,HandlerInterceptor和Filter都是用于拦截请求的重要组件,但它们在多个方面存在显著的差异。本文将详细解析这两种拦截机制的区别,并结合使用…...

Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程

在 Linux 服务器上部署 Java 项目通常需要配置应用服务器(如 Tomcat)、数据库(如 MySQL)和缓存服务器(如 Redis)。本文将详细介绍如何在 Linux 环境中部署一个 Java 项目,涵盖 Tomcat、Redis 和…...

C语言------数组从入门到精通

1.一维数组 目标:通过思维导图了解学习一维数组的核心知识点: 1.1定义 使用 类型名 数组名[数组长度]; 定义数组。 // 示例: int arr[5]; 1.2一维数组初始化 数组的初始化可以分为静态初始化和动态初始化两种方式。 它们的主要区别在于初始化的时机和内存分配的方…...

工作总结:git篇

文章目录 前言基础Gerrit1.克隆2.新建本地分支和checkout3.添加到暂存区新增文件到暂存区修改已经添加到暂存区的文件取消添加到暂存区的文件 4.提交到本地仓库在不重复提交的情况下,修改本次提交 5.提交到远程仓库6.评审其他辅助命令 前言 目前也算是工作一段时间…...

2024年终总结——今年是蜕变的一年

2024年终总结 摘要前因转折找工作工作的成长人生的意义 摘要 2024我从国企出来,兜兜转转还是去了北京,一边是工资低、感情受挫,一边是压力大、项目经历少,让我一度找不到自己梦寐以求的工作,我投了一家又一家&#xff…...

Linux环境基础开发工具的使用(apt, vim, gcc, g++, gbd, make/Makefile)

什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的…...

宫本茂的游戏设计思想:有趣与风格化

作为独立游戏开发者之一,看到任天堂宫本茂20年前的言论后,深感认同。 游戏研发思想,与企业战略是互为表里的,游戏是企业战略的具体战术体现,虚空理念的有形载体。 任天堂长盛不衰的关键就是靠简单有趣的游戏&#xf…...

[JMCTF 2021]UploadHub

题目 上传.htaccess就是修改配置文件 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch>php_value auto_prepend_file .htaccess #<?php eval($_POST[md]);?>SetHandler和ForceType …...

树和图的实现与应用:C语言实践详解

树和图的实现与应用:C语言实践详解 树和图是两种重要的非线性数据结构,在计算机科学中有着广泛的应用。从基本的二叉树到复杂的图算法(如最短路径和最小生成树),这些结构能够帮助我们高效解决实际问题。本文将从基础出发,逐步深入,讲解如何用C语言实现树和图,并探讨其…...

DeepSeek助力学术文献搜索!

搜集文献 宝子们如果是第一次发表学术论文&#xff0c;论文往往是会署名多个作者。在这种情况下&#xff0c;即便成功发表了论文&#xff0c;独立撰作或主导写作的挑战仍旧存在。那么&#xff0c;怎样才能独立地完成一篇属于自己的学术论文呢&#xff1f;对于初次尝试学术论文…...

新项目上传gitlab

Git global setup git config --global user.name “FUFANGYU” git config --global user.email “fyfucnic.cn” Create a new repository git clone gitgit.dev.arp.cn:casDs/sawrd.git cd sawrd touch README.md git add README.md git commit -m “add README” git push…...

t113 procd-init文件系统增加自己的程序文件

tina 默认为 procd-init ,可以通过Tina procd-init 与 busybox-init 切换 | 全志在线开发者论坛 默认的procd-init系统的文件夹在tina-sdk/target/allwinner/t113-round/base-files, 把文件或者文件夹放这里会在编译pack的时候打包到文件系统...

vue中的el是指什么

简介&#xff1a; 在Vue.js中&#xff0c;el指的是Vue实例的挂载元素。 具体来说&#xff0c;el是一个选项&#xff0c;用于指定Vue实例应该挂载到哪个DOM元素上。通过这个选项&#xff0c;Vue可以知道应该从哪个元素开始进行模板编译和渲染。它可以是一个CSS选择器字符串&…...

渗透测试之WAF规则触发绕过规则之规则库绕过方式

目录 Waf触发规则的绕过 特殊字符替换空格 实例 特殊字符拼接绕过waf Mysql 内置得方法 注释包含关键字 实例 Waf触发规则的绕过 特殊字符替换空格 用一些特殊字符代替空格&#xff0c;比如在mysql中%0a是换行&#xff0c;可以代替空格 这个方法也可以部分绕过最新版本的…...

前端【11】HTML+CSS+jQUery实战项目--实现一个简单的todolist

前端【8】HTMLCSSjavascript实战项目----实现一个简单的待办事项列表 (To-Do List)-CSDN博客 学过jQUery可以极大简化js代码的编写&#xff0c;基于之前实现的todolist小demo&#xff0c;了解如何使用 jQuery 来实现常见的动态交互功能。 修改后的js代码 关键点解析 动态添加…...

Vscode的AI插件 —— Cline

简介 vscode的一款AI辅助吃插件&#xff0c;主要用来辅助创建和编辑文件&#xff0c;探索大型项目&#xff0c;使用浏览器并执行终端命令&#xff08;需要多个tokens&#xff09;&#xff0c;可以使用模型上下文协议&#xff08;MCP&#xff09;来创建新工具并扩展自己(比较慢…...

HTML表单深度解析:GET 和 POST 提交方法

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…...

CycleGAN模型解读(附源码+论文)

CycleGAN 论文链接&#xff1a;Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 官方链接&#xff1a;pytorch-CycleGAN-and-pix2pix 老规矩&#xff0c;先看看效果 总体流程 先简单过一遍流程&#xff0c;细节在代码里说。CycleGAN有…...

WebAssembly(Wasm)详解

WebAssembly 详解&#xff1a;开启 Web 应用的新纪元 引言 WebAssembly&#xff08;简称 Wasm&#xff09;是一种革命性的技术&#xff0c;它为 Web 应用带来了接近原生的性能&#xff0c;并支持使用多种编程语言进行开发。本文将深入探讨 WebAssembly 的方方面面&#xff0c…...

基于物联网设计的疫苗冷链物流监测系统

一、前言 1.1 项目开发背景 随着全球经济的发展和物流行业的不断创新&#xff0c;疫苗和生物制品的运输要求变得越来越高。尤其是疫苗的冷链物流&#xff0c;温度、湿度等环境因素的控制直接关系到疫苗的质量和效力&#xff0c;因此高效、可靠的冷链监控系统显得尤为重要。冷…...

RabbitMQ 多种安装模式

文章目录 前言一、Windows 安装 RabbitMq1、版本关系2、Erlang2.1、下载安装 Erlang 23.12.2、配置 Erlang 环境变量 3、RabbitMQ3.1、下载安装 RabbitMQ 3.8.93.2、环境变量3.3、启动RabbitMQ 管理插件3.3、RabbitMQ3.4、注意事项 二、安装docker1、更新系统包&#xff1a;2、…...

视频拼接,拼接时长版本

目录 视频较长&#xff0c;分辨率较大&#xff0c;这个效果很好&#xff0c;不耗用内存 ffmpeg imageio&#xff0c;适合视频较短 视频较长&#xff0c;分辨率较大&#xff0c;这个效果很好&#xff0c;不耗用内存 ffmpeg import subprocess import glob import os from nats…...

【Linux探索学习】第二十七弹——信号(一):Linux 信号基础详解

Linux学习笔记&#xff1a; https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言&#xff1a; 前面我们已经将进程通信部分讲完了&#xff0c;现在我们来讲一个进程部分也非常重要的知识点——信号&#xff0c;信号也是进程间通信的一…...

有限元分析学习——Anasys Workbanch第一阶段笔记梳理

第一阶段笔记主要源自于哔哩哔哩《ANSYS-workbench 有限元分析应用基础教程》 张晔 主要内容导图&#xff1a; 笔记导航如下&#xff1a; Anasys Workbanch第一阶段笔记(1)基本信息与结果解读_有限元分析变形比例-CSDN博客 Anasys Workbanch第一阶段笔记(2)网格单元与应力奇…...

【YOLOv11改进- 注意力机制】YOLOv11+SCSA注意力机制(2024): 最新空间和通道协同注意力,助力YOLOv11有效涨点;包含二次创新

YOLOV11目标检测改进实例与创新改进专栏 专栏地址:YOLOv11目标检测改进专栏,包括backbone、neck、loss、分配策略、组合改进、原创改进等; 本文介绍 本文给大家带来的改进内容是在YOLOv11中添加SCSA注意力机制,助力有效涨点。作者提出了一种新的空间与通道协同注意模块(S…...

科技快讯 | 理想官宣:正式收费!WeChat 港币钱包拓宽商户网络;百川智能发布深度思考模型Baichuan-M1-preview

理想官宣&#xff1a;正式收费&#xff01; 1月23日&#xff0c;理想汽车宣布&#xff0c;理想超充站超时占用费正式运营。触发超时占用费的条件为充电结束后15分钟内未将充电枪插回充电桩&#xff0c;收费标准为2元/分钟&#xff0c;单次封顶200元。理想汽车将在充电结束的四个…...

LLM架构与优化:从理论到实践的关键技术

标题&#xff1a;“LLM架构与优化&#xff1a;从理论到实践的关键技术” 文章信息摘要&#xff1a; 文章探讨了大型语言模型&#xff08;LLM&#xff09;开发与应用中的关键技术&#xff0c;包括Transformer架构、注意力机制、采样技术、Tokenization等基础理论&#xff0c;以…...

深入理解Pytest中的Setup和Teardown

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 对于简单程序而言&#xff0c;使用 Pytest 运行测试直截了当。然而&#xff0c;当你…...

PostgreSQL 约束

PostgreSQL 约束 引言 在数据库设计中,约束是确保数据完整性和一致性的关键工具。PostgreSQL,作为一款功能强大的开源关系型数据库管理系统,提供了丰富的约束类型来满足不同的数据库设计需求。本文将详细介绍PostgreSQL中的各种约束,包括其定义、用途和实现方法。 一、约…...

JAVA 接口、抽象类的关系和用处 详细解析

接口 - Java教程 - 廖雪峰的官方网站 一个 抽象类 如果实现了一个接口&#xff0c;可以只选择实现接口中的 部分方法&#xff08;所有的方法都要有&#xff0c;可以一部分已经写具体&#xff0c;另一部分继续保留抽象&#xff09;&#xff0c;原因在于&#xff1a; 抽象类本身…...

【微服务与分布式实践】探索 Dubbo

核心组件 服务注册与发现原理 服务提供者启动时&#xff0c;会将其服务信息&#xff08;如服务名、版本、所在节点的网络地址等&#xff09;注册到注册中心。服务消费者则可以从注册中心发现可用的服务提供者列表&#xff0c;并与之通信。注册中心会存储服务的信息&#xff0c…...

lightweight-charts-python 包 更新 lightweight-charts.js 的方法

lightweight-charts-python 是 lightweight-charts.js 的 python 包装&#xff0c;非常好用 lightweight-charts 更新比较频繁&#xff0c;导致 lightweight-charts-python 内置的 lightweight-charts 经常不是最新的。 新的 lightweight-charts 通常可以获得性能改进和bug修复…...

作業系統:設計與實現-母本

2023 南京大學《作業系統:設計與實現》 課程主頁(含講義):https://jyywiki.cn/OS/2023/ 【Python 实现操作系统模型 [南京大学2023操作系统-P4] (蒋炎岩)-哔哩哔哩】 https://b23.tv/jakxDbh 用Python实现操作系统模型讲义 一、操作系统基础概念 1.1 定义 操作系统(Oper…...

穿心莲内酯(andrographolide)生物合成CYP72-文献精读106

Two CYP72 enzymes function as Ent-labdane hydroxylases in the biosynthesis of andrographolide in Andrographis paniculata 两种CYP72酶在穿心莲&#xff08;Andrographis paniculata&#xff09;中作为Ent-labdane羟化酶&#xff0c;在穿心莲内酯&#xff08;andrograp…...