相机成像之图像传感器与ISP【四】

news2024/11/22 5:49:46

文章目录

      • 1、图像传感器基础
        • 1.1 基础原理——光电效应
        • 1.2 基础的图像传感器设计
        • 1.3 衡量传感器效率的一个关键指标:光量子效率(QE)
        • 1.4 感光单元的响应
        • 1.5 像素的满阱容量
        • 1.6 像素尺寸和填充比例
        • 1.7 微透镜的作用
        • 1.8 光学低通滤波器简介
        • 1.9 传感器尺寸
        • 1.10 模拟前端
        • 1.11 Vignetting——渐晕
        • 1.12 图像传感器的作用流程小结
      • 2、颜色基础
        • 2.1 颜色是人类感知的产物
        • 2.2 光谱功率分布 (Spectral Power Distribution - SPD)
        • 2.3 光谱灵敏度函数 (Spectral Sensitivity Function - SSF)
        • 2.4 人眼的光谱灵敏度函数
        • 2.5 颜色滤波阵列 - Color filter arrays (CFA)
        • 2.6 每种相机有不同的光谱灵敏度函数
        • 2.7 思考:你能想到其他捕捉颜色的方法吗?
        • 2.8 图像传感器的作用流程小结
      • 3、相机内的图像处理(ISP)
        • 3.1 相机内图像处理的流程
        • 3.2 白平衡基础
        • 3.3 去马赛克
        • 3.4 去噪
        • 3.5 如何去除噪声
        • 3.6 色调重建
      • 4、相机内图像处理小结
        • 4.1 我们真的需要RAW格式图像吗?
        • 4.2 如何方便的获取RAW格式图像?
        • 4.3 有很多开源系统在改变这一情况
        • 4.4 总结

数码摄影的基础流程:

在这里插入图片描述

1、图像传感器基础

现代数字图像传感器已经非常复杂,涉及到半导体等知识,所以我们在本课中只能涉及基础,

在这里插入图片描述

什么是数字图像传感器?
下图中的“桶”就是像素阵列,

在这里插入图片描述

整个拍照过程如下,快门打开,曝光开始,由像素阵列(桶)持续接收这些光子直到曝光结束,曝光结束后,传感器将这些光子转换为数字信号,

1.1 基础原理——光电效应

在这里插入图片描述

1.2 基础的图像传感器设计

术语“感光器件(photosite)”可以用于指代整个像素,也可以仅指感光区域。

在这里插入图片描述

1.3 衡量传感器效率的一个关键指标:光量子效率(QE)

在这里插入图片描述

1.4 感光单元的响应

感光单元的响应几乎是线性的

  • 当势阱饱和时会产生非线性的响应 (过曝)
  • 当接近0时也产生非线性响应 (因为噪声的原因)

在这里插入图片描述

我们可以通过HDR成像来解决这种问题,

在这里插入图片描述

1.5 像素的满阱容量
  • 满阱容量:在饱和前势阱容纳的电子的数量,是成像传感器的另外一个重要的性能指标,
  • 满阱容量并不是越大越好,因为满阱容量越大则需要的像素尺寸也越大,
  • 满阱容量越大,则能提高信噪比和动态范围(更广的亮度范围),动态范围是指一幅图像的传感器能同时捕获并显示最暗和最亮的能力,

在这里插入图片描述

1.6 像素尺寸和填充比例

**加粗样式**

1.7 微透镜的作用
  1. 将光线汇聚到感光像素区域来帮助感光器件收集更多的光线
  2. 提升有效填充因子
  3. 通过实现像素大小的2D Box滤波器对图像进行空间低通滤波,以防止混叠伪影
  4. 有时还会在传感器前面放置一个附加的光学低通滤波器(OLPF),以改进前置滤波效果

在这里插入图片描述

如下右图下面的图像传感器中的微透镜和感光器件有一个斜移,是为了使光线更好地被感光器件接收,

在这里插入图片描述

什么是混叠伪影,如下右图灰色衬衫上的波纹(又叫摩尔纹)就是混叠伪影,
混叠伪影的原因:
图像传感器不足以处理高频信息

有2种方法可以防止混叠伪影:
1、通过实现像素大小的2D Box滤波器对图像进行空间低通滤波,以防止混叠伪影
2、有时还会在传感器前面放置一个附加的光学低通滤波器(OLPF),以改进前置滤波效果

在这里插入图片描述

更多参考:了解什么叫混叠伪影:5. 数码相机内的图像处理-图像采样与金字塔

1.8 光学低通滤波器简介
  • 在许多传感器前面,通常会有一块作为OLPF的玻璃片,也被称为光学抗混叠滤波器,
    OLPF通常由两层双折射材料和红外滤波器组成。
  • 光线具有不同的振动方向,进入如下图左一的晶体后,就会分成不同的方向(振动方向不同)进行传播,所以会造成字的重影,

在这里插入图片描述

  • 然而,OLPF意味着降低分辨率,因为高频信号被滤除了
  • 随着现在像素数量变大,OLPF变得不再是必要的。所以摄影师经常破解他们的相机来移除OLPF,以避免分辨率的损失
  • 也有相机制造商提供带和不带OLPF的相机版本
  • 同时,OLPF在处理相干光(杂散条纹)时也可能存在问题

在这里插入图片描述

需要用到OLPF的场景,

在这里插入图片描述


在这里插入图片描述

不必要用OLPF的场景,

在这里插入图片描述


在这里插入图片描述

1.9 传感器尺寸

在这里插入图片描述

两种主要的图像传感器,现在主要使用CMOS,CCD逐渐退出历史舞台,

在这里插入图片描述

两类传感器的伪影现象,
传感器泛光是一个像素在图像传感器上接收过多的光子导致的,也会溢出到相邻的像素里面去,涂抹伪影发生在CCD中,因为CCD是逐行读取,速度相对较慢,对于移动的物体或快速变化的光线就会在图像中留下“痕迹”,

在这里插入图片描述

CCD和CMOS的更多区别,

在这里插入图片描述

CMOS传感器简图,

在这里插入图片描述

1.10 模拟前端

在这里插入图片描述

1.11 Vignetting——渐晕

远离中心的像素接收到的光较少,

在这里插入图片描述

四种渐晕产生的原因:
• 机械原因: 光线被遮光罩、过滤器和其他物体阻挡
• 镜头原因:类似,但光线被镜头元件阻挡
• 自然原因:由于辐射定律(“余弦四次衰减”)。
• 像素原因:感光元件的角度相关灵敏度。

在这里插入图片描述

1.12 图像传感器的作用流程小结

当相机快门打开时,传感器:

  1. 在每个像素,将入射光子转换为电子
  2. 在未饱和时将电子存储到光点的势阱中

直到相机快门关闭。 然后,模拟前端:

  1. 逐行读出感光点的电子,并将其转换为模拟信号
  2. 对这些模拟信号应用(可能不均匀)增益
  3. 将它们转换为数字信号
  4. 纠正非线性
  5. 最后返回图像。

2、颜色基础

2.1 颜色是人类感知的产物

“颜色”不是光(电磁辐射)的客观物理属性,波长才是,

在这里插入图片描述

2.2 光谱功率分布 (Spectral Power Distribution - SPD)
  • 大多数类型的光由多种波长的光组成
  • 我们可以根据不同波长上的功率分布来描述光

在这里插入图片描述

2.3 光谱灵敏度函数 (Spectral Sensitivity Function - SSF)
  • 任何光传感器(数字或非数字)对不同波长都有不同的灵敏度。
  • 这是通过传感器的光谱灵敏度函数来描述的𝑓(𝜆)
  • 当测量某个 SPD为𝜙(𝜆)的光时,传感器会产生标量响应

在这里插入图片描述

2.4 人眼的光谱灵敏度函数
  • 人眼包含所谓视锥细胞的光传感器的集合
  • 有三类具有不同光谱灵敏度的细胞
  • 人类的颜色感知是三维的(三原色)

在这里插入图片描述

2.5 颜色滤波阵列 - Color filter arrays (CFA)
  • CFA使得数字图像传感器可以模仿人类视觉系统的视锥细胞来感知颜色
  • 不同颜色的滤波器有不同的光谱灵敏度函数,模拟不同的视锥细胞

在这里插入图片描述

CFA的两种设计考虑:

  • 对每种颜色滤波器采用什么样的光谱灵敏度函数f(λ)
  • 如何在空间中排布不同的颜色滤波器(Mosaic – 马赛克)

在这里插入图片描述

不同的CFA马赛克排布:

在这里插入图片描述

2.6 每种相机有不同的光谱灵敏度函数

每台相机或多或少都有其独特的SSF,而且大多数时候被相机厂商保密,这使得正确再现传感器测量的颜色变得非常困难,

在这里插入图片描述

2.7 思考:你能想到其他捕捉颜色的方法吗?

在这里插入图片描述

2.8 图像传感器的作用流程小结

在这里插入图片描述

3、相机内的图像处理(ISP)

3.1 相机内图像处理的流程

相机图像信号处理器 (Image Signal Processor - ISP) 应用一系列图像处理操作,将 RAW 图像转换为“传统”图像。

在这里插入图片描述

3.2 白平衡基础

人类视觉系统具有色度适应性(chromatic adaptation):

  • 在不同的光源下,我们可以正确地感知白色(和其他颜色)
  • 但相机不行——相机是没有感知

如下图中的下图,虽然在这个光源下,我们看到的颜色和在上图看到的颜色是一致的,

在这里插入图片描述

白平衡:让我们感知到的白色在最终的图像中也渲染为白色的方法,

在这里插入图片描述

相机预置的白平衡设置:
如今的相机有大量的预设白平衡设置:你可以选择在哪种光线下拍摄图像,并应用相应白平衡,

在这里插入图片描述

摄影时的手动和自动白平衡:

手动白平衡:

  • 根据照明情况选择相机上的白平衡设置,
  • 手动选择照片中颜色中性的对象,并使用它进行对图像的颜色进行归一化,

在这里插入图片描述

自动白平衡:

  • 灰色世界假设:强制场景的平均颜色为灰色
  • 白色世界假设:强制场景中最亮的物体为白色
  • 复杂的基于直方图的算法(大多数现代相机都是这样做的)

灰色世界假设:

  • 计算每个通道的平均值
  • 通过平均值对每个通道进行规格化
  • 通过绿色通道平均值进行归一化

在这里插入图片描述

白世界假设:

  • 计算每个通道的最大值
  • 按每个通道的最大值规格化每个通道
  • 按绿色通道最大值规格化

在这里插入图片描述

自动白平衡示例:

在这里插入图片描述

3.3 去马赛克

相机图像信号处理器 (Image Signal Processor - ISP) 应用一系列图像处理操作,将 RAW 图像转换为“传统”图像。

在这里插入图片描述

CFA(颜色滤波阵列)去马赛克:

从马赛克传感器输出中生成完整的RGB图像,需要借助邻域插值,

在这里插入图片描述

双线性插值去马赛克:

双线性插值:只需求4个邻域像素的平均值。

在这里插入图片描述

不同通道的邻域不一致,

在这里插入图片描述

3.4 去噪

相机图像信号处理器 (Image Signal Processor - ISP) 应用一系列图像处理操作,将 RAW 图像转换为“传统”图像

在这里插入图片描述

图像中的噪声:

在低光照下噪声特别明显,也就是势阱未装满光子,

在这里插入图片描述

几种传感器的噪声:

(1) 散粒噪声:光子到达率是一个随机过程(泊松分布),场景越亮,分布的方差就越大。
(2) 暗噪声:由于热活动而发射的电子(随着传感器越来越热而变得更糟)
(3) 读取噪声:由电子设备(例如增益、A/D转换器)引起。

在明亮的场景和以及大像素传感器:散粒噪声是主要的噪声源,

参考资料:
https://zhuanlan.zhihu.com/p/397873289

3.5 如何去除噪声

邻域插值(与去马赛克类似),

在这里插入图片描述

在这里插入图片描述

3.6 色调重建

人眼感知亮度与测量亮度是有区别的,下图中“视网膜颜色”是眼睛感知到的颜色,“感知颜色”是大脑处理后的颜色,

在这里插入图片描述

  • 我们已经看到传感器响应是线性的,人眼的响应也是线性的(测量亮度),
  • 然而视觉感知,也就是大脑(感知亮度)是非线性的:我们对深色调更敏感,近似一个 γ \gamma γ 函数,
  • 下图中,Eyes实际上是大脑感知的颜色,

在这里插入图片描述

Gamma编码:

色调重建也可以是Gamma编码的过程,我们的目标是使用少量的比特位来压缩编码图像的亮度信息,比如从12位压缩到8位应用非线性曲线可以更好地编码人类视觉更敏感的信息,
下图中,横坐标是实际亮度,纵坐标是感知到的亮度,

在这里插入图片描述

Gamma编码 vs 线性编码 —— 一个简化的例子

在这里插入图片描述

  • 使用线性编码(5比特,32阶)会把人眼就能区分的亮度差异变成一个亮度,也会把人眼看不出明显差别的亮度变成有亮度差异,所以线性编码有较大的缺点,
  • 而采用Gamma编码会在感知上更加平滑,

在这里插入图片描述

色调重建流程:

通过Gamma编码和Gamma校正得到的净效应还是线性曲线,

在这里插入图片描述

  • 真实场景是线性的,经过人的大脑对线性场景的非线性响应,最终感知到的图就是下图左一,
  • 经过相机Gamma编码,人眼看到的图片就是下图左二,
  • 相机Gamma编码后,再经过Gamma校正,就得到显示器正常显示的图像,如下图右一,

在这里插入图片描述

如果没有Gamma编码会如何?

在这里插入图片描述

Gamma编码的历史缘故

  • CRT显示器过去的响应曲线(几乎)完全等于人类灵敏度曲线的倒数。因此,CRT显示器可以跳过Gamma校正并直接显示Gamma编码的图像,
  • 反过来说,以前在CRT显示器时代,我们执行Gamma编码的一个重要目的是抵消显示器的响应曲线。但在液晶显示器时代就不是了——我们现在依旧执行Gamma编码的原因就是确保最终图像的8个比特在感知上更加均匀,

Gamma编码曲线

确切的gamma编码曲线取决于相机制造厂商的设定,
可以近似的用Lγ描述,而不同设定的γ值不同,比较好的默认值是 γ = 1 / 2.2 \gamma=1/2.2 γ=1/2.2

在这里插入图片描述

重要:Gamma编码后亮度值和场景的辐照度之间不再是线性关系,

在这里插入图片描述

4、相机内图像处理小结

相机图像信号处理器 (Image Signal Processor - ISP) 应用一系列图像处理操作,将 RAW 图像转换为“传统”图像,

在这里插入图片描述

4.1 我们真的需要RAW格式图像吗?

是的!
每次使用基于物理的计算机视觉算法时,都需要对辐射进行线性测量。
例如:光度立体、从阴影到形状、基于图像的重新照明、照明估计、与光传输和反向渲染有关的任何事情等。将算法应用于非线性(即非RAW)图像将产生完全无效的结果。

在这里插入图片描述

即便不研究计算机视觉算法,摄影师们也喜欢在RAW格式上进行图像编辑,

在这里插入图片描述

存储和处理RAW格式图像的负担,

  • 图像巨大,对存储空间占用很大,不管是相机还是电脑都需要大量的存储空间
  • 相机本身的处理负担加大,特别是在快速连拍模式
4.2 如何方便的获取RAW格式图像?
  • 大多数专业相机、甚至卡片相机都提供存储RAW格式图像的选项
  • 一些高端的手机,例如Iphone也提供了存储RAW格式图像的选项

如果拍摄前未设置存储为RAW格式,有办法通过RGB格式逆向得到RAW图像吗?

  • 很不幸,你无法简单逆向得到RAW图像
  • 图像处理管道是有损的:在所有步骤之后,关于原始图像的信息都会丢失。
  • 除非如果我们确切地知道相机流程中各个组件的作用(例如,通过使用来自其他类似RAW图像的信息),我们才有可能反转相机的部分图像处理流程。
  • 将PNG/JPG转换回RAW被称为“逆渲染(Derendering)”,这是一个活跃的研究领域。

逆渲染-Derendering

如下图,RAW是最大的几何体(颜色空间),而jpg是最大几何体里面的小的几何体,所以想从jpg还原RAW是较困难的,

在这里插入图片描述

我们讲述的相机内图像处理的流程是一个猜测的公有流程

相机图像信号处理器 (Image Signal Processor - ISP) 应用一系列图像处理操作,将 RAW 图像转换为“传统”图像。

在这里插入图片描述

实际的ISP流程可能非常复杂,

在这里插入图片描述

我们所讲的模拟前端也是一个通用而假设的流程,实际传感器复杂得多

在这里插入图片描述

Gamma编码曲线也因相机的不同而有很大变化

在这里插入图片描述

这些情况都使得严肃的研究非常困难,在管道的中间阶段很难获得真实数据,很难评估新算法对特定管道阶段的效果,

4.3 有很多开源系统在改变这一情况
  • Frankencamera
  • Android Camera2 API
  • https://github.com/cruxopen/openISP
4.4 总结

照片中的像素值和相机传感器输出的值是两个非常不同的东西,两者之间的关系是复杂而未知的,

在这里插入图片描述

参考资料:

基础阅读资料:

  • Szeliski, Computer Vision: Algorithms and Applications, Section 2.3. https://szeliski.org/Book/
  • Michael Brown, “Understanding the In-Camera Image Processing Pipeline for Computer Vision,” CVPR 2016,
    slides available at: http://www.comp.nus.edu.sg/~brown/CVPR2016_Brown.html

进一步阅读资料:

  • Adams et al., “The Frankencamera: An Experimental Platform for Computational Photography,” SIGGRAPH 2010.
    第一个图像处理管道的开放架构,也是Android Camera API的先驱.
  • Heide et al., “FlexISP: A Flexible Camera Image Processing Framework,” SIGGRAPH Asia 2014.
    讨论如何实现单阶段图像处理管道.
  • Buckler et al., “Reconfiguring the Imaging Pipeline for Computer Vision,” ICCV 2017.
  • Diamond et al., “Dirty Pixels: Optimizing Image Classification Architectures for Raw Sensor Data,” arXiv 2017.
    这两篇论文都讨论了如何自适应地改变传统的图像处理流程,使其更好地适应各种计算机视觉问题.
  • Chakrabarti et al., “Rethinking Color Cameras,” ICCP 2014.
    讨论不同的 CFA,包括具有白色滤镜的 CFA,以及如何对其进行去马赛克.
    -Gunturk et al., “Demosaicking: Color Filter Array Interpolation,” IEEE Signal Processing Magazine 2005
    对去马赛克算法的精彩回顾.
  • Kim et al., “A New In-Camera Imaging Model for Color Computer Vision and Its Application,” PAMI 2012.
  • Chakrabarti et al., “Probabilistic Derendering of Camera Tone-mapped Images,” PAMI 2014.
    两篇论文详细讨论了如何建模和校准图像处理管道、如何渲染已经通过管道的图像以及如何在不同相机的管道下重新渲染图像

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1374447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web开发学习笔记(1.html css)

css负责布局 js负责动作 2.磁盘路径 3.水平线标签 4.引入css 5.无语义标签 6.选择器 7.播放视频和音频 8.换行 <br> 9.段落标签 <p></p> 10.首行缩进 11.边距 12.盒子模型&#xff0c;居中显示&#xff0c; margin后面的四个值顺序为上右下左&#…

原生微信小程序-两次设置支付密码校验,密码设置二次确认

效果 具体代码 1、wxml <view style"{{themeColor}}"><view classcontainer><view class"password_content"><view wx:if{{type 1}}><view class"title"><view class"main_title">设置支付密码…

[Vulnhub靶机] DriftingBlues: 6

[Vulnhub靶机] DriftingBlues: 6靶机渗透思路及方法&#xff08;个人分享&#xff09; 靶机下载地址&#xff1a; https://download.vulnhub.com/driftingblues/driftingblues6_vh.ova 靶机地址&#xff1a;192.168.67.25 攻击机地址&#xff1a;192.168.67.3 一、信息收集 …

使用脚本把springboot程序部署到k8s上

一般我们部署写4个文件就行了 首先分别写 Dockerfile1package.sh2build.shdocker_push.sh Dockerfile # 基于jdk1.8 FROM openjdk:8-jdk-alpine RUN echo "Asia/Shanghai" > /etc/timezone RUN mkdir /app WORKDIR /appCOPY ./monitor-flink-1.0.jar /appEXPO…

Java 数据结构篇-实现 AVL 树的核心方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 AVL 树的说明 2.0 AVL 树的成员变量及其构造方法 3.0 实现 AVL 树的核心方法 3.1 获取当前节点的高度 height(AVLNode node) 3.2 更新当前节点的高度 updateHeig…

[力扣 Hot100]Day2 字母异位词分组

题目描述 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 出处 思路 这题有点考阅读理解&#xff0c;意思就是把输入数组中的所含字母相同但顺序不同的单词放到同…

YOLOv8-Seg改进:轻量化改进 | 超越RepVGG!浙大阿里提出OREPA:在线卷积重参数化

🚀🚀🚀本文改进:OREPA在线卷积重参数化巧妙的和YOLOV8结合,并实现轻量化 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升分割性能; 3)独家…

创建型模式 | 建造者模式

一、建造者模式 1、原理 建造者模式又叫生成器模式&#xff0c;是一种对象的构建模式。它可以将复杂对象的建造过程抽象出来&#xff0c;使这个抽象过程的不同实现方法可以构造出不同表现&#xff08;属性&#xff09;的对象。创建者模式是一步一步创建一个复杂的对象&#xf…

使用SpringCache操作Redis缓存数据

SpringCache概念 SpringCache是一个框架&#xff0c;实现了基于注解的缓存功能&#xff0c;只需要简单的加一个注解&#xff0c;就能实现缓存功能。 SpringCache提供了一层抽象&#xff0c;底层可以切换不同的缓存实现&#xff0c;例如&#xff1a; EHCacheCaffeineRedis 使…

vue倒计时60秒改变按钮状态效果demo(整理)

你可以使用Vue的计时器和绑定状态的方法来实现这个功能。 首先&#xff0c;在data中添加一个计时器countdown&#xff0c;初始值为0。 data() {return {countdown: 0} }<template><div><button click"startCountdown" :disabled"countdown > …

Android14之解决Pixel手机联网出现感叹号(一百八十)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【数据结构】7大排序最详细

0.前言 接下来进入排序&#xff0c;我们知道在c语言阶段可能就学习过了像冒泡排序&#xff0c;选择排序这种比较简单的排序&#xff0c;那么接下来我们就会学习到更加高级的排序算法。但高级代表着难度的提升&#xff0c;但不用担心&#xff0c;博主会细细来谈&#xff0c;慢慢…

九州金榜如何高质量培养孩子成长

在这个时代&#xff0c;孩子们就像温室里的花朵&#xff0c;被父母和家人宠爱着&#xff0c;享受着最优越的物质条件。 然而&#xff0c;在这样的环境中成长起来的孩子&#xff0c;却往往被很多父母称为"白眼狼"&#xff0c;对孩子的自私行为感到痛苦和失落。 1 随…

zookerper入门

zookerper介绍 ZooKeeper 是一个开源的分布式协调框架,主要用来解决分布式集群中应用系统的一致性问题. ZooKeeper本质上是一个分布式的小文件存储系统&#xff08;Zookeeper文件系统监听机制&#xff09;.提供基于类似于文件系统的目录树方式的数据存储&#xff0c;并且可以…

离线安装telnet-server

telnet下载地址&#xff1a; https://vault.centos.org/ 需要下载telnet 和 telnet-server 确认自己的服务器版本&#xff0c;我这里使用的是&#xff08;Red Hat Enterprise Linux Server release 7.0 (Maipo)&#xff09;对应的是Centos 7.0,所有到 https://vault.centos.or…

HarmonyOS应用开发学习笔记 UI布局学习 创建轮播(Swiper) artTS 轮播组件 简单使用

官方文档 Swiper组件提供滑动轮播显示的能力。Swiper本身是一个容器组件&#xff0c;当设置了多个子组件后&#xff0c;可以对这些子组件进行轮播显示。通常&#xff0c;在一些应用首页显示推荐的内容时&#xff0c;需要用到轮播显示的能力。 1、简单用法 loop 控制是否循环 …

AI交互数字人如何助力职工之家数字化建设?

近日&#xff0c;广州市海珠区产投园区工友之家揭牌&#xff0c;首批“工会数字人”正式揭幕亮相&#xff0c;开启24小时零距离全天候服务职工模式。同步进驻海珠区10个产业园区的其他工会数字人也进入全天候服务状态&#xff0c;职工群众可“一码入会”&#xff0c;工会数字人…

非常好用的个人工作学习记事本Obsidian

现在记事本有两大流派&#xff1a;Obsidian 和Notion&#xff0c;同时据说logseq也很不错 由于在FreeBSD下后两种都没有相关ports&#xff0c;所以优先尝试使用Obsidian Obsidian简介 Obsidian是基于Markdown文件的本地知识管理软件&#xff0c;并且开发者承诺Obsidian对于个…

【算法每日一练]-动态规划 (保姆级教程 篇16) #纸带 #围栏木桩 #四柱河内塔

目录 今日知识点&#xff1a; 计算最长子序列的方案个数&#xff0c;类似最短路径个数问题 四柱河内塔问题&#xff1a;dp[i]min{ (p[i-k]f[k])dp[i-k] } 纸带 围栏木桩 四柱河内塔 纸带 思路&#xff1a; 我们先设置dp[i]表示从i到n的方案数。 那么减法操作中&#xff…

Linux-shell简单学习

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 其他…