图像信号处理器(ISP,Image Signal Processor)详解
简介:个人学习分享,如有错误,欢迎批评指正。
图像信号处理器(ISP,Image Signal Processor) 是专门用于处理图像信号的硬件或处理单元,广泛应用于图像传感器(如 CMOS 或 CCD 传感器)与显示设备之间的信号转换过程中。它的核心作用是从传感器输出的原始数据中提取并优化图像信息,最终输出可以供显示、存储或进一步处理的图像。

一. ISP的基本架构和工作原理
ISP通常集成在图像处理的整个链路中,它的功能包括从图像传感器获取信号开始,到输出最终可用的图像或视频信号的过程。一个典型的ISP架构通常包括以下几个主要部分:
-
输入接口:用于与图像传感器连接,获取传感器的原始数据。这些数据通常是
未经处理的数字或模拟信号。 -
数字信号处理单元(DSP):ISP内部核心部分,负责执行各种图像处理算法,如
噪声去除、白平衡、锐化等。 -
图像处理模块:包括去
马赛克、色彩调整、图像增强等模块。 -
输出接口:将处理后的图像信号输出给显示屏、存储器或其他设备。输出的图像信号可能需要根据显示设备进行适配和转换。
ISP的控制结构
如图所示,lens 将光信号投射到sensor 的感光区域后,sensor 经过光电转换,将Bayer 格式的原始图像送给ISP,ISP 经过算法处理,输出RGB空间域的图像给后端的视频采集单元。在这个过程中,ISP通过运行在其上的firmware(固件)对ISP逻辑,从而对lens 和sensor 进行相应控制,进而完成自动光圈、自动曝光、自动白平衡等功能。其中,firmware的运转靠视频采集单元的中断驱动。PQ Tools 工具通过网口或者串口完成对ISP 的在线图像质量调节。
ISP 由ISP逻辑及运行在其上的Firmware组成,逻辑单元除了完成一部分算法处理外,还可以统计出当前图像的实时信息。Firmware 通过获取ISP 逻辑的图像统计信息,重新计算,反馈控制lens、sensor 和ISP 逻辑,以达到自动调节图像质量的目的。

图像产生过程
景物通过 Lens 生成的光学图像投射到 sensor 表面上, 经过光电转换为模拟电信号, 消噪声后经过 A/D 转换后变为数字图像信号, 再送到数字信号处理芯片( DSP) 中加工处理。
所以,从 sensor 端过来的图像是 Bayer 图像,经过黑电平补偿 (black level compensation)、镜头矫正(lens shading correction)、坏像素矫正(bad pixel correction)、颜色插值 (demosaic)、Bayer 噪声去除、 白平衡(awb) 矫正、 色彩矫正(color correction)、gamma 矫正、色彩空间转换(RGB 转换为 YUV)、在YUV 色彩空间上彩噪去除与边缘加强、色彩与对比度加强,中间还要进行自动曝光控制等, 然后输出 YUV(或者RGB) 格式的数据, 再通过 I/O 接口传输到 CPU 中处理。

ISP的工作原理大致如下:
-
从传感器获取原始数据:图像传感器(通常为CMOS传感器)首先捕捉图像的原始数据。这些数据通常是带
有噪声、缺少颜色信息和对比度较低的RAW图像数据。 -
数据预处理:原始图像数据经过初步的处理步骤,如
信号放大、模数转换等,以准备进入后续的图像处理阶段。 -
图像处理:ISP对原始数据进行复杂的处理,步骤包括
去噪、色彩校正、去马赛克、动态范围优化、锐化等,最终得到一张视觉效果优化的图像。 -
输出和显示:经过处理后的图像可以传输到显示屏,或者存储到存储介质中。
二. ISP的主要功能模块
ISP的设计涉及多种图像处理算法,涵盖从信号采集到最终输出的各个方面。下面详细介绍几个主要的功能模块:
0.图像中的低频内容和高频内容
0.1.低频内容:
- 定义:低频内容指的是
图像中变化较为平缓、较为连续的部分。它通常对应于图像中的大致形状或背景,变化幅度小。 - 特点:在图像中,低频内容通常呈现为较为平滑的区域,没有明显的边缘或细节变化。例如,
天空、大面积的墙面或地面等。 - 在图像处理中的作用:低频信息在图像中的
整体轮廓和结构上起着重要作用,常常用来表示图像的宏观特征。
0.2.高频内容:
- 定义:高频内容指的是
图像中变化剧烈的部分,通常对应图像中的细节或边缘区域。它具有较高的变化频率。 - 特点:高频内容在图像中表现为
细节、纹理、边缘或噪点等。例如,图像中的细微纹理、物体的轮廓或边缘都属于高频部分。 - 在图像处理中的作用:高频内容包含了图像的细节和清晰度,通常用来增强图像的细节或进行边缘检测。
0.3.低频与高频的对比:
- 视觉效果:低频内容通常让图像看起来较模糊或柔和,而高频内容则使图像更为清晰、锐利。
- 处理技术:在一些图像处理技术中(如滤波器、图像压缩和锐化),我们常使用低频滤波来去除背景噪声,而高频滤波则用于增强图像的细节。
1.噪声抑制(Noise Reduction,NR)
噪声抑制(Noise Reduction,NR)是图像信号处理中的一个重要任务,旨在减少或消除图像中的噪声成分,使得最终输出的图像更加清晰、细节更加丰富。在图像采集过程中,噪声通常由多个因素引起,比如传感器的固有噪声、环境光照不足导致的噪声、信号传输过程中的干扰等。噪声的存在不仅影响图像的质量,还会干扰后续的图像分析和处理(如对象识别、分割等)。
噪声抑制是ISP中的核心功能之一,常见的噪声类型包括高斯噪声、盐和胡椒噪声、斑点噪声等。噪声抑制技术需要有效地从图像中去除噪声,同时尽量保留图像的边缘、纹理和细节信息。
1.1. 噪声的来源和类型
在处理图像时,了解噪声的来源及其特性是非常重要的。常见的图像噪声类型包括:
-
高斯噪声(Gaussian Noise):通常由传感器的
电子噪声、低光环境、热噪声等引起。高斯噪声是最常见的一种噪声类型,其特点是像素值的分布符合正态分布。它会使图像像素随机波动,导致图像变得模糊。 -
盐和胡椒噪声(Salt-and-Pepper Noise):这类噪声是由于
信号传输错误或者设备故障造成的,表现为图像中的黑白斑点。盐和胡椒噪声的特征是像素值极高或极低,常出现在图像的某些位置。 -
斑点噪声(Speckle Noise):这种噪声通常出现在图像的纹理区域,常见于图像采集过程中由
光源不均、运动模糊等因素引起。斑点噪声的特征是呈现局部区域的强烈波动,影响细节部分。 -
泊松噪声(Poisson Noise):主要由
图像传感器的电流响应产生,通常在低光照条件下较为明显。泊松噪声表现为图像中局部区域的亮度波动。
1.2. 噪声抑制的目标
噪声抑制的目标是通过算法去除图像中的噪声,同时保留尽可能多的图像细节,尤其是边缘和纹理信息。噪声抑制算法的设计要面临两个挑战:
-
去噪与保细节的平衡:去噪处理可能会导致图像细节的损失,尤其是锐利的边缘和微小的纹理。理想的去噪方法应该既能去除噪声,又能保持细节。
-
不同噪声的处理:不同类型的噪声需要不同的去噪技术。例如,高斯噪声通常通过平滑滤波器去除,而盐和胡椒噪声则需要特殊的去噪策略。
1.3. 常见的噪声抑制方法
噪声抑制技术有许多种,以下是一些常见的噪声抑制方法:
1.3.1 空间滤波法
空间滤波法通过调整每个像素的值,使其更符合周围像素的均值,从而去除噪声。这类方法的主要优点是简单易实现,且计算开销较小。
-
均值滤波(Mean Filtering):均值滤波是最简单的噪声抑制方法。它通过计算每个像素邻域的平均值来替换原像素值,从而平滑图像并减少噪声。均值滤波在去噪的同时,可能会模糊图像细节,尤其是图像的边缘。
-
中值滤波(Median Filtering):中值滤波通过取邻域像素的中值来代替中心像素值,对于去除“盐和胡椒噪声”特别有效。
中值滤波能够有效保留边缘信息,且不会产生像均值滤波那样的模糊效应。 -
高斯滤波(Gaussian Filtering):高斯滤波是一种加权平均滤波,其权重由高斯函数决定,离中心像素越近的像素权重越小。高斯滤波能够平滑图像,去除高斯噪声,但也会导致边缘的模糊。
1.3.2 频域滤波法
频域滤波法通过将图像从空间域转换到频域,操作频域中的高频分量,从而实现噪声抑制。频域滤波通常通过傅里叶变换实现。
-
低通滤波(Low-pass Filtering):低通滤波器通过
保留低频信息并抑制高频信息来平滑图像,适用于去除高频噪声。通过对图像进行傅里叶变换,低通滤波器能有效去除频域中的高频噪声成分。 -
带通滤波(Band-pass Filtering):带通滤波器能够
抑制低频和高频的噪声,保留图像的中频信息,适用于去除具有特定频率特征的噪声。
1.3.3 小波变换(Wavelet Transform)
小波变换是一种基于多分辨率分析的去噪方法。通过将图像分解成不同尺度的子图像,小波变换能够在不同的分辨率层次上提取图像的细节,从而更有效地抑制噪声。
-
离散小波变换(DWT):DWT可以将图像分解为多个频带,分别表示低频和高频信息。在去噪过程中,可以对高频部分进行去噪处理,而不影响低频信息,避免图像的模糊。
-
小波阈值去噪:在小波域中,将小波系数的值在特定与噪声成正比。通过对小波系数进行阈值处理,可以有效抑制噪声,同时保留图像的边缘信息。
1.3.4 非局部均值法(Non-Local Means, NLM)
非局部均值法是一种基于图像自相似性的去噪方法。NLM算法通过寻找图像中相似的区域,将这些区域的信息融合到当前像素的值中,从而减少噪声。该方法能有效去除噪声并保留图像细节,尤其适用于去除随机噪声。
- 算法步骤:对于每个像素,NLM算法会计算其与所有其他像素的相似度,基于这种相似度加权平均周围像素的值。通过这种方式,原像素将被替换为周围相似区域的像素替代。
1.3.5 深度学习去噪(Deep Learning-based Denoising)
近年来,深度学习广泛应用于图像处理领域,包括噪声抑制。深度学习模型,尤其是卷积神经网络(CNN),在去噪任务中表现出了显著的效果。
-
卷积神经网络(CNN)去噪:CNN可以通过训练来学习图像中的噪声模式,并从中提取特征,自动去除噪声。相比传统方法,深度学习方法可以更好地保留细节,特别是在处理复杂噪声时表现优异。
-
生成对抗网络(GAN)去噪:生成对抗网络通过对抗训练的方式生成去噪图像,能够更好地灵活去除不同类型的噪声,保留更多细节。
1.4. 噪声抑制的挑战与未来发展
尽管目前存在多种噪声抑制方法,但噪声抑制仍然面临许多挑战,主要包括:
-
细节保持与噪声去除的平衡:噪声抑制需要在去除噪声和保留图像细节之间找到合适的平衡。
-
不同噪声类型的处理:不同类型的噪声需要不同的去噪方法。如何有效区分噪声和图像内容,并分别处理,是一个关键问题。
-
实时性和计算开销:特别是在移动设备和嵌入式系统中,噪声抑制算法需要平衡效果和实时处理能力,以确保在低功耗情况下也能进行高效的噪声去除。
2.去马赛克(Demosaicing)
去马赛克(Demosaicing) 是图像处理中的一项核心任务,特别是在数字图像采集过程中,用于将图像传感器(如CMOS传感器)捕获的原始数据转换为完整的彩色图像。由于图像传感器使用的颜色滤光阵列(CFA,Color Filter Array)通常是单一的,每个像素只采集一种颜色(红、绿或蓝),因此需要进行去马赛克处理来重建每个像素的RGB值。
2.1. 去马赛克的背景与挑战
在大多数图像传感器中,像素阵列由不同颜色的滤光片组成,例如 拜耳滤色阵列(Bayer CFA),它按照一定的排列模式将红、绿、蓝三种颜色的滤光片分配到相邻像素上。这样,每个像素只能捕获其中一种颜色的亮度信息。因此,图像传感器采集到的原始图像数据是一个只有亮度信息的单通道图像(通常为绿色、红色、蓝色的单独亮度值),而我们需要通过去马赛克恢复到完整的彩色图像。
去马赛克的主要挑战就是在每个像素点上,利用周围邻域的信息推测出丢失的颜色值,同时尽量保留图像的细节、避免颜色失真和避免过度平滑。去马赛克算法需要在去噪、锐化、细节保留等方面找到平衡。
2.2. 图像传感器的拜耳滤色阵列(Bayer CFA)
在大多数常见的CMOS图像传感器中,采用的色彩滤光阵列通常是 拜耳滤色阵列(Bayer CFA),其像素排列方式如下:
G R G R
B G B G
G R G R
在此阵列中,绿色滤光片占据了大约一半的像素,因为人眼对绿色的敏感度较高,而红色和蓝色的滤光片则占据了剩下的像素。对于每个像素,传感器只捕捉到对应颜色的亮度信息,其他颜色的信息需要通过去马赛克算法来推测。
2.3. 去马赛克的工作原理
去马赛克的目的是根据每个像素的颜色值和邻域像素的已知颜色,推算出完整的RGB值。由于原始数据缺失了一些颜色信息,去马赛克算法需要通过插值、平滑和边缘保持等技术重建其他的颜色。
去马赛克的基本思路如下:
-
获取原始数据:图像传感器输出的是未经处理的RAW数据(通常是单通道的)。例如,
绿色通道包含绿色像素的亮度值,红色通道和蓝色通道则为缺失值。 -
推测缺失的颜色信息:对于每个像素,使用周围像素的颜色信息来推测它缺失的颜色值。不同颜色的像素之间存在空间相关性,因此,去马赛克算法需要利用周围已知颜色像素的信息进行插值。
-
恢复RGB图像:通过插值完成每个像素的RGB值填充,最终生成完整的彩色图像。
2.4. 去马赛克的常见算法
去马赛克算法可以分为两类:线性插值方法和非线性插值方法。根据不同的策略,算法的复杂性和效果会有所不同。
2.4.1 线性插值方法
线性插值方法通过对邻域像素进行加权平均来推算缺失的颜色值,通常简单且计算速度较快。
-
最邻近插值法(Nearest Neighbor Interpolation):对于每个缺失的颜色值,直接使用距离它
最近的已知像素的值来填充。虽然该方法计算量小,但会导致图像中出现明显的块效应,尤其在图像细节和边缘部分。 -
双线性插值法(Bilinear Interpolation):双线性插值不仅考虑横向邻域,还考虑纵向邻域,通过
加权平均周围四个像素的值来填充缺失的颜色。这种方法比最邻近插值更平滑,但在处理对比度边缘时可能出现模糊。 -
三次插值法(Cubic Interpolation):通过
周围16个像素的加权平均值来估算每个像素的缺失颜色。三次插值比双线性插值具有更高的精度,能够减少图像模糊,但计算开销较大。
2.4.2 非线性插值方法
非线性插值方法通过更复杂的算法推算缺失的颜色值,这些方法能够在去噪、锐化和细节保留方面表现得更好。
-
高阶插值法(Higher Order Interpolation):采用高阶的数学模型,通
过非线性的插值函数来推测每个像素的缺失颜色。这类方法能够提高重建质量,尤其是在图像细节部分,但计算复杂度较高。 -
边缘保持插值(Edge-preserving Interpolation):这种方法利用图像中的边缘信息,在去马赛克的过程中保留边缘细节。常见的算法包括
基于梯度的插值方法、导向滤波等。这些方法能够减少在边缘部分的模糊,保持图像的锐利度。
2.4.3 基于学习的去马赛克算法
近年来,深度学习方法在图像去马赛克中取得了显著的进展。通过训练深度神经网络(DNN)来学习去马赛克的过程,能够更好地重建缺失的颜色信息。
-
卷积神经网络(CNN):通过卷积神经网络,模型能够学习到不同颜色间的空间相关性,并从复杂的图像特征中推测出丢失的颜色信息。CNN方法通常能提供较好的去噪效果,同时保留细节。
-
生成对抗网络(GAN):生成对抗网络(GAN)能够通过对抗学习的方式生成更自然、更高质量的去马赛克图像。GAN的生成器通过训练生成高质量的RGB图像,判别器则帮助评估生成图像的真实性。
-
自监督学习:在没有大量标注数据的情况下,可以使用自监督学习方法进行去马赛克训练,通过对比输入图像和去马赛克后的输出图像之间的差异进行学习。
2.5. 去马赛克算法的优缺点
不同的去马赛克算法在处理效果、计算复杂度、细节保留方面有不同的表现,具体来说:
优点:
- 简单的插值方法(如双线性插值),计算速度快,适用于实时应用。
- 高阶插值法(如三次插值),能够提供更高的精度,适合对图像质量要求较高的应用。
- 基于边缘保持的插值方法,能够更好地处理图像中的细节,避免边缘模糊。
缺点:
- 简单插值方法可能会导致图像细节的丢失,特别是在高对比度区域,图像可能出现模糊。
- 高阶插值方法计算复杂度高、处理速度慢,尤其是在实时处理和嵌入式设备中应用时。
- 基于学习的去马赛克方法需要大量训练数据,并且计算资源要求较高。
2.6. 去马赛克的应用
去马赛克技术不仅应用于传统的数字摄影和图像处理领域,还广泛应用于以下领域:
-
数码相机和手机摄像头:现代手机和数码相机中的图像传感器大多采用拜耳滤色阵列,去马赛克技术是这些设备图像处理链中的关键步骤。
-
视频监控:许多监控摄像头也使用CMOS传感器,去马赛克技术用于将原始传感器数据转换为清晰的视频图像。
-
医学成像:例如,内窥镜图像、X射线成像等也常涉及图像传感采集的数据需要去马赛克处理。
-
计算机视觉:在自动驾驶、面部识别等应用中,去马赛克技术为图像分析提供了高质量的输入数据。
2.7. 未来发展
随着深度学习和硬件加速的发展,去马赛克技术将继续朝着高质量、高效能的方向发展。尤其是基于深度学习的去马赛克算法,随着训练数据的增长和模型架构的优化,能够生成更贴真和细节丰富的图像。在高帧率和实时应用中,如何在确保速度和图像质量之间仍然是一个挑战。
3.自动白平衡(Auto White Balance, AWB)
自动白平衡(Auto White Balance, AWB) 是一种常见的图像处理技术,广泛应用于数字图像采集、视频处理和图像编辑中。其目的是在不同的光照条件下,自动调整图像的颜色,以使得图像中的白色物体呈现出真实的白色,从而改善图像的色彩表现,使色彩看起来更加自然和准确。
3.1. 白平衡的基本概念
白平衡是指调整图像中的颜色,使白色物体在不同的光照条件下呈现出真实的白色。在不同的照明环境下,光源的色温不同,导致拍摄的图像呈现出不同的色偏。例如:
- 白色光源:白色光(如日光、白炽灯光)应该不带任何颜色偏差。
- 暖色光源:如白炽灯或烛光,通常呈现出偏黄色、橙色或红色的色偏。
- 冷色光源:如荧光灯或阴天的自然光,通常呈现出蓝色或青色的色偏。
在没有合适的白平衡调整时,拍摄的图像会显得偏黄、偏蓝或偏红,影响视觉效果。AWB通过对图像进行色温调整,消除这些色偏,使图像中的白色区域呈现为白色,进而恢复其他颜色的自然性。
3.2. 自动白平衡的工作原理
AWB算法的基本思想是根据图像中的光照条件动态调整红色、绿色和蓝色通道的增益(增益指的是对颜色通道的增强或弱),使得图像中的白色区域显示为白色。为实现这一目标,AWB通常涉及以下几个步骤:
3.2.1 白平衡的色温
色温是衡量光源颜色的一种方式,通常以开尔文(K)为单位。低色温(如1000K-3000K)通常表示较暖的光源(红黄偏多),而高色温(如6000K-10000K)则表示较冷的光源(蓝绿偏多)。
AWB的核心任务是通过计算判断当前光源的色温,并根据色温调整图像的色彩。通常,AWB系统会选择图像中某些区域(如白色或灰色区域)来估算色温,然后计算出一个合适的增益值来补偿图像中的色偏。
3.2.2 色彩增益的调整
在AWB的调整过程中,最常见的做法是调整图像的RGB通道增益(或亮度),使得图像的整体色温达到中性色温。具体来说,对于每个通道(R,G,B):
- 绿色通道通常不需要调整,因为人眼对绿色最为敏感且绿色在白平衡的调整中通常占有重要的中性色调作用。
- 红色和蓝色通道会根据图像的色温调整增益。若
图像偏冷(偏蓝),则增加红色通道的增益,减少蓝色通道的增益;若图像偏暖(偏红),则增加蓝色通道的增益,减少红色通道的增益。
3.2.3 图像中的参考区域
在AWB的计算中,系统通常会选择图像中的一部分区域作为“参考区域”,用于估算图像整体的色温。这些参考区域的选择至关重要,选择不当可能会导致错误的白平衡调整。
-
白色区域:通常被假定为白色或接近白色的区域,例如雪地或白墙等。这些区域的RGB值可以作为色温推测的依据。
-
灰色区域:灰色物体在不同的光照条件下,反射的红、绿、蓝光的比例较相等,也是进行白平衡调整的有效依据。
-
无偏色区域:通常通过某些算法自动寻找图像中没有明显色偏的区域作为参考。
3.2.4 算法模型
AWB常用的算法模型包括:
-
灰世界假设(Gray World Assumption, GWA):该假设认为,
图像中所有颜色通道的平均值应当相等。通过计算图像所有颜色通道的平均值,并调整颜色增益,使得所有通道的平均值一致,进而实现白平衡。 -
完美反射假设(Perfect Reflector Assumption, PRA):该假设认为图像中的
某些区域应该是白色或灰色的(如白色墙面、灰色物体等),通过推测这些区域的色彩偏差来计算白平衡。 -
白点检测法(White-Patch Detection):该方法选择图像中的一个区域,该区域被假设为
反射最强的区域(通常是白色区域)。通过测量该区域的颜色并推算整个图像的白平衡。 -
统计方法:现代AWB系统常常结合图像的统计特征,运用统计模型来推算白平衡参数。该方法通过
计算图像中像素的色彩分布,确定合适的白平衡增益。
3.3. 自动白平衡的实现
AWB通常在以下两个阶段进行:
-
光源色温估计:根据参考区域的颜色特征,推测图像当前的光源色温。常用的方法有
色温直方图、基于图像颜色分布的模型等。 -
白平衡增益计算与应用:
根据估算的色温,计算RGB增益值,并将增益应用到图像的每个像素,从而消除色偏,达到白平衡效果。
3.4. AWB算法的优缺点
自动白平衡算法虽然可以在大多数情况下很好地校正图像的色温,但在某些特定条件下仍然存在一些挑战和局限性。
3.4.1 优点
- 自动化:AWB能够自动调整图像色温,用户无需手动干预,方便快捷。
- 适应性强:可以适应多种光照环境,如日光、荧光灯、白炽灯等,且能够实时调整,保证图像色彩自然。
- 图像增强:通过自动调整,AWB可以显著改善拍摄图像的色彩表现,使色彩更加真实和生动。
3.4.2 缺点
-
复杂光照条件下的失效:在一些特殊的光照环境下,AWB算法可能会失效,
尤其是在光源色温不均匀或存在多个光源的情况下。例如,灯光混合环境(同时存在日光和人工照明)可能导致AWB系统难以选择合适的参考区域,从而造成色彩失真。 -
过度调整问题:在某些情况下,AWB算法可能会对图像进行过度调整,导致原始颜色的失真或偏差,尤其是在自动检测到的色区域不够准确的。
-
不适用于所有场景:对于某些定片效果或特定情境(如光线特效),AWB的自动调整可能并不符合需求,此时需要手动调整。
3.5. 现代AWB算法的进展
随着深度学习和计算机视觉技术的发展,传统的基于规则的AWB算法逐渐被基于深度学习的方法所取代。基于深度学习的AWB方法通过训练神经网络来自动作学习色温估计和白平衡调整的最佳策略,从而更好地处理复杂光照环境下的色偏问题。
-
卷积神经网络(CNN):通过训练CNN模型,系统能够自动识别图像的光照条件,并做出最优的白平衡调整。这些方法能够更准确地处理图像中的细节,且对各种光照条件具有较好的鲁棒性。
-
生成对抗网络(GAN):GAN能够通过对抗学习方式生成高质量的图像,尤其在光照条件复杂时,能够提高图像的颜色还原度。
3.6. 自动白平衡的应用
AWB技术广泛应用于各类图像采集和视频处理设备中:
- 数码相机和智能手机:在日常拍摄中,AWB自动调整图像的色温,保证色彩真实还原。
- 视频监控:AWB技术帮助视频监控系统适应不同光照环境,确保视频图像的清晰度和色彩准确性。
- 医学影像:在医学成像中,白平衡的调整能够使图像的颜色更加准确,帮助医生做出更精准的判断。
- 自动驾驶:在自动驾驶的视觉系统中,AWB帮助摄像头在不同光照条件下提供准确的视觉信息。
总结:自动白平衡(AWB)通过自动检测和调整图像中的色偏,旨在恢复图像中的颜色真实性,使其看起来更加自然。传统AWB算法的基础上,深度学习技术为其带来了更多的创新与改进,能够更准确地应对各种复杂光照条件。
4.自动曝光(Auto Exposure, AE)
自动曝光(Auto Exposure, AE) 是数字图像处理和摄影中的一个关键技术,主要用于自动调整摄像机或摄影设备的曝光设置,以确保图像的亮度达到理想的水平。曝光是指在拍摄过程中,光线照射到图像传感器或胶片的时间和强度。AE通过自动调整曝光时间、光圈和ISO值来控制图像的亮度,从而避免过曝(曝光过度,图像过亮)或欠曝(曝光不足,图像过暗)。
4.1. 自动曝光的基本概念
曝光的三个主要控制参数包括:
-
快门速度(Shutter Speed):控制传感器或胶片暴露在光线下的时间长短,
快门打开的时间越长,传感器接收到的光线越多,图像越亮。 -
光圈(Aperture):控制镜头中光圈的开口大小,
光圈越大(小f值),进入的光线越多,图像越亮;光圈越小(大f值),进入的光线越少,图像越暗。 -
ISO感光度(ISO Sensitivity):控制图像传感器对光线的敏感度,
ISO值越高,传感器对光线的敏感度越强,图像越亮。但高ISO会引入更多噪点,降低图像质量。
自动曝光技术的目标是通过调整这三个参数中的一个或多个,确保拍摄的图像在光线不足或过强的环境下仍然保持良好的曝光效果。
4.2. 自动曝光的工作原理
自动曝光的基本思路是:通过分析当前场景的亮度,自动计算出合适的曝光设置。AE通常通过以下步骤实现:
4.2.1 场景亮度评估
AE系统首先会通过图像传感器捕捉当前场景的亮度信息。通常使用图像传感器的亮度数据(即亮度值或光强)来评估场景的曝光需求。为实现这一点,AE算法需要对图像进行区域划分并计算每个区域的亮度值。
-
测光模式:不同的测光模式用于不同的场景评估。常见的测光模式有:
-
矩阵测光(Matrix Metering):将整个画面划分为多个区域,综合各区域的亮度信息来估算全局的曝光值。这种模式适合各种复杂场景,能够均衡考虑图像的亮度。
-
中央重点测光(Center-weighted Metering):将重点放在图像中央区域的亮度,适合拍摄主体位于画面中心的场景。
-
点测光(Spot Metering):只测量图像中心或某个特定区域的亮度,适用于拍摄特定区域的曝光。
-
4.2.2 曝光计算
AE系统根据场景的亮度信息计算合适的曝光设置。计算时,会考虑以下几个因素:
-
目标亮度:AE系统通过预设的“目标亮度”来推算理想的曝光水平。目标亮度通常是一个预定义的标准值,用于调整整体曝光,确保图像的亮度看起来自然。
-
动态范围:图像的动态范围是指同一图像中,最亮与最暗区域之间的亮度差。AE算法需要确保图像在不失真或出现过曝的情况下,能够覆盖场景的动态范围。
4.2.3 曝光调整
一旦曝光计算完成,AE系统就会自动调整快门速度、光圈和ISO感光度,以确保最终图像的亮度达到所需水平。
-
快门速度调整:如果图像过暗,AE会选择较慢的快门速度,允许更多的光线进入。如果图像过亮,则会选择较快的快门速度,减少光线的进入。
-
光圈调整:如果快门速度无法完全解决问题,AE还可以调整光圈大小来进一步控制曝光。大光圈(小f值)会让更多的光线进入,适合低光环境;小光圈(大f值)会减少光线的进入,适合强光环境。
-
ISO感光度调整:在低光条件下,AE可能会选择增加ISO值,提高图像传感器的灵敏度,从而使图像变亮。然而,过高的ISO值可能会带来噪点,影响图像质量。
4.3. 自动曝光的算法
自动曝光算法通常包括几个步骤:场景亮度估算、曝光计算和最终的曝光设置调整。常见的自动曝光算法有:
4.3.1 曝光环路算法(Exposure Loop Algorithm)
这是最常见的自动曝光算法。该算法通常通过一个闭环控制系统来实现,其中包括:
- 初始曝光估值计算:根据当前场景的亮度,通过传感器采集图像数据来估算初始曝光值。
- 曝光调整:根据初始估值结果调整快门速度、光圈和ISO设置。
- 反馈:拍摄一张图像并计算其亮度,反馈到算法中,进行曝光调整。
该算法通常采用增量调整的方式,每次调整一个曝光参数,直到获得合适的曝光。
4.3.2 基于亮度分布的自适应算法
该算法根据图像的亮度分布自动调整曝光值。例如,通过分析图像的直方图,AE系统可以推测图像的整体曝光情况。若图像中大量区域过亮或过暗,系统会自动地出调整。
4.3.3 基于场景内容的曝光算法
现代的AE系统不仅根据图像的亮度分布来调整曝光,还可以利用图像中的内容信息进行优化。例如,对于包含高对比度区域的场景(如直射阳光或强烈的阴影),AE系统会采取智能调整策略,使得亮部不过曝,暗部又能保留细节。
4.4. 自动曝光的类型
自动曝光系统通常具有多种模式或类型,以适应不同的拍摄需求:
4.4.1 曝光锁定(AE Lock)
当用户按下快门按钮半按或触摸屏幕上的一个区域时,AE系统会暂时锁定当前的曝光设置,直到用户拍摄下一张照片。这种方式特别适用于拍摄具有复杂光照条件的场景。
4.4.2 连续自动曝光(Continuous AE)
在一些动态场景中,AE系统可能需要持续调整曝光。例如,在拍摄运动物体或环境变化较大的场景时,AE系统会实时调整曝光,以保持图像的亮度平衡。
4.4.3 手动曝光(Manual Exposure)
虽然自动曝光非常方便,但在一些特定的创意场景下,摄影师可能需要手动控制曝光设置。这时可以关闭AE系统,手动调整光圈、快门速度和ISO,以获得最佳的曝光效果。
4.5. 自动曝光的挑战
尽管AE在大多数场景中非常有效,但它在一些极端或复杂场景下可能会遇到问题:
4.5.1 高对比度场景
在高对比度场景中,AE系统可能会出现过曝或欠曝的问题。例如,在拍摄日出、日落或强烈逆光的情况下,系统可能无法正确估计亮度,导致重要细节丢失。
4.5.2 多种光源
在一个场景中,如果存在多种不同色温的光源(例如,阳光和室内灯光),AE系统可能会难以决定最佳的曝光设置,因为不同光源可能导致不同的曝光需求。
4.5.3 快速变化的光线
在拍摄快速变化的光场景时,例如,进入或离开光线强度变化较大的区域,AE系统可能无法实时响应,导致图像的曝光不一致。
4.6. 现代AE技术的进展
随着深度学习和计算机视觉技术的进步,现代AE系统已经从传统基于规则的算法变为智能。例如,深度学习算法可以通过学习大量的图像数据来推测调整策略,使得系统在各种复杂场景下能够做出更准确的曝光决定。此外,基于图像内容的AE(如局部亮度调整等)也逐渐成为主流。
4.7. 自动曝光的应用
自动曝光技术广泛应用于各种图像采集设备中,尤其是在以下领域:
-
数码相机和智能手机:AE帮助用户在不同光照条件下拍摄出合适曝光的照片,避免过曝或欠曝。
-
视频监控:在复杂的光照环境下,AE系统能够确保视频监控画面亮度稳定,确保监控画面的可视性。
-
自动驾驶:AE帮助自动驾驶系统获取清晰的图像和视频,从而更好地识别道路和障碍物。
总结:自动曝光(AE)技术在图像处理和摄影中至关重要。它通过智能算法自动调整图像的曝光参数,使得在不同光照条件下拍摄的图像质量更趋向自然,避免过曝或欠曝问题。随着AI和深度学习的进步,现代的自动曝光系统正变得更加智能和精准。
5.锐化(Sharpening)
锐化(Sharpening) 是一种图像处理技术,旨在增强图像中的细节和边缘,使图像看起来更加清晰和锐利。锐化的核心目的是通过强调图像中的高频细节,改善图像的视觉效果。锐化通常应用于模糊或不够清晰的图像,使其边缘更加突出,从而提高图像的分辨率和清晰度。
5.1. 锐化的基本原理
锐化的过程通过强调图像中的边缘和细节来增加清晰度。它通过增强图像的高频部分,通常是图像的边缘区域,从而使图像看起来更具层次感和立体感。锐化处理的本质是对图像进行滤波操作,突出局部变化较大的区域。
锐化操作通常使用“高通滤波”或“梯度增强”的方法,这些方法主要是通过增加像素间的亮度差异,使边缘更加突出。
5.1.1 锐化的基本原理:高通滤波
图像的频率可以分为两部分:低频和高频。低频部分包含的是图像的平滑区域和大致形状,而高频部分则包含图像中的细节、边缘和质感。锐化通常通过“高通滤波器”来增强图像中的高频部分。
-
低通滤波器:将图像中的细节和噪点去除,主要保留图像的平滑区域。
-
高通滤波器:增强图像的边缘和细节,去除平滑区域的模糊,使得图像更锐利。
高通滤波通过计算图像像素的局部差异,强调边缘区域,使边缘更明显。这种滤波器通常由一个“卷积核”(convolution kernel)实现。
5.1.2 锐化的实现:卷积操作
锐化滤波器的实现通常是通过“卷积”操作来进行的。卷积操作使用一个卷积核(通常是一个矩阵),将其应用于图像的每个像素,以增强图像中某些特定的特征(例如边缘)。常见的锐化卷积核包括 Sobel 算子、Laplacian 算子、Unsharp Mask 等。
5.2. 锐化的常见方法
锐化可以通过多种方法实现,其中最常见的包括以下几种:
5.2.1 Unsharp Mask(反锐化掩蔽)
反锐化掩蔽(Unsharp Mask, USM)是最常见的锐化技术之一。它的工作原理是:首先对图像进行模糊处理,然后将模糊图像与原图进行差分,再将差分结果加回原图。这个差分部分通常是图像的高频部分,包含了细节和边缘。
步骤:
-
模糊处理:首先对图像应用高斯模糊(Gaussian Blur),产生一个模糊图像。
-
差分计算:将模糊图像从原图中减去,得到一个细节图像。这个细节图包含了图像的高频部分。
-
加回差分:将细节图像加回原图,从而增强边缘细节。
公式:假设原始图像为 I I I,模糊图像为 G G G,那么锐化后的图像 I ′ I' I′ 为:
I ′ = I + α ( I − G ) I' = I + \alpha (I - G) I′=I+α(I−G)
其中, α \alpha α 是一个增幅系数,决定了锐化的强度。
5.2.2 Laplacian锐化
Laplacian锐化通过计算图像的二阶梯度(即二次变化)来突出图像的边缘。Laplacian算子可以检测到图像中像素的变化,并且强调这些变化。
Laplacian算子使用一个卷积核,通常是一个 3x3 的矩阵,如下所示:
[ 0 1 0 1 − 4 1 0 1 0 ] \begin{bmatrix} 0 & 1 & 0 \\ 1 & -4 & 1 \\ 0 & 1 & 0 \\ \end{bmatrix} 0101−41010
Laplacian算子会计算图像中每个像素的二阶梯度,并突出边缘。当卷积结果为负值时,表示图像中的某部分是边缘,锐化算法会加强这些区域。
5.2.3 Sobel算子锐化
Sobel算子是一种边缘检测滤波器,广泛用于图像的锐化处理。它通过计算图像的梯度来突出图像中的边缘。Sobel算子通常由两个 3x3 的卷积核组成,一个检测水平边缘,另一个检测垂直边缘:
水平Sobel算子:
[ − 1 0 1 − 2 0 2 − 1 0 1 ] \begin{bmatrix} -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \\ \end{bmatrix} −1−2−1000121
垂直Sobel算子:
[ − 1 − 2 − 1 0 0 0 1 2 1 ] \begin{bmatrix} -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \\ \end{bmatrix} −101−202−101
通过对图像应用这些卷积核,Sobel算子能够检测图像中的边缘,并加强图像的细节和结构。最终通过将水平和垂直方向的梯度结合,锐化效果得以增强。
5.2.4 高通滤波锐化
高通滤波通过计算图像中各像素与周围像素的差异来实现锐化。高通滤波器只保留图像中的高频成分,去除低频成分,从而突出边缘和细节。
高通滤波器的应用步骤包括:
- 对图像进行傅里叶变换,转换到频域。
- 在频域中增强高频部分,去除低频部分。
- 进行逆傅里叶变换,将图像还原到空间域。
这种方法常用于图像的整体锐化,尤其是在增强图像细节时具有优势。
5.3. 锐化的参数和控制
锐化的强度和效果通常通过控制以下几个参数来调节:
5.3.1 锐化强度
锐化强度决定了增强细节的程度。过度锐化会导致图像出现过多的伪影或噪点,使图像失真。因此,在应用锐化时,需要根据图像的特性调节锐化强度,避免过度处理。
5.3.2 半径(Radius)
半径是指锐化效果在图像中扩展的范围。较小的半径(例如1-2像素)将只增强图像中的细节,适合用于增强质感;较大的半径(例如5-10像素)则会加强较大的边缘,适合用于改善整体图像的清晰度。半径控制了锐化的“广度”,较大的半径可能会使细节变得模糊。
5.3.3 阈值(Threshold)
阈值用于控制哪些区域需要锐化。在有些情况下,图像中的噪点和纹理可能也会被锐化。通过设置阈值,锐化过程只会应用于图像中变化较大的区域(如边缘),而不会影响到平滑或均匀的区域。阈值可以帮助避免不必要的噪点和伪影。
5.4. 锐化的应用场景
锐化技术在图像处理中有着广泛的应用,尤其是在以下几个领域:
5.4.1 摄影和视频
锐化技术广泛应用于摄影和视频后期制作中,通过改善图像的细节和清晰度,使拍摄的照片或视频更加清晰。
5.4.2 医学影像
在医学影像中,锐化可以帮助医生更清楚地看到图像中的细节,尤其是对于CT、MRI等扫描图像,锐化有助于提升病变区域的可视性。
5.4.3 卫星遥感
卫星图像通常具有较低的分辨率和模糊效果,通过锐化可以提高图像的清晰度,帮助更精确地分析地表特征。
5.4.4 显微成像
显微镜拍摄的图像常具有较低的分辨率,通过锐化可以增强细胞或微观物体的细节,使其更加清晰可见。
5.5. 锐化的挑战与注意事项
尽管锐化能增强图像的清晰度,但过度锐化会带来一些副作用,如:
- 噪点增强:锐化可能会使图像中的噪点更加明显,尤其是在低光环境下拍摄的图像中。
- 伪影:过度锐化可能会引入一些伪影(如不真实的光晕),使图像出现不自然的效果。
- 失真:过度锐化可能会导致图像中丢失或失真,尤其是在高频区域过度处理时。
因此,在锐化图像时需要小心调整参数,避免产生不良效果。
总结
锐化是图像处理中的一种重要技术,通过增强图像的边缘和细节,改善图像的视觉效果。常见的锐化方法包括反锐化掩蔽、Laplacian锐化、Sobel锐化和高通滤波锐化。锐化的关键在于合理调整锐化强度、半径和阈值,以避免过度锐化造成的副作用。在实际应用中,锐化技术能够在多个领域提升图像质量,使其更加清晰和鲜明。
6.图像合成与融合(Image Fusion)
图像合成与融合(Image Fusion) 是一种将多个图像或图像数据源组合成一个图像的技术,目的是利用多个图像的互补信息,生成一个更加清晰、有用和综合的信息图像。这一过程通过将不同来源、不同角度或不同时间拍摄的图像进行融合,合成一个能够提供更多视觉或数据信息的图像。
6.1. 图像融合的定义与目的
图像融合的主要目的是整合多个图像的数据和信息,以增强图像的质量,突出图像中的关键特征,减少噪声或模糊。常见的应用包括:
-
多模态图像融合:将不同类型图像(如可见光图像、红外图像、雷达图像等)融合,获取更加全面的信息。
-
多视角图像融合:从不同视角拍摄的图像进行融合,增强目标的三维信息。
-
多时序图像融合:对同一场景在不同时间拍摄的图像进行融合,增强图像中动态变化的信息。
图像融合可以提高图像的质量,提升物体检测和识别的准确性,在医学成像、遥感影像处理、安防监控、工业检测等领域具有广泛的应用。
6.2. 图像融合的原理
图像融合的基本原理是:通过结合来自不同图像的信息(例如颜色、纹理、边缘等),去除噪声并突出有用特征,生成一个“更优”的图像。实现这一点的方法可以从图像的不同层次进行,包括像素层次、特征层次和决策层次。
-
像素级融合:直接基于图像的像素值进行融合,常用的方式有加权平均法、小波变换等。
-
特征级融合:首先提取图像的特征(如边缘、角点等),然后对特征进行融合,最后重建图像。
-
决策级融合:不同传感器或不同图像源分别对图像进行处理和分析,然后将各自的分析结果进行综合和决策。
6.3. 图像融合的分类
根据融合的层次和方法,图像融合可以分为几类:
6.3.1 基于像素的图像融合
这种方法直接对图像的像素值进行处理,并根据某些准则或算法将多幅图像融合为一幅图像。
-
加权平均法:这种方法对不同图像的像素进行加权平均,常用于同一场景在不同传感器或不同时间拍摄的图像融合。例如,可以使用每个图像的权重来决定它对最终结果的贡献。 F ( x , y ) = ∑ i = 1 n w i I i ( x , y ) F(x, y) = \sum_{i=1}^{n} w_i I_i(x, y) F(x,y)=∑i=1nwiIi(x,y)
其中, F ( x , y ) F(x, y) F(x,y) 是融合后的图像, I i ( x , y ) I_i(x, y) Ii(x,y) 是第 i i i 张图像在像素 ( x , y ) (x, y) (x,y) 位置的像素值, w i w_i wi 是每张图像的权重。 -
最大/最小值融合:在该方法中,选择不同图像在每个像素位置的最大值或最小值作为融合后的值。例如,在红外图像与可见光图像融合时,常常使用最大值融合来保留图像中的重要特征。
F ( x , y ) = max ( I 1 ( x , y ) , I 2 ( x , y ) , . . . , I n ( x , y ) ) F(x, y) = \max (I_1(x, y), I_2(x, y), ..., I_n(x, y)) F(x,y)=max(I1(x,y),I2(x,y),...,In(x,y))
6.3.2 基于变换的图像融合
这种方法通过对图像进行变换(如小波变换、傅里叶变换等),提取图像的特征(如频率分量、波动等),然后对变换后的结果进行融合。
-
小波变换(Wavelet Transform):小波变换是一种多分辨率分析工具,能够有效地处理图像中的高频和低频部分。
通过将多个图像的小波变换结果进行融合,可以提取出图像中的不同细节。- 图像通过小波变换分解成不同的频带(低频部分和高频部分)。
- 对每个频带进行融合,最后进行逆变换得到融合后的图像。小波变换的优点在于能够在多个尺度上捕捉图像的信号,同时在空间和频率上提供更好的灵活性。
-
拉普拉斯变换(Laplacian Transform):拉普拉斯变换也是一种频率分解技术,常用于图像细节提取。它可以通过
对图像进行高频部分和低频部分的分解,增强细节,减少冗余信息。
6.3.3 基于特征的图像融合
在特征级图像融合中,图像首先会经过特征提取过程,得到一些关键特征(如边缘、角点、纹理等),然后将不同图像的特征进行融合。这种方法通常用于目标检测、物体识别等场景。
-
边缘检测与融合:通过边缘检测(如Sobel算子、Canny算子等)提取图像中的重要边缘信息,然后将不同图像中的边缘信息进行融合。
-
角点检测与融合:使用角点检测算法(如Harris角点检测)提取图像中的角点信息,并将多个图像中的角点数据进行融合。
6.3.4 基于决策的图像融合
这种方法一般是对图像进行分析处理后,基于某些规则或算法的判断,对图像进行融合。此方法常用于自动化图像分类、医学影像诊断、目标识别等领域。
- 决策融合:将来自不同传感器或不同时间拍摄的图像进行分类、分析后,汇总决策结果,以输出最终的判别。决策融合常见于遥感图像、安防监控等领域。
6.4. 图像融合的应用
图像融合广泛应用于多个领域,下面列举了几个典型应用:
6.4.1 医学影像
在医学影像中,图像融合技术可以将来自不同成像设备(如CT、MRI、PET等)的图像进行融合,从而提供更为全面的诊断信息。例如,将CT图像和PET图像融合,可以同时显示肿瘤的位置和其代谢情况,帮助医生进行更精确的诊断。
6.4.2 遥感影像
遥感图像通常来自不同的传感器,如多光谱、超光谱和高分辨率图像。图像融合技术可以将这些不同来源的遥感图像进行融合,提供更全面的地面信息,用于环境监测、资源管理、灾害预警等领域。
6.4.3 安防监控
在安防监控领域,图像融合技术常用于将可见光图像与红外图像融合,从而实现全天候的监控。红外图像能够提供在低光环境下的目标信息,而可见光图像则能提供更多的细节,融合后的图像能够提高目标检测的准确性。
6.4.4 机器人视觉
在机器人视觉中,图像融合技术常用于合成多视角图像,以生成具有更高精度的三维模型。通过融合多个摄像头或传感器采集到的图像,机器人能够更准确地识别和定位物体。
6.4.5 自动驾驶
自动驾驶系统需要利用多种传感器(如相机、雷达、激光雷达等)来识别道路、障碍物、行人等。图像融合技术能够将不同传感器的图像进行有效融合,提供更全面、精确的环境感知。
6.5. 图像融合的挑战
尽管图像融合技术有很多应用,但在实际操作中也面临着一些挑战:
-
对齐问题:不同图像之间的对齐精度至关重要,若图像未精确对齐,融合后可能会产生晕变或不一致的结果。
-
信息丢失:融合过程中可能会丢失一些原始图像中的关键信息,尤其是在多模态图像融合时。
-
计算复杂度:一些高级的图像融合算法(如小波变换、大规模数据融合等)可能会导致较高的计算复杂度,需更强大的计算资源。
-
噪声与伪影:在融合过程中,噪声和伪影可能会影响最终图像的质量,因此需要采取适当的去噪和伪影抑制措施。
总结
图像融合是通过将多个来源的图像信息合成一个更全面、准确的图像的技术。它可以通过多种方法实现,包括基于像素、特征和决策的融合,广泛应用于医学、遥感、安防、机器人等领域。图像融合技术的核心目标是通过综合多个图像的优点,提高图像质量,增强目标检测、图像分析等任务的表现。
三. 未来发展方向
随着图像处理技术的发展,ISP也在不断进步,以下是其未来发展的一些方向:
-
AI集成:将深度学习、神经网络等人工智能技术集成到ISP中,进一步提高图像处理的智能化水平,尤其是在自动曝光、自动白平衡、图像增强等方面。
-
更高的图像质量:支持更高分辨率和动态范围的图像处理,特别是在4K、8K视频和HDR图像的处理上。
-
低功耗设计:特别是在移动设备中,ISP需要在提高性能的同时保持低功耗,延长设备的电池寿命。
-
集成化与模块化:随着集成电路技术的发展,ISP将更加集成化,与其他功能单元(如图像传感器、显示驱动等)集成,形成一体化解决方案。
总结,图像信号处理器在现代化图像技术中起着至关重要的作用,其发展趋势将进一步推动图像质量的提升和新型应用的出现。
参考文献:
ISP(图像信号处理)算法概述、工作原理、架构、处理流程
结~~~
相关文章:
图像信号处理器(ISP,Image Signal Processor)详解
简介:个人学习分享,如有错误,欢迎批评指正。 图像信号处理器(ISP,Image Signal Processor) 是专门用于处理图像信号的硬件或处理单元,广泛应用于图像传感器(如 CMOS 或 CCD 传感器&a…...
越权访问漏洞
V2Board Admin.php 越权访问漏洞 ## 漏洞描述 V2board面板 Admin.php 存在越权访问漏洞,由于部分鉴权代码于v1.6.1版本进行了修改,鉴权方式变为从Redis中获取缓存判定是否存在可以调用… V2Board Admin.php 越权访问漏洞 漏洞描述 V2board面板 Admin.ph…...
【Ant.designpro】上传图片
文章目录 一、前端二、后端 一、前端 fieldProps:可以监听并且获取到组件输入的内容 action{“/api/upload_image”} 直接调用后端接口 <ProFormUploadButtonlabel{"上传手续图片"}name{"imgs"}action{"/api/upload_image"}max{5} fieldPro…...
为何选择Spring AI Alibaba开发智能客服平台?
0 前言 本文来看如何使用Spring AI Alibaba构建Agent应用。 1 需求 智能客服平台,可帮助用户完成机票预定、问题解答、机票改签、取消等动作,具体要求: 基于 AI 大模型与用户对话,理解用户自然语言表达的需求支持多轮连续对话…...
HiveSQL 中判断字段是否包含某个值的方法
HiveSQL 中判断字段是否包含某个值的方法 在 HiveSQL 中,有时我们需要判断一个字段是否包含某个特定的值。下面将介绍几种常用的方法来实现这个功能。 一、创建示例表并插入数据 首先,我们创建一个名为employee的表,并插入一些示例数据&am…...
Nginx简易配置将内网网站ssh转发到外网
声明:本内容仅供交流学习使用,部署网站上线还需要根据有关规定申请域名以及备案。 背景 在内网的服务器有一个运行的网页,现使用ssh反向代理,将它转发到外网的服务器。 但是外网的访问ip会被ssh反向代理拦截 所以使用Nginx进行…...
【go从零单排】error错误处理及封装
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,error 是一个内置的接口类型,用于表示错误情…...
全平台设置jetbrains mono字体
相信大家都用过IDEA,推荐使用开发字体:jetbrains mono 本地下载的位置(记一下)后续需要打开安装 本地下载的:E:\download\font\jetbrainsmono\JetBrainsMono-2.304\fonts\ttf 官网上下载:https://www.jetbr…...
高校体育场管理系统+ssm
摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,高校体育场管理系统被用户普遍使用,为方便用户…...
Python学习从0到1 day27 第三阶段 Spark ② 数据计算Ⅰ
人总是会执着于失去的,而又不珍惜现在所拥有的 —— 24.11.9 一、map方法 PySpark的数据计算,都是基于RDD对象来进行的,采用依赖进行,RDD对象内置丰富的成员方法(算子) map算子 功能:map算子…...
Python学习从0到1 day27 第三阶段 Spark ③ 数据计算 Ⅱ
目录 一、Filter方法 功能 语法 代码 总结 filter算子 二、distinct方法 功能 语法 代码 总结 distinct算子 三、SortBy方法 功能 语法 代码 总结 sortBy算子 四、数据计算练习 需求: 解答 总结 去重函数: 过滤函数: 转换函数: 排…...
腾讯混元3D模型Hunyuan3D-1.0部署与推理优化指南
腾讯混元3D模型Hunyuan3D-1.0部署与推理优化指南 摘要: 本文将详细介绍如何部署腾讯混元3D模型Hunyuan3D-1.0,并针对不同硬件配置提供优化的推理方案。我们将探讨如何在有限的GPU内存下,通过调整配置来优化模型的推理性能。 1. 项目概览 腾…...
基于 PyTorch 从零手搓一个GPT Transformer 对话大模型
一、从零手实现 GPT Transformer 模型架构 近年来,大模型的发展势头迅猛,成为了人工智能领域的研究热点。大模型以其强大的语言理解和生成能力,在自然语言处理、机器翻译、文本生成等多个领域取得了显著的成果。但这些都离不开其背后的核心架…...
IDEA构建JavaWeb项目,并通过Tomcat成功运行
目录 一、Tomcat简介 二、Tomcat安装步骤 1.选择分支下载 2.点击下载zip安装包 3.解压到没有中文、空格和特殊字符的目录下 4.双击bin目录下的startup.bat脚本启动Tomcat 5.浏览器访问Tomcat 6.关闭Tomcat服务器 三、Tomcat目录介绍 四、WEB项目的标准结构 五、WEB…...
Mac解决 zsh: command not found: ll
Mac解决 zsh: command not found: ll 文章目录 Mac解决 zsh: command not found: ll解决方法 解决方法 1.打开bash_profile 配置文件vim ~/.bash_profile2.在文件中添加配置:alias llls -alF键盘按下 I 键进入编辑模式3. alias llls -alF添加完配置后,按…...
库打包工具 rollup
库打包工具 rollup 摘要 **概念:**rollup是一个模块化的打包工具 注:实际应用中,rollup更多是一个库打包工具 与Webpack的区别: 文件处理: rollup 更多专注于 JS 代码,并针对 ES Module 进行打包webpa…...
unplugin-vue-components 库作用
一、基本概念与用途 1. 自动导入 Vue 组件 unplugin - vue - components是一个用于 Vue 项目的插件,主要功能是自动导入组件,从而减少在 Vue 组件中手动导入其他组件的繁琐过程。 在大型 Vue 项目中,往往会有许多自定义组件或者第三方组件…...
LinkedList和单双链表。
java中提供了双向链表的动态数据结构 --- LinkedList,它同时也实现了List接口,可以当作普通的列表来使用。也可以自定义实现链表。 单向链表:一个节点本节点数据下个节点地址 给定两个有序链表的头指针head1和head2,打印两个链表…...
AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
文末有免费工具可在线体验,或者网络搜索关键词“思通开源AI能力平台” 一、扫描与图像预处理 技术实现过程 在纸质档案的数字化过程中,首先需要使用高精度扫描仪对纸质文档进行扫描,生成高清的数字图像。这一步骤是整个OCR流程的基础…...
Spring boot 读模块项目升级为spring cloud 项目步骤以及问题
1.结构说明 bean 模块 ,public 模块, client 模块, erp模块,system 主模块。 2.环境说明以及pom 原本环境 新环境 mysql 5.7 -------------- mysql 8.0 maven 3.9.6 jdk 8 -----------…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
