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

Python的3D可视化库【vedo】1-4 (visual模块) 体素可视化、光照控制、Actor2D对象

文章目录

  • 6. VolumeVisual
    • 6.1 关于体素
    • 6.2 显示效果
      • 6.2.1 遮蔽
      • 6.2.2 木纹或磨砂效果
    • 6.3 颜色和透明度
      • 6.3.1 透明度衰减单位
      • 6.3.2 划分透明度标量梯度
      • 6.3.3 设置颜色或渐变
      • 6.3.4 标量的计算模式
      • 6.3.5 标量的插值方式
    • 6.4 过滤
      • 6.4.1 按单元格id隐藏单元格
      • 6.4.2 按二进制矩阵设置隐藏
  • 7 Actor2D
    • 7.1 可用的方法
    • 7.2 被子类重写的方法
    • 7.3 存在错误的方法
  • 8. LightKit
    • 8.1 关于灯光
    • 8.2 在显示时设置灯光


vedo是Python实现的一个用于辅助科学研究的3D可视化库。

vedo的visual子模块包含了管理对象及其属性的可视化和外观的基类。
其中VolumeVisual包含了体素对象Volume的可视化控制方法;
Actor2D是对vtkActor2D的封装,用于管理2D对象;
LightKit是一组光工具套件,用于控制3D场景中的光照效果。

参考:vedo官方文档


6. VolumeVisual

体素对象的可视化控制。

6.1 关于体素

像素是2D空间中不可分割的最小单位,而体素是像素在3D空间的扩展。体素不仅包含模型的表面信息,还包含模型的内部属性。

体素是量化为固定大小的可视化点云。点云可以在空间中任何位置有无数的点和浮点坐标,而体素具有固定的大小和整数坐标。
体素是规格化的,存储和解析都很方便。它不需要浮点运算,可以避免CPU浮点运算的瓶颈。

立体数据是3D空间中对物体的离散采样。3D笛卡尔标量表示立体数据的格式一般为(x, y, z, feature),其中feature代表某个点的灰度或其它信息。
立体数据表示的是每个点的属性,无法可视化。为了使立体数据可视化,就以采样点为中心,把feature表示特征扩充到一个小立方体上,这个小立方体就表示体素。

创建体素对象:

# 创建10x10x10的矩阵
data_matrix = np.zeros([10, 10, 10], dtype=np.uint8)
# 从该矩阵创建体素对象
v = vedo.Volume(data_matrix)
# 体素对象的标量范围是[0. 0.]
print(v.scalar_range())
# 展示
vedo.show(v, axes=1)

默认体素展示
后续使用的示例体素对象都用numpy的矩阵构建:

# 创建10x10x10的矩阵
data_matrix = np.zeros([10, 10, 10], dtype=np.uint8)
# 矩阵的值沿x坐标从0到9变化
for i in range(10):data_matrix[i:i+1, :, :] = i
v = vedo.Volume(data_matrix)
# 体素对象的标量范围是[0. 9.]
print(v.scalar_range())

6.2 显示效果

6.2.1 遮蔽

v.shade(status=None)
设置或获取体素对象的遮蔽状态,0为关闭,1为开启。默认是开启状态开启后图像显示的颜色会受背后体素的叠加。
遮蔽效果可以被volume.lighting()方法进一步控制。
启用遮蔽时,映射器会进行遮蔽计算。
有些情况下遮蔽不会应用。如在mode为1或2时。

# 从该矩阵创建体素对象
v1 = vedo.Volume(data_matrix).shade(0)
v2 = vedo.Volume(data_matrix).shade(1)
vedo.show([("shade=0", v1),("shade=0", v2),], axes=1, shape=(1, 2), size=(800, 400))

shade关闭和打开的效果。后面的一些示例为易于观察,显示时会关闭shade效果。
shade开关

6.2.2 木纹或磨砂效果

v.jittering(status=None)
为真时,每个光线的途径方向都会用噪音纹理轻微干扰,以消除木纹效果。

# 消除木纹效果
v1 = vedo.Volume(data_matrix).jittering(True)
v2 = vedo.Volume(data_matrix).jittering(False)
vedo.show([(vedo.Text2D("jittering", s=2), v1),(vedo.Text2D("default", s=2), v2)], axes=1, shape=(1,2), size=(800, 400))

使用鼠标拖动时出现的木纹效果变为磨砂效果:
磨砂和木纹效果

6.3 颜色和透明度

6.3.1 透明度衰减单位

v.alpha_unit(u=None)
定义每单位长度的光衰减量。默认值是1。
设置为0时,光不衰减,物体的任何位置都是完全不透明的。该值越大,渲染越趋于透明。

# 从该矩阵创建体素对象
v1 = vedo.Volume(data_matrix).cmap("r").alpha_unit(0)
v2 = vedo.Volume(data_matrix).cmap("r").alpha_unit(1)
v3 = vedo.Volume(data_matrix).cmap("r").alpha_unit(5)
vedo.show([("alpha_unit=0", v1),("alpha_unit=1", v2),("alpha_unit=5", v3),], axes=1, shape=(1, 3), size=(1200, 400))

alpha_unit

6.3.2 划分透明度标量梯度

v.alpha_gradient(alpha_grad, vmin=None, vmax=None)
为沿着标量范围的体素梯度分配一系列的透明度。可以给单个常量值。
这个梯度函数用来减少体素的平坦区域的不透明性,不同类型的材料之间的界限的不透明性维持不变。
梯度是依据光强在单位距离上的变化量决定的。

alpha_grad的格式和传给函数volume.alpha()的格式一样。
填透明度序列时,如[0, 0.2, 1],表示标量范围前半段的透明度从0到0.2变化,后半段从0.2到1变化。
填单个值时,表示设置统一的透明度。
也可以填二维的序列,如[(0, 0), (7, 0.2), (9, 1)],表示标量值从0到7,透明度从0变到0.2,标量值从7到9,透明度从0.2变化到1。

沿用上面的体素对象,查看不同的alpha_grad值的效果:
alpha_grad
alpha_grad

6.3.3 设置颜色或渐变

v.cmap(c, alpha=None, vmin=None, vmax=None)
CommonVisual.color()效果一样。
c可以填单个颜色或颜色映射。单个颜色必须使用colors.colors中给定的英文颜色名称或colors.color_nicks给出的颜色缩写。

使用不同的c值的效果:
cmap

6.3.4 标量的计算模式

v.mode(mode=None)
指定体素的渲染模式。可选的值如下:

基类CommonVisualalpha方法可以通过输入二维序列来定义标量到实际透明度的转换方式。如alpha=[(-5, 0), (35, 0.4) (123,0.9)],表示标量值在-5以下的都是透明的,标量值在35时,透明度为40%,标量值大于123时,透明度为90%。
0,composite。默认模式,标量值从体素中采样,并在渲染透明度时以从前到后的模式复合。取样的标量值经过alpha提供的转换方式,转为最终的颜色和透明度。
1,maximum projection。使用最大标量值渲染。该值会经过转换,成为颜色与透明度。
2,minimum projection。使用最小标量值。该值需要转换为颜色与透明度值。
3,average projection。标量值和透明度转换后的值相乘,然后累加,得到的结果再除以体素对象的样本数。结果图一般是灰度图。由于累加的值是计算值而不是取样方向上的真值,因此不会做转换。
4,additive mode。标量值和透明度转换的值相乘,然后累加。即标量值用给定的透明度来缩放,又相加来产生结果颜色。结果图一般是灰度图。
mode

6.3.5 标量的插值方式

v.interpolation(itype)
设置标量的插值类型。0是最近邻插值,1是线性插值。

# 对上面的体素对象,使用不同的插值策略
v1 = vedo.Volume(data_matrix).shade(0).interpolation(0)
v2 = vedo.Volume(data_matrix).shade(0).interpolation(1)
vedo.show([("nearest neighbour", v1),("linear", v2),], axes=1, shape=(1, 2), size=(800, 400))

插值策略

6.4 过滤

6.4.1 按单元格id隐藏单元格

v.hide_voxels(ids)
在可视化中隐藏体素单元格。填体素的单元格id列表。

data_matrix = np.zeros([100, 100, 100], dtype=np.uint8)
v1 = vedo.Volume(data_matrix).shade(0)
# 隐藏一半单元格
v1.hide_voxels(range(v1.ncells // 2))
v1.show()

hide_voxels

6.4.2 按二进制矩阵设置隐藏

v.mask(data)
使用二进制值屏蔽体素的可视化。需指定volume.mapper = "gpu"

from vedo import np, Volume, show
data_matrix = np.zeros([75, 75, 75], dtype=np.uint8)
# 设置值
data_matrix[ 0:35,  0:35,  0:35] = 1
data_matrix[35:55, 35:55, 35:55] = 2
data_matrix[55:74, 55:74, 55:74] = 3
vol = Volume(data_matrix).cmap('Blues')
vol.mapper = "gpu"
# 创建二进制矩阵,要显示的部分标记为1
data_mask = np.zeros_like(data_matrix)
data_mask[10:65, 10:60, 20:70] = 1
vol.mask(data_mask)
show(vol, axes=1).close()

这个方法使用后,一直显示失败,未找到调整方法。


7 Actor2D

管理2D对象。是对vtkActor2D的封装。
Actor2D封装的方法有的存在BUG,有的在子类中被重写。

7.1 可用的方法

t.mapper
获取内部的vtkMapper对象。

t.on()
使对象可见
t.off()
使对象不可见
t.toogle()
切换对象可见性

t.pickable(value=True)
设置对象的可选取性。

t.add_observer(event_name, func, priority=0)
为事件绑定回调函数。

t.layer(value=None)
设置或获取在多个渲染层中的图层编号。

t.coordiante_system(value=None)
设置或获取对象的坐标所在的坐标系。
value可选整型数值0到6:
0,Display。x、y取值为渲染窗口的像素值,坐标原点在窗口的左下角。
1,Normalized Display。和Display一样基于渲染窗口,不过x、y的取值范围为[0,1]
2,Viewport。x、y的坐标值定义在视口或渲染器里。
3,Normalized Viewport。默认值。x、y的坐标值定义在视口或渲染器里,取值范围[0,1]
4,View。x、y、z坐标值定义在相机所在的坐标系统里,取值范围[-1,1],Z表示深度信息。
5,Pose。
6,World。x、y、z坐标值定义在世界坐标系统。世界坐标系是放置Actor的三维空间坐标系。

7.2 被子类重写的方法

t.pos(px=None, py=None)
设置或获取在屏幕坐标中的位置。
仅有的子类Text2D对这个方法做了重写。

t.color(value=None) c.c(value=None)
设置或获取对象颜色。
Text2D只能设置,不能获取颜色。

t.alpha(value=None)
设置或获取对象透明度。
Text2D只能设置,不能获取透明度。

7.3 存在错误的方法

t.ps(point_size=None)
设置构成对象的点的大小。

t.lw(line_width=None)
设置构成对象的线条的宽度。

t.ontop(value=True)
置顶或置底对象。


8. LightKit

光工具套件,包括3种光源,主光灯补光灯头灯

8.1 关于灯光

主光灯一般是出现在头顶的光源(类似太阳、吊灯等)。它通常和垂直方向成45度夹角,会略微的左右偏移,向下照射。主光的亮度一般至少是其它光总亮度的两倍,以进行更好的对象特征建模。

套件中的其它光源是较弱的光源,可以提供额外的照明,补充主光源错过的点。

补光灯一般位于主光灯的对面(和相机都位于对象的同一侧),用来模拟场景中其他对象的漫反射。照亮主光灯照不到的地方,同时维持对比度。

头灯总是位于相机位置,降低主光灯和补光灯照射的区域之间的对比度。

两个背光灯,一个位于观察者看到的对象左侧,一个位于右侧,填补了对象背后的高对比度区域。

为了加强不同灯光之间的联系,补光灯、背光灯和头灯的强度值被设置为与主光灯亮度的比率。因此场景中所有光源的亮度都能通过改变主光灯的强度来改变。

所有光都有方向,照射无限远并且不衰减。光会随着相机移动。

8.2 在显示时设置灯光

初始化参数LightKit(key=(), fill=(), back=(), head=(), maintain_luminance=False)
key、fill、back、head分别填主光、补光、背光和头光的控制参数,均为字典格式。
参数字典允许的键如下:
warmth,色温,范围[0,1]。0是蓝色冷光,1是红色热光,0.5是自然光。
intensity,主光光强。主光光强默认为1。
ratio,非主光的光强,填比例值。
elevation,灯位置上下提升的角度。
azimuth,灯位置的转动的角度。

灯光默认是关闭的,打开灯效:

s = vedo.Sphere()
lit = vedo.LightKit()
vedo.show(s, lit)

打开灯光

LightKit是单例的对象,每次窗口展示,即使分了不同的框,使用的仍然是同一个LightKit实例。
因此,上面的图是两次程序运行合并后的图。后续的灯光测试也都是多次运行合并的结果。

测试主光的不同参数的效果:

s = vedo.Sphere()
lit = vedo.LightKit(key={"warmth": 0})
vedo.show(s, lit)

不同色温:
不同色温效果
不同elevation高度。默认灯光高度是45度左右。
不同高度的效果
不同azimuth转角:
不同转角效果
c.update()
更新场景中的光照状态。


以上整理了visual的三个类VolumeVisualActor2DLightKit的用法。

更多关于数据可视化的内容参考:Python数据可视化笔记

相关文章:

Python的3D可视化库【vedo】1-4 (visual模块) 体素可视化、光照控制、Actor2D对象

文章目录 6. VolumeVisual6.1 关于体素6.2 显示效果6.2.1 遮蔽6.2.2 木纹或磨砂效果 6.3 颜色和透明度6.3.1 透明度衰减单位6.3.2 划分透明度标量梯度6.3.3 设置颜色或渐变6.3.4 标量的计算模式6.3.5 标量的插值方式 6.4 过滤6.4.1 按单元格id隐藏单元格6.4.2 按二进制矩阵设置…...

使用html和JavaScript实现一个简易的物业管理系统

码实现了一个简易的物业管理系统,主要使用了以下技术和功能: 1.主要技术 使用的技术: HTML: 用于构建网页的基本结构。包括表单、表格、按钮等元素。 CSS: 用于美化网页的外观和布局。设置字体、颜色、边距、对齐方式等样式。 JavaScript…...

什么是纯虚函数?什么是抽象类?纯虚函数和抽象类在面向对象编程中的意义是什么?

纯虚函数 纯虚函数是一个在基类中声明但不实现的虚函数。它的声明方式是在函数声明的末尾添加 0。这意味着这个函数没有提供具体的实现,任何继承这个基类的派生类都必须提供这个函数的实现,否则它们也会变成抽象类,无法实例化。 示例&#…...

#Ts篇: Record<string, number> 是 TypeScript 中的一种类型定义,它表示一个键值对集合

Record<string, number> 是 TypeScript 中的一种类型定义&#xff0c;它表示一个键值对集合&#xff0c;其中键的类型是 string&#xff0c;而值的类型是 number。具体来说&#xff0c;Record<K, T> 是 TypeScript 的一个内置高级类型&#xff0c;用于根据传入的键…...

Exp 智能协同管理系统前端首页框架开发

一、 需求分析 本案例的主要目标是开发一个智能学习辅助系统的前端界面&#xff0c;涵盖以下功能模块&#xff1a; 首页&#xff1a;显示系统的总体概览和关键功能介绍。 班级学员管理&#xff1a;实现班级管理和学员管理。 系统信息管理&#xff1a;管理部门和员工信息。 …...

C# 备份文件夹

C# 备份目标文件夹 方法1&#xff1a;通过 递归 或者 迭代 结合 C# 方法 参数说明&#xff1a; sourceFolder&#xff1a;源文件夹路径destinationFolder&#xff1a;目标路径excludeNames&#xff1a;源文件夹中不需备份的文件或文件夹路径哈希表errorLog&#xff1a;输出错…...

互联网信息泄露与安全扫描工具汇总

文章目录 1. 代码托管平台渠道泄露2. 网盘渠道泄露3. 文章渠道泄露4. 文档渠道泄露5. 暗网渠道泄露6. 互联网IP信誉度排查7. 网站挂马暗链扫描8. 互联网IP端口扫描9. 互联网资产漏洞扫描 1. 代码托管平台渠道泄露 https://github.com/ https://gitee.com/ https://gitcode.co…...

主导极点,传递函数零极点与时域模态

运动模态 控制系统的数学建模&#xff0c;可以采用微分方程或传递函数&#xff0c;两者具有相同的特征方程。在数学上&#xff0c;微分方程的解由特解和通解组成&#xff0c;具体求解过程可以参考&#xff1a;微分方程求解的三种解析方法。 如果 n n n阶微分方程&#xff0c;具…...

永恒之蓝漏洞利用什么端口

永恒之蓝&#xff08;EternalBlue&#xff09;是一个著名的漏洞&#xff0c;影响了 Windows 操作系统的 SMBv1 服务。它的漏洞编号是 CVE-2017-0144&#xff0c;该漏洞被用于 WannaCry 等勒索病毒的传播。 永恒之蓝漏洞利用的端口 永恒之蓝漏洞利用的是 SMB&#xff08;Server…...

网络安全与防范

1.重要性 随着互联网的发达&#xff0c;各种WEB应用也变得越来越复杂&#xff0c;满足了用户的各种需求&#xff0c;但是随之而来的就是各种网络安全的问题。了解常见的前端攻击形式和保护我们的网站不受攻击是我们每个优秀fronter必备的技能。 2.分类 XSS攻击CSRF攻击网络劫…...

Navicat 17 功能简介 | SQL 开发

Navicat 17 功能简介 | SQL 开发 随着 17 版本的发布&#xff0c;Navicat 也带来了众多的新特性&#xff0c;包括兼容更多数据库、全新的模型设计、可视化智能 BI、智能数据分析、可视化查询解释、高质量数据字典、增强用户体验、扩展 MongoDB 功能、轻松固定查询结果、便捷URI…...

嵌入式系统中的并行编程模型:汇总解析与应用

概述&#xff1a;随着嵌入式系统处理能力的不断提升&#xff0c;并行编程在其中的应用愈发广泛。本文深入探讨了多种专门为嵌入式设计的并行编程模型&#xff0c;包括任务队列模型、消息传递模型、数据并行模型、异构多核并行模型、实时任务调度模型以及函数式并行模型。详细阐…...

VulkanSamples编译记录

按照BUILD.md说明&#xff0c;先安装依赖项 sudo apt-get install git build-essential libx11-xcb-dev \libxkbcommon-dev libwayland-dev libxrandr-dev 然后创建一个新文件夹build&#xff0c;在该目录下更新依赖项 cd VulkanSamples mkdir build cd build python ../scr…...

使用FabricJS对大图像应用滤镜(巨坑)

背景:我司在canvas的渲染模板的宽高都大于2048px 都几乎接近4000px&#xff0c;就导致使用FabricJS的滤镜功能图片显示异常 新知识:滤镜是对图片纹理的处理 FabricJS所能支持的最大图片纹理是2048的 一但图片超出2048的纹理尺寸 当应用滤镜时&#xff0c;图像会被剪切或者是缩…...

网页502 Bad Gateway nginx1.20.1报错与解决方法

目录 网页报错的原理 查到的502 Bad Gateway报错的原因 出现的问题和尝试解决 问题 解决 网页报错的原理 网页显示502 Bad Gateway 报错原理是用户访问服务器时&#xff0c;nginx代理服务器接收用户信息&#xff0c;但无法反馈给服务器&#xff0c;而出现的报错。 查到…...

Spring基础分析02-BeanFactory与ApplicationContext

大家好&#xff0c;今天和大家一起学习整理一下Spring 的BeanFactory和ApplicationContext内容和区别~ BeanFactory和ApplicationContext是Spring IoC容器的核心组件&#xff0c;负责管理应用程序中的Bean生命周期和配置。我们深入分析一下这两个接口的区别、使用场景及其提供…...

Rerender A Video 技术浅析(五):对象移除与自动配色

Rerender A Video 是一种基于深度学习和计算机视觉技术的视频处理工具&#xff0c;旨在通过智能算法对视频进行重新渲染和优化。 一、对象移除模块 1. 目标检测 1.1 概述 目标检测是对象移除的第一步&#xff0c;旨在识别视频中需要移除的对象并生成相应的掩码&#xff08;m…...

Java项目实战II基于微信小程序的小区租拼车管理信息系统 (开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着城市化进程的加速&#xff0c;小区居民对于出行方…...

【数字花园】数字花园(个人网站、博客)搭建经历汇总教程

目录 写在最最前面第一章&#xff1a;netlify免费搭建数字花园相关教程使用的平台步骤信息管理 第二章&#xff1a;本地部署数字花园数字花园网站本地手动部署方案1. 获取网站源码2.2 安装 Node.js 3. 项目部署3.1 安装项目依赖3.2 构建项目3.3 启动http服务器 4. 本地预览5. 在…...

WebRTC服务质量(03)- RTCP协议

一、前言&#xff1a; RTCP&#xff08;RTP Control Protocol&#xff09;是一种控制协议&#xff0c;与RTP&#xff08;Real-time Transport Protocol&#xff09;一起用于实时通信中的控制和反馈。RTCP负责监控和调节实时媒体流。通过不断交换RTCP信息&#xff0c;WebRTC应用…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

Linux操作系统共享Windows操作系统的文件

目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项&#xff0c;设置文件夹共享为总是启用&#xff0c;点击添加&#xff0c;可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download&#xff08;这是我共享的文件夹&#xff09;&…...

Redis——Cluster配置

目录 分片 一、分片的本质与核心价值 二、分片实现方案对比 三、分片算法详解 1. ‌范围分片&#xff08;顺序分片&#xff09;‌ 2. ‌哈希分片‌ 3. ‌虚拟槽分片&#xff08;Redis Cluster 方案&#xff09;‌ 四、Redis Cluster 分片实践要点 五、经典问题解析 C…...

【中间件】Web服务、消息队列、缓存与微服务治理:Nginx、Kafka、Redis、Nacos 详解

Nginx 是什么&#xff1a;高性能的HTTP和反向代理Web服务器。怎么用&#xff1a;通过配置文件定义代理规则、负载均衡、静态资源服务等。为什么用&#xff1a;提升Web服务性能、高并发处理、负载均衡和反向代理。优缺点&#xff1a;轻量高效&#xff0c;但动态处理能力较弱&am…...

OCC笔记:TDF_Label中有多个相同类型属性

注&#xff1a;OCCT版本&#xff1a;7.9.1 TDF_Label中有多个相同类型的属性的方案 OCAF imposes the restriction that only one attribute type may be allocated to one label. It is necessary to take into account the design of the application data tree. For exampl…...

NLP学习路线图(三十四): 命名实体识别(NER)

一、命名实体识别(NER)是什么? 命名实体识别(Named Entity Recognition, NER)是自然语言处理中的一项关键序列标注任务。其核心目标是从非结构化的文本中自动识别出特定类别的名词性短语,并将其归类到预定义的类别中。 核心目标:找到文本中提到的命名实体,并分类。 典…...

Linux知识回顾总结----进程状态

本章将会介绍进程的一些概念&#xff1a;冯诺伊曼体系结构、进程是什么&#xff0c;怎么用、怎么表现得、进程空间地址、物理地址、虚拟地址、为什么存在进程空间地址、如何感性得去理解进程空间地址、环境变量是如何使用的。 目录 1. 冯诺伊曼体系结构 1.1 是什么 1.2 结论 …...