针对超大规模病理图像分析!华中科技大学提出医学图像分割模型,提高干燥综合征诊断准确性
口干、眼干、皮肤干,每天伴有不明原因的肌肉酸痛和全身乏力,如果以上症状你「中招」了,除了考虑冬季天气干燥外,还应该警惕一种常见却总是被我们忽视的疾病——干燥综合征 (Sjögren’s Syndrome, SS)。
干燥综合征是以外分泌腺高度淋巴细胞浸润为特征的自身免疫性疾病, 在我国约有 500 万人患上此病。病症初期,外分泌腺(唾液腺、泪腺等)被高度浸润的淋巴细胞破坏,导致其功能减退,患者常常会感到口干、眼干,还可能伴有双肩关节酸痛等症状。与此同时,该病还会累及其他重要器官,比如肺、肝、肾脏,甚至影响生育。
图源:SLE解忧杂货铺
尽早发现并诊断干燥综合征至关重要,其中,局灶性淋巴细胞性唾液腺炎 (FLS) 是干燥综合征诊断的重要标准之一。通过获取患者的小唾液腺病理切片,并对其进行显微镜检查,依据现有的诊断标准,如果在每 4 平方毫米的组织样本中发现了超过 50 个淋巴细胞聚集,则认定其为典型的病灶特征。
然而,一张完整的病理扫描图像可达 10 万*10 万像素,约有 10 亿个像素点,医生需要仔细检查整幅图像并判断淋巴细胞聚集灶的个数,这不仅耗时,还常常依赖于专业医生的经验和主观判断,增加了误诊或漏诊的风险。
为了解决上述挑战,华中科技大学凃巍教授、陆枫教授等,利用在自动驾驶、面部识别等领域耳熟能详计算机视觉技术,提出了医学图像分割模型 M2CF-Net, 通过融合多分辨率和多尺度的图像识别技术,M2CF-Net 模型不仅能「看到」病理图像中的细微差别,还能精确定位和计数那些关键的生物标记——淋巴细胞聚集灶,帮助医生做出更快速、更准确的诊断。
研究成果以「M2CF-Net: A Multi-Resolution and Multi-Scale Cross Fusion Network for Segmenting Pathology Lesion of the Focal Lymphocytic Sialadenitis」为题,发表在 2023 IEEE International Conference on Medical Artificial Intelligence (MedAI) 上。
研究亮点:
-
解决了超大规模组织病理图像中难以识别微小淋巴细胞聚集灶的问题
-
融合多分辨率与多尺度,M2CF-Net 性能优于其他 3 种主流医学图像语义分割模型
-
M2CF-Net 在处理边界模糊、目标较小、纹理复杂的图像方面表现出色,其分割的图像具有更复杂的形状,与人类标注的实况非常吻合
论文地址:
https://doi.ieeecomputersociety.org/10.1109/MedAI59581.2023.00063
开源项目「awesome-ai4s」汇集了百余篇 AI4S 论文解读,并提供海量数据集与工具:
https://github.com/hyperai/awesome-ai4s
数据集:来自同济医院临床数据
本研究选用来自同济医院的一组小唾液腺病理切片数据集, 其中,小唾液腺是从患有原发性干燥综合征的病人身上切除的。
*小唾液腺分布在人体口腔和咽部黏膜下,作用是分泌唾液,维持口腔湿润、帮助消化、保护口腔组织免受感染等。
通过对小唾液腺病理切片进行染色,医生们可以用显微镜观察细胞的清晰结构。具体而言,研究人员对所有切片进行复查,确保其质量,并确认是否存在局灶性淋巴细胞性咽炎,病灶的特征是腺体周围每 4 平方毫米有超过 50 个淋巴细胞聚集。若患有病灶,则对其进行标注。
最后确定的数据集有 203 个样本,其中正样本 171 个(符合病灶特征),负样本 32 个(不符合病灶特征)。 研究人员将这些样本按照一定比例分为训练集、验证集、测试集,分别用于模型的训练、调整和性能评估。在实际过程中,研究人员对数据进行预处理,既减少了计算量,又提高了模型的泛化能力。
设计超大规模图像处理流水线,优化模型训练第一步
该研究的目标是从分辨率为 100,000 *100,000 的小唾液腺组织切片图中,提取局灶性淋巴细胞性唾液腺炎 (FLS) 的病变区域。然而,将千兆像素的图像直接输入神经网络进行训练是不可能的,主要是因为这种图像过大,计算资源、训练时长、现有框架等不足以支撑。
因此,研究人员设计了一套针对超大规模病理图像处理的流水线。 该流水线主要包括 3 个步骤:感兴趣区域 (Regions of Interest, ROI) 提取、染色标准化 (Stain Normalization)、图像分块 (WSl Patching)。如下图所示:
针对超大规模病理图像处理的流水线
第一部分,ROI 提取
为了提高病理图像中特定组织区域的识别准确性,研究人员最初使用了基于卷积神经网络 (CNN) 的分类器。然而,该分类器在处理气泡、碎裂组织和伪影等复杂特征时遇到了困难,导致其表现未达预期。为解决这一问题,研究团队采取了以下措施:
-
手动注释:对一部分样本进行了细致的注释,丰富数据集后重新训练分类模型。
-
数据增强:采用旋转、缩放和平移等技术提高训练数据的多样性,从而提升分类器的准确性。
第二部分,染色标准化
病理图像染色标准化的主要目的是确保不同来源的图像拥有一致的视觉色彩和对比度。具体而言,由于染色剂浓度、pH 值、温度和时间等因素的影响,实际染色过程中常出现染色不均匀或强度不一致的问题,导致相同类型的组织呈现出不同的视觉效果。这种差异会影响计算机视觉模型的准确性。
为解决此问题,研究人员采用了 Vahadane 算法。该算法通过调整源图像的染色特征,使其与目标图像相似,从而实现染色标准化的效果。具体来说,它计算源图像和目标图像之间的颜色矩阵变换,实现源图像的颜色变换。
第三部分,图像分块
为了应对经过 ROI 提取和染色标准化后图像尺寸仍过大,导致样本无法输入深度学习模型进行训练的问题。研究人员采用了基于 Patch 的训练方法,将图像切分为带有重叠区域的小块,这不仅提高了模型训练效率,还保留了原始信息。
为了分析较大导管附近细小淋巴细胞的详细特征,需要在较大视野范围上捕捉组织级别的特征。然而,为了保证分割结果的精确性,又需要在较小的视野范围上捕捉细胞级别的特征。如何权衡这两者之间的关系显得尤为重要。
为此,研究人员考虑了多分辨率下的图片分块方法,主要是将原始图像进行几次降采样,在这些降采样的图像上分别提取相同尺寸大小的图像块。这些从不同采样倍率图像上切分的 Patch 就有了不同大小的视野范围,既能捕捉到组织级别特征,又兼顾了细胞级别特征。
多分辨率与多尺度的融合模型,性能高效提升
研究人员选用的模型 M2CF-Net 包含多分支编码器 (Multi-branch Encoder) 和基于融合的级联解码器 (Fusion-based Cascaded Decoder)。 编码器在不同尺度上对不同分辨率斑块的特征进行下采样,而解码器则使用级联融合块来融合多分支编码器生成的特征图。
M2CF-Net 网络架构
具体而言,为了同时获取组织级别和细胞级别的特征,研究人员设计了一个多分支网络,该网络是典型的 Encoder-Decoder 架构模型,能够接受不同分辨率的图像作为输入。其中,Encoder 包括 3 个输入分支,分别接受不同大小的分辨率图像,并在编码过程中,分别产生不同视野范围的特征图组合。而 Decoder 则能够将 Encoder 产生的特征图组合利用级联的 Fusion Block 融合起来,输出最终的预测图。
在这个过程中,研究人员也利用了空间注意力和通道注意力机制,来增强输入特征的表征能力。最后使用 BCEDice Loss 作为模型的损失函数,该损失函数权衡了二值交叉熵损失和 Dice 损失,可以有效指导模型的优化方向。
实验结论:M2CF-Net 性能优于其他 3 种主流医学图像语义分割模型
研究人员将其所提模型 (M2CF-Net 与其他 4 个流行的医学图像语义分割模型进行对比——UNet、MSNet、HookNet 和 TransUNet。结果发现,M2CF-Net 模型在利用多分辨率和多尺度特征方面更具优势。
-
UNet:采用编码器-解码器结构,捕捉多尺度特征以进行精确分割
-
MSNet:引入多尺度减法网络,以加强特征提取并提高分割的准确性
-
HookNet:加入 Hook 来捕捉和利用多分辨率特征,增强 U-Net 结构,有效处理医学图像中各种尺寸图像的分割
-
TransUNet:基于 Transformer,通过引入自注意力机制来提高分割精度
如下图所示,研究人员发现 M2CF-Net 的 Dice 为 69.40%,达到最高,而且其参数量只有性能第三的 TransUNet 的一半,比参数量少的 UNet 和 MSNet 的性能分别提高 38.9% 和 22.5%,能有效地捕捉和融合图像中不同尺度的特征。
不同模型的性能比较
具体而言,M2CF-Net 的参数数量 (Params) 比 TransUNet 和 HookNet 少,但多于 UNet 和 MSNet。这是因为 TransUNet 基于 Transformer 架构,与 CNN 相比拥有更多的参数,单分支解码器使 M2CF-Net 的参数数量少于 HookNet。然而,与单分支输入网络相比,M2CF-Net 中的多分支编码器结构导致了更高的参数数量。
此外,经过深入分析,研究发现 M2CF-Net 在处理边界模糊、目标较小、纹理复杂的图像方面表现出色。如下图所示,M2CF-Net 的分割结果具有更复杂的形状,这与人类标注的实况非常吻合。
级联融合块中特征图和空间注意力的可视化GT 表示由医生手动标注的SA (f2) 表示由特征图 f2 生成的空间注意力热图
计算机视觉技术革新医学图像分割
医学图像分析对于疾病诊断至关重要,通过计算机技术可以实现对医学图像的精确分割,有效识别病变区域、人体器官以及感染部位,从而提升诊断效率。近年来,得益于深度学习等先进技术的进步,医学图像分割技术正快速从依赖手动操作转向自动化处理,经过专门训练的 AI 系统现已成为了医疗专业人员不可或缺的辅助工具。
华中科技大学同济医学院附属同济医院风湿免疫科副主任凃巍教授, 拥有超过 20 年的风湿免疫疾病诊疗经验,在干燥综合征方面具有丰富的诊断经验。在本文的研究中,凃巍教授深入解析了干燥综合征的病理学诊断流程,并指出了其中容易混淆的关键点,通过实际案例展示了不同情况下的诊断结果。掌握了干燥综合症的病理学诊断方法后,陆枫教授的团队提出了利用计算机视觉中的图像分割技术来应对诊断挑战。 双方借助先进的 AI 技术,为干燥综合征的诊断开辟了新的路径。
凃巍教授个人主页:
https://www.tjh.com.cn/MedicalService/outpatient_doctor.html?codenum=101110
陆枫教授个人主页:
http://faculty.hust.edu.cn/lufeng2/zh_CN/index.htm
除了上述提到的科研人员,还有很多科学家致力于对医学图像与 AI 交叉领域的前沿研究。
例如,美国麻省理工学院计算机科学与人工智能实验室 (MIT CSAIL) 团队联合麻省总医院 (Massachusetts General Hospital) 和哈佛医学院 (Harvard Medical School) 的研究人员,提出了一种用于交互式生物医学图像分割的通用模型 ScribblePrompt。 这种基于神经网络的分割工具,不仅支持注释人员使用涂鸦、点击和边界框等不同的注释方式来进行灵活的生物医学图像分割任务,对于未经训练的标签和图像类型同样表现出色。
相信随着更多先进技术被开发并应用于临床实践,肿瘤学、神经病学等多个医学分支都将受益,医学图像分析领域将迎来更加光明的发展前景。
相关文章:
针对超大规模病理图像分析!华中科技大学提出医学图像分割模型,提高干燥综合征诊断准确性
口干、眼干、皮肤干,每天伴有不明原因的肌肉酸痛和全身乏力,如果以上症状你「中招」了,除了考虑冬季天气干燥外,还应该警惕一种常见却总是被我们忽视的疾病——干燥综合征 (Sjgren’s Syndrome, SS)。 干燥综合征是以外分泌腺高度…...
混合开发环境---使用编程AI辅助开发Qt
文章目录 [toc]1、说明2、演示视频 1、说明 新时代的浪潮早就已经来临,上不了船的人终将被抛弃,合理使用AI辅助开发、提升效率是大趋势 注意:不要被AI奴隶 合理使用AI辅助编程,十倍提升效率。 大部分的编程AI都有vs code插件&…...
Unity复刻胡闹厨房复盘 模块一 新输入系统订阅链与重绑定
本文仅作学习交流,不做任何商业用途 郑重感谢siki老师的汉化教程与代码猴的免费教程以及搬运烤肉的小伙伴 版本:Unity6 模板:3D 核心 渲染管线:URP ------------------------------…...
[前端]HTTP库Axios
一、Axios简介 Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 环境。它是一个流行的 JavaScript 库,用于发起 HTTP 请求,如 GET、POST、DELETE 等。Axios 提供了易于使用的 API,支持请求和响应的拦截、转换数据格…...
Excel中index()函数
函数功能概述 INDEX 函数用于返回表格或区域中的值或对值的引用。它可以根据指定的行和列的位置从一个单元格区域中提取数据。这个函数有两种形式:数组形式和引用形式。语法结构(数组形式) INDEX(array, row_num, column_num)array࿰…...
linux-----文件命令
文件和目录的基本概念 文件类型: 普通文件:这是最常见的文件类型,用于存储数据,如文本文件、二进制文件等。文本文件可以用文本编辑器打开并查看内容,二进制文件则包含机器可执行的代码或其他特定格式的数据。目录文件…...
lua dofile 传参数
cat 1.lua arg[1] 111 arg[2] 222 dofile(./2.lua) cat 2.lua print("First argument is: " .. arg[1]) print("Second argument is: " .. arg[2]) 执行 lua 1.lua,结果为: First argument is: 111 Second argument is: 222 l…...
【ETCD】【实操篇(二)】如何从源码编译并在window上搭建etcd集群?
要在 Windows 上编译 etcd 及 etcdctl 工具,并使用 bat 脚本启动 etcd 集群,首先需要准备好开发环境并确保依赖项正确安装。下面是从 etcd 3.5 源码开始编译和启动 etcd 集群的详细步骤: 目录 1. 安装 Go 环境2. 获取 etcd 源码3. 编译 etcd…...
重温设计模式--备忘录模式
文章目录 备忘录模式(Memento Pattern)概述定义: 作用:实现状态的保存与恢复支持撤销 / 恢复操作 备忘录模式UML图备忘录模式的结构原发器(Originator):备忘录(Memento)&…...
如何借助边缘智能网关实现厂区粉尘智能监测告警
在诸如木制品加工、纺织品加工、塑料橡胶制品加工等多种工业生产场景中,粉尘问题的隐患和风险不可小觑。如果缺少对生产环境中粉尘的监测和管理,可能发生易燃易爆、环境污染和工人尘肺等生产事故。 针对工业场景中的粉尘状况监测、管理及预警,…...
解析mysqlbinlog
一、前置设置 ps -ef | grep mysql 查看mysql进程对应的安装目录 需设置mysql binlog日志模式为 ROW 二、执行命令 [rootlocalhost bin]# mysqlbinlog --verbose --base64-outputdecode-rows /usr/local/mysql/data/binlog.000069 > 1.sql 查看文件具体内容...
【gym】理解gym并测试gym小游戏CartPole (一)
一、gym与文件位置的联合理解 import gym import inspect# 加载 CliffWalking 环境 env gym.make(CliffWalking-v0)# 获取环境的类 env_class type(env)# 获取环境类所在的文件路径 file_path inspect.getfile(env_class)print(f"The source code for CliffWalking-v0…...
【jvm】内存泄漏的8种情况
目录 1. 说明2. 静态集合类持有对象引用3. 单例模式4. 内部类持有外部类5. 未关闭的连接6. 变量不合理的作用域7. 改变对象的哈希值8. 缓存Cache泄漏9. 监听器和回调 1. 说明 1.内存泄漏(Memory Leak)指的是程序中动态分配的内存由于某种原因没有被释放…...
android:sharedUserId 应用进程声明介绍
背景 adb install 安装系统软件报错,原因是签名不一致,进程改变。 代码分析 AndroidManifest.xml 定义的 android:sharedUserId 应用归属进程不同,从phone切换到system。 初始配置 <manifest xmlns:android="http://schemas.android.com/apk/res/android"c…...
WPSJS:让 WPS 办公与 JavaScript 完美联动
随着办公自动化需求的日益增长,WPS Office 推出了 WPSJS,这是一款强大的开发者工具,允许开发者通过 JavaScript 脚本与 WPS 办公软件进行互动。无论是在表格中自动填充数据、在文档中修改格式,还是在演示文稿中插入动态内容&#…...
【Linux进程】进程间通信(共享内存、消息队列、信号量)
目录 前言 1. System V IPC 2. 共享内存 系统调用接口 shmget ftok shmat shmdt shmctl 共享内存的读写 共享内存的描述对象 3. 消息队列 msgget msgsnd msgctl 消息队列描述对象 4. 信号量 系统调用接口 semget semctl 信号量描述对象 5. 系统层面IPC资源 6.…...
负载均衡的原理
负载均衡(Load Balancing)是一种计算机技术,用于在多个服务器、网络连接、计算资源之间合理分配工作负载,以提升应用程序的可用性、性能和可扩展性,以下是详细介绍: 工作原理 流量分配:负载均衡…...
Flash Attention
op融合 原始方法: 痛点:多次读取、写入显存。 解决:中间结果不保存,1个kernel顺序算完多个操作。 反向传播时用到这些中间结果要求导,怎么办? 答:类似activation checkpointing,重新…...
Craft CMS 模板注入导致 Rce漏洞复现(CVE-2024-56145)(附脚本)
0x01 产品描述: Craft CMS 是一个灵活且强大的内容管理系统(CMS),专为创意团队和开发人员设计,提供高度可定制、直观且性能优越的网站和内容管理解决方案。它以用户友好的界面、强大的插件生态系统以及支持现代web开发最佳实践的特性而闻名0x02 漏洞描述: 由于模板…...
步进电机位置速度双环控制实现
步进电机位置速度双环控制实现 野火stm32电机教学 提高部分-第11讲 步进电机位置速度双环控制实现(1)_哔哩哔哩_bilibili PID模型 位置环作为外环,速度环作为内环。设定目标位置和实际转轴位置的位置偏差,经过位置PID获得位置期望,然后讲位置期望(位置变化反映了转轴的速…...
Sigrity Optimize PI CapGen仿真教程文件路径
为了方便读者能够快速上手和学会Sigrity Optimize PI和 Deacap Generate 的功能,将Sigrity Optimize PI CapGen仿真教程专栏所有文章对应的实例文件上传至以下路径 https://download.csdn.net/download/weixin_54787054/90171471?spm1001.2014.3001.5503...
open Feign日志输出
openFeign默认是没有日志输出的,只有在open Feign所在的包的级别达到debug才会有输出,而且级别有四级。 四种日志级别: OpenFeign只会在FeignClient所在包的日志级别为DEBUG时,才会输出日志。而且其日志级别有4级: NON…...
进程间关系与守护进程
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 进程间关系与守护进程 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 进程组 什…...
C++设计模式:组合模式(公司架构案例)
组合模式是一种非常有用的设计模式,用于解决**“部分-整体”**问题。它允许我们用树形结构来表示对象的层次结构,并且让客户端可以统一地操作单个对象和组合对象。 组合模式的核心思想 什么是组合模式? 组合模式的目的是将对象组织成树形结…...
ubuntu 安装docker
Step1:更新系统软件包 sudo apt update Step2:安装依赖包【用于通过HTTPS来获取仓库】 sudo apt install apt-transport-https ca-certificates curl software-properties-common Step3:添加Docker官方GPG密钥 sudo -i curl -fsSL https://…...
PSDK的编译与ROS包封装
本文档讲述在NIVIDIA开发板上使用大疆提供的Payload SDK获取无人机实时GPS信息的方法,以及基于Payload SDK发布ROS GPS话题信息的方法。 文章目录 0 实现目标1 Payload SDK1.1 PSDK 源码的编译1.2 PSDK 的使用 2 遥测数据的读取2.1 示例代码结构2.2 读取机载GPS信息…...
【工作流】工作顺序
背景 当时的情况是:没有产品经理,后端直接和需求方对接;前端只能短时间投入大部分时间要忙别的;只有3个角色:需求方,后端,前端; 当时直接执行的 直接使用会议了解需求,…...
Unity2021.3.16f1可以正常打开,但是Unity2017.3.0f3却常常打开闪退或者Unity2017编辑器运行起来就闪退掉
遇到问题: 从今年开始,不知道咋回事,电脑上的Unity2017像是变了个人似得,突然特别爱闪退掉,有时候还次次闪退,真是让人无语,一直以来我都怀疑是不是电脑上安装了什么别的软件了,导致…...
Java基础面试题20:Java语言sendRedirect()和forward()方法有什么区别?
Java基础面试题:Java语言sendRedirect()和forward()方法有什么区别? 在 Java Web 开发中,sendRedirect() 和 forward() 是两个非常常用的方法,但它们有一些核心区别。我们来用最简单的方式给你解释清楚。 一、sendRedirect() 和 …...
2、光同步数字传送网的特点
同步复用 光同步数字传送网(SDH)采用同步复用方式。它将多个低速信号复用成高速信号,与准同步数字体系(PDH)的异步复用不同。在 SDH 中,各支路信号与复用后的高速信号是同步的,这种同步复用的方…...
3.4 stm32系列:定时器(PWM、定时中断)
一、定时器概述 1.1 软件定时原理 使用纯软件(CPU死等)的方式实现定时(延时)功能; 不精准的延迟: /* 微秒级延迟函数* 不精准* stm32存在压出栈过程需要消耗时间* 存在流水线,执行时间不确定…...
【环境搭建】Python、PyTorch与cuda的版本对应表
一个愿意伫立在巨人肩膀上的农民...... 在深度学习的世界里,选择合适的工具版本是项目成功的关键。CUDA、PyTorch和Python作为深度学习的三大支柱,它们的版本匹配问题不容忽视。错误的版本组合可能导致兼容性问题、性能下降甚至项目失败。因此࿰…...
【经验总结】AUTOSAR架构下基于TJA1145收发器偶发通信丢失不可恢复问题分析
目录 前言 正文 1.问题描述 2.尝试问题复现 3.尝试问题定位 4.直接原因 5.总结 前言 在《【CAN通信】TJA1145收发器重要功能介绍》一文中我们详细介绍了TJA1145收发器的重点内容,最近在开发测试过程中就遇到了一个CAN通信丢失且不可恢复的偶发问题,解决该问题的思路和…...
帝国CMS:如何去掉帝国CMS登录界面的认证码登录
如果在安装的时候,不小心选中了认证码选项,那么后面登录帝国后台都会要求输入认证码才能登录,如何去除这个设置呢,笔者以古诗词网 www.gushichi.com为例,为大家举例说明! 去除步骤如下: 1.前往…...
CTF入门:单主机渗透——flag_XEE的常规思路
学习通过技术手段获取目标主机中预置的5个flag值。 在kali操作机中打开终端,然后使用nmap工具对目标机器进行端口扫描: nmap -sT 192.168.12.26 访问80端口。 网站首页是一个登录框,在界面上有一个提示的标签“弱口令”,说…...
Note2024122303_Code2Docu插件使用
Note2024122303_Code2Docu插件初使用V1.0 step1: 安装 跳转链接 文档阅读:下载文档阅读。 根据文档内容,大概知道首先下载并安装插件: 资料说明和安装方式: 意思是: 下载文件后直接运行 Code2Docu_Installati…...
深度学习之目标检测篇——残差网络与FPN结合
特征金字塔多尺度融合特征金字塔的网络原理 这里是基于resnet网络与Fpn做的结合,主要把resnet中的特征层利用FPN的思想一起结合,实现resnet_fpn。增强目标检测backone的有效性。代码实现如下: import torch from torch import Tensor from c…...
共模电感的工作原理
共模电感也称为共模扼流线圈,是一种抑制共模干扰的器件,它是由两个尺寸相同,匝数相同的线圈对称地绕制在同一个铁氧体环形磁芯上,形成的一个四端器件。当共模电流流过共模电感时,磁芯上的两个线圈产生的磁通相互叠加&a…...
mysql高阶语句
mysql高阶语句 1.对结果排序 SELECT id,name,score FROM info; #由于对id设置了主键约束,默认排序按id的大小升序排序 select name,score from info order by score; #默认按升序(从小到大排序) select name,score from info order by score…...
sfnt-pingpong -测试网络性能和延迟的工具
sfnt-pingpong 是一个用于测试网络性能和延迟的工具,通常用于测量不同网络环境下的数据包传输性能、吞吐量、延迟等指标。 它通常是基于某种网络协议(如 TCP)执行“ping-pong”式的测试,即客户端和服务器之间相互发送数据包&…...
PostgreSQL 的历史
title: PostgreSQL 的历史 date: 2024/12/23 updated: 2024/12/23 author: cmdragon excerpt: PostgreSQL 是一款功能强大且广泛使用的开源关系型数据库管理系统。其历史可以追溯到1986年,当时由加州大学伯克利分校的一个研究团队开发。文章将深入探讨 PostgreSQL 的起源、…...
【express-generator】01-安装和基本使用
创建和初始化项目 安装 npm i -g express-generator 创建一个express应用程序 //express 文件名 express blog_demo 跟着提示 cd blog_demo //移动到该目录下 npm install //初始化 npm start //启动服务 在页面打开localhost:3000(默认启动的端口)…...
20241230 基础数学-线性代数-(1)求解特征值(numpy, scipy)
所有代码实现,基于教程中的理论通过python实现出来的。效率不高,但有代码可以看。 由于scipy/sckitlearn/sparkx 底层的实现都被封装了(小白兔水平有限,fortran代码实在没看懂)这里的实现至少可以和理论公式对应的上。…...
无人零售 4G 工业无线路由器赋能自助贩卖机高效运营
工业4G路由器为运营商赋予 “千里眼”,实现对贩卖机销售、库存、设备状态的远程精准监控,便于及时补货与维护;凭借强大的数据实时传输,助力深度洞察销售趋势、优化库存、挖掘商机;还能远程升级、保障交易安全、快速处理…...
python+opencv+棋盘格实现相机标定及相对位姿估计
pythonopencv棋盘格实现相机标定及相对位姿估计 引言1,使用相机采集含棋盘格图像14张2,进行相机标定(1)测试软件1标定结果(内参及畸变系数)(2)测试软件2标定结果(内参及畸…...
【YashanDB知识库】in大量参数时查询性能慢
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802939.html?templateId1718516 **【标题】**in大量参数时查询性能慢 **【关键字】**in 大量参数 FAST FULL SCAN INDEX RANGE SCAN **【问题描述】**测试表数据量200w,表…...
kubevirt网络
六、KubeVirt网络 KubeVirt网络相关组件 用户在KubeVirt平台创建虚拟机只需创建一个vmi(Virtual Machine Instance)对象,之后virt-controller会根据vmi对象中的信息创建一个Pod,这里把这个Pod叫做vmi pod。Vmi pod中有kubevirt组…...
LeetCode100之腐烂的橘子(994)--Java
1.问题描述 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元…...
【Leetcode】855. 考场就座
文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 在考场里,有 n n n 个座位排成一行,编号为 0 0 0 到 n − 1 n - 1 n−1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个…...
AI,cursor快速上手思维导图
https://cursor101.com/zh/tutorial/learn-cursor-tab...